COMPILATION LISTING OF SEGMENT create_daemon_queues Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/28/88 1340.8 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* format: style2 */ 13 create_daemon_queues: 14 cdq: 15 procedure options (variable); 16 17 /* Command for creating the dprint request queues and setting general access to them */ 18 /* Uses iod_tables file to find out what request_types to create queues 19* * for. Already existing queues are left alone. 20* * 21* * create_daemon_queues PATH {-control_args} 22* * 23* * PATH is the pfull pathname of an iod_tables segment 24* * 25* * 26* * -dr path 27* * -directory path 28* * the queues will be created in the directory "path". 29* * Defaults to >daemon_dir_dir>io_daemon_dir. 30* * The iod tables iod_tables are used 31* * 32* * -reset_access forces default acl terms if queues already exist. 33* * 34* * Coded October 1973 by Robert S. Coren 35* * Modified by J. Stern, 12/30/74 36* * Modified by J. C. Whitmore, 4/78, for max queues per request type. 37* * Modified by J. C. Whitmore, 10/78, for version 3 iod_tables format. 38* * Modified by Benson I. Margulies for PATHnames 39**/ 40 41 42 /****^ HISTORY COMMENTS: 43* 1) change(88-06-03,Brunelle), approve(88-06-03,MCR7911), 44* audit(88-10-17,Wallman), install(88-10-28,MR12.2-1199): 45* Changed to handle version 5 i/o daemon tables. 46* END HISTORY COMMENTS */ 47 48 49 50 dcl aim_check_$equal entry (bit (72) aligned, bit (72) aligned) returns (bit (1) aligned); 51 dcl com_err_ entry options (variable); 52 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 53 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 54 dcl absolute_pathname_ entry (char (*), char (*), fixed bin (35)); 55 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 56 dcl get_max_authorization_ entry returns (bit (72) aligned); 57 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, 58 fixed bin (35)); 59 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 60 dcl ioa_ entry options (variable); 61 dcl ioa_$rsnnl entry options (variable); 62 dcl message_segment_$create 63 entry (char (*), char (*), fixed bin (35)); 64 dcl message_segment_$ms_acl_add 65 entry (char (*), char (*), ptr, fixed bin, fixed bin (35)); 66 dcl system_info_$access_ceiling 67 entry (bit (72) aligned); 68 69 70 dcl system_high bit (72) aligned; 71 dcl max_auth bit (72) aligned; 72 dcl testing bit (1) aligned; 73 dcl code fixed bin (35); 74 dcl table_name char (32); 75 dcl (dir, table) char (256); 76 dcl dir_name char (168); 77 dcl i fixed bin; 78 dcl j fixed bin; 79 dcl nargs fixed bin; 80 dcl mseg_name char (32); 81 dcl max_queues fixed bin; 82 dcl reset_access bit (1); 83 dcl (got_pn, got_dr) bit (1); 84 85 dcl AROS bit (36) int static options (constant) init ("10111"b); 86 dcl NONE bit (36) int static options (constant) init (""b); 87 88 declare Default_io_daemon_dir init (">daemon_dir_dir>io_daemon_dir") char (168) int static options (constant); 89 declare Default_iod_tables init ("iod_tables") char (32) int static options (constant); 90 91 dcl 1 acla (4) aligned int static options (constant), 92 2 userid char (32) init ("IO.SysDaemon.*", "*.SysDaemon.*", "*.*.*", "*.*.*"), 93 2 access bit (36) init ((4) (1)"111"b), 94 /* REW real access for all acl terms */ 95 2 ex_access bit (36) init ("11111"b, (2) (1)"10111"b, "00000"b), 96 /* ADROS AROS AROS NULL */ 97 2 errcode fixed bin (35); 98 99 dcl 1 an_acl (4) aligned like acla; 100 /* automatic version */ 101 dcl nacl fixed bin; /* number of acl entries defined above */ 102 103 104 dcl argptr ptr; 105 dcl arglen fixed bin; 106 dcl arg char (arglen) based (argptr); 107 108 109 dcl ( 110 error_table_$badopt, 111 error_table_$namedup, 112 error_table_$inconsistent, 113 error_table_$noarg, 114 error_table_$too_many_args 115 ) fixed bin (35) ext static; 116 117 dcl myname char (20) int static init ("create_daemon_queues"); 118 dcl cleanup condition; 119 120 dcl (addr, after, null, ptr, substr) 121 builtin; 122 123 124 testing = "0"b; /* not testing unless "-dir" option specified */ 125 reset_access = "0"b; /* do not set access on existing queues */ 126 127 /* find arguments if any */ 128 129 call cu_$arg_count (nargs, code); /* get number of arguments given */ 130 if code ^= 0 131 then do; 132 call com_err_ (code, myname); 133 return; /* We do not make a very useful AF */ 134 end; 135 136 table = ""; 137 dir = ""; 138 reset_access, got_pn, got_dr = ""b; 139 do i = 1 to nargs; 140 call cu_$arg_ptr (i, argptr, arglen, (0)); /* guaranteed by the doloop limit */ 141 142 if substr (arg, 1, 1) = "-" 143 then do; /* control argument */ 144 145 if arg = "-dr" | arg = "-dir" | arg = "-directory" 146 then do; 147 148 /* REMOVE -dir SOMEDAY --bim */ 149 i = i + 1; /* look at next arg */ 150 if i > nargs 151 then do; 152 no_dp: 153 call com_err_ (error_table_$noarg, myname, "-directory requires a pathname.") 154 ; 155 return; 156 end; 157 call cu_$arg_ptr (i, argptr, arglen, (0)); 158 /* we know how many we have */ 159 if substr (arg, 1, 1) = "-" 160 then do; 161 call com_err_ (error_table_$noarg, myname, 162 "-directory requires a pathname. Control argument ^a was in error.", 163 arg); 164 return; 165 end; 166 if got_pn 167 then do; 168 call com_err_ (error_table_$inconsistent, myname, 169 "-directory may not be given if a iod table pathname is given."); 170 return; 171 end; 172 173 if got_dr 174 then do; 175 call com_err_ (error_table_$inconsistent, myname, 176 "-directory may not be supplied twice"); 177 return; 178 end; 179 got_dr = "1"b; 180 dir = arg; /* do absolute pathname later */ 181 testing = "1"b; /* test dir specified */ 182 end; 183 184 else if arg = "-reset_access" 185 then reset_access = "1"b; /* set access on existing queues */ 186 else do; 187 call com_err_ (error_table_$badopt, myname, arg); 188 return; 189 end; 190 end; /* the control arg dept. */ 191 else do; /* a pathname */ 192 if got_pn 193 then do; 194 call com_err_ (error_table_$too_many_args, myname, 195 "Only one pathname may be supplied."); 196 return; 197 end; 198 got_pn = "1"b; 199 table = arg; 200 testing = "1"b; 201 end; /* the pathname */ 202 end; /* the control arg loop */ 203 204 205 if got_dr 206 then do; 207 call absolute_pathname_ (dir, dir_name, code); 208 if code ^= 0 209 then do; 210 call com_err_ (code, myname, "directory pathname ^a.", dir); 211 return; 212 end; 213 table_name = Default_iod_tables; 214 end; 215 else if got_pn 216 then do; 217 call expand_pathname_ (table, dir_name, table_name, code); 218 if code ^= 0 219 then do; 220 call com_err_ (code, myname, "table pathname ^a.", table); 221 return; 222 end; 223 end; 224 else do; /* vanilla case */ 225 table_name = Default_iod_tables; 226 dir_name = Default_io_daemon_dir; 227 end; 228 229 /* If we're not testing, make sure caller's max authorization is "system_high". */ 230 /* If it's not, any queues created will not be accessible at all authorizations. */ 231 232 if ^testing 233 then do; 234 max_auth = get_max_authorization_ (); 235 call system_info_$access_ceiling (system_high); 236 if ^aim_check_$equal (system_high, max_auth) 237 then /* max authorization is not system high */ 238 call com_err_ (0, myname, "Warning -- Your maximum authorization is not ""system_high""."); 239 end; 240 241 /* get a pointer to the iod_tables segment */ 242 243 ithp = null (); 244 on cleanup 245 begin; 246 if ithp ^= null () 247 then call hcs_$terminate_noname (ithp, (0)); 248 end; 249 call hcs_$initiate (dir_name, table_name, "", (0), (0), ithp, code); 250 if ithp = null () 251 then do; 252 call com_err_ (code, myname, "^a>^a", dir_name, table_name); 253 return; 254 end; 255 256 if iod_tables_hdr.version ^= IODT_VERSION_5 257 then do; /* check version number */ 258 call com_err_ (0, myname, "Wrong version number for iod_tables."); 259 go to finish; 260 end; 261 262 /* now create the queues */ 263 264 qgtp = ptr (ithp, iod_tables_hdr.q_group_tab_offset); 265 /* get q group table ptr */ 266 267 do j = 1 to q_group_tab.n_q_groups; 268 269 qgtep = addr (q_group_tab.entries (j)); 270 an_acl = acla; 271 max_queues = qgte.max_queues; /* get max queues for this request type */ 272 if qgte.driver_id = "IO.SysDaemon.*" 273 then do; /* standard system driver */ 274 an_acl (2).ex_access = AROS; /* let SysDaemons use it like other users */ 275 an_acl (3).userid = "*.*.*"; /* this queue is for all users */ 276 an_acl (3).ex_access = AROS; /* give them all access */ 277 nacl = 3; /* say only three entries are defined */ 278 end; 279 else do; /* non-standard driver for this queue */ 280 an_acl (2).ex_access = NONE; /* project must request SysDaemon access */ 281 an_acl (3).userid = "*." || after (qgte.driver_id, "."); 282 /* give access to all on project */ 283 an_acl (3).ex_access = AROS; /* give them all access */ 284 nacl = 4; /* we have four entries now */ 285 end; 286 287 do i = 1 to max_queues; 288 call ioa_$rsnnl ("^a_^d.ms", mseg_name, arglen, qgte.name, i); 289 call message_segment_$create (dir_name, mseg_name, code); 290 291 if code = 0 292 then do; /* created one, set up acl. */ 293 call ioa_ ("^a created.", mseg_name); 294 set_access: 295 call message_segment_$ms_acl_add (dir_name, mseg_name, addr (an_acl), nacl, code); 296 if code ^= 0 297 then call com_err_ (code, myname, "Adding extended acl to ^a", mseg_name); 298 end; 299 300 else if code ^= error_table_$namedup 301 then call com_err_ (code, myname, "Could not create ^a", mseg_name); 302 else if reset_access 303 then go to set_access; /* if queue exists, skip set_acl unless asked */ 304 end; 305 end; 306 307 308 finish: 309 call hcs_$terminate_noname (ithp, code); 310 311 return; 312 1 1 /* BEGIN INCLUDE FILE ... iod_tables_hdr.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 1 7* Ancient History 1 8* Created by J. Stern, 1/20/75 1 9* Modified by J. C. Whitmore April 1978 for enhancements 1 10* Modified by J. C. Whitmore, 10/78, for version 3 iod_tables format. 1 11* Modified by E. N. Kittlitz, 6/81, for version 4 iod_tables with expanded 1 12* q_group_tab 1 13* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 1 14* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 1 15* Change version number to reflect changes in q_group_tab and 1 16* iod_device_tab for laser printer support. Added font tables. 1 17* END HISTORY COMMENTS */ 1 18 1 19 1 20 /* format: style4 */ 1 21 1 22 dcl ithp ptr; /* ptr to io daemon dables and it's header */ 1 23 dcl 1 iod_tables_hdr aligned based (ithp), /* header of data segment compiled by iod_table_compiler */ 1 24 2 version char (8), /* version of this structure */ 1 25 2 date_time_compiled fixed bin (71), 1 26 2 grace_time fixed bin (71), /* grace time before deleting finished segment */ 1 27 2 max_queues fixed bin (17), /* default number of priority queues per queue group */ 1 28 2 line_tab_offset fixed bin (18), /* offset of line id table */ 1 29 2 device_tab_offset fixed bin (18), /* offset of device table */ 1 30 2 minor_device_tab_offset fixed bin (18), /* offset of minor device table */ 1 31 2 dev_class_tab_offset fixed bin (18), /* offset of device class table */ 1 32 2 q_group_tab_offset fixed bin (18), /* offset of queue group table */ 1 33 2 forms_info_tab_offset fixed bin (18), /* offset of forms info tables */ 1 34 2 text_strings_offset fixed bin (18), 1 35 2 start_of_tables fixed bin; /* beginning of above tables, MUST start on even word boundry */ 1 36 1 37 /* Defines common text block to store virtually all text in the I/O daemon tables */ 1 38 dcl text_strings_ptr ptr; 1 39 dcl 1 text_strings aligned based (text_strings_ptr), 1 40 2 length fixed bin, 1 41 2 chars char (1 refer (text_strings.length)) unaligned; 1 42 1 43 /* this defines text offsets used to locate i/o daemon tables strings in 1 44* the text_strings structure */ 1 45 dcl 1 text_offset based, 1 46 2 first_char fixed bin (18) unsigned unaligned, 1 47 2 total_chars fixed bin (18) unsigned unaligned; 1 48 1 49 dcl IODT_VERSION_5 char (8) int static options (constant) init ("IODT0005"); /* current version number */ 1 50 1 51 1 52 /* END INCLUDE FILE ... iod_tables_hdr.incl.pl1 */ 313 314 2 1 /* BEGIN INCLUDE FILE...q_group_tab.incl.pl1 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 2 7* Ancient History 2 8* Created by J. Stern, December 1974 2 9* Modified by J. Whitmore April 1978 2 10* Modified by R. McDonald May 1980 to include page charges (UNCA) 2 11* Modified by E. N. Kittlitz June 1981 for UNCA changes 2 12* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 2 13* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 2 14* Add forms_validation, default_form and font_dir variables for laser 2 15* printer support. 2 16* END HISTORY COMMENTS */ 2 17 2 18 2 19 /* format: style4 */ 2 20 2 21 dcl qgtp ptr; /* ptr to queue group table */ 2 22 dcl 1 q_group_tab aligned based (qgtp), 2 23 2 n_q_groups fixed bin, /* number of queue groups */ 2 24 2 pad fixed bin, 2 25 2 entries (1 refer (q_group_tab.n_q_groups)) like qgte; /* entries of queue group table */ 2 26 2 27 dcl qgtep ptr; /* queue group table entry pointer */ 2 28 dcl 1 qgte aligned based (qgtep), /* queue group table entry */ 2 29 2 30 /* static info from the parms file */ 2 31 2 32 2 name char (24), /* queue group name */ 2 33 2 comment unaligned like text_offset, /* comment to apply to the request_type */ 2 34 2 driver_id char (32), /* person.project name of drivers for this q group */ 2 35 2 accounting unaligned like text_offset, /* offset to accounting routine pathname, "system" => charge_user_ */ 2 36 2 generic_type char (32), /* generic type of requests in this queue */ 2 37 2 default_generic_queue fixed bin (1), /* 1 if this is default queue for above generic type, else 0 */ 2 38 2 rqti_seg_name char (32), /* name of rqti seg, if required, else blank */ 2 39 2 max_queues fixed bin, /* number of queues for this request type */ 2 40 2 default_queue fixed bin, /* number of the default queue */ 2 41 2 line_charge, /* price names for line charges */ 2 42 3 queue (4) char (32), /* one name for each queue */ 2 43 2 page_charge, /* price names for page charges */ 2 44 3 queue (4) char (32), /* one name for each queue */ 2 45 2 forms_table unaligned like text_offset, /* offset to forms table to apply to this queue group */ 2 46 2 forms_validation unaligned like text_offset, /* offset to name of routine for forms validation */ 2 47 2 default_form unaligned like text_offset, /* offset to default -form string if none given */ 2 48 2 font_dir unaligned like text_offset, /* offset to location of downloadable fonts */ 2 49 2 first_dev_class fixed bin, /* index of first device class entry of queue group */ 2 50 2 last_dev_class fixed bin, /* index of last device class entry of queue group */ 2 51 2 52 /* dynamic info reflecting current status of queues */ 2 53 2 54 2 open fixed bin, /* 1 if queues have been opened, else 0 */ 2 55 2 per_queue_info (4), 2 56 3 last_read bit (72), /* ID of last message read */ 2 57 3 mseg_index fixed bin, /* message segment index */ 2 58 3 pad fixed bin; /* pad to even word boundary */ 2 59 2 60 /* END INCLUDE FILE...q_group_tab.incl.pl1 */ 315 316 317 end create_daemon_queues; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/28/88 1234.0 create_daemon_queues.pl1 >special_ldd>install>MR12.2-1199>create_daemon_queues.pl1 313 1 10/28/88 1227.4 iod_tables_hdr.incl.pl1 >special_ldd>install>MR12.2-1199>iod_tables_hdr.incl.pl1 315 2 10/28/88 1227.2 q_group_tab.incl.pl1 >special_ldd>install>MR12.2-1199>q_group_tab.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. AROS constant bit(36) initial packed unaligned dcl 85 ref 274 276 283 Default_io_daemon_dir 000066 constant char(168) initial packed unaligned dcl 88 ref 226 Default_iod_tables 000056 constant char(32) initial packed unaligned dcl 89 ref 213 225 IODT_VERSION_5 000054 constant char(8) initial packed unaligned dcl 1-49 ref 256 NONE constant bit(36) initial packed unaligned dcl 86 ref 280 absolute_pathname_ 000026 constant entry external dcl 54 ref 207 access 10 000407 automatic bit(36) initial array level 2 dcl 99 set ref 99* 99* 99* 99* acla 000000 constant structure array level 1 dcl 91 ref 270 addr builtin function dcl 120 ref 269 294 294 after builtin function dcl 120 ref 281 aim_check_$equal 000016 constant entry external dcl 50 ref 236 an_acl 000407 automatic structure array level 1 dcl 99 set ref 270* 294 294 arg based char packed unaligned dcl 106 set ref 142 145 145 145 159 161* 180 184 187* 199 arglen 000466 automatic fixed bin(17,0) dcl 105 set ref 140* 142 145 145 145 157* 159 161 161 180 184 187 187 199 288* argptr 000464 automatic pointer dcl 104 set ref 140* 142 145 145 145 157* 159 161 180 184 187 199 cleanup 000470 stack reference condition dcl 118 ref 244 code 000105 automatic fixed bin(35,0) dcl 73 set ref 129* 130 132* 207* 208 210* 217* 218 220* 249* 252* 289* 291 294* 296 296* 300 300* 308* com_err_ 000020 constant entry external dcl 51 ref 132 152 161 168 175 187 194 210 220 236 252 258 296 300 cu_$arg_count 000022 constant entry external dcl 52 ref 129 cu_$arg_ptr 000024 constant entry external dcl 53 ref 140 157 dir 000116 automatic char(256) packed unaligned dcl 75 set ref 137* 180* 207* 210* dir_name 000316 automatic char(168) packed unaligned dcl 76 set ref 207* 217* 226* 249* 252* 289* 294* driver_id 7 based char(32) level 2 dcl 2-28 ref 272 281 entries 2 based structure array level 2 dcl 2-22 set ref 269 error_table_$badopt 000052 external static fixed bin(35,0) dcl 109 set ref 187* error_table_$inconsistent 000056 external static fixed bin(35,0) dcl 109 set ref 168* 175* error_table_$namedup 000054 external static fixed bin(35,0) dcl 109 ref 300 error_table_$noarg 000060 external static fixed bin(35,0) dcl 109 set ref 152* 161* error_table_$too_many_args 000062 external static fixed bin(35,0) dcl 109 set ref 194* ex_access 11 000407 automatic bit(36) initial array level 2 dcl 99 set ref 99* 99* 99* 99* 274* 276* 280* 283* expand_pathname_ 000030 constant entry external dcl 55 ref 217 get_max_authorization_ 000032 constant entry external dcl 56 ref 234 got_dr 000406 automatic bit(1) packed unaligned dcl 83 set ref 138* 173 179* 205 got_pn 000405 automatic bit(1) packed unaligned dcl 83 set ref 138* 166 192 198* 215 hcs_$initiate 000034 constant entry external dcl 57 ref 249 hcs_$terminate_noname 000036 constant entry external dcl 59 ref 246 308 i 000370 automatic fixed bin(17,0) dcl 77 set ref 139* 140* 149* 149 150 157* 287* 288* ioa_ 000040 constant entry external dcl 60 ref 293 ioa_$rsnnl 000042 constant entry external dcl 61 ref 288 iod_tables_hdr based structure level 1 dcl 1-23 ithp 000476 automatic pointer dcl 1-22 set ref 243* 246 246* 249* 250 256 264 264 308* j 000371 automatic fixed bin(17,0) dcl 78 set ref 267* 269* max_auth 000102 automatic bit(72) dcl 71 set ref 234* 236* max_queues 000403 automatic fixed bin(17,0) dcl 81 in procedure "cdq" set ref 271* 287 max_queues 41 based fixed bin(17,0) level 2 in structure "qgte" dcl 2-28 in procedure "cdq" ref 271 message_segment_$create 000044 constant entry external dcl 62 ref 289 message_segment_$ms_acl_add 000046 constant entry external dcl 64 ref 294 mseg_name 000373 automatic char(32) packed unaligned dcl 80 set ref 288* 289* 293* 294* 296* 300* myname 000010 internal static char(20) initial packed unaligned dcl 117 set ref 132* 152* 161* 168* 175* 187* 194* 210* 220* 236* 252* 258* 296* 300* n_q_groups based fixed bin(17,0) level 2 dcl 2-22 ref 267 nacl 000463 automatic fixed bin(17,0) dcl 101 set ref 277* 284* 294* name based char(24) level 2 dcl 2-28 set ref 288* nargs 000372 automatic fixed bin(17,0) dcl 79 set ref 129* 139 150 null builtin function dcl 120 ref 243 246 250 ptr builtin function dcl 120 ref 264 q_group_tab based structure level 1 dcl 2-22 q_group_tab_offset 13 based fixed bin(18,0) level 2 dcl 1-23 ref 264 qgte based structure level 1 dcl 2-28 qgtep 000502 automatic pointer dcl 2-27 set ref 269* 271 272 281 288 qgtp 000500 automatic pointer dcl 2-21 set ref 264* 267 269 reset_access 000404 automatic bit(1) packed unaligned dcl 82 set ref 125* 138* 184* 302 substr builtin function dcl 120 ref 142 159 system_high 000100 automatic bit(72) dcl 70 set ref 235* 236* system_info_$access_ceiling 000050 constant entry external dcl 66 ref 235 table 000216 automatic char(256) packed unaligned dcl 75 set ref 136* 199* 217* 220* table_name 000106 automatic char(32) packed unaligned dcl 74 set ref 213* 217* 225* 249* 252* testing 000104 automatic bit(1) dcl 72 set ref 124* 181* 200* 232 text_offset based structure level 1 packed packed unaligned dcl 1-45 userid 000407 automatic char(32) initial array level 2 dcl 99 set ref 99* 99* 99* 99* 275* 281* version based char(8) level 2 dcl 1-23 ref 256 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. text_strings based structure level 1 dcl 1-39 text_strings_ptr automatic pointer dcl 1-38 NAMES DECLARED BY EXPLICIT CONTEXT. cdq 000516 constant entry external dcl 13 create_daemon_queues 000526 constant entry external dcl 13 finish 002137 constant label dcl 308 ref 259 no_dp 000653 constant label dcl 152 set_access 002005 constant label dcl 294 set ref 302 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2426 2512 2153 2436 Length 3006 2153 64 257 252 6 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cdq 432 external procedure is an external procedure. on unit on line 244 72 on unit STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 myname cdq STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cdq 000100 system_high cdq 000102 max_auth cdq 000104 testing cdq 000105 code cdq 000106 table_name cdq 000116 dir cdq 000216 table cdq 000316 dir_name cdq 000370 i cdq 000371 j cdq 000372 nargs cdq 000373 mseg_name cdq 000403 max_queues cdq 000404 reset_access cdq 000405 got_pn cdq 000406 got_dr cdq 000407 an_acl cdq 000463 nacl cdq 000464 argptr cdq 000466 arglen cdq 000476 ithp cdq 000500 qgtp cdq 000502 qgtep cdq THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absolute_pathname_ aim_check_$equal com_err_ cu_$arg_count cu_$arg_ptr expand_pathname_ get_max_authorization_ hcs_$initiate hcs_$terminate_noname ioa_ ioa_$rsnnl message_segment_$create message_segment_$ms_acl_add system_info_$access_ceiling THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$inconsistent error_table_$namedup error_table_$noarg error_table_$too_many_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 99 000405 13 000515 124 000534 125 000535 129 000536 130 000547 132 000551 133 000566 136 000567 137 000572 138 000575 139 000600 140 000607 142 000625 145 000632 149 000647 150 000650 152 000653 155 000677 157 000700 159 000716 161 000723 164 000756 166 000757 168 000761 170 001005 173 001006 175 001010 177 001034 179 001035 180 001037 181 001043 182 001044 184 001045 187 001054 188 001100 190 001101 192 001102 194 001104 196 001130 198 001131 199 001133 200 001137 202 001140 205 001142 207 001144 208 001165 210 001167 211 001222 213 001223 214 001226 215 001227 217 001231 218 001256 220 001260 221 001310 223 001311 225 001312 226 001315 232 001320 234 001322 235 001331 236 001340 243 001403 244 001405 246 001421 248 001437 249 001440 250 001503 252 001507 253 001542 256 001543 258 001550 259 001575 264 001576 267 001602 269 001611 270 001615 271 001620 272 001622 274 001626 275 001630 276 001633 277 001634 278 001636 280 001637 281 001640 283 001672 284 001675 287 001677 288 001707 289 001741 291 001762 293 001764 294 002005 296 002040 298 002072 300 002073 302 002131 304 002133 305 002135 308 002137 311 002150 ----------------------------------------------------------- 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