COMPILATION LISTING OF SEGMENT priv_move_quota_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1733.2 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 priv_move_quota_: proc (dirname, ename, qvalue, code); 12 13 /* privileged quota moving subroutine. SCV 5/75 */ 14 15 dcl hcs_$set_ips_mask entry (bit (36)aligned, bit (36) aligned); 16 dcl system_privilege_$dir_priv_on entry (fixed bin (35)); 17 dcl system_privilege_$dir_priv_off entry (fixed bin (35)); 18 dcl hcs_$quota_move entry (char (*), char (*), fixed bin, fixed bin (35)); 19 dcl hcs_$dir_quota_move entry (char (*), char (*), fixed bin, fixed bin (35)); 20 dcl error_table_$badcall external fixed bin (35); 21 dcl error_table_$action_not_performed external fixed bin (35); 22 23 dcl any_other condition; 24 25 dcl (dirname, ename) char (*); 26 dcl qvalue fixed bin (17); 27 dcl code fixed bin (35); 28 dcl action fixed bin (35); 29 dcl old_mask bit (36) aligned init ((36)"0"b); 30 dcl junk bit (36) aligned; 31 dcl dir_sw bit (1) init ("0"b); 32 33 dcl null builtin; 34 35 /* */ 36 37 MOVE: code = error_table_$action_not_performed; /* initialize the code in case of condition */ 38 39 action = 1; /* used to indicate that privileges are on */ 40 41 on any_other call reset_mask; /* make sure we turn them off is set */ 42 43 call hcs_$set_ips_mask ((36)"0"b, old_mask); 44 45 call system_privilege_$dir_priv_on (action); 46 if dir_sw then call hcs_$dir_quota_move (dirname, ename, qvalue, code); 47 else call hcs_$quota_move (dirname, ename, qvalue, code); 48 if action = 0 then call system_privilege_$dir_priv_off (action); 49 action = 1; 50 51 call hcs_$set_ips_mask (old_mask, junk); 52 old_mask = "0"b; 53 54 RETURN: return; 55 56 dir: entry (dirname, ename, qvalue, code); 57 58 dir_sw = "1"b; 59 go to MOVE; 60 61 /* */ 62 63 reset_mask: proc ; 64 65 dcl 1 info aligned, 66 2 mc_ptr ptr, 67 2 version fixed bin, 68 2 cond_name char (32) varying, 69 2 info_pad (15) bit (36); 70 71 dcl find_condition_info_ entry (ptr, ptr, fixed bin (35)), 72 continue_to_signal_ entry (fixed bin (35)); 73 74 dcl ec fixed bin (35); 75 76 version = 1; /* tell what version the structure is */ 77 78 call find_condition_info_ (null, addr (info), ec); /* see what happened */ 79 80 if action = 0 then 81 call system_privilege_$dir_priv_off (action); /* reset what we did */ 82 action = 1; /* and cancel future effects */ 83 84 if old_mask then do; /* see if the ips mask was set */ 85 86 call hcs_$set_ips_mask (old_mask, junk); /* restore the mask */ 87 old_mask = (36)"0"b; /* reset the value */ 88 end; 89 90 if ec = 0 then /* if all was well, and should be, look more */ 91 if cond_name = "linkage_error" then do; /* user faulted on system_privilege_ gate */ 92 93 code = error_table_$badcall; 94 go to RETURN; /* non local go to for a finish */ 95 96 end; 97 98 call continue_to_signal_ (ec); /* let someone else handle the condition */ 99 100 return; 101 102 end reset_mask; 103 end priv_move_quota_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1519.0 priv_move_quota_.pl1 >dumps>old>recomp>priv_move_quota_.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. action 000106 automatic fixed bin(35,0) dcl 28 set ref 39* 45* 48 48* 49* 80 80* 82* any_other 000100 stack reference condition dcl 23 ref 41 code parameter fixed bin(35,0) dcl 27 set ref 11 37* 46* 47* 56 93* cond_name 3 000106 automatic varying char(32) level 2 dcl 65 set ref 90 continue_to_signal_ 000030 constant entry external dcl 71 ref 98 dir_sw 000111 automatic bit(1) initial unaligned dcl 31 set ref 31* 46 58* dirname parameter char unaligned dcl 25 set ref 11 46* 47* 56 ec 000141 automatic fixed bin(35,0) dcl 74 set ref 78* 90 98* ename parameter char unaligned dcl 25 set ref 11 46* 47* 56 error_table_$action_not_performed 000024 external static fixed bin(35,0) dcl 21 ref 37 error_table_$badcall 000022 external static fixed bin(35,0) dcl 20 ref 93 find_condition_info_ 000026 constant entry external dcl 71 ref 78 hcs_$dir_quota_move 000020 constant entry external dcl 19 ref 46 hcs_$quota_move 000016 constant entry external dcl 18 ref 47 hcs_$set_ips_mask 000010 constant entry external dcl 15 ref 43 51 86 info 000106 automatic structure level 1 dcl 65 set ref 78 78 junk 000110 automatic bit(36) dcl 30 set ref 51* 86* null builtin function dcl 33 ref 78 78 old_mask 000107 automatic bit(36) initial dcl 29 set ref 29* 43* 51* 52* 84 86* 87* qvalue parameter fixed bin(17,0) dcl 26 set ref 11 46* 47* 56 system_privilege_$dir_priv_off 000014 constant entry external dcl 17 ref 48 80 system_privilege_$dir_priv_on 000012 constant entry external dcl 16 ref 45 version 2 000106 automatic fixed bin(17,0) level 2 dcl 65 set ref 76* NAMES DECLARED BY EXPLICIT CONTEXT. MOVE 000050 constant label dcl 37 set ref 59 RETURN 000224 constant label dcl 54 ref 94 dir 000227 constant entry external dcl 56 priv_move_quota_ 000027 constant entry external dcl 11 reset_mask 000253 constant entry internal dcl 63 ref 41 NAME DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 78 78 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 530 562 355 540 Length 750 355 32 151 153 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME priv_move_quota_ 102 external procedure is an external procedure. on unit on line 41 110 on unit reset_mask internal procedure shares stack frame of on unit on line 41. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME on unit on line 41 000106 info reset_mask 000141 ec reset_mask priv_move_quota_ 000106 action priv_move_quota_ 000107 old_mask priv_move_quota_ 000110 junk priv_move_quota_ 000111 dir_sw priv_move_quota_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return tra_ext enable ext_entry_desc int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. continue_to_signal_ find_condition_info_ hcs_$dir_quota_move hcs_$quota_move hcs_$set_ips_mask system_privilege_$dir_priv_off system_privilege_$dir_priv_on THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$action_not_performed error_table_$badcall LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 29 000016 31 000017 11 000022 37 000050 39 000054 41 000056 43 000074 45 000107 46 000116 47 000150 48 000177 49 000210 51 000212 52 000223 54 000224 56 000225 58 000250 59 000252 63 000253 76 000254 78 000256 80 000275 82 000307 84 000312 86 000314 87 000325 90 000327 93 000336 94 000342 98 000345 100 000354 ----------------------------------------------------------- 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