COMPILATION LISTING OF SEGMENT list_emacs_ctls Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/15/84 1149.1 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1981 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* * Copyright (c) 1972 by Massachusetts Institute of * 9* * Technology and Honeywell Information Systems, Inc. * 10* * * 11* *********************************************************** */ 12 13 /* format: style2 */ 14 list_emacs_ctls: 15 procedure (); 16 17 /* Procedure to list all of the terminal controllers in the 18* emacs_terminal_ctls search paths. 19* Originally coded: 1 July 1981 by Richard Mark Soley. 20* Modified: 6 July 1981 RMSoley for find_ctl and ".ctl" names. 21* Switched to object segment search rules BIM August 1981. 22* Removed support for old style names ending in "ctl" WMY 08/21/81 23* Duplicate dir detection, restoration of support for old names 24* only for find, not for list, BIM, shortly thereafter. 25* Modified: 20 December 1983 B. Margolin to fix cleanup handler to 26* not do non-local exit. 27**/ 28 29 /* Parameters */ 30 dcl P_type character (*) parameter; 31 32 /* System Entries */ 33 dcl absolute_pathname_ entry (char (*), char (*), fixed bin (35)); 34 dcl com_err_ entry () options (variable); 35 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 36 dcl get_system_free_area_ entry () returns (ptr); 37 dcl get_wdir_ entry () returns (char (168)); 38 dcl hcs_$make_ptr entry (ptr, char (*), char (*), ptr, fixed bin (35)); 39 dcl hcs_$fs_get_path_name entry (ptr, char (*), fixed bin, char (*), fixed bin (35)); 40 dcl hcs_$star_ entry (char (*), char (*), fixed bin (2), ptr, fixed bin, ptr, ptr, 41 fixed bin (35)); 42 dcl ioa_ entry () options (variable); 43 dcl ioa_$nnl entry () options (variable); 44 dcl hcs_$get_search_rules entry (ptr); 45 dcl sort_items_$char entry (ptr, fixed bin (24)); 46 dcl user_info_$homedir entry (char (*)); 47 declare expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 48 declare hcs_$status_long entry (char (*), char (*), fixed bin (1), ptr, ptr, fixed bin (35)); 49 /* Conditions */ 50 dcl cleanup condition; 51 52 /* Static */ 53 dcl error_table_$bad_arg fixed bin (35) ext static; 54 dcl error_table_$nomatch fixed bin (35) ext static; 55 56 /* Based */ 57 dcl ap pointer, 58 al fixed bin (21), 59 arg char (al) based (ap); 60 dcl char32 character (32) based; 61 62 /* Automatic */ 63 dcl area_ptr pointer; 64 dcl code fixed bin (35); 65 dcl count fixed bin (35); 66 dcl dirname char (168); 67 dcl have_printed_header bit (1) aligned initial ("0"b); 68 dcl idx fixed bin; 69 dcl jdx fixed bin; 70 71 dcl me char (32) initial ("list_emacs_ctls"); 72 dcl starname char (32) initial ("*"); 73 dcl temp_ptr pointer; 74 dcl terminal char (32) varying; 75 dcl type character (32); 76 77 dcl 1 search_rules aligned, 78 2 n_directories fixed bin, 79 2 dir_names (22) character (168); 80 81 /* Builtin */ 82 dcl (addr, codeptr, hbound, length, max, min, null, rtrim, substr, translate) 83 builtin; 84 85 /* Include Files */ 1 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 1 2 1 3 /* This include file contains structures for the hcs_$star_, 1 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 1 5* 1 6* Written 23 October 1978 by Monte Davidoff. 1 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 1 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 1 9**/ 1 10 1 11 /* automatic */ 1 12 1 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 1 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 1 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 1 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 1 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 1 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 1 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 1 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 1 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 1 22 1 23 /* based */ 1 24 1 25 /* hcs_$star_ entry structure */ 1 26 1 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 1 28 2 type fixed binary (2) unsigned unaligned, 1 29 /* storage system type */ 1 30 2 nnames fixed binary (16) unsigned unaligned, 1 31 /* number of names of entry that match star_name */ 1 32 2 nindex fixed binary (18) unsigned unaligned; 1 33 /* index of first name in star_names */ 1 34 1 35 /* hcs_$star_ name structure */ 1 36 1 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 1 38 1 39 /* hcs_$star_list_ branch structure */ 1 40 1 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 1 42 2 type fixed binary (2) unsigned unaligned, 1 43 /* storage system type */ 1 44 2 nnames fixed binary (16) unsigned unaligned, 1 45 /* number of names of entry that match star_name */ 1 46 2 nindex fixed binary (18) unsigned unaligned, 1 47 /* index of first name in star_list_names */ 1 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 1 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 1 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 1 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 1 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 1 53 2 pad bit (7) unaligned, 1 54 2 records fixed binary (18) unsigned unaligned; 1 55 /* records used by branch */ 1 56 1 57 /* hcs_$star_dir_list_ branch structure */ 1 58 1 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 1 60 2 type fixed binary (2) unsigned unaligned, 1 61 /* storage system type */ 1 62 2 nnames fixed binary (16) unsigned unaligned, 1 63 /* number of names of entry that match star_name */ 1 64 2 nindex fixed binary (18) unsigned unaligned, 1 65 /* index of first name in star_list_names */ 1 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 1 67 2 pad bit (36) unaligned, 1 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 1 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 1 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 1 71 2 bit_count fixed binary (24) unaligned; 1 72 /* bit count of the branch */ 1 73 1 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 1 75 1 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 1 77 2 type fixed binary (2) unsigned unaligned, 1 78 /* storage system type */ 1 79 2 nnames fixed binary (16) unsigned unaligned, 1 80 /* number of names of entry that match star_name */ 1 81 2 nindex fixed binary (18) unsigned unaligned, 1 82 /* index of first name in star_list_names */ 1 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 1 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 1 85 2 pathname_len fixed binary (18) unsigned unaligned, 1 86 /* length of the pathname of the link */ 1 87 2 pathname_index fixed binary (18) unsigned unaligned; 1 88 /* index of start of pathname in star_list_names */ 1 89 1 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 1 91 1 92 declare star_list_names char (32) based (star_list_names_ptr) 1 93 dimension (star_links (star_branch_count + star_link_count).nindex 1 94 + star_links (star_branch_count + star_link_count).nnames 1 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 1 96 * binary ( 1 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 1 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 1 99 1 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 1 101 1 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 1 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 1 104 1 105 /* internal static */ 1 106 1 107 /* star_select_sw values */ 1 108 1 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 1 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 1 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 1 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 1 113 fixed binary (3) internal static options (constant) initial (5); 1 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 1 115 fixed binary (3) internal static options (constant) initial (7); 1 116 1 117 /* storage system types */ 1 118 1 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 1 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 1 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 1 122 1 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 86 2 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 2 2 2 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 2 4 2 5 /* This include file contains branch and link structures returned by 2 6* hcs_$status_ and hcs_$status_long. */ 2 7 2 8 dcl 1 status_branch aligned based (status_ptr), 2 9 2 short aligned, 2 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 2 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 2 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 2 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 2 14 3 dtu bit (36) unaligned, /* date/time last used */ 2 15 3 mode bit (5) unaligned, /* caller's effective access */ 2 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 2 17 3 pad1 bit (8) unaligned, 2 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 2 19 2 20 /* Limit of information returned by hcs_$status_ */ 2 21 2 22 2 long aligned, 2 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 2 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 2 25 3 lvid bit (36) unaligned, /* logical volume ID */ 2 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 2 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 2 28 3 pad2 bit (8) unaligned, 2 29 3 copy_switch bit (1) unaligned, /* copy switch */ 2 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 2 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 2 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 2 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 2 34 3 pad3 bit (5) unaligned, 2 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 2 36 3 uid bit (36) unaligned; /* unique ID */ 2 37 2 38 dcl 1 status_link aligned based (status_ptr), 2 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 2 40 2 nnames fixed bin (16) unaligned unsigned, 2 41 2 names_relp bit (18) unaligned, 2 42 2 dtem bit (36) unaligned, 2 43 2 dtd bit (36) unaligned, 2 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 2 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 2 46 2 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 2 48 based (pointer (status_area_ptr, status_branch.names_relp)), 2 49 /* array of names returned */ 2 50 status_pathname character (status_link.pathname_length) aligned 2 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 2 52 /* link target path */ 2 53 status_area_ptr pointer, 2 54 status_ptr pointer; 2 55 2 56 dcl (Link initial (0), 2 57 Segment initial (1), 2 58 Directory initial (2)) fixed bin internal static options (constant); 2 59 /* values for type fields declared above */ 2 60 2 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 87 88 declare 1 SB aligned like status_branch; 89 90 area_ptr = get_system_free_area_ (); 91 on cleanup call clean_up (); 92 93 /* See if there's an argument to pick up. 94* Set up starname for use by hcs_$star_ */ 95 call cu_$arg_ptr (1, ap, al, code); 96 if code = 0 97 then starname = substr (arg, 1, min (al, 29)); 98 if substr (starname, max (length (rtrim (starname)) - 1, 1), 2) = "**" 99 then starname = substr (starname, 1, length (rtrim (starname)) - 1); 100 starname = translate (starname, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 101 102 103 search_rules.n_directories = 0; 104 call hcs_$get_search_rules (addr (search_rules)); 105 if search_rules.n_directories = 0 106 then 107 no_ctls: 108 do; 109 call com_err_ (0, me, "No emacs ctls can be found via the search rules."); 110 return; 111 end; 112 113 dir_list: 114 begin; 115 declare dirx fixed bin; 116 declare dir_uids (search_rules.n_directories) bit (36); 117 declare dir_dir character (168); 118 declare dir_entryname character (32); 119 120 dir_uids (*) = (36)"0"b; 121 122 do idx = 1 to search_rules.n_directories; 123 124 star_entry_ptr = null; 125 star_names_ptr = null; 126 127 dirname = search_rules.dir_names (idx); 128 129 if dirname = "working_dir" 130 then dirname = get_wdir_ (); 131 132 else if dirname = "referencing_dir" 133 then call hcs_$fs_get_path_name (codeptr (list_emacs_ctls), dirname, (0), "", (0)); 134 135 else if dirname = "initiated_segments" 136 then go to give_up; /* we cant look at all the refnames */ 137 138 call expand_pathname_ (dirname, dir_dir, dir_entryname, (0)); 139 /* we trust hcs_$get... */ 140 call hcs_$status_long (dir_dir, dir_entryname, 1, addr (SB), null, code); 141 if code = 0 142 then do; 143 dir_uids (idx) = SB.uid; 144 do dirx = 1 to idx - 1; /* perhaps 0 trip */ 145 if dir_uids (dirx) = dir_uids (idx) 146 then go to give_up; /* been here before */ 147 end; 148 end; 149 150 /* Now have directory to look in. Look in it! */ 151 152 call hcs_$star_ (dirname, rtrim (starname) || ".ctl", star_ALL_ENTRIES, area_ptr, star_entry_count, 153 star_entry_ptr, star_names_ptr, code); 154 155 if code = error_table_$nomatch 156 then go to end_loop; 157 158 if code ^= 0 159 then do; 160 call com_err_ (code, me, "Can't get listing of ctls in ^a.", dirname); 161 go to end_loop; 162 end; 163 164 count = hbound (star_names, 1); 165 if count = 0 166 then go to end_loop; 167 168 begin; 169 dcl sorted_names (count) char (28) varying; 170 dcl 1 v aligned, 171 2 n fixed bin (24), 172 2 vector (count) pointer unaligned; 173 174 do jdx = 1 to count; 175 v.vector (jdx) = addr (star_names (jdx)); 176 end; 177 178 /* Sort the entries alphabetically. */ 179 v.n = count; 180 call sort_items_$char (addr (v), 32); 181 182 /* Now have listing of some entries. Print them (and 183* header if haven't yet. */ 184 if ^have_printed_header 185 then do; 186 have_printed_header = "1"b; 187 call ioa_ ("Listing of Emacs terminal controllers:^/"); 188 end; 189 190 call ioa_ (" in ^a", dirname); 191 do jdx = 1 to count; 192 terminal = 193 /* translate (*/ rtrim (v.vector (jdx) -> char32)/*, "abcdefghijklmnopqrstuvwxyz", 194* "ABCDEFGHIJKLMNOPQRSTUVWXYZ")*/; 195 sorted_names (jdx) = substr (terminal, 1, length (terminal) - length (".ctl")); 196 end; 197 call ioa_$nnl ("^(^8x^3(^20a^5x^)^/^)", sorted_names); 198 end; 199 end_loop: 200 if star_names_ptr ^= null () 201 then free star_names; 202 if star_entry_ptr ^= null () 203 then free star_entries; 204 205 give_up: 206 end; 207 end dir_list; 208 209 if ^have_printed_header 210 then call ioa_ ("No Emacs terminal controllers found."); 211 212 call ioa_ (""); 213 call clean_up (); 214 215 return; 216 217 clean_up: proc (); 218 219 if star_names_ptr ^= null () 220 then free star_names; 221 if star_entry_ptr ^= null () 222 then free star_entries; 223 224 return; 225 226 end clean_up; 227 228 229 find_ctl: 230 entry (P_type) returns (character (168)); 231 232 /* This entry returns the full pathname of a ctl if found, 233* or null string if not. */ 234 235 declare tried_both bit (1) aligned; 236 237 if length (P_type) > 168 238 then return (""); /* its just impossible... */ 239 240 type = rtrim (P_type) || ".ctl"; 241 tried_both = "0"b; 242 243 do while ("1"b); 244 245 call hcs_$make_ptr (codeptr (list_emacs_ctls), type, "symbol_table", temp_ptr, code); 246 247 if temp_ptr ^= null 248 then do; 249 call hcs_$fs_get_path_name (temp_ptr, dirname, (0), "", code); 250 if code = 0 251 then return (rtrim (dirname) || ">" || type); 252 end; 253 254 if tried_both 255 then return (""); /* No can do */ 256 tried_both = "1"b; 257 type = rtrim (P_type) || "ctl"; 258 end; 259 end list_emacs_ctls; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/84 0849.9 list_emacs_ctls.pl1 >spec>on>6599-11/15/84>list_emacs_ctls.pl1 86 1 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_structures.incl.pl1 87 2 11/22/82 0955.7 status_structures.incl.pl1 >ldd>include>status_structures.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. P_type parameter char unaligned dcl 30 ref 229 237 240 257 SB 002102 automatic structure level 1 dcl 88 set ref 140 140 addr builtin function dcl 82 ref 104 104 140 140 175 180 180 al 000110 automatic fixed bin(21,0) dcl 57 set ref 95* 96 96 ap 000106 automatic pointer dcl 57 set ref 95* 96 area_ptr 000112 automatic pointer dcl 63 set ref 90* 152* arg based char unaligned dcl 57 ref 96 char32 based char(32) unaligned dcl 60 ref 192 cleanup 000100 stack reference condition dcl 50 ref 91 code 000114 automatic fixed bin(35,0) dcl 64 set ref 95* 96 140* 141 152* 155 158 160* 245* 249* 250 codeptr builtin function dcl 82 ref 132 132 245 245 com_err_ 000010 constant entry external dcl 34 ref 109 160 count 000115 automatic fixed bin(35,0) dcl 65 set ref 164* 165 169 170 174 179 191 cu_$arg_ptr 000012 constant entry external dcl 35 ref 95 dir_dir 000101 automatic char(168) unaligned dcl 117 set ref 138* 140* dir_entryname 000153 automatic char(32) unaligned dcl 118 set ref 138* 140* dir_names 1 000237 automatic char(168) array level 2 dcl 77 set ref 127 dir_uids 000101 automatic bit(36) array unaligned dcl 116 set ref 120* 143* 145 145 dirname 000116 automatic char(168) unaligned dcl 66 set ref 127* 129 129* 132 132* 135 138* 152* 160* 190* 249* 250 dirx 000100 automatic fixed bin(17,0) dcl 115 set ref 144* 145* error_table_$nomatch 000042 external static fixed bin(35,0) dcl 54 ref 155 expand_pathname_ 000036 constant entry external dcl 47 ref 138 get_system_free_area_ 000014 constant entry external dcl 36 ref 90 get_wdir_ 000016 constant entry external dcl 37 ref 129 have_printed_header 000170 automatic bit(1) initial dcl 67 set ref 67* 184 186* 209 hbound builtin function dcl 82 ref 164 hcs_$fs_get_path_name 000022 constant entry external dcl 39 ref 132 249 hcs_$get_search_rules 000032 constant entry external dcl 44 ref 104 hcs_$make_ptr 000020 constant entry external dcl 38 ref 245 hcs_$star_ 000024 constant entry external dcl 40 ref 152 hcs_$status_long 000040 constant entry external dcl 48 ref 140 idx 000171 automatic fixed bin(17,0) dcl 68 set ref 122* 127 143 144 145* ioa_ 000026 constant entry external dcl 42 ref 187 190 209 212 ioa_$nnl 000030 constant entry external dcl 43 ref 197 jdx 000172 automatic fixed bin(17,0) dcl 69 set ref 174* 175 175* 191* 192 195* length builtin function dcl 82 ref 98 98 195 195 237 long 4 002102 automatic structure level 2 dcl 88 max builtin function dcl 82 ref 98 me 000173 automatic char(32) initial unaligned dcl 71 set ref 71* 109* 160* min builtin function dcl 82 ref 96 n 000100 automatic fixed bin(24,0) level 2 dcl 170 set ref 179* n_directories 000237 automatic fixed bin(17,0) level 2 dcl 77 set ref 103* 105 116 122 nnames 0(02) based fixed bin(16,0) array level 2 packed unsigned unaligned dcl 1-27 ref 164 199 219 null builtin function dcl 82 ref 124 125 140 140 199 202 219 221 247 rtrim builtin function dcl 82 ref 98 98 152 192 240 250 257 search_rules 000237 automatic structure level 1 dcl 77 set ref 104 104 sort_items_$char 000034 constant entry external dcl 45 ref 180 sorted_names 000100 automatic varying char(28) array dcl 169 set ref 195* 197* star_ALL_ENTRIES 000007 constant fixed bin(2,0) initial dcl 1-111 set ref 152* star_entries based structure array level 1 dcl 1-27 ref 202 221 star_entry_count 002074 automatic fixed bin(17,0) dcl 1-14 set ref 152* 164 199 202 219 221 star_entry_ptr 002076 automatic pointer dcl 1-15 set ref 124* 152* 164 199 202 202 219 221 221 star_names based char(32) array unaligned dcl 1-37 set ref 164 175 199 219 star_names_ptr 002100 automatic pointer dcl 1-19 set ref 125* 152* 164 175 199 199 219 219 starname 000203 automatic char(32) initial unaligned dcl 72 set ref 72* 96* 98 98 98* 98 98 100* 100 152 status_branch based structure level 1 dcl 2-8 substr builtin function dcl 82 ref 96 98 98 195 temp_ptr 000214 automatic pointer dcl 73 set ref 245* 247 249* terminal 000216 automatic varying char(32) dcl 74 set ref 192* 195 195 translate builtin function dcl 82 ref 100 tried_both 002114 automatic bit(1) dcl 235 set ref 241* 254 256* type 000227 automatic char(32) unaligned dcl 75 set ref 240* 245* 250 257* uid 11 002102 automatic bit(36) level 3 packed unaligned dcl 88 set ref 143 v 000100 automatic structure level 1 dcl 170 set ref 180 180 vector 1 000100 automatic pointer array level 2 packed unaligned dcl 170 set ref 175* 192 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Directory internal static fixed bin(17,0) initial dcl 2-56 Link internal static fixed bin(17,0) initial dcl 2-56 Segment internal static fixed bin(17,0) initial dcl 2-56 absolute_pathname_ 000000 constant entry external dcl 33 error_table_$bad_arg external static fixed bin(35,0) dcl 53 star_ALL_ENTRIES_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 1-114 star_BRANCHES_ONLY internal static fixed bin(2,0) initial dcl 1-110 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 1-121 star_LINK internal static fixed bin(2,0) initial unsigned dcl 1-119 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 1-109 star_LINKS_ONLY_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 1-112 star_SEGMENT internal static fixed bin(2,0) initial unsigned dcl 1-120 star_branch_count automatic fixed bin(17,0) dcl 1-13 star_dir_list_branch based structure array level 1 dcl 1-59 star_link_count automatic fixed bin(17,0) dcl 1-17 star_link_pathname based char unaligned dcl 1-102 star_links based structure array level 1 dcl 1-76 star_linkx automatic fixed bin(17,0) dcl 1-18 star_list_branch based structure array level 1 dcl 1-41 star_list_branch_ptr automatic pointer dcl 1-16 star_list_names based char(32) array unaligned dcl 1-92 star_list_names_ptr automatic pointer dcl 1-20 star_select_sw automatic fixed bin(3,0) dcl 1-21 status_area_ptr automatic pointer dcl 2-47 status_entry_names based char(32) array dcl 2-47 status_link based structure level 1 dcl 2-38 status_pathname based char dcl 2-47 status_ptr automatic pointer dcl 2-47 user_info_$homedir 000000 constant entry external dcl 46 NAMES DECLARED BY EXPLICIT CONTEXT. clean_up 001716 constant entry internal dcl 217 ref 91 213 dir_list 000400 constant label dcl 113 end_loop 001260 constant label dcl 199 ref 155 161 165 find_ctl 001376 constant entry external dcl 229 give_up 001324 constant label dcl 205 ref 135 145 list_emacs_ctls 000175 constant entry external dcl 14 ref 132 132 245 245 no_ctls 000344 constant label dcl 105 NAME DECLARED BY CONTEXT OR IMPLICATION. sum builtin function ref 164 199 219 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2402 2446 2172 2412 Length 2702 2172 44 220 207 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME list_emacs_ctls 1176 external procedure is an external procedure. on unit on line 91 64 on unit begin block on line 113 218 begin block uses auto adjustable storage. begin block on line 168 96 begin block uses auto adjustable storage. clean_up 64 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 113 000100 dirx begin block on line 113 000101 dir_uids begin block on line 113 000101 dir_dir begin block on line 113 000153 dir_entryname begin block on line 113 begin block on line 168 000100 v begin block on line 168 000100 sorted_names begin block on line 168 list_emacs_ctls 000106 ap list_emacs_ctls 000110 al list_emacs_ctls 000112 area_ptr list_emacs_ctls 000114 code list_emacs_ctls 000115 count list_emacs_ctls 000116 dirname list_emacs_ctls 000170 have_printed_header list_emacs_ctls 000171 idx list_emacs_ctls 000172 jdx list_emacs_ctls 000173 me list_emacs_ctls 000203 starname list_emacs_ctls 000214 temp_ptr list_emacs_ctls 000216 terminal list_emacs_ctls 000227 type list_emacs_ctls 000237 search_rules list_emacs_ctls 002074 star_entry_count list_emacs_ctls 002076 star_entry_ptr list_emacs_ctls 002100 star_names_ptr list_emacs_ctls 002102 SB list_emacs_ctls 002114 tried_both list_emacs_ctls THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs enter_begin leave_begin call_ext_out_desc call_ext_out call_int_this call_int_other return alloc_auto_adj mpfx2 signal enable shorten_stack ext_entry ext_entry_desc int_entry free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_ptr expand_pathname_ get_system_free_area_ get_wdir_ hcs_$fs_get_path_name hcs_$get_search_rules hcs_$make_ptr hcs_$star_ hcs_$status_long ioa_ ioa_$nnl sort_items_$char THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$nomatch LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 67 000163 71 000164 72 000167 14 000174 90 000205 91 000214 95 000236 96 000255 98 000267 100 000316 103 000327 104 000331 105 000342 109 000344 110 000371 113 000400 116 000403 120 000410 122 000421 124 000432 125 000434 127 000435 129 000443 132 000457 135 000521 138 000525 140 000553 141 000617 143 000622 144 000626 145 000637 147 000645 152 000647 155 000741 158 000747 160 000751 161 001000 164 001001 165 001026 168 001027 169 001032 170 001042 197 001047 174 001057 175 001071 176 001076 179 001100 180 001102 184 001117 186 001123 187 001125 190 001141 191 001162 192 001175 195 001216 196 001234 197 001236 198 001257 199 001260 202 001315 205 001324 207 001327 209 001330 212 001346 213 001357 215 001363 229 001372 237 001413 240 001432 241 001462 245 001464 247 001523 249 001527 250 001561 254 001633 256 001651 257 001653 258 001704 259 001706 217 001715 219 001723 221 001757 224 001766 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved