COMPILATION LISTING OF SEGMENT sc_shutdown_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1115.99_Tue_mdt Options: optimize list 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* *********************************************************** */ 8 9 /* sc_shutdown_: procedure to shut down AS, SC; called from system_control_ */ 10 11 /* format: style2,idind30 */ 12 13 /**** This is a separate procedure so that the admin environment 14* can be completely unwound before it is called. */ 15 16 /**** Written 1984-11-01 BIM */ 17 18 19 /****^ HISTORY COMMENTS: 20* 1) change(86-08-01,Swenson), approve(87-05-25,MCR7680), 21* audit(87-02-07,GDixon), install(87-08-04,MR12.1-1055): 22* Avoid calling hphcs_$shutdown when running in system control test mode. 23* 2) change(87-02-07,GDixon), approve(87-05-25,MCR7680), 24* audit(87-05-06,Parisek), install(87-08-04,MR12.1-1055): 25* Repair comments, clarify code. 26* 3) change(87-02-07,GDixon), approve(87-05-25,MCR7678), 27* audit(87-05-06,Parisek), install(87-08-04,MR12.1-1055): 28* Use timer_manager_constants include file. 29* END HISTORY COMMENTS */ 30 31 32 sc_shutdown_: 33 procedure; 34 35 declare as_$shutdown entry; 36 declare hphcs_$shutdown entry; 37 declare timer_manager_$sleep entry (fixed binary (71), bit (2)); 38 39 if sc_stat_$Multics 40 then do; 41 sc_stat_$shutdown_typed = "1"b; /* publish our intention */ 42 call as_$shutdown; /* turn off answering service. */ 43 call timer_manager_$sleep (2, RELATIVE_SECONDS); 44 /* Let messages get typed */ 45 end; 46 if ^sc_stat_$test_mode 47 then call hphcs_$shutdown; /* Shut down file system and traffic control. */ 48 return; 49 50 /* BEGIN: sc_stat_.incl.pl1 * * * * * */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(87-02-04,GDixon), approve(87-05-25,MCR7690), 1 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 1 7* Add sc_stat_$vchn_requires_accept in support of DSA virtual channels. 1 8* 2) change(87-02-04,GDixon), approve(87-05-25,MCR7680), 1 9* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 1 10* Reorganized by type of data to improve readability. 1 11* END HISTORY COMMENTS */ 1 12 1 13 1 14 /* ACCESS NAMES */ 1 15 dcl ( 1 16 sc_stat_$exec_access_name, /* check MC access in an exec request */ 1 17 sc_stat_$unidentified_access_name /* check access if no one is logged in. */ 1 18 ) char(32) ext static; 1 19 1 20 /* PATHNAMES */ 1 21 dcl ( 1 22 sc_stat_$info_dir, /* admin info segs directory */ 1 23 sc_stat_$log_dir, /* as log segs directory */ 1 24 sc_stat_$mc_acs_dir, /* message coordinator ACS segments (.mcacs) dir */ 1 25 sc_stat_$sysdir /* system control directory */ 1 26 ) char(168) ext static; 1 27 1 28 /* OTHER CHAR STRINGS */ 1 29 dcl ( 1 30 sc_stat_$master_channel /* Master TTY channel. */ 1 31 ) char(6) aligned ext static; 1 32 1 33 /* LABELS */ 1 34 dcl ( 1 35 sc_stat_$admin_listener_exit_label, /* GO here to exit admin mode. Set to */ 1 36 /* ssu_$null_label unless */ 1 37 /* admin_listener is active. */ 1 38 sc_stat_$master_abort_label, /* GO here after fault that is not */ 1 39 /* attributable to a particular */ 1 40 /* command. */ 1 41 sc_stat_$system_shutdown_label /* GO here to shut down system */ 1 42 ) label variable ext static; 1 43 1 44 /* POINTERS TO */ 1 45 dcl ( 1 46 sc_stat_$admin_log_iocb, /* IOCB for admin log */ 1 47 sc_stat_$admin_log_write_ptr, /* DATA for log_write_ calls on the admin log */ 1 48 sc_stat_$admin_sci_ptr, /* DATA ssu_ for terminal currently executing */ 1 49 sc_stat_$as_log_write_ptr, /* DATA for log_write_ calls on as log, used */ 1 50 /* by sys_log_. */ 1 51 sc_stat_$initzer_ttyp, /* ENT mc_ate for initializer terminal */ 1 52 sc_stat_$master_iocb, /* IOCB for "master_i/o" */ 1 53 sc_stat_$master_sci_ptr, /* DATA ssu_ (permanent) for system control */ 1 54 sc_stat_$mc_ansp, /* HEAD of mc_anstbl */ 1 55 sc_stat_$mc_iocb, /* IOCB ptr for "mc_i/o" */ 1 56 sc_stat_$sv1_iocb, /* IOCB ptr for "severity1" */ 1 57 sc_stat_$sv2_iocb, /* IOCB ptr for "severity2" */ 1 58 sc_stat_$sv3_iocb /* IOCB ptr for "severity3" */ 1 59 ) ptr ext static; 1 60 1 61 /* SWITCHES */ 1 62 dcl ( 1 63 sc_stat_$Go, /* TRUE after answering service is listening*/ 1 64 sc_stat_$Go_typed, /* TRUE immediately after 'go' is typed */ 1 65 sc_stat_$Multics, /* TRUE after answering service started */ 1 66 sc_stat_$Multics_typed, /* TRUE immediately after 'mult' is typed */ 1 67 sc_stat_$Star_typed, /* TRUE if 'mult' and 'go' came from 'star' */ 1 68 sc_stat_$admin_listener_switch, /* TRUE if in the admin listener */ 1 69 sc_stat_$did_part1, /* TRUE if part 1 of system startup ec done */ 1 70 sc_stat_$did_part2, /* TRUE if part 2 of system startup ec done */ 1 71 sc_stat_$did_part3, /* TRUE if part 3 of system startup ec done */ 1 72 sc_stat_$mc_is_on, /* TRUE if message coordinator running */ 1 73 sc_stat_$no_operator_login, /* TRUE if operator login not required, or */ 1 74 /* if PNT not yet available. */ 1 75 sc_stat_$shutdown_typed, /* TRUE if 'shutdown' command in progress. */ 1 76 sc_stat_$test_mode, /* TRUE if in test environment */ 1 77 sc_stat_$vchn_requires_accept /* TRUE if vchn may only be used if accepted*/ 1 78 /* by operator signed on system console*/ 1 79 ) bit(1) aligned ext static; 1 80 1 81 1 82 /* END OF: sc_stat_.incl.pl1 * * * * * */ 50 51 /* BEGIN INCLUDE FILE timer_manager_constants.incl.pl1 */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(85-03-05,Sibert), approve(87-05-25,MCR7678), 2 5* audit(87-04-02,GDixon), install(87-08-04,MR12.1-1056): 2 6* Initially written. 2 7* END HISTORY COMMENTS */ 2 8 2 9 /* Values for the flags arguments in timer_manager_ calls */ 2 10 2 11 dcl ABSOLUTE_MICROSECONDS bit (2) int static options (constant) init ("00"b); 2 12 dcl ABSOLUTE_SECONDS bit (2) int static options (constant) init ("01"b); 2 13 dcl RELATIVE_MICROSECONDS bit (2) int static options (constant) init ("10"b); 2 14 dcl RELATIVE_SECONDS bit (2) int static options (constant) init ("11"b); 2 15 2 16 /* END INCLUDE FILE timer_manager_constants.incl.pl1 */ 51 52 53 end sc_shutdown_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1116.0 sc_shutdown_.pl1 >udd>sm>ds>w>ml>sc_shutdown_.pl1 50 1 08/06/87 1013.5 sc_stat_.incl.pl1 >ldd>incl>sc_stat_.incl.pl1 51 2 08/06/87 1013.5 timer_manager_constants.incl.pl1 >ldd>incl>timer_manager_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. RELATIVE_SECONDS 000000 constant bit(2) initial packed unaligned dcl 2-14 set ref 43* as_$shutdown 000010 constant entry external dcl 35 ref 42 hphcs_$shutdown 000012 constant entry external dcl 36 ref 46 sc_stat_$Multics 000016 external static bit(1) dcl 1-62 ref 39 sc_stat_$shutdown_typed 000020 external static bit(1) dcl 1-62 set ref 41* sc_stat_$test_mode 000022 external static bit(1) dcl 1-62 ref 46 timer_manager_$sleep 000014 constant entry external dcl 37 ref 43 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABSOLUTE_MICROSECONDS internal static bit(2) initial packed unaligned dcl 2-11 ABSOLUTE_SECONDS internal static bit(2) initial packed unaligned dcl 2-12 RELATIVE_MICROSECONDS internal static bit(2) initial packed unaligned dcl 2-13 sc_stat_$Go external static bit(1) dcl 1-62 sc_stat_$Go_typed external static bit(1) dcl 1-62 sc_stat_$Multics_typed external static bit(1) dcl 1-62 sc_stat_$Star_typed external static bit(1) dcl 1-62 sc_stat_$admin_listener_exit_label external static label variable dcl 1-34 sc_stat_$admin_listener_switch external static bit(1) dcl 1-62 sc_stat_$admin_log_iocb external static pointer dcl 1-45 sc_stat_$admin_log_write_ptr external static pointer dcl 1-45 sc_stat_$admin_sci_ptr external static pointer dcl 1-45 sc_stat_$as_log_write_ptr external static pointer dcl 1-45 sc_stat_$did_part1 external static bit(1) dcl 1-62 sc_stat_$did_part2 external static bit(1) dcl 1-62 sc_stat_$did_part3 external static bit(1) dcl 1-62 sc_stat_$exec_access_name external static char(32) packed unaligned dcl 1-15 sc_stat_$info_dir external static char(168) packed unaligned dcl 1-21 sc_stat_$initzer_ttyp external static pointer dcl 1-45 sc_stat_$log_dir external static char(168) packed unaligned dcl 1-21 sc_stat_$master_abort_label external static label variable dcl 1-34 sc_stat_$master_channel external static char(6) dcl 1-29 sc_stat_$master_iocb external static pointer dcl 1-45 sc_stat_$master_sci_ptr external static pointer dcl 1-45 sc_stat_$mc_acs_dir external static char(168) packed unaligned dcl 1-21 sc_stat_$mc_ansp external static pointer dcl 1-45 sc_stat_$mc_iocb external static pointer dcl 1-45 sc_stat_$mc_is_on external static bit(1) dcl 1-62 sc_stat_$no_operator_login external static bit(1) dcl 1-62 sc_stat_$sv1_iocb external static pointer dcl 1-45 sc_stat_$sv2_iocb external static pointer dcl 1-45 sc_stat_$sv3_iocb external static pointer dcl 1-45 sc_stat_$sysdir external static char(168) packed unaligned dcl 1-21 sc_stat_$system_shutdown_label external static label variable dcl 1-34 sc_stat_$unidentified_access_name external static char(32) packed unaligned dcl 1-15 sc_stat_$vchn_requires_accept external static bit(1) dcl 1-62 NAME DECLARED BY EXPLICIT CONTEXT. sc_shutdown_ 000005 constant entry external dcl 32 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 144 170 45 154 Length 372 45 24 166 77 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME sc_shutdown_ 72 external procedure is an external procedure. THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. as_$shutdown hphcs_$shutdown timer_manager_$sleep THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. sc_stat_$Multics sc_stat_$shutdown_typed sc_stat_$test_mode CONSTANTS 000000 aa 600000000000 000002 aa 000000000000 000003 aa 000000000002 BEGIN PROCEDURE sc_shutdown_ ENTRY TO sc_shutdown_ STATEMENT 1 ON LINE 32 sc_shutdown_: procedure; 000004 da 000073200000 000005 aa 000120 6270 00 eax7 80 000006 aa 7 00034 3521 20 epp2 pr7|28,* 000007 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000010 aa 000000000000 000011 aa 000000000000 STATEMENT 1 ON LINE 39 if sc_stat_$Multics then do; 000012 la 4 00016 2351 20 lda pr4|14,* sc_stat_$Multics 000013 aa 000022 6000 04 tze 18,ic 000035 STATEMENT 1 ON LINE 41 sc_stat_$shutdown_typed = "1"b; 000014 aa 400000 2350 03 lda 131072,du 000015 la 4 00020 7551 20 sta pr4|16,* sc_stat_$shutdown_typed STATEMENT 1 ON LINE 42 call as_$shutdown; 000016 aa 6 00056 6211 00 eax1 pr6|46 000017 aa 000000 4310 07 fld 0,dl 000020 la 4 00010 3521 20 epp2 pr4|8,* as_$shutdown 000021 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 43 call timer_manager_$sleep (2, RELATIVE_SECONDS); 000022 aa 777760 2370 04 ldaq -16,ic 000002 = 000000000000 000000000002 000023 aa 6 00100 7571 00 staq pr6|64 000024 aa 6 00100 3521 00 epp2 pr6|64 000025 aa 6 00104 2521 00 spri2 pr6|68 000026 aa 777752 3520 04 epp2 -22,ic 000000 = 600000000000 000027 aa 6 00106 2521 00 spri2 pr6|70 000030 aa 6 00102 6211 00 eax1 pr6|66 000031 aa 010000 4310 07 fld 4096,dl 000032 aa 6 00044 3701 20 epp4 pr6|36,* 000033 la 4 00014 3521 20 epp2 pr4|12,* timer_manager_$sleep 000034 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 45 end; STATEMENT 1 ON LINE 46 if ^sc_stat_$test_mode then call hphcs_$shutdown; 000035 aa 6 00044 3701 20 epp4 pr6|36,* 000036 la 4 00022 2351 20 lda pr4|18,* sc_stat_$test_mode 000037 aa 000005 6010 04 tnz 5,ic 000044 000040 aa 6 00056 6211 00 eax1 pr6|46 000041 aa 000000 4310 07 fld 0,dl 000042 la 4 00012 3521 20 epp2 pr4|10,* hphcs_$shutdown 000043 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 48 return; 000044 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 53 end sc_shutdown_; END PROCEDURE sc_shutdown_ ----------------------------------------------------------- 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