COMPILATION LISTING OF SEGMENT dm_firstref_util_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0942.3 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* This is a general repository for little programs for DMS. Its current 10* residents are: 11* 12* dm_status: given a DMS per-bootload directory, return 13* the status recorded in the system data. This 14* is currently used to get the system state of 15* an old DMS during recovery. 16* 17* find_old_boot_dir: Find the last valid per-bootload directory. 18* This basically involves getting a list of all 19* the properly named directories 20* (dm_dir.) in the per-AIM 21* directory. There should NEVER be more than one 22* file system entity in the per-AIM dir matching 23* the per-bootload dir's starname; if there is, 24* it should be treated as a fatal recovery error, 25* even if the config file says we should ignore 26* recovery failure. 27* 28* get_begin_shutdown_time: Returns the time when the DMS caretaker Daemon 29* will prevent new transactions from starting 30* and set the DMS state to "shutdown begun"; 31* invoked through dm_gate_. 32* 33* get_daemon_logout_time: Returns the time when the DMS caretaker 34* Daemon is to logout, regardless if the DMS 35* is totally shutdown; invoked through 36* dm_daemon_gate_. 37* 38* get_initialization_time: Returns the time the current DMS was created. 39* 40* get_shutdown_warning_time: Returns the time when user processes 41* are to run 42* dm_misc_util_$signal_shutdown_warning; 43* invoked through dm_gate_. 44* 45* get_system_state: Returns the current system state of the DMS; 46* invoked through dm_gate_. 47* 48* get_system_version: Gets the software version id of the DM software 49* in use by the current process in the DM ring and 50* the software version id in use by the Daemon 51* when it created the current DM bootload. 52* 53* get_user_bump_time: returns the time when users will be bumped 54* from Multics if they have not finished user 55* shutdown; invoked through dm_daemon_gate_. 56* 57* get_user_shutdown_time: returns the time when user processes should 58* run dm_misc_util_$signal_user_shutdown; 59* invoked through dm_gate_. 60* 61**/ 62 63 /* HISTORY: 64*Written by Lee A. Newcomb, 01/07/83. 65*Modified: 66*03/07/83 by L. A. Newcomb: to terminate old_dm_system_data_ ref name. 67*04/23/83 by L. A. Newcomb: changed the star-name used by 68* find_old_bootload_dir to match new name created via 69* request_id_ subr. 70*04/26/83 by L. A. Newcomb: Again fixed the starname used to find an old DMS 71* bootload directory. 72*08/17/83 by M. Pandolf: to add set_journal_stamps and get_system_data. 73*11/29/83 by S. Herbst: to add terminate_dm and using_dm. 74*01/26/84 by S. Herbst: made $using_dm check that DM_SEGMENT_NAME's linkage 75* section has been combined. 76*05/11/84 by Lee A. Newcomb: to have $terminate_dm work for an unbound version 77* of DM by terminating single refname fm_'s, bjm_'s, and lm_'s 78* inner ring TV before terminating tm_firstref_tv_. 79*06/08/84 by Lindsey L. Spratt: Added the *data_ modules to the list of 80* refnames to be terminated by the $terminate_dm entry. This is 81* necessary to ensure that any per-process static data associated 82* with these data segments is gotten rid of. Also, added the 83* dm_journal_seg_ and dm_aim_dir_util_ refnames to be explicitly 84* terminated. 85*06/12/84 by Lindsey L. Spratt: Changed $terminate_dm to terminate all of the 86* DM_SEGMENT_NAMES in all of the rings from get_ring_() to 87* OUTERMOST_RING (7). 88*07/31/84 by Lee A. Newcomb: added entries $get_daemon_logout_time, 89* $get_system_state, $get_user_bump_time, and 90* $get_user_shutdown_time. 91*09/27/84 by Lee A. Newcomb: added the entries get_(begin_shutdown 92* shutdown_warning)_time and fixed $get_user_shutdown_time to 93* not use dm_system_data_$initializer_shutdown_time which has 94* been renamed to $user_shutdown_time. 95*12/02/84 by Lindsey L. Spratt: Removed the obsolete $get_system_data entry. 96* Added $get_initialization_time. 97*12/03/84 by Stanford S. Cox: Chg refs from *inner_ring_tv_ to =firstref_tv_ 98*12/05/84 by Lindsey L. Spratt: Removed dm_aim_dir_util_ from the 99* DM_SEGMENT_NAMES array as it's obsolete. Made minor format 100* changes. 101*12/07/84 by Lindsey L. Spratt: Copied from dm_util_. Kept all of the entries 102* except using_dm, terminate_dm, and set_journal_stamps. These are 103* now in dm_no_firstref_util_. 104*12/11/84 by Lindsey Spratt: Fixed to reference 105* dm_system_data_$user_warning_time instead of 106* $shutdown_warning_time. 107*01/24/85 by Lindsey L. Spratt: Added $get_system_version. Added 108* dm_firstref_tv_ to the DM_SEGMENT_NAMES to be terminated when 109* doing a user_shutdown. 110*02/15/85 by Lindsey L. Spratt: Changed $get_system_version to have two output 111* args, p_bootload_version and p_dm_ring_version. 112*02/26/85 by Lee A. Newcomb: Fixed to: return error if >1 file system object 113* matches the bootload directory starname; use pathname_ instead 114* of concatentation; use standard parameter naming convention. 115* Also removed MANY unused variables and improved the internal 116* procs for cleaning up and error returns. 117*03/05/85 by Steve Herbst: Replaced dm_log_ with dm_misc_util_$log. 118**/ 119 120 /* format: style2,ll79,ind3,^indprocbody,ifthendo,ifthen,^indnoniterdo,^inddcls,dclind5,idind35,linecom */ 121 122 dm_firstref_util_$find_old_boot_dir: 123 proc (p_dm_aim_dir, p_old_boot_dir, p_code); 124 125 /* START OF DECLARATIONS */ 126 127 /* Parameter */ 128 dcl ( 129 p_dm_aim_dir char (*), /* I: dir. to look for per-bootload dir. */ 130 p_old_boot_dir char (*), /* O: in find_old_boot_dir, 131* /* I: in dm_status: */ 132 /* last per-bootload dir. for DMS */ 133 p_old_dm_status char (4) aligned, /* O: status of DMS in a particular boot dir. */ 134 p_bootload_version char (8) aligned, 135 p_dm_ring_version char (8) aligned, 136 p_code fixed bin (35) /* O: normal error code, recovery fails if ^= 0 */ 137 ) parameter; 138 139 /* Automatic */ 140 141 dcl ( 142 code fixed bin (35), /* local error code holder */ 143 sys_data_p ptr /* dummy for holding */ 144 ) automatic; 145 146 /* Builtin */ 147 dcl (null, sum) builtin; 148 149 /* Condition */ 150 dcl cleanup condition; 151 152 /* Constant */ 153 /* Entry */ 154 dcl ( 155 dm_misc_util_$log entry options (variable), 156 get_system_free_area_ entry returns (ptr), 157 hcs_$initiate entry (char (*), char (*), char (*), 158 fixed bin (1), fixed bin (2), ptr, 159 fixed bin (35)), 160 hcs_$star_ entry (char (*), char (*), 161 fixed bin (2), ptr, fixed bin, ptr, 162 ptr, fixed bin (35)), 163 pathname_ entry (char (*), char (*)) 164 returns (char (168)), 165 term_$seg_ptr entry (ptr, fixed bin (35)) 166 ) external; 167 168 /* External */ 169 dcl ( 170 dm_error_$too_many_bootload_dirs fixed bin (35), 171 dm_system_data_$begin_shutdown_time 172 fixed bin (71), 173 dm_system_data_$current_dm_state char (4) aligned, 174 dm_system_data_$daemon_logout_time fixed bin (71), 175 dm_system_data_$initialization_time 176 fixed bin (71), 177 dm_system_data_$shutdown_reason char (64) aligned, 178 dm_system_data_$system_software_version 179 char (8) aligned, 180 dm_system_data_$user_warning_time fixed bin (71), 181 dm_system_data_$user_bump_time fixed bin (71), 182 dm_system_data_$user_shutdown_time fixed bin (71), 183 dm_system_data_template_$system_software_version 184 char (8) aligned, 185 old_dm_system_data_$current_dm_state 186 char (4) aligned 187 ) external static; 188 189 /* find_old_boot_dir: /* for ease of programming */ 190 /* proc (p_dm_aim_dir, p_old_boot_dir, p_code); */ 191 192 /* initialize output parameter */ 193 p_code = 0; /* let's be optimistic */ 194 195 /* Set up for cleaning garbage if we fail */ 196 star_entry_ptr, star_names_ptr = null (); 197 on cleanup call CLEAN_UP_FIND_OLD_BOOT_DIR (); 198 199 /* Get a list of all directories with a properly formatted name */ 200 call hcs_$star_ (p_dm_aim_dir, "dm_dir.??????????", star_BRANCHES_ONLY, 201 get_system_free_area_ (), star_entry_count, star_entry_ptr, 202 star_names_ptr, code); 203 if code ^= 0 then /* can't do a thing */ 204 call ERROR_RETURN_FROM_FIND_OLD_BOOT_DIR (code); 205 206 /* We should NEVER find more than one validly named old bootload dir. */ 207 if star_entry_count > 1 then 208 call ERROR_RETURN_FROM_FIND_OLD_BOOT_DIR ( 209 dm_error_$too_many_bootload_dirs); 210 211 p_old_boot_dir = 212 pathname_ (p_dm_aim_dir, star_names (star_entries.nindex (1))); 213 214 call FINISH_FIND_OLD_BOOT_DIR (); 215 216 MAIN_RETURN: 217 return; 218 219 /* end dm_firstref_util_$find_old_boot_dir; */ 220 221 dm_firstref_util_$dm_status: 222 entry (p_old_boot_dir, p_old_dm_status, p_code); 223 224 /* must find the dm_system_data_ in the per_bootload_dir. */ 225 call hcs_$initiate (p_old_boot_dir, "dm_system_data_", 226 "old_dm_system_data_", 0, 0, sys_data_p, code); 227 if sys_data_p = null () then do; /* could not find it */ 228 call dm_misc_util_$log (LOG_SV, code, "dm_firstref_util_$dm_status", 229 "Warning: error attempting to find old dm_system_data_."); 230 p_code = code; 231 return; 232 end; 233 234 p_old_dm_status = old_dm_system_data_$current_dm_state; 235 236 call term_$seg_ptr (sys_data_p, code); 237 if code ^= 0 then 238 call dm_misc_util_$log (LOG_SV, code, "dm_firstref_util_$dm_status", 239 "Warning: could not terminate old dm_system_data_."); 240 return; 241 242 /* end dm_firstref_util_$dm_status; */ 243 244 dm_firstref_util_$get_initialization_time: 245 entry () returns (fixed bin (71)); 246 247 return (dm_system_data_$initialization_time); 248 249 /* end dm_firstref_util_$get_initialization_time; */ 250 251 dm_firstref_util_$get_system_state: 252 entry returns (char (4) aligned); 253 254 return (dm_system_data_$current_dm_state); 255 256 /* end dm_firstref_util_$get_system_state; */ 257 258 dm_firstref_util_$get_system_version: 259 entry (p_bootload_version, p_dm_ring_version); 260 261 p_bootload_version = dm_system_data_$system_software_version; 262 p_dm_ring_version = dm_system_data_template_$system_software_version; 263 return; 264 265 /* end dm_firstref_util_$get_system_version; */ 266 267 /* user interface to retrieve the shutdown reason */ 268 dm_firstref_util_$get_shutdown_reason: 269 entry returns (char (64)); 270 271 return (dm_system_data_$shutdown_reason); 272 273 /* end dm_firstref_util_$get_shutdown_reason; */ 274 275 /* Now the entries that get various time values from dm_system_data_ */ 276 277 dm_firstref_util_$get_begin_shutdown_time: 278 entry returns (fixed bin (71)); 279 280 return (dm_system_data_$begin_shutdown_time); 281 282 /* end dm_firstref_util_$get_begin_shutdown_time; */ 283 284 dm_firstref_util_$get_daemon_logout_time: 285 entry returns (fixed bin (71)); 286 287 return (dm_system_data_$daemon_logout_time); 288 289 /* end dm_firstref_util_$get_daemon_logout_time; */ 290 291 dm_firstref_util_$get_shutdown_warning_time: 292 entry returns (fixed bin (71)); 293 294 return (dm_system_data_$user_warning_time); 295 296 /* end dm_firstref_util_$get_shutdown_warning_time; */ 297 298 dm_firstref_util_$get_user_bump_time: 299 entry returns (fixed bin (71)); 300 301 return (dm_system_data_$user_bump_time); 302 303 /* end dm_firstref_util_$get_user_bump_time; */ 304 305 dm_firstref_util_$get_user_shutdown_time: 306 entry returns (fixed bin (71)); 307 308 return (dm_system_data_$user_shutdown_time); 309 310 /* end dm_firstref_util_$get_user_shutdown_time; */ 311 312 FINISH_FIND_OLD_BOOT_DIR: 313 proc (); /* cleanup and finish the same currently */ 314 CLEAN_UP_FIND_OLD_BOOT_DIR: 315 entry (); 316 317 /* Internal proc. to free star structures if any get allocated */ 318 319 if star_names_ptr ^= null () then 320 free star_names; 321 322 if star_entry_ptr ^= null () then 323 free star_entries; 324 325 end FINISH_FIND_OLD_BOOT_DIR; 326 327 ERROR_RETURN_FROM_FIND_OLD_BOOT_DIR: 328 proc (erffobd_p_code); 329 330 dcl erffobd_p_code fixed bin (35) parameter; 331 332 call CLEAN_UP_FIND_OLD_BOOT_DIR (); 333 334 p_code = erffobd_p_code; 335 336 go to MAIN_RETURN; 337 338 end ERROR_RETURN_FROM_FIND_OLD_BOOT_DIR; 339 1 1 /* BEGIN INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 1 2 1 3 /* format: ^indcom */ 1 4 1 5 /* DESCRIPTION: 1 6* These are the severity codes used by the dms daemon when calling its logger. 1 7* The severity is ranked thusly: 1 8* 1 9* severity log write situation 1 10* -------- --- ----- --------- 1 11* 0 no yes standard output, query, etc. 1 12* 1 yes yes fatal error, terminate dms daemon. 1 13* 2 yes yes nonfatal error. 1 14* 3 yes yes informative message. 1 15* 4 yes no log information only. 1 16**/ 1 17 1 18 /* HISTORY: 1 19* 1 20*Written by M. Pandolf, 10/06/82. 1 21*Modified: 1 22*12/10/84 by R. Michael Tague: Rename and reformat description/history. 1 23*01/13/85 by Lee A. Newcomb: Renamed to dm_log_sv_codes from 1 24* dm_daemon_sv_codes as the severity codes for the DM log are not 1 25* restrained to the DM Daemon's use. 1 26*01/24/85 by Lee A. Newcomb: Fixed to say dm_log_sv_codes.incl.pl1 in the 1 27* BEGIN and END INCLUDE comments, instead of dm_daemon_sv_codes.==. 1 28**/ 1 29 1 30 /* format: style5 */ 1 31 1 32 dcl (PRINT_SV, QUERY_SV) fixed bin internal static 1 33 options (constant) init (0); 1 34 dcl (CRASH_SV, FATAL_SV) fixed bin internal static 1 35 options (constant) init (1); 1 36 dcl ERROR_SV fixed bin internal static 1 37 options (constant) init (2); 1 38 dcl INFORM_SV fixed bin internal static 1 39 options (constant) init (3); 1 40 dcl LOG_SV fixed bin internal static 1 41 options (constant) init (4); 1 42 1 43 /* END INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 340 341 2 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 2 2 2 3 /* This include file contains structures for the hcs_$star_, 2 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 2 5* 2 6* Written 23 October 1978 by Monte Davidoff. 2 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 2 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 2 9**/ 2 10 2 11 /* automatic */ 2 12 2 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 2 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 2 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 2 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 2 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 2 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 2 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 2 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 2 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 2 22 2 23 /* based */ 2 24 2 25 /* hcs_$star_ entry structure */ 2 26 2 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 2 28 2 type fixed binary (2) unsigned unaligned, 2 29 /* storage system type */ 2 30 2 nnames fixed binary (16) unsigned unaligned, 2 31 /* number of names of entry that match star_name */ 2 32 2 nindex fixed binary (18) unsigned unaligned; 2 33 /* index of first name in star_names */ 2 34 2 35 /* hcs_$star_ name structure */ 2 36 2 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 2 38 2 39 /* hcs_$star_list_ branch structure */ 2 40 2 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 2 42 2 type fixed binary (2) unsigned unaligned, 2 43 /* storage system type */ 2 44 2 nnames fixed binary (16) unsigned unaligned, 2 45 /* number of names of entry that match star_name */ 2 46 2 nindex fixed binary (18) unsigned unaligned, 2 47 /* index of first name in star_list_names */ 2 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 2 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 2 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 2 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 2 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 2 53 2 pad bit (7) unaligned, 2 54 2 records fixed binary (18) unsigned unaligned; 2 55 /* records used by branch */ 2 56 2 57 /* hcs_$star_dir_list_ branch structure */ 2 58 2 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 2 60 2 type fixed binary (2) unsigned unaligned, 2 61 /* storage system type */ 2 62 2 nnames fixed binary (16) unsigned unaligned, 2 63 /* number of names of entry that match star_name */ 2 64 2 nindex fixed binary (18) unsigned unaligned, 2 65 /* index of first name in star_list_names */ 2 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 2 67 2 pad bit (36) unaligned, 2 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 2 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 2 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 2 71 2 bit_count fixed binary (24) unaligned; 2 72 /* bit count of the branch */ 2 73 2 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 2 75 2 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 2 77 2 type fixed binary (2) unsigned unaligned, 2 78 /* storage system type */ 2 79 2 nnames fixed binary (16) unsigned unaligned, 2 80 /* number of names of entry that match star_name */ 2 81 2 nindex fixed binary (18) unsigned unaligned, 2 82 /* index of first name in star_list_names */ 2 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 2 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 2 85 2 pathname_len fixed binary (18) unsigned unaligned, 2 86 /* length of the pathname of the link */ 2 87 2 pathname_index fixed binary (18) unsigned unaligned; 2 88 /* index of start of pathname in star_list_names */ 2 89 2 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 2 91 2 92 declare star_list_names char (32) based (star_list_names_ptr) 2 93 dimension (star_links (star_branch_count + star_link_count).nindex 2 94 + star_links (star_branch_count + star_link_count).nnames 2 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 2 96 * binary ( 2 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 2 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 2 99 2 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 2 101 2 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 2 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 2 104 2 105 /* internal static */ 2 106 2 107 /* star_select_sw values */ 2 108 2 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 2 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 2 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 2 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 2 113 fixed binary (3) internal static options (constant) initial (5); 2 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 2 115 fixed binary (3) internal static options (constant) initial (7); 2 116 2 117 /* storage system types */ 2 118 2 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 2 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 2 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 2 122 2 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 342 343 344 345 end dm_firstref_util_$find_old_boot_dir; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0826.3 dm_firstref_util_.pl1 >spec>on>7192.pbf-04/04/85>dm_firstref_util_.pl1 340 1 03/06/85 1031.1 dm_log_sv_codes.incl.pl1 >ldd>include>dm_log_sv_codes.incl.pl1 342 2 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_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. LOG_SV 000012 constant fixed bin(17,0) initial dcl 1-40 set ref 228* 237* cleanup 000104 stack reference condition dcl 150 ref 197 code 000100 automatic fixed bin(35,0) dcl 141 set ref 200* 203 203* 225* 228* 230 236* 237 237* dm_error_$too_many_bootload_dirs 000024 external static fixed bin(35,0) dcl 169 set ref 207* dm_misc_util_$log 000010 constant entry external dcl 154 ref 228 237 dm_system_data_$begin_shutdown_time 000026 external static fixed bin(71,0) dcl 169 ref 280 dm_system_data_$current_dm_state 000030 external static char(4) dcl 169 ref 254 dm_system_data_$daemon_logout_time 000032 external static fixed bin(71,0) dcl 169 ref 287 dm_system_data_$initialization_time 000034 external static fixed bin(71,0) dcl 169 ref 247 dm_system_data_$shutdown_reason 000036 external static char(64) dcl 169 ref 271 dm_system_data_$system_software_version 000040 external static char(8) dcl 169 ref 261 dm_system_data_$user_bump_time 000044 external static fixed bin(71,0) dcl 169 ref 301 dm_system_data_$user_shutdown_time 000046 external static fixed bin(71,0) dcl 169 ref 308 dm_system_data_$user_warning_time 000042 external static fixed bin(71,0) dcl 169 ref 294 dm_system_data_template_$system_software_version 000050 external static char(8) dcl 169 ref 262 erffobd_p_code parameter fixed bin(35,0) dcl 330 ref 327 334 get_system_free_area_ 000012 constant entry external dcl 154 ref 200 200 hcs_$initiate 000014 constant entry external dcl 154 ref 225 hcs_$star_ 000016 constant entry external dcl 154 ref 200 nindex 0(18) based fixed bin(18,0) array level 2 packed unsigned unaligned dcl 2-27 ref 211 nnames 0(02) based fixed bin(16,0) array level 2 packed unsigned unaligned dcl 2-27 ref 319 null builtin function dcl 147 ref 196 227 319 322 old_dm_system_data_$current_dm_state 000052 external static char(4) dcl 169 ref 234 p_bootload_version parameter char(8) dcl 128 set ref 258 261* p_code parameter fixed bin(35,0) dcl 128 set ref 122 193* 221 230* 334* p_dm_aim_dir parameter char unaligned dcl 128 set ref 122 200* 211* p_dm_ring_version parameter char(8) dcl 128 set ref 258 262* p_old_boot_dir parameter char unaligned dcl 128 set ref 122 211* 221 225* p_old_dm_status parameter char(4) dcl 128 set ref 221 234* pathname_ 000020 constant entry external dcl 154 ref 211 star_BRANCHES_ONLY 000017 constant fixed bin(2,0) initial dcl 2-110 set ref 200* star_entries based structure array level 1 dcl 2-27 ref 322 star_entry_count 000112 automatic fixed bin(17,0) dcl 2-14 set ref 200* 207 319 322 star_entry_ptr 000114 automatic pointer dcl 2-15 set ref 196* 200* 211 319 322 322 star_names based char(32) array unaligned dcl 2-37 set ref 211* 319 star_names_ptr 000116 automatic pointer dcl 2-19 set ref 196* 200* 211 319 319 sum builtin function dcl 147 ref 319 sys_data_p 000102 automatic pointer dcl 141 set ref 225* 227 236* term_$seg_ptr 000022 constant entry external dcl 154 ref 236 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CRASH_SV internal static fixed bin(17,0) initial dcl 1-34 ERROR_SV internal static fixed bin(17,0) initial dcl 1-36 FATAL_SV internal static fixed bin(17,0) initial dcl 1-34 INFORM_SV internal static fixed bin(17,0) initial dcl 1-38 PRINT_SV internal static fixed bin(17,0) initial dcl 1-32 QUERY_SV internal static fixed bin(17,0) initial dcl 1-32 star_ALL_ENTRIES internal static fixed bin(2,0) initial dcl 2-111 star_ALL_ENTRIES_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 2-114 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 2-121 star_LINK internal static fixed bin(2,0) initial unsigned dcl 2-119 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 2-109 star_LINKS_ONLY_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 2-112 star_SEGMENT internal static fixed bin(2,0) initial unsigned dcl 2-120 star_branch_count automatic fixed bin(17,0) dcl 2-13 star_dir_list_branch based structure array level 1 dcl 2-59 star_link_count automatic fixed bin(17,0) dcl 2-17 star_link_pathname based char unaligned dcl 2-102 star_links based structure array level 1 dcl 2-76 star_linkx automatic fixed bin(17,0) dcl 2-18 star_list_branch based structure array level 1 dcl 2-41 star_list_branch_ptr automatic pointer dcl 2-16 star_list_names based char(32) array unaligned dcl 2-92 star_list_names_ptr automatic pointer dcl 2-20 star_select_sw automatic fixed bin(3,0) dcl 2-21 NAMES DECLARED BY EXPLICIT CONTEXT. CLEAN_UP_FIND_OLD_BOOT_DIR 001517 constant entry internal dcl 314 ref 197 332 ERROR_RETURN_FROM_FIND_OLD_BOOT_DIR 001571 constant entry internal dcl 327 ref 203 207 FINISH_FIND_OLD_BOOT_DIR 001510 constant entry internal dcl 312 ref 214 MAIN_RETURN 000341 constant label dcl 216 ref 336 dm_firstref_util_$dm_status 000362 constant entry external dcl 221 dm_firstref_util_$find_old_boot_dir 000124 constant entry external dcl 122 dm_firstref_util_$get_begin_shutdown_time 001105 constant entry external dcl 277 dm_firstref_util_$get_daemon_logout_time 001171 constant entry external dcl 284 dm_firstref_util_$get_initialization_time 000624 constant entry external dcl 244 dm_firstref_util_$get_shutdown_reason 001033 constant entry external dcl 268 dm_firstref_util_$get_shutdown_warning_time 001255 constant entry external dcl 291 dm_firstref_util_$get_system_state 000711 constant entry external dcl 251 dm_firstref_util_$get_system_version 000766 constant entry external dcl 258 dm_firstref_util_$get_user_bump_time 001341 constant entry external dcl 298 dm_firstref_util_$get_user_shutdown_time 001425 constant entry external dcl 305 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2466 2542 1612 2476 Length 3056 1612 54 277 654 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dm_firstref_util_$find_old_boot_dir 362 external procedure is an external procedure. on unit on line 197 64 on unit FINISH_FIND_OLD_BOOT_DIR 64 internal procedure is called by several nonquick procedures. ERROR_RETURN_FROM_FIND_OLD_BOOT_DIR internal procedure shares stack frame of external procedure dm_firstref_util_$find_old_bo STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dm_firstref_util_$find_old_boot_dir 000100 code dm_firstref_util_$find_old_boot_dir 000102 sys_data_p dm_firstref_util_$find_old_boot_dir 000112 star_entry_count dm_firstref_util_$find_old_boot_dir 000114 star_entry_ptr dm_firstref_util_$find_old_boot_dir 000116 star_names_ptr dm_firstref_util_$find_old_boot_dir THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return mpfx2 signal enable ext_entry ext_entry_desc int_entry any_to_any_tr free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. dm_misc_util_$log get_system_free_area_ hcs_$initiate hcs_$star_ pathname_ term_$seg_ptr THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$too_many_bootload_dirs dm_system_data_$begin_shutdown_time dm_system_data_$current_dm_state dm_system_data_$daemon_logout_time dm_system_data_$initialization_time dm_system_data_$shutdown_reason dm_system_data_$system_software_version dm_system_data_$user_bump_time dm_system_data_$user_shutdown_time dm_system_data_$user_warning_time dm_system_data_template_$system_software_version old_dm_system_data_$current_dm_state LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 122 000120 193 000146 196 000147 197 000152 200 000174 203 000253 207 000257 211 000271 214 000335 216 000341 221 000356 225 000377 227 000454 228 000460 230 000513 231 000516 234 000533 236 000537 237 000547 240 000604 244 000621 247 000633 251 000706 254 000720 258 000762 261 000775 262 001005 263 001013 268 001030 271 001041 277 001103 280 001114 284 001167 287 001200 291 001253 294 001264 298 001337 301 001350 305 001423 308 001434 312 001507 314 001515 319 001524 322 001561 325 001570 327 001571 332 001573 334 001577 336 001603 ----------------------------------------------------------- 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