COMPILATION LISTING OF SEGMENT change_kst_attributes Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1732.7 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 change_kst_attributes: 12 cka: proc; 13 14 /* 15* 16* Written 03/31/76 by R. Bratt 17* 18* This procedure allows users to easily call hardcore to set attributes 19* in their ksts. It attempts to use hphcs_$set_kst_attributes first. 20* If the caller lacks hphcs_ access then phcs_$set_kst_attributes is called. 21* 22**/ 23 24 dcl ap ptr, 25 al fixed bin, 26 i fixed bin (17), 27 terminate bit (1) aligned, 28 value bit (1) aligned, 29 segno fixed bin (17), 30 segptr ptr, 31 args fixed bin, 32 arg char (al) based (ap), 33 dname char (168), 34 ename char (32), 35 code fixed bin (35); 36 dcl linkage_error condition; 37 dcl error_table_$badopt ext fixed bin (35); 38 dcl 1 ka aligned like kst_attributes; 39 dcl cu_$arg_count entry returns (fixed bin), 40 cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)), 41 (ioa_, com_err_) entry options (variable), 42 cv_oct_check_ entry (char (*), fixed bin (35)) returns (fixed bin), 43 expand_path_ entry (ptr, fixed bin, ptr, ptr, fixed bin (35)), 44 (hcs_$initiate, phcs_$initiate) entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)), 45 hcs_$terminate_noname entry (ptr, fixed bin (35)), 46 (phcs_$set_kst_attributes, hphcs_$set_kst_attributes) entry (fixed bin (17), ptr, fixed bin (35)); 47 /* */ 48 49 i = 2; 50 terminate = "0"b; 51 call cu_$arg_ptr (1, ap, al, code); 52 if code ^= 0 53 then do; 54 complain: call ioa_ ("USAGE: change_kst_attributes name|segno "); 55 return; 56 end; 57 segno = cv_oct_check_ (arg, code); 58 if code ^= 0 59 then do; 60 if arg = "-name" | arg = "-nm" 61 then do; 62 i = 3; 63 call cu_$arg_ptr (2, ap, al, code); 64 if code ^= 0 then go to complain; 65 end; 66 call expand_path_ (ap, al, addr (dname), addr (ename), code); 67 if code ^= 0 then call abort (code, ""); 68 call hcs_$initiate (dname, ename, "", 0, 1, segptr, code); 69 if segptr = null () 70 then do; 71 call phcs_$initiate (dname, ename, "", 0, 1, segptr, code); 72 if segptr = null () then call abort (code, ""); 73 end; 74 else terminate = (code ^= 0); 75 segno = binary (baseno (segptr), 18); 76 end; 77 unspec (ka) = "0"b; 78 args = cu_$arg_count (); 79 do i = i to args; 80 call cu_$arg_ptr (i, ap, al, (0)); 81 if substr (arg, 1, 1) = "^" 82 then do; 83 value = "0"b; 84 ap = addr (substr (arg, 2)); 85 al = al -1; 86 end; 87 else value = "1"b; 88 if arg = "tpd" 89 then do; 90 ka.set.tpd = "1"b; 91 ka.value.tpd = value; 92 end; 93 else if arg = "tms" 94 then do; 95 ka.set.tms = "1"b; 96 ka.value.tms = value; 97 end; 98 else if arg = "tus" 99 then do; 100 ka.set.tus = "1"b; 101 ka.value.tus = value; 102 end; 103 else if arg = "allow_deactivate" 104 then do; 105 ka.set.explicit_deactivate_ok = "1"b; 106 ka.value.explicit_deactivate_ok = value; 107 end; 108 else if arg = "allow_write" 109 then do; 110 ka.set.allow_write = "1"b; 111 ka.value.allow_write = value; 112 end; 113 else if arg = "audit" 114 then do; 115 ka.set.audit = "1"b; 116 ka.value.audit = value; 117 end; 118 else call abort (error_table_$badopt, arg); 119 end; 120 on linkage_error 121 begin; 122 revert linkage_error; 123 call phcs_$set_kst_attributes (segno, addr (ka), code); 124 go to check; 125 end; 126 call hphcs_$set_kst_attributes (segno, addr (ka), code); 127 check: if terminate then call hcs_$terminate_noname (segptr, (0)); 128 if code ^= 0 then call abort (code, ""); 129 return; 130 131 abort: proc (code, msg); 132 dcl code fixed bin (35), 133 msg char (*); 134 call com_err_ (code, "change_kst_attributes", msg); 135 go to return_to_caller; 136 end abort; 137 138 return_to_caller: 139 return; 140 141 /* */ 142 1 1 /* BEGIN INCLUDE FILE kst_attributes.incl.pl1 WRITTEN 03/26/76 by R. Bratt */ 1 2 1 3 dcl kstap ptr; 1 4 1 5 dcl 1 kst_attributes aligned based (kstap), 1 6 2 set unaligned, /* SPECIFIES WHICH ATTRIBUTES TO SET */ 1 7 3 (allow_write, 1 8 tms, 1 9 tus, 1 10 tpd, 1 11 audit, 1 12 explicit_deactivate_ok) bit (1), 1 13 3 pad bit (39), 1 14 2 value unaligned, /* SPECIFIES THE VALUE OF THE ATTRIBUTES TO BE SET */ 1 15 3 (allow_write, /* allow write permission in sdw */ 1 16 tms, /* don't update dtm */ 1 17 tus, /* don't update dtu */ 1 18 tpd, /* don't put on PD */ 1 19 audit, /* audit */ 1 20 explicit_deactivate_ok) bit (1), /* allow demand deactivation */ 1 21 3 pad bit (30); 1 22 1 23 /* END INCLUDE FILE kst_attributes.incl.pl1 */ 143 144 145 end change_kst_attributes; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1518.3 change_kst_attributes.pl1 >dumps>old>recomp>change_kst_attributes.pl1 143 1 04/29/76 1104.2 kst_attributes.incl.pl1 >ldd>include>kst_attributes.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. al 000102 automatic fixed bin(17,0) dcl 24 set ref 51* 57 57 60 60 63* 66* 80* 81 84 85* 85 88 93 98 103 108 113 118 118 allow_write 1(09) 000204 automatic bit(1) level 3 in structure "ka" packed unaligned dcl 38 in procedure "cka" set ref 111* allow_write 000204 automatic bit(1) level 3 in structure "ka" packed unaligned dcl 38 in procedure "cka" set ref 110* ap 000100 automatic pointer dcl 24 set ref 51* 57 60 60 63* 66* 80* 81 84* 84 88 93 98 103 108 113 118 arg based char unaligned dcl 24 set ref 57* 60 60 81 84 88 93 98 103 108 113 118* args 000112 automatic fixed bin(17,0) dcl 24 set ref 78* 79 audit 0(04) 000204 automatic bit(1) level 3 in structure "ka" packed unaligned dcl 38 in procedure "cka" set ref 115* audit 1(13) 000204 automatic bit(1) level 3 in structure "ka" packed unaligned dcl 38 in procedure "cka" set ref 116* code parameter fixed bin(35,0) dcl 132 in procedure "abort" set ref 131 134* code 000175 automatic fixed bin(35,0) dcl 24 in procedure "cka" set ref 51* 52 57* 58 63* 64 66* 67 67* 68* 71* 72* 74 123* 126* 128 128* com_err_ 000020 constant entry external dcl 39 ref 134 cu_$arg_count 000012 constant entry external dcl 39 ref 78 cu_$arg_ptr 000014 constant entry external dcl 39 ref 51 63 80 cv_oct_check_ 000022 constant entry external dcl 39 ref 57 dname 000113 automatic char(168) unaligned dcl 24 set ref 66 66 68* 71* ename 000165 automatic char(32) unaligned dcl 24 set ref 66 66 68* 71* error_table_$badopt 000010 external static fixed bin(35,0) dcl 37 set ref 118* expand_path_ 000024 constant entry external dcl 39 ref 66 explicit_deactivate_ok 0(05) 000204 automatic bit(1) level 3 in structure "ka" packed unaligned dcl 38 in procedure "cka" set ref 105* explicit_deactivate_ok 1(14) 000204 automatic bit(1) level 3 in structure "ka" packed unaligned dcl 38 in procedure "cka" set ref 106* hcs_$initiate 000026 constant entry external dcl 39 ref 68 hcs_$terminate_noname 000032 constant entry external dcl 39 ref 127 hphcs_$set_kst_attributes 000036 constant entry external dcl 39 ref 126 i 000103 automatic fixed bin(17,0) dcl 24 set ref 49* 62* 79* 79* 80* ioa_ 000016 constant entry external dcl 39 ref 54 ka 000204 automatic structure level 1 dcl 38 set ref 77* 123 123 126 126 kst_attributes based structure level 1 dcl 1-5 linkage_error 000176 stack reference condition dcl 36 ref 120 122 msg parameter char unaligned dcl 132 set ref 131 134* phcs_$initiate 000030 constant entry external dcl 39 ref 71 phcs_$set_kst_attributes 000034 constant entry external dcl 39 ref 123 segno 000106 automatic fixed bin(17,0) dcl 24 set ref 57* 75* 123* 126* segptr 000110 automatic pointer dcl 24 set ref 68* 69 71* 72 75 127* set 000204 automatic structure level 2 packed unaligned dcl 38 terminate 000104 automatic bit(1) dcl 24 set ref 50* 74* 127 tms 1(10) 000204 automatic bit(1) level 3 in structure "ka" packed unaligned dcl 38 in procedure "cka" set ref 96* tms 0(01) 000204 automatic bit(1) level 3 in structure "ka" packed unaligned dcl 38 in procedure "cka" set ref 95* tpd 0(03) 000204 automatic bit(1) level 3 in structure "ka" packed unaligned dcl 38 in procedure "cka" set ref 90* tpd 1(12) 000204 automatic bit(1) level 3 in structure "ka" packed unaligned dcl 38 in procedure "cka" set ref 91* tus 1(11) 000204 automatic bit(1) level 3 in structure "ka" packed unaligned dcl 38 in procedure "cka" set ref 101* tus 0(02) 000204 automatic bit(1) level 3 in structure "ka" packed unaligned dcl 38 in procedure "cka" set ref 100* value 000105 automatic bit(1) dcl 24 in procedure "cka" set ref 83* 87* 91 96 101 106 111 116 value 1(09) 000204 automatic structure level 2 in structure "ka" packed unaligned dcl 38 in procedure "cka" NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. kstap automatic pointer dcl 1-3 NAMES DECLARED BY EXPLICIT CONTEXT. abort 000717 constant entry internal dcl 131 ref 67 72 118 128 change_kst_attributes 000075 constant entry external dcl 11 check 000674 constant label dcl 127 ref 124 cka 000066 constant entry external dcl 11 complain 000125 constant label dcl 54 ref 64 return_to_caller 000716 constant label dcl 138 ref 135 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 66 66 66 66 84 123 123 126 126 baseno builtin function ref 75 binary builtin function ref 75 null builtin function ref 69 72 substr builtin function ref 81 84 unspec builtin function ref 77 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1156 1216 773 1166 Length 1430 773 40 175 162 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cka 226 external procedure is an external procedure. on unit on line 120 80 on unit enables or reverts conditions. abort internal procedure shares stack frame of external procedure cka. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cka 000100 ap cka 000102 al cka 000103 i cka 000104 terminate cka 000105 value cka 000106 segno cka 000110 segptr cka 000112 args cka 000113 dname cka 000165 ename cka 000175 code cka 000204 ka cka THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as call_ext_out_desc call_ext_out return tra_ext enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr cv_oct_check_ expand_path_ hcs_$initiate hcs_$terminate_noname hphcs_$set_kst_attributes ioa_ phcs_$initiate phcs_$set_kst_attributes THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000065 49 000102 50 000104 51 000105 52 000123 54 000125 55 000141 57 000142 58 000166 60 000170 62 000202 63 000204 64 000223 66 000225 67 000250 68 000255 69 000321 71 000325 72 000371 73 000400 74 000401 75 000404 77 000410 78 000413 79 000422 80 000431 81 000447 83 000454 84 000455 85 000461 86 000463 87 000464 88 000466 90 000474 91 000476 92 000503 93 000504 95 000510 96 000512 97 000517 98 000520 100 000524 101 000526 102 000533 103 000534 105 000540 106 000542 107 000547 108 000550 110 000554 111 000556 112 000563 113 000564 115 000570 116 000572 117 000577 118 000600 119 000620 120 000622 122 000636 123 000637 124 000654 126 000657 127 000674 128 000710 129 000715 138 000716 131 000717 134 000730 135 000756 ----------------------------------------------------------- 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