COMPILATION LISTING OF SEGMENT gcos_queue_job_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 08/01/88 1029.5 mst Mon 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) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 /* **************************************************************************************** 14* 15* This procedure maps data from the gcos daemon absentee data structure (currently 16* gcos_abs_data) into the absentee structure used as the absentee message format 17* (currently abs_message_format) and then queues a gcos job by calling a message 18* segment primitive (currently message_segment_$add_file) 19* 20* Arguments are 21* 1) -- a_data_ptr A pointer to the gcos daemon created absentee data (Input). 22* 2) -- a_code An error code (Output). 23* 24* 25* WRITTEN BY: P. Haber March 21, 1974 26* MODIFIED BY: R.H. Morrison August 19, 1974 27* March 1975 July 21, 1975 28* 29* Modified by T. Casey, May 1978, To use version 4 absentee request structure. 30* Modified by S. Akers, Mar 1982, To make a neater absin seg and check for 31* duplicate SNUMBs. Also to use 32* gcos_daemon_stat_$snumb instead of passing 33* the SNUMB as an argument to all and sundry. 34* Modified by R. Barstad August 1982 Fixed gcos job absin where last line 35* of absin deleted itself. 36* 37* **************************************************************************************** */ 38 39 40 /****^ HISTORY COMMENTS: 41* 1) change(86-03-01,Gilcrease), approve(86-03-17,MCR7370), 42* audit(86-06-25,Lippard), install(86-06-30,MR12.0-1082): 43* Update version to 5 in abs_message_format. SCP6297. 44* 2) change(87-07-27,GDixon), approve(87-07-27,MCR7741), 45* audit(87-07-28,Hartogs), install(87-08-04,MR12.1-1055): 46* A) Include user_abs_attributes.incl.pl1 to accommodate change made to 47* abs_message_format.incl.pl1 48* 3) change(88-02-12,Parisek), approve(88-02-12,MCR7849), 49* audit(88-03-23,Lippard), install(88-07-13,MR12.2-1047): 50* Reference version 6 abs_message_format structure. 51* END HISTORY COMMENTS */ 52 53 54 55 gcos_queue_job_: proc (a_data_ptr, a_test_entry, a_code); 56 57 /* PER PROCESS INITIALIZATION */ 58 59 call setup; /* initialize automatics */ 60 if ^init /* first time called */ 61 then do; 62 63 call hcs_$make_seg ("", "gcos_abs_temp_", "", 01011b, temp_ptr, code); /* create temporary in pdir */ 64 if temp_ptr = null /* error creating temporary */ 65 then do; 66 call com_err_ (code, "gcos_queue_job_", "Error creating temporary segment"); 67 go to RETURN; 68 end; 69 70 input_dir = substr (gcos_daemon_stat_$input_dir, 1, gcos_daemon_stat_$input_dir_len); /* set input_dir name */ 71 sysdir = substr (gcos_daemon_stat_$sysdir, 1, gcos_daemon_stat_$sysdir_len); /* and sysdir name */ 72 73 call hcs_$initiate (sysdir, "whotab", "", 0, 0, stat_whoptr, code); /* initiate who table */ 74 if stat_whoptr = null /* error initiating table */ 75 then do; 76 call com_err_ (code, "gcos_queue_job_", "Error initiating who_table"); 77 go to RETURN; 78 end; 79 80 init = "1"b; /* initialization finished */ 81 82 end; 83 84 85 86 on condition (cleanup) /* establish cleanup handler */ 87 call error_wrap_up; 88 89 call hcs_$truncate_seg (temp_ptr, 0, code); /* make sure it's empty for this call */ 90 if code ^= 0 /* error truncating */ 91 then do; 92 call com_err_ (code, "gcos_queue_job_", "Error truncating temporary"); 93 go to RETURN; 94 end; 95 96 /* initializations */ 97 98 code = 0; 99 abs_data_ptr = a_data_ptr; 100 whoptr = stat_whoptr; 101 reqp = temp_ptr; 102 103 /* MAP ABSENTEE DATA */ 104 105 request.request_version = abs_message_version_6; /* version number */ 106 request.hdr_version = queue_msg_hdr_version_1; 107 108 char32 = get_group_id_ (); /* submitters' name (gcos daemon) & length */ 109 group_id_len = length (rtrim (char32)); 110 request.len_name = group_id_len; 111 request.name = substr (char32, 1, group_id_len); 112 absentee_dir_len = length (rtrim (abs_data.absentee_dir)); 113 request.dirname = substr (abs_data.absentee_dir, 1, absentee_dir_len); 114 request.ename = rtrim (gcos_daemon_stat_$snumb)||".absin"; 115 116 request.arg_count = 0; /* argument count */ 117 request.arg_lengths = 0; /* argument length */ 118 request.len_args = 0; /* argument string lengths */ 119 request.len_resource = 0; /* resource length */ 120 request.len_sender = 0; /* sender userid length */ 121 request.len_comment = 0; /* comment string length */ 122 request.len_vpad = 0; /* spare variable length */ 123 unique_snumb = rtrim (gcos_daemon_stat_$snumb) 124 ||"_" 125 ||unique_chars_ (unique_bits_ ()); /* make SNUMB unique */ 126 unique_snumb_len = length (rtrim (unique_snumb)); /* compute its length */ 127 128 if unique_snumb_len > 18 then /* if unique SNUMB too long, shorten it */ 129 do; /* retain low order characters 130* /* of unique_chars_ & the "!" */ 131 132 snumb_len = length (rtrim (gcos_daemon_stat_$snumb)); 133 unique_snumb = substr (unique_snumb, 1, snumb_len+2) 134 ||substr (unique_snumb, snumb_len+3 + unique_snumb_len-18); 135 unique_snumb_len = 18; 136 end; 137 138 request.len_output = absentee_dir_len + unique_snumb_len + 8; /* output path-name and length */ 139 request.output_file = 140 substr (abs_data.absentee_dir, 1, absentee_dir_len)||">"||rtrim (unique_snumb)||".absout"; 141 142 request.abs_attributes.user_deferred_until_time = 143 abs_data.absentee_options.deferral_switch; /* deferral time */ 144 if abs_data.absentee_options.deferral_switch /* one has been specified */ 145 then request.deferred_time = abs_data.absentee_data.deferral; 146 else /* no deferred time specified */ 147 request.deferred_time = 0; 148 149 user_name_len = length (rtrim (abs_data.user_name)); 150 request.len_proxy = user_name_len; 151 request.proxy_name = substr (abs_data.user_name, 1, user_name_len); 152 request.abs_attributes.proxy = "1"b; 153 154 request.max_cpu_time = gcos_daemon_stat_$max_cpu_time; /* max cpu time */ 155 156 request.set_bit_cnt = "0"b; /* don't set bit count after every write */ 157 158 request.abs_attributes.restartable = "1"b; /* gcos jobs are restartable */ 159 /* Defaults for version 6 stuff */ 160 request.initial_ring = -1; 161 request.len_homedir = 0; 162 request.len_initproc = 0; 163 164 call user_info_$authorization_range (authrng); 165 request.requested_authorization = authrng (1); /* use the low range */ 166 167 request.std_length = currentsize (request); /* store request's word length in its header */ 168 message_bit_count = request.std_length * 36; /* remember its bitcount for later */ 169 170 171 172 /* CREATE ABSIN FILE */ 173 174 call hcs_$make_seg (abs_data.absentee_dir, rtrim (gcos_daemon_stat_$snumb)||".absin", "", 01011b, 175 absin_ptr, code); /* make segment "snumb.absin" */ 176 if absin_ptr = null /* error creating "snumb.absin" */ 177 then do; 178 call com_err_ (code, "gcos_queue_job_", "Error creating ^a>^a.absin", 179 abs_data.absentee_dir, gcos_daemon_stat_$snumb); 180 go to RETURN; 181 end; 182 183 call hcs_$set_ring_brackets (abs_data.absentee_dir, rtrim (gcos_daemon_stat_$snumb)||".absin", 184 rb, code); /* set ring brackets */ 185 if code ^= 0 then 186 do; call com_err_ (code, "gcos_queue_job_", "Error setting ring brackets for ^a>^a.absin", 187 abs_data.absentee_dir, gcos_daemon_stat_$snumb); 188 go to RETURN; 189 end; 190 191 call ioa_$rsnnl ("^d", char1, j, abs_data.priority_queue); 192 193 if ^a_test_entry /* regular daemon */ 194 then heading = gcos_daemon_stat_$snumb; /* set heading */ 195 else /* test user */ 196 do; /* query him for a heading */ 197 call ioa_$nnl ("Output heading for ^a = :", gcos_daemon_stat_$snumb); 198 call ios_$read_ptr (addr (heading), 24, j); 199 heading = substr (heading, 1, min (j-1, 24)); 200 call ioa_$nnl ("Destination for ^a = :", gcos_daemon_stat_$snumb); 201 call ios_$read_ptr (addr (destination), 24, j); 202 destination = substr (destination, 1, min (j-1, 24)); 203 end; 204 205 call ioa_$rsnnl ( /* fill in "snumb.absin" */ 206 ".q" 207 ||"^/set_epilogue_command ""dl [user absin]""" 208 ||"^/cdwd ^a" 209 ||"^/cwd ^a" 210 ||"^/gcos_abs_control 211 gcos ^a>^a.gcos -id ^a -dpo ""-he """"^a"""" -ds """"^a"""" -dl -q ^a"" -dpno ""-he """"^a"""" -ds """"^a"""" -dl -q ^a"" 212 dp -q ^a -he ""^a"" -ds ""^a"" -dl [user absout]" 213 ||"^/dl ^a>^a.gcos" 214 ||"^/logout -bf^/", 215 absin_mask, absin_char_count, 216 abs_data.home_dir, 217 abs_data.absentee_dir, 218 input_dir, 219 gcos_daemon_stat_$snumb, 220 unique_snumb, 221 heading, 222 destination, 223 char1, 224 heading, 225 destination, 226 char1, 227 char1, 228 heading, 229 destination, 230 input_dir, 231 gcos_daemon_stat_$snumb 232 ); 233 234 absin_name = rtrim (gcos_daemon_stat_$snumb)||".absin"; /* make absin file name */ 235 236 segment_acl.access_name = abs_data.user_name; /* prepare for acl call */ 237 segment_acl.modes = "111"b; 238 segment_acl.zero_pad = "0"b; 239 240 call hcs_$add_acl_entries (abs_data.absentee_dir, absin_name, addr (segment_acl), 1, code); /* set user's access */ 241 if code ^= 0 /* error setting access */ 242 then do; 243 call com_err_ (code, "gcos_queue_job_", "Error setting access on ^a>^a.absin", abs_data.absentee_dir, gcos_daemon_stat_$snumb); 244 call error_wrap_up; 245 go to RETURN; 246 end; 247 248 call adjust_bit_count_ (abs_data.absentee_dir, absin_name, "1"b, bit_count, code); /* set its bit count */ 249 if code ^= 0 /* error setting bit count on snumb.absin */ 250 then do; 251 call com_err_ (code, "gcos_queue_job_", "Error setting bit count on ^a>^a.absin", 252 abs_data.absentee_dir, gcos_daemon_stat_$snumb); 253 call error_wrap_up; 254 go to RETURN; 255 end; 256 257 /* QUEUE UP ABSENTEE JOB */ 258 259 if a_test_entry 260 then do; 261 call command_query_ (addr (query_info), answer, "gcos_queue_job_", "Do you want to submit ^a?", gcos_daemon_stat_$snumb); 262 if substr (answer, 1, 2) = "no" 263 then go to RETURN; 264 end; 265 266 priority = max (abs_data.priority_queue, gcos_daemon_stat_$max_priority); /* get effective max queue */ 267 if priority > abs_data.priority_queue /* requester's queue too high in priority */ 268 then call ioa_ ("Request for queue ^d placed in queue ^d", /* tell operator */ 269 abs_data.priority_queue, priority); 270 271 call ioa_$rsnnl ("absentee_^d.ms", char32, j, priority); /* construct message segment name */ 272 273 call message_segment_$get_message_count_file /* get present message count */ 274 (sysdir, char32, ms_count, code); 275 if code ^= 0 /* error getting count */ 276 then do; 277 call com_err_ (code, "gcos_queue_job_", "Error getting message count from absentee queue ^d", 278 abs_data.priority_queue); 279 call error_wrap_up; 280 go to RETURN; 281 end; 282 283 call message_segment_$add_file 284 (sysdir, char32, temp_ptr, message_bit_count, message_id, code); /* submit message */ 285 if code ^= 0 /* error submitting message */ 286 then do; 287 call com_err_ (code, "gcos_queue_job_", "error queueing job: queue = ^d, SNUMB = ^a", 288 abs_data.priority_queue, gcos_daemon_stat_$snumb); 289 call error_wrap_up; 290 go to RETURN; 291 end; 292 293 call hcs_$wakeup (whotab.abs_procid, whotab.abs_event, ev_message, code); /* signal absentee */ 294 if code = 1 /* signal didn't make it */ 295 then do; 296 call com_err_ (0, "gcos_queue_job_", "Signal to absentee for SNUMB #^a failed. 297 Request will be processed later", gcos_daemon_stat_$snumb); 298 code = 0; /* no actual error returned */ 299 end; 300 else /* absentee was signalled, print message */ 301 call ioa_ ("1 request signalled: ^d already queued", ms_count); 302 go to RETURN; 303 304 set_priority: entry (a_priority); 305 306 if a_priority gcos_daemon_stat_$high_priority 308 then call com_err_ (0, "gcos_queue_job_", "Attempt to set invalid priority: ^d", a_priority); 309 else 310 gcos_daemon_stat_$max_priority = a_priority; /* set maximum queue priority */ 311 return; 312 313 RETURN: 314 315 a_code = code; 316 317 return; 318 319 320 321 322 323 error_wrap_up: proc; 324 325 call hcs_$delentry_seg (absin_ptr, code); /* delete possible created absin file */ 326 327 call message_segment_$delete_file /* delete message if sent */ 328 (sysdir, char32, message_id, code); 329 330 code = 2; 331 332 return; 333 334 end error_wrap_up; 335 336 setup: proc; 337 338 rb (*) = 5; 339 destination = ""; 340 message_id = "0"b; 341 query_info.version = 2; 342 query_info.yes_or_no_sw = "1"b; 343 query_info.suppress_name_sw = "1"b; 344 end setup; 345 346 347 /* DECLARATIONS */ 348 /* ------------ */ 349 350 /* fixed bin */ 351 352 dcl ( 353 a_priority, /* maximum allowable queue priority */ 354 absentee_dir_len, /* character count of absentee dir name */ 355 absin_char_count, /* character count of absin file */ 356 gcos_daemon_stat_$high_priority ext, /* highest numerical legal priority */ 357 gcos_daemon_stat_$input_dir_len ext, /* length of input directory name */ 358 gcos_daemon_stat_$low_priority ext, /* lowest numerical legal priority */ 359 gcos_daemon_stat_$max_cpu_time ext, /* maximum cpu time for job */ 360 gcos_daemon_stat_$max_priority ext, 361 gcos_daemon_stat_$sysdir_len ext, /* length of "sysdir" directory name */ 362 group_id_len, /* character count of group id */ 363 j, /* random variable */ 364 message_bit_count, /* bit count of absentee message */ 365 ms_count, /* number of messages in absentee queue */ 366 priority, /* priority for which job will be queued */ 367 snumb_len, /* character count of snumb */ 368 unique_snumb_len, /* character count of snumb||"_"||unique_chars_ */ 369 user_name_len /* character count of user name */ 370 ) fixed bin aligned; 371 372 dcl ( 373 bit_count 374 ) fixed bin (24) aligned; 375 376 dcl ( 377 a_code, /* error code (argument) */ 378 code /* error code (internal) */ 379 ) fixed bin (35) aligned; 380 381 dcl rb (3) fixed bin (3) aligned; /* ring brackets */ 382 383 384 /* bit strings */ 385 386 dcl ( 387 a_test_entry, /* ON if daemon was brought up by user */ 388 init internal static init ("0"b) /* ON once per-process initialization is accomplished */ 389 ) bit (1) aligned; 390 391 dcl ( 392 message_id /* returned from adding message */ 393 ) bit (72) aligned; 394 dcl authrng (2) bit (72) aligned; 395 396 397 /* character strings */ 398 399 dcl char1 char (1) aligned; 400 401 dcl ( 402 answer /* answer from command query question */ 403 ) char (4) aligned; 404 405 dcl 406 ipc_message int static init ("login ") char (8); 407 408 dcl ( 409 destination, /* destination for dprinting and dpunching output */ 410 heading, /* heading for dprinting and dpunching output */ 411 unique_snumb 412 ) char (24) aligned; 413 dcl gcos_daemon_stat_$snumb ext char (6) aligned; 414 dcl ( 415 absin_name, /* ent name of absentee file */ 416 char32 /* random string */ 417 ) char (32) aligned; 418 419 dcl ( 420 gcos_daemon_stat_$input_dir ext, /* input directory name */ 421 gcos_daemon_stat_$sysdir ext, /* "sysdir" directory name */ 422 input_dir int static, 423 sysdir internal static /* "sysdir" directory name (internal) */ 424 ) char (168) aligned; 425 426 427 /* pointers */ 428 429 dcl ( 430 a_data_ptr, /* pointer to daemons' absentee data structure (argument) */ 431 absin_ptr, /* pointer to created "snumb.absin" segment */ 432 reqp ptr, /* pointer to absentee request structure */ 433 stat_whoptr internal static, /* static pointer to who table */ 434 temp_ptr internal static, /* pointer to temp segment in process dir */ 435 whoptr /* pointer to who-table */ 436 ) ptr aligned; 437 438 439 /* masks */ 440 441 dcl absin_mask char (1000) aligned based (absin_ptr); 442 443 dcl ev_message fixed bin (71) aligned based (addr (ipc_message)); /* for sending ascii */ 444 445 446 /* structures */ 447 448 dcl 1 segment_acl aligned, /* for setting user's access */ 449 2 access_name char (32) aligned, 450 2 modes bit (36) aligned, 451 2 zero_pad bit (36) aligned, 452 2 status_code fixed bin (35) aligned; 453 454 dcl 1 query_info aligned, /* for command query call */ 455 2 version fixed bin, 456 2 yes_or_no_sw bit (1) unaligned, /* answer must be yes or no */ 457 2 suppress_name_sw bit (1) unaligned, /* don't print prog name with "Please answer ... */ 458 2 codes (2) fixed bin (35); 459 460 461 /* built in functions */ 462 463 dcl ( 464 addr, 465 currentsize, 466 length, 467 max, 468 min, 469 null, 470 rtrim, 471 substr 472 ) builtin; 473 474 475 /* conditions */ 476 477 dcl ( 478 cleanup 479 ) condition; 480 481 482 /* include files */ 483 1 1 /* BEGIN INCLUDE FILE ... abs_message_format.incl.pl1 */ 1 2 1 3 /* Requires user_attributes.incl.pl1 */ 1 4 1 5 1 6 /****^ HISTORY COMMENTS: 1 7* 1) change(86-03-01,Gilcrease), approve(86-03-27,MCR7370), 1 8* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 1 9* Modified 740723 by PG to add AIM info 1 10* Modified April 1978 by T. Casey to add much new info and change version number to 4 1 11* Modified November 1978 by T. Casey to add secondary_ok 1 12* Modified June 1981 by T. Casey for MR9.0 to make max_cpu_time fixed bin (35) (was fixed bin (17) aligned) 1 13* 2) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 1 14* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 1 15* Add truncate_absout and restarted bits for -truncate absout. SCP 6297. 1 16* 3) change(86-12-08,GDixon), approve(87-07-16,MCR7741), 1 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 1 18* Changed structure under request.abs_attributes to use like structure in 1 19* abs_attributes.incl.pl1. This allows the same attributes to be used 1 20* in pit.incl.pl1 and user_table_entry.incl.pl1 as well as this include 1 21* file. 1 22* 4) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 1 23* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 1 24* Added the version 6 elements: home_dir, init_proc, initial_ring, 1 25* len_homedir, len_initproc. SCP6367 1 26* 5) change(88-07-29,Parisek), approve(88-07-29,PBF7849), 1 27* audit(88-07-29,Lippard), install(88-08-01,MR12.2-1072): 1 28* Place the elements "home_dir", and "init_proc" before the varying length 1 29* element "args" in the stucture. Since "args" length can grow varyingly, 1 30* it should remain at the bottom of the structure. 1 31* END HISTORY COMMENTS */ 1 32 1 33 1 34 dcl abs_message_version_6 fixed bin int static options (constant) init (6); 1 35 1 36 dcl 1 request aligned based (reqp), /* format of absentee request */ 1 37 /* the pointer, reqp, must be declared in the including program */ 1 38 2 request_header like queue_msg_hdr, /* 62 words */ 1 39 2 request_version fixed bin, /* identification of version of abs request */ 1 40 2 len_name fixed bin, /* length of name */ 1 41 2 arg_count fixed bin, /* number of arguments to input segment */ 1 42 2 len_args fixed bin, /* length of string containing arguments to input segment */ 1 43 2 len_output fixed bin, /* length of output pathname */ 1 44 2 len_proxy fixed bin, /* length of proxy name */ 1 45 2 len_resource fixed bin, /* length of resource description */ 1 46 2 len_sender fixed bin, /* length of sender */ 1 47 2 len_comment fixed bin, /* length of comment */ 1 48 2 len_vpad fixed bin, /* length of spare variable length string */ 1 49 2 initial_ring fixed bin, /* initial ring number request */ 1 50 2 len_homedir fixed bin, /* length of home_dir */ 1 51 2 len_initproc fixed bin, /* length of login responder string */ 1 52 2 request_pad (5) fixed bin, /* leave room for stuff we did not think of this time */ 1 53 2 deferred_time fixed bin (71), /* clock time until which this request should be held + not run */ 1 54 2 max_cpu_time fixed bin (35), /* user given cpu limit in seconds */ 1 55 2 requested_authorization bit (72), /* request should be run at this authorization */ 1 56 2 abs_attributes aligned like user_abs_attributes, /* include user_abs_attributes.incl.pl1 */ 1 57 2 abs_status_flags, /* bits giving reasons for job's status */ 1 58 3 operator_deferred_until_time bit (1) unaligned, 1 59 3 operator_deferred_indefinitely bit (1) unaligned, 1 60 3 resources_unavailable bit (1) unaligned, 1 61 3 cpu_time_limit bit (1) unaligned, 1 62 3 queue_limit bit (1) unaligned, 1 63 3 user_limit bit (1) unaligned, 1 64 3 load_control bit (1) unaligned, 1 65 3 status_pad bit (29) unaligned, 1 66 1 67 2 name char (0 refer (request.len_name)) aligned, /* personal name of requestor */ 1 68 2 output_file char (0 refer (request.len_output)) aligned, /* absolute pathname of output file */ 1 69 2 proxy_name char (0 refer (request.len_proxy)) aligned, /* name of user for whom submitted */ 1 70 2 resource char (0 refer (request.len_resource)) aligned, /* resource description */ 1 71 2 sender char (0 refer (request.len_sender)) aligned, /* name of RJE station or other sender */ 1 72 2 comment char (0 refer (request.len_comment)) aligned, /* message to operator, or anything else user puts in it */ 1 73 2 home_dir char (0 refer (request.len_homedir)) aligned,/* initial home dir */ 1 74 2 init_proc char (0 refer (request.len_initproc)) aligned, 1 75 /* name of login responder */ 1 76 2 vpad char (0 refer (request.len_vpad)) aligned, /* for the thing we didn't think of this time */ 1 77 2 arg_lengths (0 refer (request.arg_count)) fixed bin, /* array of argument lengths */ 1 78 2 args char (0 refer (request.len_args)) aligned; /* string containing arguments to control segment */ 1 79 1 80 /* END INCLUDE FILE ... abs_message_format.incl.pl1 */ 484 485 2 1 /* BEGIN gcos_abs_data include file */ 2 2 2 3 dcl abs_data_ptr ptr int static; /* pointer to absentee data */ 2 4 2 5 dcl abs_data_len int static fixed bin aligned; /* bit length of data structure */ 2 6 2 7 dcl 1 abs_data aligned based (abs_data_ptr), /* mask for data */ 2 8 2 absentee_dir char (168) aligned, /* directory to which to direct absentee output */ 2 9 2 home_dir char (168) aligned, /* home directory of absentee user */ 2 10 2 input_segment_name char (32) aligned, /* name of created input segment */ 2 11 2 user_name char (32) aligned, /* proxy name */ 2 12 2 priority_queue fixed bin aligned, /* queue number for absentee and output */ 2 13 2 absentee_options aligned, /* ON if option specified */ 2 14 3 deferral_switch bit (1) unaligned, /* ON if job deferral specified */ 2 15 2 absentee_data aligned, 2 16 3 deferral fixed bin (71) aligned, /* time job deferred to */ 2 17 2 end_abs_data fixed bin aligned; 2 18 2 19 dcl data_blank bit (abs_data_len) aligned based (abs_data_ptr); 2 20 2 21 /* END gcos_abs_data include file */ 486 487 3 1 /* BEGIN INCLUDE FILE ... queue_msg_hdr.incl.pl1 */ 3 2 3 3 /* This is the message header used for standard system queue messages, namely: 3 4* IO daemon requests, absentee requests, retrieval requests. 3 5**/ 3 6 3 7 /* Written by Jerry Whitmore, Spring 1978. 3 8* Modified by T. Casey, November 1978, to add values for state. 3 9* Modified by R. Kovalcik, June 1982, defer_until_process_terminataion 3 10**/ 3 11 3 12 dcl 1 queue_msg_hdr based aligned, /* standard header for all system queue messages */ 3 13 2 msg_time fixed bin (71), /* date and time of request */ 3 14 2 hdr_version fixed bin, /* version of this declaration */ 3 15 2 dirname char (168), /* directory name */ 3 16 2 ename char (32), /* entry name of file requested */ 3 17 2 message_type fixed bin, /* message format descriptor */ 3 18 /* 0 = absentee request */ 3 19 /* 1 = print request */ 3 20 /* 2 = punch request */ 3 21 /* 3 = tape request */ 3 22 /* 4 = retrieval request */ 3 23 2 bit_flags, 3 24 3 delete_sw bit (1) unal, /* delete file when done */ 3 25 3 notify bit (1) unal, /* user wants to be notified */ 3 26 3 defer_until_process_termination bit (1) unal, /* don't process request until process terminates */ 3 27 3 padding bit (33) unal, 3 28 2 state fixed bin, /* stage of processing after being queued: 3 29* 0 = initial unprocessed state, 1 = deferred, 3 30* 2 = in state transition, 3 = eligible, 4 = running, 3 31* 5 = bumped, 6 = deferred_until_process_termination */ 3 32 2 orig_queue fixed bin, /* queue the request was submitted to */ 3 33 2 std_length fixed bin, /* length of std msg for this type */ 3 34 2 dupt_lock bit (36) aligned, /* lock word for defer until process termination */ 3 35 2 hdr_pad (3) fixed bin; 3 36 3 37 dcl queue_msg_hdr_version_1 fixed bin int static options (constant) init (1); /* current version of the header */ 3 38 3 39 /* Values for queue_msg_hdr.state */ 3 40 3 41 dcl STATE_UNPROCESSED fixed bin int static options (constant) init (0); 3 42 dcl STATE_DEFERRED fixed bin int static options (constant) init (1); 3 43 dcl STATE_TRANSITION fixed bin int static options (constant) init (2); 3 44 dcl STATE_ELIGIBLE fixed bin int static options (constant) init (3); 3 45 dcl STATE_RUNNING fixed bin int static options (constant) init (4); 3 46 dcl STATE_BUMPED fixed bin int static options (constant) init (5); 3 47 dcl STATE_DUPT fixed bin int static options (constant) init (6); 3 48 3 49 /* END INCLUDE FILE ... queue_msg_hdr.incl.pl1 */ 488 489 4 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 4 2 4 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 4 /* */ 4 5 /* This include file describes the attributes of an absentee job. It is */ 4 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 4 7 /* and PIT.incl.pl1. */ 4 8 /* */ 4 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 10 4 11 /****^ HISTORY COMMENTS: 4 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 4 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 14* Separated abs_attributes from the request structure 4 15* (abs_message_format.incl.pl1) so that the identical structure could be 4 16* used in the ute structure (user_table_entry.incl.pl1). 4 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 4 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 19* Added ABS_ATTRIBUTE_NAMES array. 4 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 4 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 4 22* Added the no_start_up flag. SCP6367 4 23* END HISTORY COMMENTS */ 4 24 4 25 dcl 1 user_abs_attributes aligned based, 4 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 4 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 4 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 4 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 4 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 4 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 4 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 4 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 4 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 4 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 4 36 2 attributes_pad bit (26) unaligned; 4 37 4 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 4 39 "restartable", 4 40 "user_deferred_until_time", 4 41 "proxy", 4 42 "set_bit_cnt", 4 43 "time_in_gmt", 4 44 "user_deferred_indefinitely", 4 45 "secondary_ok", 4 46 "truncate_absout", 4 47 "restarted", 4 48 "no_start_up"); 4 49 4 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 4 51 490 491 5 1 /* BEGIN INCLUDE FILE ... whotab.incl.pl1 */ 5 2 5 3 /* Modified 740723 by PG to add security info */ 5 4 /* Modified April 1976 by T. Casey to add shift and shift start and end times */ 5 5 /* Modified May 1979 by T. Casey for MR7.0a to add foreground absentee variables */ 5 6 /* Modified June 1981 by E. N. Kittlitz to add n_rate_structures. */ 5 7 /* Modified December 1981 by E. N. Kittlitz to expand header. */ 5 8 /* Modified 84-11-14 by E. A. Ranzenbach to add "session" fiedld in place of obsolete system ID... */ 5 9 5 10 dcl 1 whotab based (whoptr) aligned, 5 11 2 mxusers fixed bin, /* max. number of users on system */ 5 12 2 n_users fixed bin, /* current number of users */ 5 13 2 mxunits fixed bin, /* maximun "load units" allowed */ 5 14 2 n_units fixed bin, /* current load */ 5 15 2 timeup fixed bin (71), /* time system was started */ 5 16 2 session char (8), /* AS state, same as anstbl.session */ 5 17 2 nextsd fixed bin (71), /* time we will shutdown */ 5 18 2 until fixed bin (71), /* projected time we start up again */ 5 19 2 lastsd fixed bin (71), /* time of last crash or shutdown */ 5 20 2 erfno char (8), /* if a crash, the error number */ 5 21 2 obsolete_why char (32), /* reason for last shutdown */ 5 22 2 installation_id char (32), /* name of installation */ 5 23 2 obsolete_message char (32), /* message for all users */ 5 24 2 abs_event fixed bin (71), /* event channel associated with absentee */ 5 25 2 abs_procid bit (36) aligned, /* process to whom messages about absentee are signalled */ 5 26 2 max_abs_users fixed bin, /* max number of absentee users */ 5 27 2 abs_users fixed bin, /* number of absentee users logged-in */ 5 28 2 n_daemons fixed bin, /* Number of daemon users logged in */ 5 29 2 request_channel fixed bin (71), /* System master channel for requests to AS. */ 5 30 2 request_process_id bit (36), /* Process ID of request dispatcher */ 5 31 2 shift fixed bin, /* current shift (copied from anstbl, for users to see) */ 5 32 2 next_shift_change_time fixed bin (71), /* time current shift ends */ 5 33 2 last_shift_change_time fixed bin (71), /* time current shift started */ 5 34 2 fg_abs_users fixed bin (17) unal, /* number of foreground absentee users */ 5 35 2 n_rate_structures fixed bin (9) unsigned unal, /* number of rate_structures defined at bootload */ 5 36 2 pad1 bit (9) unal, 5 37 2 pad (3) fixed bin, 5 38 2 version fixed bin, /* structure version */ 5 39 2 header_size fixed bin, /* length of header in words */ 5 40 2 entry_size fixed bin, /* length of entry in words */ 5 41 /* laste_adjust is used only by Answering Service programs */ 5 42 2 laste_adjust fixed bin, /* count of 32 wd blocks in hdr from header_extension_mbz1 */ 5 43 2 laste fixed bin, /* index of last entry in use (includes laste_adjust) */ 5 44 2 freep fixed bin (18) unsigned, /* index of first free entry. chained thru "chain" */ 5 45 5 46 /* whotab header extension: The header is extended from 64 words by 5 47* annexing whole user entries from the 'e' array. Each 'e' entry is 32 words 5 48* long. Each annexed block has its first word set to zero, indicating that no user entry is 5 49* present. This allows existing programs to function with old definitions of 5 50* whotab. Obviously no new header field can be more than 31 contiguous words in 5 51* length. In the Answering Service, all programs using whotab must be compiled 5 52* with the latest version. Only lg_ctl_ uses laste_adjust. */ 5 53 5 54 2 header_extension_mbz1 fixed bin, /* location 100o */ 5 55 2 n_abs (4) fixed bin, /* number of processes from each background queue */ 5 56 2 abs_qres (4) fixed bin, /* number of absentee positions reserved for each queue */ 5 57 2 abs_cpu_limit (4) fixed bin (35), /* current absentee cpu limits */ 5 58 2 abs_control, /* see absentee_user_table */ 5 59 3 mnbz bit (1) unal, /* must not be zero */ 5 60 3 abs_maxu_auto bit (1) unal, /* 1 if automatic */ 5 61 3 abs_maxq_auto bit (1) unal, /* 1 if automatic */ 5 62 3 abs_qres_auto bit (1) unal, /* 1 if automatic */ 5 63 3 abs_cpu_limit_auto bit (1) unal, /* 1 if automatic */ 5 64 3 queue_dropped (-1:4) bit (1) unal, /* 1 if queue dropped */ 5 65 3 abs_up bit (1) unal, /* 1 if absentee facility is running */ 5 66 3 abs_stopped bit (1) unal, /* 1 if absentee facility is stopped */ 5 67 3 control_pad bit (23) unal, 5 68 2 installation_request_channel fixed bin (71), /* IPC channel for install command */ 5 69 2 installation_request_pid bit (36), /* installation process identifier */ 5 70 2 sysid char (32), /* current system name */ 5 71 2 header_extension_pad1 (7) fixed bin, /* pad to size of e element, offset 137o */ 5 72 2 header_extension_mbz2 fixed bin, /* offset 140o */ 5 73 2 message char (124), /* message for all users */ 5 74 2 header_extension_mbz3 fixed bin, /* offset 200o */ 5 75 2 why char (124), /* reason for last shutdown */ 5 76 2 e (1000), /* offset 240o */ 5 77 3 active fixed bin, /* nonzero means logged in */ 5 78 3 person char (28) aligned, /* person name */ 5 79 3 project char (28), /* project id */ 5 80 3 anon fixed bin, /* 1 if anonymous user */ 5 81 3 padding fixed bin (71), 5 82 3 timeon fixed bin (71), /* time of login */ 5 83 3 units fixed bin, /* load units */ 5 84 3 stby fixed bin, /* 1 if stby */ 5 85 3 idcode char (4), /* tty id code */ 5 86 3 chain fixed bin (18) unsigned, /* chain for free list */ 5 87 3 proc_type fixed bin, /* 1 = interactive, 2 = absentee, 3 = daemon */ 5 88 3 group char (8), /* party-line group */ 5 89 3 fg_abs bit (1) unal, /* "1"b if foreground absentee user */ 5 90 3 disconnected bit (1) unaligned, /* "1"b if process is disconnected */ 5 91 3 suspended bit (1) unaligned, /* "1"b if process is suspended */ 5 92 3 pad2 bit (33) unal, 5 93 3 cant_bump_until fixed bin (71), /* protected from primary bump till here */ 5 94 3 process_authorization bit (72); /* access authorization of process */ 5 95 5 96 dcl WHOTAB_VERSION_1 fixed bin init (1) static options (constant); 5 97 5 98 /* END INCLUDE FILE ... whotab.incl.pl1 */ 492 493 494 495 /* external entries */ 496 497 dcl adjust_bit_count_ ext entry (char (168) aligned, char (32) aligned, bit (1) aligned, 498 fixed bin (24) aligned, fixed bin (35) aligned); 499 500 dcl com_err_ ext entry 501 options (variable); 502 503 dcl command_query_ ext entry 504 options (variable); 505 506 dcl get_group_id_ ext entry 507 returns (char (32) aligned); 508 509 dcl hcs_$add_acl_entries ext entry 510 (char (*) aligned, char (*) aligned, ptr aligned, fixed bin aligned, fixed bin (35) aligned); 511 dcl hcs_$delentry_seg ext entry 512 (ptr aligned, fixed bin (35) aligned); 513 514 dcl hcs_$initiate ext entry 515 (char (*) aligned, char (*) aligned, char (*) aligned, fixed bin aligned, fixed bin aligned, 516 ptr aligned, fixed bin (35) aligned); 517 518 dcl hcs_$make_seg ext entry 519 (char (*) aligned, char (*) aligned, char (*) aligned, fixed bin (5) aligned, ptr aligned, 520 fixed bin (35) aligned); 521 522 dcl hcs_$set_ring_brackets ext entry (char (*) aligned, char (*) aligned, (3) fixed bin (3) aligned, 523 fixed bin (35) aligned); 524 525 dcl hcs_$truncate_seg ext entry 526 (ptr aligned, fixed bin aligned, fixed bin (35) aligned); 527 528 dcl hcs_$wakeup ext entry (bit (*) aligned, fixed bin (71), fixed bin (71), fixed bin (35) aligned); 529 530 dcl ioa_ ext entry 531 options (variable); 532 533 dcl ioa_$nnl ext entry 534 options (variable); 535 536 dcl ioa_$rsnnl ext entry 537 options (variable); 538 539 dcl ios_$read_ptr ext entry 540 (ptr aligned, fixed bin aligned, fixed bin aligned); 541 542 dcl message_segment_$add_file ext entry 543 (char (*) aligned, char (*) aligned, ptr, fixed bin aligned, bit (*) aligned, fixed bin (35) aligned); 544 545 dcl message_segment_$delete_file ext entry 546 (char (*) aligned, char (*) aligned, bit (72) aligned, fixed bin (35) aligned); 547 548 dcl message_segment_$get_message_count_file ext entry 549 (char (*) aligned, char (*) aligned, fixed bin aligned, fixed bin (35) aligned); 550 551 dcl unique_chars_ entry (bit(*)) returns(char(15)); 552 dcl unique_bits_ entry() returns(bit(70)); 553 dcl user_info_$authorization_range entry ((2) bit (72) aligned); 554 555 end gcos_queue_job_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/01/88 1029.5 gcos_queue_job_.pl1 >spec>install>MR12.2-1072>gcos_queue_job_.pl1 484 1 08/01/88 1028.5 abs_message_format.incl.pl1 >spec>install>MR12.2-1072>abs_message_format.incl.pl1 486 2 03/27/82 0439.3 gcos_abs_data.incl.pl1 >ldd>include>gcos_abs_data.incl.pl1 488 3 08/31/82 1636.3 queue_msg_hdr.incl.pl1 >ldd>include>queue_msg_hdr.incl.pl1 490 4 07/14/88 2015.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.incl.pl1 492 5 01/18/85 0953.2 whotab.incl.pl1 >ldd>include>whotab.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. a_code parameter fixed bin(35,0) dcl 376 set ref 55 313* a_data_ptr parameter pointer dcl 429 ref 55 99 a_priority parameter fixed bin(17,0) dcl 352 set ref 304 306 306 306* 309 a_test_entry parameter bit(1) dcl 386 ref 55 193 259 abs_attributes 125 based structure level 2 dcl 1-36 abs_data based structure level 1 dcl 2-7 abs_data_ptr 000144 internal static pointer dcl 2-3 set ref 99* 112 113 139 142 144 144 149 151 174 178 183 186 191 205 205 236 240 243 248 251 266 267 267 277 287 abs_event 50 based fixed bin(71,0) level 2 dcl 5-10 set ref 293* abs_message_version_6 constant fixed bin(17,0) initial dcl 1-34 ref 105 abs_procid 52 based bit(36) level 2 dcl 5-10 set ref 293* absentee_data 146 based structure level 2 dcl 2-7 absentee_dir based char(168) level 2 dcl 2-7 set ref 112 113 139 174* 178* 183* 186* 205* 240* 243* 248* 251* absentee_dir_len 000100 automatic fixed bin(17,0) dcl 352 set ref 112* 113 138 139 absentee_options 145 based structure level 2 dcl 2-7 absin_char_count 000101 automatic fixed bin(17,0) dcl 352 set ref 205* absin_mask based char(1000) dcl 441 set ref 205* absin_name 000152 automatic char(32) dcl 414 set ref 234* 240* 248* absin_ptr 000172 automatic pointer dcl 429 set ref 174* 176 205 325* access_name 000200 automatic char(32) level 2 dcl 448 set ref 236* addr builtin function dcl 463 ref 198 198 201 201 240 240 261 261 293 adjust_bit_count_ 000170 constant entry external dcl 497 ref 248 answer 000127 automatic char(4) dcl 401 set ref 261* 262 arg_count 100 based fixed bin(17,0) level 2 dcl 1-36 set ref 116* 117 167 arg_lengths based fixed bin(17,0) array level 2 dcl 1-36 set ref 117* authrng 000122 automatic bit(72) array dcl 394 set ref 164* 165 bit_count 000112 automatic fixed bin(24,0) dcl 372 set ref 248* char1 000126 automatic char(1) dcl 399 set ref 191* 205* 205* 205* char32 000162 automatic char(32) dcl 414 set ref 108* 109 111 271* 273* 283* 327* cleanup 000220 stack reference condition dcl 477 ref 86 code 000113 automatic fixed bin(35,0) dcl 376 set ref 63* 66* 73* 76* 89* 90 92* 98* 174* 178* 183* 185 186* 240* 241 243* 248* 249 251* 273* 275 277* 283* 285 287* 293* 294 298* 313 325* 327* 330* com_err_ 000172 constant entry external dcl 500 ref 66 76 92 178 186 243 251 277 287 296 306 command_query_ 000174 constant entry external dcl 503 ref 261 currentsize builtin function dcl 463 ref 167 deferral 146 based fixed bin(71,0) level 3 dcl 2-7 ref 144 deferral_switch 145 based bit(1) level 3 packed packed unaligned dcl 2-7 ref 142 144 deferred_time 120 based fixed bin(71,0) level 2 dcl 1-36 set ref 144* 146* destination 000130 automatic char(24) dcl 408 set ref 201 201 202* 202 205* 205* 205* 339* dirname 3 based char(168) level 3 dcl 1-36 set ref 113* ename 55 based char(32) level 3 dcl 1-36 set ref 114* ev_message based fixed bin(71,0) dcl 443 set ref 293* gcos_daemon_stat_$high_priority 000146 external static fixed bin(17,0) dcl 352 ref 306 gcos_daemon_stat_$input_dir 000164 external static char(168) dcl 419 ref 70 gcos_daemon_stat_$input_dir_len 000150 external static fixed bin(17,0) dcl 352 ref 70 gcos_daemon_stat_$low_priority 000152 external static fixed bin(17,0) dcl 352 ref 306 gcos_daemon_stat_$max_cpu_time 000154 external static fixed bin(17,0) dcl 352 ref 154 gcos_daemon_stat_$max_priority 000156 external static fixed bin(17,0) dcl 352 set ref 266 309* gcos_daemon_stat_$snumb 000162 external static char(6) dcl 413 set ref 114 123 132 174 178* 183 186* 193 197* 200* 205* 205* 234 243* 251* 261* 287* 296* gcos_daemon_stat_$sysdir 000166 external static char(168) dcl 419 ref 71 gcos_daemon_stat_$sysdir_len 000160 external static fixed bin(17,0) dcl 352 ref 71 get_group_id_ 000176 constant entry external dcl 506 ref 108 group_id_len 000102 automatic fixed bin(17,0) dcl 352 set ref 109* 110 111 hcs_$add_acl_entries 000200 constant entry external dcl 509 ref 240 hcs_$delentry_seg 000202 constant entry external dcl 511 ref 325 hcs_$initiate 000204 constant entry external dcl 514 ref 73 hcs_$make_seg 000206 constant entry external dcl 518 ref 63 174 hcs_$set_ring_brackets 000210 constant entry external dcl 522 ref 183 hcs_$truncate_seg 000212 constant entry external dcl 525 ref 89 hcs_$wakeup 000214 constant entry external dcl 528 ref 293 hdr_version 2 based fixed bin(17,0) level 3 dcl 1-36 set ref 106* heading 000136 automatic char(24) dcl 408 set ref 193* 198 198 199* 199 205* 205* 205* home_dir 52 based char(168) level 2 dcl 2-7 set ref 205* init 000010 internal static bit(1) initial dcl 386 set ref 60 80* initial_ring 110 based fixed bin(17,0) level 2 dcl 1-36 set ref 160* input_dir 000014 internal static char(168) dcl 419 set ref 70* 205* 205* ioa_ 000216 constant entry external dcl 530 ref 267 300 ioa_$nnl 000220 constant entry external dcl 533 ref 197 200 ioa_$rsnnl 000222 constant entry external dcl 536 ref 191 205 271 ios_$read_ptr 000224 constant entry external dcl 539 ref 198 201 ipc_message 000012 internal static char(8) initial packed unaligned dcl 405 set ref 293 j 000103 automatic fixed bin(17,0) dcl 352 set ref 191* 198* 199 201* 202 271* len_args 101 based fixed bin(17,0) level 2 dcl 1-36 set ref 118* 167 len_comment 106 based fixed bin(17,0) level 2 dcl 1-36 set ref 117 117 121* 167 len_homedir 111 based fixed bin(17,0) level 2 dcl 1-36 set ref 117 117 161* 167 len_initproc 112 based fixed bin(17,0) level 2 dcl 1-36 set ref 117 117 162* 167 len_name 77 based fixed bin(17,0) level 2 dcl 1-36 set ref 110* 111 117 117 139 151 167 len_output 102 based fixed bin(17,0) level 2 dcl 1-36 set ref 117 117 138* 139 151 167 len_proxy 103 based fixed bin(17,0) level 2 dcl 1-36 set ref 117 117 150* 151 167 len_resource 104 based fixed bin(17,0) level 2 dcl 1-36 set ref 117 117 119* 167 len_sender 105 based fixed bin(17,0) level 2 dcl 1-36 set ref 117 117 120* 167 len_vpad 107 based fixed bin(17,0) level 2 dcl 1-36 set ref 117 117 122* 167 length builtin function dcl 463 ref 109 112 126 132 149 max builtin function dcl 463 ref 266 max_cpu_time 122 based fixed bin(35,0) level 2 dcl 1-36 set ref 154* message_bit_count 000104 automatic fixed bin(17,0) dcl 352 set ref 168* 283* message_id 000120 automatic bit(72) dcl 391 set ref 283* 327* 340* message_segment_$add_file 000226 constant entry external dcl 542 ref 283 message_segment_$delete_file 000230 constant entry external dcl 545 ref 327 message_segment_$get_message_count_file 000232 constant entry external dcl 548 ref 273 min builtin function dcl 463 ref 199 202 modes 10 000200 automatic bit(36) level 2 dcl 448 set ref 237* ms_count 000105 automatic fixed bin(17,0) dcl 352 set ref 273* 300* name 127 based char level 2 dcl 1-36 set ref 111* null builtin function dcl 463 ref 64 74 176 output_file based char level 2 dcl 1-36 set ref 139* priority 000106 automatic fixed bin(17,0) dcl 352 set ref 266* 267 267* 271* priority_queue 144 based fixed bin(17,0) level 2 dcl 2-7 set ref 191* 266 267 267* 277* 287* proxy 125(02) based bit(1) level 3 packed packed unaligned dcl 1-36 set ref 152* proxy_name based char level 2 dcl 1-36 set ref 151* query_info 000213 automatic structure level 1 dcl 454 set ref 261 261 queue_msg_hdr based structure level 1 dcl 3-12 queue_msg_hdr_version_1 constant fixed bin(17,0) initial dcl 3-37 ref 106 rb 000114 automatic fixed bin(3,0) array dcl 381 set ref 183* 338* reqp 000174 automatic pointer dcl 429 set ref 101* 105 106 110 111 113 114 116 117 118 119 120 121 122 138 139 142 144 146 150 151 152 154 156 158 160 161 162 165 167 167 168 request based structure level 1 dcl 1-36 set ref 167 request_header based structure level 2 dcl 1-36 request_version 76 based fixed bin(17,0) level 2 dcl 1-36 set ref 105* requested_authorization 123 based bit(72) level 2 dcl 1-36 set ref 165* restartable 125 based bit(1) level 3 packed packed unaligned dcl 1-36 set ref 158* rtrim builtin function dcl 463 ref 109 112 114 123 126 132 139 149 174 183 234 segment_acl 000200 automatic structure level 1 dcl 448 set ref 240 240 set_bit_cnt 125(03) based bit(1) level 3 packed packed unaligned dcl 1-36 set ref 156* snumb_len 000107 automatic fixed bin(17,0) dcl 352 set ref 132* 133 133 stat_whoptr 000140 internal static pointer dcl 429 set ref 73* 74 100 std_length 71 based fixed bin(17,0) level 3 dcl 1-36 set ref 167* 168 substr builtin function dcl 463 ref 70 71 111 113 133 133 139 151 199 202 262 suppress_name_sw 1(01) 000213 automatic bit(1) level 2 packed packed unaligned dcl 454 set ref 343* sysdir 000066 internal static char(168) dcl 419 set ref 71* 73* 273* 283* 327* temp_ptr 000142 internal static pointer dcl 429 set ref 63* 64 89* 101 283* unique_bits_ 000236 constant entry external dcl 552 ref 123 123 unique_chars_ 000234 constant entry external dcl 551 ref 123 unique_snumb 000144 automatic char(24) dcl 408 set ref 123* 126 133* 133 133 139 205* unique_snumb_len 000110 automatic fixed bin(17,0) dcl 352 set ref 126* 128 133 135* 138 user_abs_attributes based structure level 1 dcl 4-25 user_deferred_until_time 125(01) based bit(1) level 3 packed packed unaligned dcl 1-36 set ref 142* user_info_$authorization_range 000240 constant entry external dcl 553 ref 164 user_name 134 based char(32) level 2 dcl 2-7 ref 149 151 236 user_name_len 000111 automatic fixed bin(17,0) dcl 352 set ref 149* 150 151 version 000213 automatic fixed bin(17,0) level 2 dcl 454 set ref 341* whoptr 000176 automatic pointer dcl 429 set ref 100* 293 293 whotab based structure level 1 dcl 5-10 yes_or_no_sw 1 000213 automatic bit(1) level 2 packed packed unaligned dcl 454 set ref 342* zero_pad 11 000200 automatic bit(36) level 2 dcl 448 set ref 238* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 4-38 STATE_BUMPED internal static fixed bin(17,0) initial dcl 3-46 STATE_DEFERRED internal static fixed bin(17,0) initial dcl 3-42 STATE_DUPT internal static fixed bin(17,0) initial dcl 3-47 STATE_ELIGIBLE internal static fixed bin(17,0) initial dcl 3-44 STATE_RUNNING internal static fixed bin(17,0) initial dcl 3-45 STATE_TRANSITION internal static fixed bin(17,0) initial dcl 3-43 STATE_UNPROCESSED internal static fixed bin(17,0) initial dcl 3-41 WHOTAB_VERSION_1 internal static fixed bin(17,0) initial dcl 5-96 abs_data_len internal static fixed bin(17,0) dcl 2-5 data_blank based bit dcl 2-19 NAMES DECLARED BY EXPLICIT CONTEXT. RETURN 003313 constant label dcl 313 ref 67 77 93 180 188 245 254 262 280 290 302 error_wrap_up 003320 constant entry internal dcl 323 ref 86 244 253 279 289 gcos_queue_job_ 000432 constant entry external dcl 55 set_priority 003240 constant entry external dcl 304 setup 003370 constant entry internal dcl 336 ref 59 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4016 4260 3422 4026 Length 4660 3422 242 363 374 136 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gcos_queue_job_ 386 external procedure is an external procedure. on unit on line 86 64 on unit error_wrap_up 88 internal procedure is called by several nonquick procedures. setup internal procedure shares stack frame of external procedure gcos_queue_job_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 init gcos_queue_job_ 000012 ipc_message gcos_queue_job_ 000014 input_dir gcos_queue_job_ 000066 sysdir gcos_queue_job_ 000140 stat_whoptr gcos_queue_job_ 000142 temp_ptr gcos_queue_job_ 000144 abs_data_ptr gcos_queue_job_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gcos_queue_job_ 000100 absentee_dir_len gcos_queue_job_ 000101 absin_char_count gcos_queue_job_ 000102 group_id_len gcos_queue_job_ 000103 j gcos_queue_job_ 000104 message_bit_count gcos_queue_job_ 000105 ms_count gcos_queue_job_ 000106 priority gcos_queue_job_ 000107 snumb_len gcos_queue_job_ 000110 unique_snumb_len gcos_queue_job_ 000111 user_name_len gcos_queue_job_ 000112 bit_count gcos_queue_job_ 000113 code gcos_queue_job_ 000114 rb gcos_queue_job_ 000120 message_id gcos_queue_job_ 000122 authrng gcos_queue_job_ 000126 char1 gcos_queue_job_ 000127 answer gcos_queue_job_ 000130 destination gcos_queue_job_ 000136 heading gcos_queue_job_ 000144 unique_snumb gcos_queue_job_ 000152 absin_name gcos_queue_job_ 000162 char32 gcos_queue_job_ 000172 absin_ptr gcos_queue_job_ 000174 reqp gcos_queue_job_ 000176 whoptr gcos_queue_job_ 000200 segment_acl gcos_queue_job_ 000213 query_info gcos_queue_job_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this call_int_other return_mac enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. adjust_bit_count_ com_err_ command_query_ get_group_id_ hcs_$add_acl_entries hcs_$delentry_seg hcs_$initiate hcs_$make_seg hcs_$set_ring_brackets hcs_$truncate_seg hcs_$wakeup ioa_ ioa_$nnl ioa_$rsnnl ios_$read_ptr message_segment_$add_file message_segment_$delete_file message_segment_$get_message_count_file unique_bits_ unique_chars_ user_info_$authorization_range THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. gcos_daemon_stat_$high_priority gcos_daemon_stat_$input_dir gcos_daemon_stat_$input_dir_len gcos_daemon_stat_$low_priority gcos_daemon_stat_$max_cpu_time gcos_daemon_stat_$max_priority gcos_daemon_stat_$snumb gcos_daemon_stat_$sysdir gcos_daemon_stat_$sysdir_len LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 55 000426 59 000437 60 000440 63 000443 64 000504 66 000511 67 000540 70 000541 71 000546 73 000553 74 000616 76 000623 77 000652 80 000653 86 000655 89 000677 90 000713 92 000715 93 000745 98 000746 99 000747 100 000754 101 000756 105 000760 106 000763 108 000765 109 000773 110 001005 111 001007 112 001012 113 001026 114 001031 116 001061 117 001063 118 001151 119 001152 120 001153 121 001154 122 001155 123 001156 126 001244 128 001257 132 001261 133 001264 135 001314 138 001317 139 001323 142 001403 144 001412 146 001417 149 001421 150 001433 151 001434 152 001453 154 001455 156 001457 158 001461 160 001463 161 001465 162 001466 164 001467 165 001475 167 001501 168 001564 174 001566 176 001655 178 001662 180 001722 183 001723 185 002000 186 002003 188 002043 191 002044 193 002073 197 002105 198 002125 199 002144 200 002154 201 002177 202 002216 205 002226 234 002336 236 002367 237 002374 238 002376 240 002377 241 002433 243 002435 244 002475 245 002501 248 002502 249 002523 251 002525 253 002565 254 002571 259 002572 261 002576 262 002640 266 002644 267 002653 271 002677 273 002727 275 002754 277 002756 279 003013 280 003017 283 003020 285 003055 287 003057 289 003120 290 003124 293 003125 294 003152 296 003155 298 003212 299 003213 300 003214 302 003234 304 003235 306 003245 309 003311 311 003312 313 003313 317 003316 323 003317 325 003325 327 003336 330 003364 332 003367 336 003370 338 003371 339 003403 340 003406 341 003410 342 003412 343 003414 344 003416 ----------------------------------------------------------- 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