COMPILATION LISTING OF SEGMENT shutdown_file_system Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1020.6 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 shutdown_file_system: procedure (); 14 15 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 16 17 /* Procedure to effect storage system shutdown. The principal goal 18* herein is to assign device addresses to all unwritten pages, write them out, 19* and update all vtoces of active segments. We operate on the assumption 20* that AST threading is not to be trusted, and some ASTEs may be in the process of 21* having their page tables filled. 22* 23* For the new Storage System, Bernard Greenberg, 10/20/75 24* For demountable volumes, BSG 03/26/76 25* For new flags in flagbox, 9/30/76 by Noel I. Morris 26* For shutdown with downed drives, BSG 02/26/77 27* For shutdown which doesn't give up, W. Olin Sibert, 05/18/81 28* For set_procs_required, J. Bongiovanni, October 1981 29* To remove Page Multilevel, C. Hornig, December 1981. 30* Copied from shutdown, release stack_0's, eliminate FSDCT, J. Bongiovanni, March 1982 31* For deactivate_for_demount, J. Bongiovanni, June 1982 32* To eliminate RLV parasites, J. Bongioanni, August 1982 33* For new ocdcm_$drain_io call... -E. A. Ranzenbach, 830620 34* For pmut$bce K. Loepere 8/83 35* */ 36 37 38 39 dcl sst$total_locks_set fixed bin external static; 40 dcl sst$root_pvtx fixed bin external static; 41 dcl sst$ external static; 42 dcl pvt$n_entries fixed bin external static; 43 dcl pvt$root_pvtx fixed bin external static; 44 dcl pvt$shutdown_state fixed bin external static; 45 46 dcl deactivate_for_demount$shutdown entry (fixed bin (35)); 47 dcl demount_pv entry (fixed bin, fixed bin (35)); 48 dcl fsout_vol entry (fixed bin, fixed bin); 49 dcl grab_aste$release_prewithdraw entry (ptr); 50 dcl ocdcm_$drain_io entry (); 51 dcl pc$flush ext entry; 52 dcl pmut$bce entry; 53 dcl syserr entry options (variable); 54 dcl syserr$error_code entry options (variable); 55 56 57 dcl code fixed bin (35); 58 dcl drives_inop bit (1); 59 dcl pvtx fixed bin; 60 dcl stack_0_x fixed bin; 61 62 dcl addr builtin; 63 dcl ptr builtin; 64 dcl unspec builtin; 65 66 drives_inop = "0"b; 67 68 pvt_arrayp = addr (pvt$array); 69 70 call fsout_vol (pvt$root_pvtx, 0); /* Get the fact out */ 71 72 call pc$flush; /* Now get pages for homeless data in core */ 73 74 75 /* Release all stack_0 segments so that demount_pv can deactivate them */ 76 77 sdtp = addr (stack_0_data$); 78 sdt.freep = "0"b; 79 80 do stack_0_x = 1 to sdt.num_stacks; 81 sdtep = addr (sdt.stacks (stack_0_x)); 82 if sdte.astep ^= "0"b then do; /* May be retry of shutdown */ 83 call grab_aste$release_prewithdraw (ptr (addr (sst$), sdte.astep)); 84 unspec (sdte) = "0"b; 85 end; 86 end; 87 88 /* Deactivate all non-hardcore segments, and revert deciduous segments */ 89 90 call deactivate_for_demount$shutdown (code); 91 if code ^= 0 92 then call syserr (ANNOUNCE, "shutdown_file_system: Error deactivating. Quota may be bad."); 93 94 95 /* Demount all volumes except the rpv */ 96 97 do pvtx = 1 to pvt$n_entries; 98 pvtep = addr (pvt_array (pvtx)); 99 if pvte.storage_system & pvte.used 100 then pvte.being_demounted = ^pvte.device_inoperative; 101 /* Prime demount_pv */ 102 end; 103 do pvtx = 1 to pvt$n_entries; 104 pvtep = addr (pvt_array (pvtx)); /* make_addressable */ 105 if ^pvte.rpv & pvte.being_demounted then do; /* RPV will be last */ 106 call demount_pv (pvtx, code); 107 if code ^= 0 then call syserr$error_code (ANNOUNCE, code, "shutdown_file_system: from demount_pv on ^o", pvtx); 108 end; 109 drives_inop = drives_inop | pvte.device_inoperative; 110 end; 111 112 if sst$total_locks_set > 0 then do; 113 pvt$shutdown_state = 3; 114 call syserr (ANNOUNCE, "shutdown_file_system: ^d locks set", sst$total_locks_set); 115 end; 116 else pvt$shutdown_state = 4; 117 118 if drives_inop then do; 119 call syserr (BEEP, "shutdown complete except for devices suspended."); 120 call pc$flush; 121 call ocdcm_$drain_io (); /* make sure I/O completes... */ 122 123 do while ("1"b); 124 call pmut$bce; 125 end; 126 end; 127 128 129 130 if pvt_array (sst$root_pvtx).used then /* Maybe this is an esd retry */ 131 call demount_pv (sst$root_pvtx, (0)); /* No error meaningful */ 132 133 134 fgbxp = addr (flagbox$); /* Get pointer to the flagbox. */ 135 fgbx.ssenb = "0"b; /* Storage system no longer enabled. */ 136 fgbx.shut = "1"b; /* Shutdown has been completed. */ 137 138 139 call pc$flush; /* Drain out log I/O */ 140 141 call syserr (ANNOUNCE, "shutdown complete"); 142 143 call ocdcm_$drain_io (); /* quies the console... */ 144 145 do while ("1"b); 146 call pmut$bce; 147 end; 148 149 /* That's all, folks. */ 150 151 152 /* START OF: pvte.incl.pl1 July 1982 * * * * * * * * * * * * * * * * */ 1 2 1 3 /* Added pc_vacating, Benson Margulies 84-10-17 */ 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(86-04-11,Fawcett), approve(86-04-11,MCR7383), 1 7* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 1 8* Add the support for subvolumes 1 9* 2) change(86-04-11,Lippard), approve(86-04-11,MCR7309), 1 10* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 1 11* Add root_lv flag to mount RLVs that do not have hardcore partitions. 1 12* 3) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 1 13* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 1 14* Added inconsistent_dbm bit for determining the status of volume 1 15* dumper bit maps. 1 16* END HISTORY COMMENTS */ 1 17 1 18 dcl pvt$array aligned external; 1 19 dcl pvt$max_n_entries fixed bin external; 1 20 1 21 dcl pvt_arrayp ptr; 1 22 dcl pvtep ptr; 1 23 1 24 dcl 1 pvt_array (pvt$max_n_entries) aligned like pvte based (pvt_arrayp); 1 25 1 26 dcl 1 pvte based (pvtep) aligned, 1 27 1 28 2 pvid bit (36), /* physical volume ID */ 1 29 1 30 2 lvid bit (36), /* logical volume ID */ 1 31 1 32 2 dmpr_in_use (3) bit (1) unaligned, /* physical volume dumper interlock */ 1 33 2 is_sv bit (1) unaligned, /* true if this entry defines a subvolume */ 1 34 2 root_lv bit (1) unaligned, /* true if this is on the root LV */ 1 35 2 removable_pack bit (1) unaligned, /* true if packs are eremoveable */ 1 36 2 inconsistent_dbm bit (1) unaligned, /* true if trouble count is incremented */ 1 37 2 pad3 bit (2) unaligned, 1 38 2 brother_pvtx fixed bin (8) unaligned,/* next pvte in lv chain */ 1 39 2 skip_queue_count fixed bin (18) unsigned unaligned, /* number of times this pv skipped for per-proc allocation due to saturation */ 1 40 1 41 1 42 1 43 2 devname char (4), /* device name */ 1 44 1 45 (2 device_type fixed bin (8), /* device type */ 1 46 2 logical_area_number fixed bin (8), /* disk drive number */ 1 47 2 used bit (1), /* TRUE if this entry is used */ 1 48 2 storage_system bit (1), /* TRUE for storage system (vs io disk) */ 1 49 2 permanent bit (1), /* TRUE if cannot be demounted */ 1 50 2 testing bit (1), /* Protocol bit for read_disk$test */ 1 51 2 being_mounted bit (1), /* TRUE if the physical volume is being mounted */ 1 52 2 being_demounted bit (1), /* TRUE if the pysical volume is being demounted */ 1 53 2 check_read_incomplete bit (1), /* page control should check read incomplete */ 1 54 2 device_inoperative bit (1), /* TRUE if disk_control decides dev busted */ 1 55 2 rpv bit (1), /* TRUE if this is the root physical volume */ 1 56 2 scav_check_address 1 57 bit (1), /* TRUE is page control should check deposits/withdrawals against scavenger table */ 1 58 2 deposit_to_volmap bit (1), /* TRUE if deposits should got to volume map, not stock */ 1 59 2 being_demounted2 bit (1), /* No more vtoc I/O during demount */ 1 60 2 pc_vacating bit (1), /* No more withdraws from this volume -- for debugging */ 1 61 2 vacating bit (1), /* don't put new segs on this vol */ 1 62 2 hc_part_used bit (1), /* HC part set up by init_pvt */ 1 63 2 volmap_lock_notify bit (1) unal, /* TRUE if notify required when volmap lock is unlocked */ 1 64 2 volmap_idle_notify bit (1) unal, /* TRUE if notify required when volmap state is idle */ 1 65 2 vtoc_map_lock_notify bit (1) unal, /* TRUE if notify required when vtoc map lock is unlocked */ 1 66 1 67 1 68 2 n_free_vtoce fixed bin (17), /* number of free VTOC entries */ 1 69 2 vtoc_size fixed bin (17), /* size of the VTOC part of the disk - in records */ 1 70 1 71 2 dbmrp (2) bit (18), /* rel ptr to dumber bit maps for this volume */ 1 72 1 73 2 nleft fixed bin (17), /* number of records left */ 1 74 2 totrec fixed bin (17)) unaligned, /* Total records in this map */ 1 75 1 76 2 dim_info bit (36), /* Information peculiar to DIM */ 1 77 2 sv_num fixed bin, /* the number of this subvolume starting at 0 */ 1 78 2 num_of_svs fixed bin, /* number of subvolumes for this device */ 1 79 2 records_per_cyl fixed bin, 1 80 2 record_factor fixed bin, /* the record factor for logical to real seek calculation */ 1 81 2 sv_name char (2) aligned, 1 82 2 curn_dmpr_vtocx (3) fixed bin unaligned,/* current vtocx being dumped */ 1 83 2 n_vtoce fixed bin unaligned, /* number of vtoce on this volume */ 1 84 1 85 2 baseadd fixed bin (18) uns unaligned, /* Base of paging region */ 1 86 2 pad2 bit (18) unaligned, 1 87 1 88 2 pad_for_mod_2 fixed bin (35), /* Make volmap_seg_sdw double word aligned */ 1 89 1 90 2 volmap_seg_sdw fixed bin (71), /* SDW describing volmap_seg */ 1 91 1 92 2 volmap_astep ptr unal, /* Packed pointer to ASTE for volmap_seg */ 1 93 1 94 2 volmap_offset bit (18) unal, /* Offset in volmap_seg of volume map */ 1 95 2 vtoc_map_offset bit (18) unal, /* Offset in volmap_seg of VTOC map */ 1 96 1 97 1 98 2 volmap_lock bit (36) aligned, /* Lock on volume map operations */ 1 99 1 100 2 vtoc_map_lock bit (36) aligned, /* Lock on VTOC map operations */ 1 101 1 102 2 volmap_stock_ptr ptr unal, /* Packed pointer to record stock */ 1 103 1 104 2 vtoc_map_stock_ptr ptr unal, /* Packed pointer to VTOCE stock */ 1 105 1 106 2 volmap_async_state fixed bin (17) unaligned, /* Asynchronous update state of Volume Map */ 1 107 2 volmap_async_page fixed bin (17) unaligned, /* Page number for asynchronous update */ 1 108 1 109 2 vol_trouble_count fixed bin (17) unaligned, /* Count of inconsistencies since last salvage */ 1 110 2 scavenger_block_rel bit (18) unaligned; /* Offset to scavenger block, ^0 => scavenging */ 1 111 1 112 1 113 dcl (VOLMAP_ASYNC_IDLE init (0), /* for volmap_async_state */ 1 114 VOLMAP_ASYNC_READ init (1), 1 115 VOLMAP_ASYNC_WRITE init (2)) fixed bin int static options (constant); 1 116 1 117 1 118 /* END OF: pvte.incl.pl1 * * * * * * * * * * * * * * * * */ 152 153 /* BEGIN INCLUDE FILE ... flagbox.incl.pl1 */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(87-02-26,Farley), approve(87-04-15,MCR7661), 2 6* audit(87-04-21,Fawcett), install(87-04-28,MR12.1-1028): 2 7* Added io_reconfig flag to inhibit BCE from attempting an emergency 2 8* shutdown when the data in memory could be corrupted. 2 9* END HISTORY COMMENTS */ 2 10 2 11 2 12 /* last modified 5/3/77 by Noel I. Morris */ 2 13 /* Modified 8/79 by R.J.C. Kissel to add FNP blast message. */ 2 14 /* Modified 7/82 BIM for recognizable sentinel field */ 2 15 /* Modified for bootload Multics flagbox starting in 8/83 by Keith Loepere. */ 2 16 2 17 /* The contents of this segment are data shared by Multics and bce. 2 18* This entity occupies the locations within the toehold starting at 40o 2 19* (not counting the toehold_used spacer at the beginning). */ 2 20 2 21 dcl flagbox$ ext; 2 22 dcl fgbxp ptr; 2 23 2 24 dcl 1 fgbx based (fgbxp) aligned, 2 25 2 toehold_used (32) bit (36) aligned, /* flagbox seg now mapped onto all of first page of toehold - 2 26* This is what was unused before. */ 2 27 2 flags (36) bit (1) unal, /* communications switches */ 2 28 2 slt_segno bit (18), /* segment # of the SLT */ 2 29 2 pad1 fixed bin, 2 30 2 rtb, /* return to bce info */ 2 31 (3 ssenb bit (1), /* "1"b if storage system enabled */ 2 32 3 call_bce bit (1), /* "1"b if bce called by operator */ 2 33 3 shut bit (1), /* "1"b if bce called after shutdown */ 2 34 3 mess bit (1), /* "1"b if message has been provided */ 2 35 3 alert bit (1), /* "1"b if audible alarm to be sounded */ 2 36 3 breakpoint bit (1), /* "1"b is breakpoint caused call to bce */ 2 37 3 manual_crash bit (1), /* either manual entry or execute fault */ 2 38 3 io_reconfig bit (1), /* "1"b if I/O reconfiguration */ 2 39 /* could cause memory corruption */ 2 40 3 pad bit (21), 2 41 3 bce_entry fixed bin (6) uns) unal, /* type of entry into bce 2 42* 00o => Multics entry 2 43* 20o => manual entry 2 44* 40o => esd entry */ 2 45 2 sentinel char (32) aligned, /* set by bce (for now) */ 2 46 2 sst_sdw bit (72), /* set by init_sst */ 2 47 2 hc_dbr bit (72), /* set by start_cpu, idle DBR */ 2 48 2 message char (64), /* message for return to bce */ 2 49 2 return_to_bce_command char (128) unal; /* command to run upon crash/shutdown */ 2 50 2 51 declare FLAGBOX_SENTINEL char (32) init ("Flagbox & Toehold Valid") int static options (constant); 2 52 2 53 /* END INCLUDE FILE ... flagbox.incl.pl1 */ 153 154 /* BEGIN INCLUDE FILE ... stack_0_data.incl.pl1 */ 3 2 3 3 /* Created 790509 by Mike Grady */ 3 4 3 5 dcl stack_0_data$ fixed bin ext; /* shared stack 0 data base seg */ 3 6 dcl stack_0_data_init_number_of_stacks fixed bin; /* Make PL/I work */ 3 7 dcl sdtp ptr; 3 8 3 9 dcl 1 sdt aligned based (sdtp), /* stack 0 database */ 3 10 2 lock bit (36), /* lock before changing threads */ 3 11 2 num_stacks fixed bin, /* number of stacks in pool */ 3 12 2 freep bit (18), /* head of free thread, managed LIFO */ 3 13 2 pad fixed bin, 3 14 2 stacks (stack_0_data_init_number_of_stacks 3 15 refer (sdt.num_stacks)) like sdte; 3 16 3 17 dcl sdtep ptr; 3 18 3 19 dcl 1 sdte aligned based (sdtep), /* stack data table entry */ 3 20 2 nextp bit (18) unal, /* thread to next free entry (if free) */ 3 21 2 pad bit (18) unal, 3 22 2 astep bit (18) unal, /* ptr to ASTE for this stack seg */ 3 23 2 aptep bit (18) unal, /* ptr to APTE of process using this stack, if not free */ 3 24 2 sdw bit (72); /* SDW for this stack seg */ 3 25 3 26 /* END INCLUDE FILE ... stack_0_data.incl.pl1 */ 154 155 /* BEGIN INCLUDE FILE syserr_constants.incl.pl1 ... 11/11/80 W. Olin Sibert */ 4 2 /* 85-02-12, EJ Sharpe - Added sorting class constants, removed AIM_MESSAGE, added new action code names. */ 4 3 /* 85-04-24, G. Palter - Renamed SYSERR_UNUSED_10 to SYSERR_RING1_ERROR to reflect its actual use. */ 4 4 4 5 /* This include file has an ALM version. Keep 'em in sync! */ 4 6 4 7 dcl ( 4 8 4 9 /* The following constants define the message action codes. This indicates 4 10*how a message is to be handled. */ 4 11 4 12 SYSERR_CRASH_SYSTEM init (1), 4 13 CRASH init (1), /* Crash the system, and bleat plaintively. */ 4 14 4 15 SYSERR_TERMINATE_PROCESS init (2), 4 16 TERMINATE_PROCESS init (2), /* Terminate the process, print the message, and beep. */ 4 17 4 18 SYSERR_PRINT_WITH_ALARM init (3), 4 19 BEEP init (3), /* Beep and print the message on the console. */ 4 20 4 21 SYSERR_PRINT_ON_CONSOLE init (0), 4 22 ANNOUNCE init (0), /* Just print the message on the console. */ 4 23 4 24 SYSERR_LOG_OR_PRINT init (4), 4 25 LOG init (4), /* Log the message, or print it if it can't be logged */ 4 26 4 27 SYSERR_LOG_OR_DISCARD init (5), 4 28 JUST_LOG init (5), /* Just try to log the message, and discard it if it can't be */ 4 29 4 30 4 31 /* The following constants are added to the normal severities to indicate 4 32*different sorting classes of messages. */ 4 33 4 34 SYSERR_SYSTEM_ERROR init (00), /* indicates a standard level system error */ 4 35 SYSERR_RING1_ERROR init (10), /* indicates an error detected in ring 1 (mseg_, RCP) */ 4 36 SYSERR_COVERT_CHANNEL init (20), /* indicates covert channel audit trail message */ 4 37 SYSERR_UNSUCCESSFUL_ACCESS init (30), /* indicates access denial audit trail message */ 4 38 SYSERR_SUCCESSFUL_ACCESS init (40) /* indicates access grant audit trail message */ 4 39 ) fixed bin internal static options (constant); 4 40 4 41 /* END INCLUDE FILE syserr_constants.incl.pl1 */ 155 156 157 158 /* BEGIN MESSAGE DOCUMENTATION 159* 160* Message: 161* shutdown_file_system: from demount_pv on PVTX ERROR_MESSAGE 162* 163* S: $info 164* 165* T: System shutdown 166* 167* M: A problem was encountered in shutting down the 168* disk whose PVT index is PVTX. Most likely, other messages 169* identifying the pack, drive, and/or problem have 170* preceded this message. 171* 172* A: $note 173* If other messages have preceded this message, take 174* remedial action as necessary. Attempt emergency shutdown after 175* readying appropriate disk drives, if this is the problem. 176* 177* Message: 178* shutdown_file_system: Error deactivating. Quota may be bad. 179* 180* S: $info 181* 182* T: System shutdown 183* 184* M: The attempt to deactivate all segments in the file system by a 185* tree-walk of threaded ASTEs failed, likely due to inconsistent 186* threading in the SST. The segments will be deactivated by a 187* linear walk of the SST. Quota inconsistencies may be introduced by 188* this. These can be corrected by a quota salvage of the hierarchy. 189* 190* A: At a convenient time, run a quota salvage of the hierarchy. 191* 192* Message: 193* shutdown_file_system: NN locks set 194* 195* S: $info 196* 197* T: System shutdown 198* 199* M: Not all data base and directory locks were unlocked by 200* the system before shutdown started. During emergency shutdown, 201* this is to be expected. During normal shutdown, 202* this may be symptomatic of software problems. 203* 204* A: If this message occurs during normal shutdown, note for 205* system programming staff. 206* 207* Message: 208* shutdown complete except for devices suspended. 209* 210* S: $beep 211* 212* T: System shutdown 213* 214* M: Some disks could not be shut down due to hardware problems. 215* Messages have occurred identifying these drives and the problems. 216* All other drives have been shut down- their contents are not 217* in main memory or on the paging device. The RPV has 218* not been shut down either, so that the system will perform 219* some salvaging when it comes up. 220* 221* A: Attempt to ready those drives that are not ready. When this 222* has been done, retry ESD. If the drives have been made accessible, 223* ESD will succeed with a normal "shutdown complete" message. If 224* they cannot be made ready, the paging device (if any) is unflushed. 225* See the description of the "warning: paging device unflushed" message. 226* 227* Message: 228* shutdown complete 229* 230* S: $info 231* 232* T: System shutdown 233* 234* M: System shutdown, emergency or regular, has completed successfully. 235* The system will return to bce. If any problem arises 236* such that the system does not return to bce, or other error 237* condition, the storage system will probably not be affected. 238* If such problem arises, attempt ESD. The message "system already 239* shut down" will be printed if there is no problem. 240* When the "shutdown complete" message is issued, there is no more 241* Multics information in main memory. 242* 243* 244* END MESSAGE DOCUMENTATION */ 245 246 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0806.0 shutdown_file_system.pl1 >spec>install>1112>shutdown_file_system.pl1 152 1 07/21/88 2036.0 pvte.incl.pl1 >ldd>include>pvte.incl.pl1 153 2 04/30/87 1513.7 flagbox.incl.pl1 >ldd>include>flagbox.incl.pl1 154 3 10/25/79 0712.2 stack_0_data.incl.pl1 >ldd>include>stack_0_data.incl.pl1 155 4 05/17/85 0615.7 syserr_constants.incl.pl1 >ldd>include>syserr_constants.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. ANNOUNCE 000010 constant fixed bin(17,0) initial dcl 4-7 set ref 91* 107* 114* 141* BEEP 000003 constant fixed bin(17,0) initial dcl 4-7 set ref 119* addr builtin function dcl 62 ref 68 77 81 83 83 98 104 134 astep 1 based bit(18) level 2 packed packed unaligned dcl 3-19 set ref 82 83 83 being_demounted 4(23) based bit(1) level 2 packed packed unaligned dcl 1-26 set ref 99* 105 code 000100 automatic fixed bin(35,0) dcl 57 set ref 90* 91 106* 107 107* deactivate_for_demount$shutdown 000024 constant entry external dcl 46 ref 90 demount_pv 000026 constant entry external dcl 47 ref 106 130 device_inoperative 4(25) based bit(1) level 2 packed packed unaligned dcl 1-26 ref 99 109 drives_inop 000101 automatic bit(1) packed unaligned dcl 58 set ref 66* 109* 109 118 fgbx based structure level 1 dcl 2-24 fgbxp 000110 automatic pointer dcl 2-22 set ref 134* 135 136 flagbox$ 000050 external static fixed bin(17,0) dcl 2-21 set ref 134 freep 2 based bit(18) level 2 dcl 3-9 set ref 78* fsout_vol 000030 constant entry external dcl 48 ref 70 grab_aste$release_prewithdraw 000032 constant entry external dcl 49 ref 83 num_stacks 1 based fixed bin(17,0) level 2 dcl 3-9 ref 80 ocdcm_$drain_io 000034 constant entry external dcl 50 ref 121 143 pc$flush 000036 constant entry external dcl 51 ref 72 120 139 pmut$bce 000040 constant entry external dcl 52 ref 124 146 ptr builtin function dcl 63 ref 83 83 pvt$array 000046 external static fixed bin(17,0) dcl 1-18 set ref 68 pvt$n_entries 000016 external static fixed bin(17,0) dcl 42 ref 97 103 pvt$root_pvtx 000020 external static fixed bin(17,0) dcl 43 set ref 70* pvt$shutdown_state 000022 external static fixed bin(17,0) dcl 44 set ref 113* 116* pvt_array based structure array level 1 dcl 1-24 set ref 98 104 pvt_arrayp 000104 automatic pointer dcl 1-21 set ref 68* 98 104 130 pvte based structure level 1 dcl 1-26 pvtep 000106 automatic pointer dcl 1-22 set ref 98* 99 99 99 99 104* 105 105 109 pvtx 000102 automatic fixed bin(17,0) dcl 59 set ref 97* 98* 103* 104 106* 107* rpv 4(26) based bit(1) level 2 packed packed unaligned dcl 1-26 ref 105 rtb 43 based structure level 2 dcl 2-24 sdt based structure level 1 dcl 3-9 sdte based structure level 1 dcl 3-19 set ref 84* sdtep 000114 automatic pointer dcl 3-17 set ref 81* 82 83 83 84 sdtp 000112 automatic pointer dcl 3-7 set ref 77* 78 80 81 shut 43(02) based bit(1) level 3 packed packed unaligned dcl 2-24 set ref 136* ssenb 43 based bit(1) level 3 packed packed unaligned dcl 2-24 set ref 135* sst$ 000014 external static fixed bin(17,0) dcl 41 set ref 83 83 sst$root_pvtx 000012 external static fixed bin(17,0) dcl 40 set ref 130 130* sst$total_locks_set 000010 external static fixed bin(17,0) dcl 39 set ref 112 114* stack_0_data$ 000052 external static fixed bin(17,0) dcl 3-5 set ref 77 stack_0_x 000103 automatic fixed bin(17,0) dcl 60 set ref 80* 81* stacks 4 based structure array level 2 dcl 3-9 set ref 81 storage_system 4(19) based bit(1) level 2 packed packed unaligned dcl 1-26 ref 99 syserr 000042 constant entry external dcl 53 ref 91 114 119 141 syserr$error_code 000044 constant entry external dcl 54 ref 107 unspec builtin function dcl 64 set ref 84* used 4(18) based bit(1) level 2 in structure "pvte" packed packed unaligned dcl 1-26 in procedure "shutdown_file_system" ref 99 used 4(18) based bit(1) array level 2 in structure "pvt_array" packed packed unaligned dcl 1-24 in procedure "shutdown_file_system" set ref 130 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CRASH internal static fixed bin(17,0) initial dcl 4-7 FLAGBOX_SENTINEL internal static char(32) initial packed unaligned dcl 2-51 JUST_LOG internal static fixed bin(17,0) initial dcl 4-7 LOG internal static fixed bin(17,0) initial dcl 4-7 SYSERR_COVERT_CHANNEL internal static fixed bin(17,0) initial dcl 4-7 SYSERR_CRASH_SYSTEM internal static fixed bin(17,0) initial dcl 4-7 SYSERR_LOG_OR_DISCARD internal static fixed bin(17,0) initial dcl 4-7 SYSERR_LOG_OR_PRINT internal static fixed bin(17,0) initial dcl 4-7 SYSERR_PRINT_ON_CONSOLE internal static fixed bin(17,0) initial dcl 4-7 SYSERR_PRINT_WITH_ALARM internal static fixed bin(17,0) initial dcl 4-7 SYSERR_RING1_ERROR internal static fixed bin(17,0) initial dcl 4-7 SYSERR_SUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 4-7 SYSERR_SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 4-7 SYSERR_TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 4-7 SYSERR_UNSUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 4-7 TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 4-7 VOLMAP_ASYNC_IDLE internal static fixed bin(17,0) initial dcl 1-113 VOLMAP_ASYNC_READ internal static fixed bin(17,0) initial dcl 1-113 VOLMAP_ASYNC_WRITE internal static fixed bin(17,0) initial dcl 1-113 pvt$max_n_entries external static fixed bin(17,0) dcl 1-19 stack_0_data_init_number_of_stacks automatic fixed bin(17,0) dcl 3-6 NAME DECLARED BY EXPLICIT CONTEXT. shutdown_file_system 000076 constant entry external dcl 13 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 746 1022 532 756 Length 1310 532 54 251 214 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME shutdown_file_system 136 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME shutdown_file_system 000100 code shutdown_file_system 000101 drives_inop shutdown_file_system 000102 pvtx shutdown_file_system 000103 stack_0_x shutdown_file_system 000104 pvt_arrayp shutdown_file_system 000106 pvtep shutdown_file_system 000110 fgbxp shutdown_file_system 000112 sdtp shutdown_file_system 000114 sdtep shutdown_file_system THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. deactivate_for_demount$shutdown demount_pv fsout_vol grab_aste$release_prewithdraw ocdcm_$drain_io pc$flush pmut$bce syserr syserr$error_code THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. flagbox$ pvt$array pvt$n_entries pvt$root_pvtx pvt$shutdown_state sst$ sst$root_pvtx sst$total_locks_set stack_0_data$ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 13 000075 66 000103 68 000104 70 000106 72 000117 77 000124 78 000127 80 000130 81 000137 82 000142 83 000145 84 000161 86 000165 90 000167 91 000176 97 000220 98 000231 99 000235 102 000251 103 000253 104 000263 105 000267 106 000275 107 000306 109 000337 110 000344 112 000346 113 000351 114 000353 115 000375 116 000376 118 000400 119 000402 120 000422 121 000427 124 000434 125 000441 130 000442 134 000462 135 000465 136 000467 139 000471 141 000475 143 000515 146 000522 147 000527 246 000530 ----------------------------------------------------------- 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