COMPILATION LISTING OF SEGMENT reset_soos Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 02/16/88 1320.2 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1974 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* * Copyright (c) 1972 by Massachusetts Institute of * 11* * Technology and Honeywell Information Systems, Inc. * 12* * * 13* *********************************************************** */ 14 15 16 17 18 19 /****^ HISTORY COMMENTS: 20* 1) change(88-01-15,Lippard), approve(87-08-24,MCR7760), 21* audit(88-01-28,Fawcett), install(88-02-16,MR12.2-1022): 22* Make reset_soos work on segments. 23* END HISTORY COMMENTS */ 24 25 26 reset_soos: proc; 27 28 /* procedure to reset the security-out-of-service-switch of a directory 29* branch if the Access Isolation attributes are consistent. */ 30 31 /* first version coded 09/29/74 J.C.Whitmore */ 32 33 dcl aptr ptr, 34 alen fixed bin, 35 arg char (alen) based (aptr), 36 ec fixed bin (35), 37 dir char (168), 38 ent char (32), 39 d_priv fixed bin (35) init (1), 40 os_priv fixed bin (35) init (1), 41 seg_priv fixed bin (35) init (1); 42 43 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)), 44 com_err_ entry options (variable), 45 expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)), 46 pathname_ entry (char (*), char (*)) returns (char (168)), 47 system_privilege_$check_mode_reset entry (char (*), char (*), fixed bin (35)), 48 system_privilege_$dir_priv_on entry (fixed bin (35)), 49 system_privilege_$dir_priv_off entry (fixed bin (35)), 50 system_privilege_$seg_priv_on entry (fixed bin (35)), 51 system_privilege_$seg_priv_off entry (fixed bin (35)), 52 system_privilege_$soos_priv_on entry (fixed bin (35)), 53 system_privilege_$soos_priv_off entry (fixed bin (35)); 54 55 dcl (linkage_error, cleanup) condition; 56 57 58 59 call cu_$arg_ptr (1, aptr, alen, ec); /* only one argument is expected */ 60 if ec ^= 0 then do; 61 62 call com_err_ (ec, "reset_soos"); 63 return; 64 65 end; 66 67 if arg = "-wd" | arg = "-wdir" then alen = 0; 68 69 call expand_pathname_ (arg, dir, ent, ec); 70 if ec ^= 0 then do; 71 call com_err_ (ec, "reset_soos", "^a", arg); 72 return; 73 end; 74 75 on linkage_error go to abort; /* do something intelligent if user doesn't have access */ 76 77 on cleanup go to clean_up; /* cleanup after a "quit" or .... */ 78 79 call system_privilege_$dir_priv_on (d_priv); /* be sure we have correct privileges */ 80 call system_privilege_$seg_priv_on (seg_priv); 81 call system_privilege_$soos_priv_on (os_priv); 82 83 call system_privilege_$check_mode_reset (dir, ent, ec); /* This does the work. */ 84 85 if ec ^= 0 then 86 call com_err_ (ec, "reset_soos", "^a", pathname_ (dir, ent)); 87 88 clean_up: if d_priv = 0 then call system_privilege_$dir_priv_off (ec); /* turn off if we set it */ 89 if seg_priv = 0 then call system_privilege_$seg_priv_off (ec); 90 if os_priv = 0 then call system_privilege_$soos_priv_off (ec); 91 92 93 return; 94 95 abort: call com_err_ (0, "reset_soos", "This command requires privileged access not given to this user."); 96 /* don't worry about reseting privileges because we */ 97 /* got here because user didn't have access to do so */ 98 return; 99 100 end reset_soos; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/16/88 1247.0 reset_soos.pl1 >special_ldd>install>MR12.2-1022>reset_soos.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. alen 000102 automatic fixed bin(17,0) dcl 33 set ref 59* 67 67 67* 69 69 71 71 aptr 000100 automatic pointer dcl 33 set ref 59* 67 67 69 71 arg based char unaligned dcl 33 set ref 67 67 69* 71* cleanup 000200 stack reference condition dcl 55 ref 77 com_err_ 000012 constant entry external dcl 43 ref 62 71 85 95 cu_$arg_ptr 000010 constant entry external dcl 43 ref 59 d_priv 000166 automatic fixed bin(35,0) initial dcl 33 set ref 33* 79* 88 dir 000104 automatic char(168) unaligned dcl 33 set ref 69* 83* 85* 85* ec 000103 automatic fixed bin(35,0) dcl 33 set ref 59* 60 62* 69* 70 71* 83* 85 85* 88* 89* 90* ent 000156 automatic char(32) unaligned dcl 33 set ref 69* 83* 85* 85* expand_pathname_ 000014 constant entry external dcl 43 ref 69 linkage_error 000172 stack reference condition dcl 55 ref 75 os_priv 000167 automatic fixed bin(35,0) initial dcl 33 set ref 33* 81* 90 pathname_ 000016 constant entry external dcl 43 ref 85 85 seg_priv 000170 automatic fixed bin(35,0) initial dcl 33 set ref 33* 80* 89 system_privilege_$check_mode_reset 000020 constant entry external dcl 43 ref 83 system_privilege_$dir_priv_off 000024 constant entry external dcl 43 ref 88 system_privilege_$dir_priv_on 000022 constant entry external dcl 43 ref 79 system_privilege_$seg_priv_off 000030 constant entry external dcl 43 ref 89 system_privilege_$seg_priv_on 000026 constant entry external dcl 43 ref 80 system_privilege_$soos_priv_off 000034 constant entry external dcl 43 ref 90 system_privilege_$soos_priv_on 000032 constant entry external dcl 43 ref 81 NAMES DECLARED BY EXPLICIT CONTEXT. abort 000442 constant label dcl 95 ref 75 clean_up 000406 constant label dcl 88 ref 77 reset_soos 000046 constant entry external dcl 26 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 654 712 474 664 Length 1102 474 36 154 160 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME reset_soos 216 external procedure is an external procedure. on unit on line 75 64 on unit on unit on line 77 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME reset_soos 000100 aptr reset_soos 000102 alen reset_soos 000103 ec reset_soos 000104 dir reset_soos 000156 ent reset_soos 000166 d_priv reset_soos 000167 os_priv reset_soos 000170 seg_priv reset_soos THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac tra_ext_1 enable_op ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_ptr expand_pathname_ pathname_ system_privilege_$check_mode_reset system_privilege_$dir_priv_off system_privilege_$dir_priv_on system_privilege_$seg_priv_off system_privilege_$seg_priv_on system_privilege_$soos_priv_off system_privilege_$soos_priv_on NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 26 000045 33 000053 59 000057 60 000075 62 000077 63 000120 67 000121 69 000134 70 000164 71 000166 72 000224 75 000225 77 000244 79 000263 80 000272 81 000301 83 000310 85 000331 88 000406 89 000417 90 000430 93 000441 95 000442 98 000473 ----------------------------------------------------------- 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