COMPILATION LISTING OF SEGMENT upd_ring_task_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1724.6 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 upd_ring_task_: proc; 12 13 dcl /* arguments passed */ 14 ctlw bit (36) aligned, 15 areap ptr, 16 parentp ptr, 17 acode fixed bin (35), 18 asev fixed bin, 19 taskp ptr, 20 seqno fixed bin, 21 dir char (168), 22 seg char (32), 23 msgseg char (32), 24 Uid bit (36) aligned, 25 Rb (3) fixed bin (3), 26 recover bit (1); 27 28 dcl 1 c aligned based ( addr(ctlw) ), /* expanded view of control_word (ctlw) */ 29 (2 rsw bit (1), 30 2 task_sw bit (1), 31 2 compile_sw bit (1), 32 2 run_sw bit (1), 33 2 task_run_sw bit (1), 34 2 log_sw bit (1), 35 2 error_sw bit (1), 36 2 brief_sw bit (1), 37 2 detail_sw bit (1), 38 2 clear_code_sw bit (1), 39 2 clear_uid_sw bit (1)) unaligned; 40 41 dcl 1 Stat aligned, /* area for info gotten from upd_status_ */ 42 (2 type bit (2), 43 2 nnames bit (16), 44 2 nrp bit (18), 45 2 dtm bit (36), 46 2 dtu bit (36), 47 2 mode bit (5), 48 2 pad bit (13), 49 2 rec bit (18), 50 2 dtd bit (36), 51 2 dtem bit (36), 52 2 acct bit (36), 53 2 curlen bit (12), 54 2 bitcnt bit (24), 55 2 did bit (4), 56 2 mdid bit (4), 57 2 copysw bit (1), 58 2 pad2 bit (9), 59 2 rbs (3) bit (6), 60 2 uid bit (36) ) unaligned; 61 62 dcl 63 cu_$arg_list_ptr entry (ptr), 64 cu_$level_get entry returns (fixed bin), 65 upd_add_task_ entry ( char(*), ptr), 66 upd_print_err_ entry options (variable), 67 upd_status_$long entry ( char(*), char(*), fixed bin, ptr, ptr, fixed bin (35) ), 68 upd_task_err_ entry options (variable), 69 hcs_$get_ring_brackets entry (char(*), char(*), (3) fixed bin(3), fixed bin(35)), 70 set_ring_brackets_entry entry (char(*), char(*), (3)fixed bin(3), fixed bin(35)) variable, 71 hcs_$set_ring_brackets entry (char(*), char(*), (3)fixed bin(3), fixed bin(35)), 72 installation_tools_$set_ring_brackets entry (char(*), char(*), (3) fixed bin(3), fixed bin(35)), 73 ioa_$ioa_stream entry options (variable); 74 75 dcl linkage_error condition; 76 dcl error_table_$non_matching_uid ext fixed bin (35); 77 dcl null builtin; 78 79 dcl 80 argp ptr, 81 e fixed bin, 82 i fixed bin, 83 sev fixed bin init (3), 84 code fixed bin (35) init (0), 85 logsw bit (1), 86 runsw bit (1), 87 trb (3) fixed bin (3), 88 Entry (2) char (32) init ( 89 "upd_ring_task_$list", 90 "upd_ring_task_$set" ), 91 amsg (2) char (4) init ( 92 "List", 93 "Set " ); 94 95 96 list: entry ( ctlw, areap, parentp, acode, asev, taskp, seqno, dir, seg, msgseg, Uid, Rb); 97 98 if ctlw & "10000000011"b /* this entry doesn't run in reverse mode or */ 99 then return; /* in "clear" mode */ 100 e = 1; 101 goto common; 102 103 set: entry ( ctlw, areap, parentp, acode, asev, taskp, seqno, dir, seg, msgseg, Uid, Rb, recover); 104 105 if ctlw & "00000000011"b /* doesn't run in "clear" mode */ 106 then return; 107 if ctlw & "10000000000"b /* but does run in reverse if full */ 108 then if ^recover /* recovery is possible */ 109 then return; 110 e = 2; 111 112 common: 113 call cu_$arg_list_ptr (argp); 114 logsw = c.log_sw; 115 runsw = c.run_sw | c.task_run_sw; 116 if c.error_sw /* if printing errors, and we have */ 117 then if asev = 0 /* no errors to print then */ 118 then logsw = "0"b; /* we won't print any! */ 119 if c.task_sw 120 then call upd_add_task_ ( (Entry(e)), argp); /* add my task to list */ 121 if logsw 122 then do; 123 if seg = msgseg 124 then call ioa_$ioa_stream ("installation_list_","^5x^R^a rings^-^a>^a^B",amsg(e),dir,seg); 125 else call ioa_$ioa_stream("installation_list_","^5x^R^a rings^-^a>^a^2x(^a)^B", 126 amsg(e),dir,seg,msgseg); 127 if Rb(1) ^= 0 /* zero here means deferred information gathering */ 128 then call ioa_$ioa_stream("installation_list_","^-^R^d,^d,^d^B",Rb(1),Rb(2),Rb(3)); 129 else if e = 2 130 then call ioa_$ioa_stream("installation_list_","^-^RRing list is empty.^B"); 131 if asev ^= 0 132 then call upd_print_err_ (acode,asev); 133 end; 134 if runsw 135 then do; 136 call upd_status_$long ( dir, seg, 1, addr(Stat), null, code); 137 if code ^= 0 then goto baderr; 138 if Uid ^= ""b 139 then do; 140 if Uid ^= Stat.uid 141 then code = error_table_$non_matching_uid; 142 if code ^= 0 then goto baderr; 143 end; 144 on linkage_error begin; 145 set_ring_brackets_entry = hcs_$set_ring_brackets; 146 goto revert_linkage_error; 147 end; 148 set_ring_brackets_entry = installation_tools_$set_ring_brackets; 149 revert_linkage_error: revert linkage_error; 150 if ^c.rsw 151 then goto lable(e); 152 else goto reverse; 153 end; 154 goto exit; 155 156 baderr: 157 call upd_task_err_ (code, sev, argp, (Entry(e)),"^a>^a", dir, seg); 158 return; 159 160 lable(1): 161 if Rb(1) = 0 /* if we haven't already gotten the info, */ 162 then call hcs_$get_ring_brackets (dir, seg, Rb, code); /* then get the ring brackets */ 163 goto exit; 164 165 lable(2): 166 call set_ring_brackets_entry ( dir, seg, Rb, code); 167 if code ^= 0 then goto baderr; 168 goto exit; 169 170 reverse: 171 trb(1), trb(2), trb(3) = fixed ( cu_$level_get(), 3); 172 call set_ring_brackets_entry ( dir, seg, trb, code); 173 if code ^= 0 then goto baderr; 174 exit: 175 return; /* normal exit */ 176 177 178 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1514.6 upd_ring_task_.pl1 >dumps>old>recomp>upd_ring_task_.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. Entry 000136 automatic char(32) initial array unaligned dcl 79 set ref 79* 79* 119 156 Rb parameter fixed bin(3,0) array dcl 13 set ref 96 103 127 127* 127* 127* 160 160* 165* Stat 000100 automatic structure level 1 dcl 41 set ref 136 136 Uid parameter bit(36) dcl 13 ref 96 103 138 140 acode parameter fixed bin(35,0) dcl 13 set ref 96 103 131* amsg 000156 automatic char(4) initial array unaligned dcl 79 set ref 79* 79* 123* 125* areap parameter pointer dcl 13 ref 96 103 argp 000124 automatic pointer dcl 79 set ref 112* 119* 156* asev parameter fixed bin(17,0) dcl 13 set ref 96 103 116 131 131* c based structure level 1 dcl 28 code 000130 automatic fixed bin(35,0) initial dcl 79 set ref 79* 136* 137 140* 142 156* 160* 165* 167 172* 173 ctlw parameter bit(36) dcl 13 set ref 96 98 103 105 107 114 115 115 116 119 150 cu_$arg_list_ptr 000010 constant entry external dcl 62 ref 112 cu_$level_get 000012 constant entry external dcl 62 ref 170 dir parameter char(168) unaligned dcl 13 set ref 96 103 123* 125* 136* 156* 160* 165* 172* e 000126 automatic fixed bin(17,0) dcl 79 set ref 100* 110* 119 123 125 129 150 156 error_sw 0(06) based bit(1) level 2 packed unaligned dcl 28 ref 116 error_table_$non_matching_uid 000034 external static fixed bin(35,0) dcl 76 ref 140 hcs_$get_ring_brackets 000024 constant entry external dcl 62 ref 160 hcs_$set_ring_brackets 000026 constant entry external dcl 62 ref 145 installation_tools_$set_ring_brackets 000030 constant entry external dcl 62 ref 148 ioa_$ioa_stream 000032 constant entry external dcl 62 ref 123 125 127 129 linkage_error 000116 stack reference condition dcl 75 ref 144 149 log_sw 0(05) based bit(1) level 2 packed unaligned dcl 28 ref 114 logsw 000131 automatic bit(1) unaligned dcl 79 set ref 114* 116* 121 msgseg parameter char(32) unaligned dcl 13 set ref 96 103 123 125* null builtin function dcl 77 ref 136 136 parentp parameter pointer dcl 13 ref 96 103 recover parameter bit(1) unaligned dcl 13 ref 103 107 rsw based bit(1) level 2 packed unaligned dcl 28 ref 150 run_sw 0(03) based bit(1) level 2 packed unaligned dcl 28 ref 115 runsw 000132 automatic bit(1) unaligned dcl 79 set ref 115* 134 seg parameter char(32) unaligned dcl 13 set ref 96 103 123 123* 125* 136* 156* 160* 165* 172* seqno parameter fixed bin(17,0) dcl 13 ref 96 103 set_ring_brackets_entry 000112 automatic entry variable dcl 62 set ref 145* 148* 165 172 sev 000127 automatic fixed bin(17,0) initial dcl 79 set ref 79* 156* task_run_sw 0(04) based bit(1) level 2 packed unaligned dcl 28 ref 115 task_sw 0(01) based bit(1) level 2 packed unaligned dcl 28 ref 119 taskp parameter pointer dcl 13 ref 96 103 trb 000133 automatic fixed bin(3,0) array dcl 79 set ref 170* 170* 170* 172* uid 11 000100 automatic bit(36) level 2 packed unaligned dcl 41 set ref 140 upd_add_task_ 000014 constant entry external dcl 62 ref 119 upd_print_err_ 000016 constant entry external dcl 62 ref 131 upd_status_$long 000020 constant entry external dcl 62 ref 136 upd_task_err_ 000022 constant entry external dcl 62 ref 156 NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. i automatic fixed bin(17,0) dcl 79 NAMES DECLARED BY EXPLICIT CONTEXT. baderr 000711 constant label dcl 156 ref 137 142 167 173 common 000240 constant label dcl 112 ref 101 exit 001105 constant label dcl 174 ref 154 163 168 lable 000000 constant label array(2) dcl 160 ref 150 list 000167 constant entry external dcl 96 reverse 001043 constant label dcl 170 ref 152 revert_linkage_error 000700 constant label dcl 149 ref 146 set 000215 constant entry external dcl 103 upd_ring_task_ 000147 constant entry external dcl 11 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 114 115 115 116 119 136 136 150 fixed builtin function ref 170 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1306 1344 1110 1316 Length 1540 1110 36 160 176 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME upd_ring_task_ 221 external procedure is an external procedure. on unit on line 144 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME upd_ring_task_ 000100 Stat upd_ring_task_ 000112 set_ring_brackets_entry upd_ring_task_ 000124 argp upd_ring_task_ 000126 e upd_ring_task_ 000127 sev upd_ring_task_ 000130 code upd_ring_task_ 000131 logsw upd_ring_task_ 000132 runsw upd_ring_task_ 000133 trb upd_ring_task_ 000136 Entry upd_ring_task_ 000156 amsg upd_ring_task_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_var_desc call_ext_out_desc call_ext_out return tra_ext enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_list_ptr cu_$level_get hcs_$get_ring_brackets hcs_$set_ring_brackets installation_tools_$set_ring_brackets ioa_$ioa_stream upd_add_task_ upd_print_err_ upd_status_$long upd_task_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$non_matching_uid LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 79 000111 11 000146 96 000155 98 000175 100 000201 101 000203 103 000204 105 000223 107 000227 110 000236 112 000240 114 000247 115 000254 116 000265 119 000275 121 000323 123 000325 125 000400 127 000446 129 000515 131 000546 134 000566 136 000570 137 000633 138 000635 140 000640 142 000645 144 000647 145 000663 146 000670 148 000673 149 000700 150 000701 152 000707 154 000710 156 000711 158 000763 160 000764 163 001013 165 001014 167 001040 168 001042 170 001043 172 001056 173 001103 174 001105 ----------------------------------------------------------- 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