COMPILATION LISTING OF SEGMENT list_abs_requests Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/28/88 1323.1 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) Honeywell Information Systems Inc., 1980. * 8* * * 9* * Copyright (c) 1972 by Massachusetts Institute of * 10* * Technology and Honeywell Information Systems, Inc. * 11* * * 12* ************************************************************ */ 13 14 15 16 /* format: off */ 17 18 list_abs_requests: 19 lar: procedure; 20 21 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 /* */ 23 /* Command to provide information on absentee, IO Daemon, and retrieval requests */ 24 /* */ 25 /* Status */ 26 /* 0) Modified by E. Stone 9/15/71 */ 27 /* 1) Modified by R. Coren 4/17/73 - entry for io_daemon requests added */ 28 /* 2) Modified by J. Stern 6/24/75 */ 29 /* 3) Modified by D. Vinograd 5/77 - display queued retrieval requests */ 30 /* 4) Modified by J. C. Whitmore and T. Casey, April 1978 - new arguments */ 31 /* 5) Modified by T. Casey, November 1978 - MR7.0 absentee enhancements */ 32 /* 6) Modified by S. Herbst, 09/10/79 - call lar_util_ with queue entryname */ 33 /* 7) Modified by G. Palter, 22 September 1980 - use site-settable default absentee queue */ 34 /* 8) Modified by G. Palter, 17 December 1980 - fix pathname used by */ 35 /* list_retrieval_requests */ 36 /* 9) Modified by G. Dixon, January 1982 - support eor's user-defined request types, */ 37 /* add -print, -punch, -plot */ 38 /* 10) Modified 8/82 by GA Texada to make lar, lrr, lor, and ldr scann all q's by default.*/ 39 /* 11) Modified 8/84 by C. Marker made lar, lrr, lor, and ldr set the value of id before calling init. 40* */ 41 /* */ 42 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 43 44 /****^ HISTORY COMMENTS: 45* 1) change(87-08-17,GDixon), approve(88-08-15,MCR7969), 46* audit(88-08-04,Lippard), install(88-08-29),MR12.2-1093): 47* Incompatible args -bf and -lg now override one another 48* (Answering_Service 428, phx15276). 49* 2) change(88-04-27,Parisek), approve(88-06-13,MCR7913), 50* audit(88-08-16,Farley), install(88-08-29),MR12.2-1093): 51* Added -forms control argument check. 52* 3) change(88-08-25,GDixon), approve(88-08-15,MCR7969), 53* audit(88-08-04,Lippard), install(88-08-29),MR12.2-1093): 54* If multiple instances of -admin PERSON.PROJECT or -user PERSON.PROJECT 55* are given, the last instance will now override earlier instances 56* instead of diagnosing an error message. (Answering_Service 435, 57* phx16126) 58* END HISTORY COMMENTS */ 59 60 dcl abs_list_sw bit(1), 61 abs_n_sw bit(1), 62 arg_msg char(50), 63 argptr ptr, 64 arglen fixed bin(21), 65 code fixed bin(35), 66 ctl_arg_given bit(1), 67 default_queue fixed bin, 68 dir char(168), 69 ent char(32), 70 err_msg char(256), 71 finish fixed bin, 72 foreground_sw bit(1), 73 gen_type char(32), 74 i fixed bin, 75 id char(32), 76 ignore_code fixed bin, 77 max_queue fixed bin, 78 min_queue fixed bin, 79 nargs fixed bin, 80 priority fixed bin, 81 rqt_sw bit(1), 82 rs_len fixed bin, 83 start fixed bin, 84 tp ptr, 85 user_arg bit(1) aligned; 86 87 dcl arg char(arglen) unal based (argptr); 88 89 dcl (addr, after, before, index, length, min, null, search, 90 substr, verify, unspec) 91 builtin; 92 93 dcl cleanup condition; 94 95 dcl com_err_ options (variable), 96 cu_$arg_count entry (fixed bin, fixed bin(35)), 97 cu_$arg_ptr entry (fixed bin, ptr, fixed bin(21), fixed bin(35)), 98 cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin(21), fixed bin(35), ptr), 99 cv_dec_check_ entry (char(*), fixed bin(35)) returns(fixed bin(35)), 100 enter_output_request$default_request_type 101 entry (char(*), char(*), fixed bin, fixed bin, fixed bin(35)), 102 enter_output_request$request_type 103 entry (char(*), char(*), char(*), fixed bin, fixed bin, fixed bin(35)), 104 expand_pathname_ entry (char(*), char(*), char(*), fixed bin(35)), 105 get_temp_segment_ entry (char(*), ptr, fixed bin(35)), 106 hcs_$star_ entry (char(*), char(*), fixed bin(2), ptr, fixed bin, ptr, ptr, 107 fixed bin(35)), 108 message_segment_$close entry (fixed bin, fixed bin), 109 message_segment_$open entry (char(*), char(*), fixed bin, fixed bin(35)), 110 ioa_ entry() options(variable), 111 ioa_$rsnnl entry() options(variable), 112 iod_info_$generic_type entry (char(*), char(32), fixed bin(35)), 113 iod_info_$queue_data entry (char(*), fixed bin, fixed bin, fixed bin(35)), 114 iod_info_$test entry (char(*)), 115 iox_$put_chars entry (ptr, ptr, fixed bin(21), fixed bin(35)), 116 lar_util_ entry (ptr, fixed bin(35)), 117 release_temp_segment_ entry (char(*), ptr, fixed bin(35)), 118 request_id_ entry (fixed bin(71)) returns(char(19)), 119 sys_log_$command entry options(variable), 120 sys_log_$command_error entry options(variable), 121 system_info_$default_absentee_queue 122 entry (fixed bin); 123 124 dcl CAPITALS char(26) int static options (constant) init("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), 125 abs_default_q fixed bin int static, 126 abs_dir char(168) int static init(">system_control_1"), 127 abs_max_q fixed bin int static, 128 io_default_q fixed bin int static, 129 io_max_q fixed bin int static, 130 iod_dir char(168) int static init(">daemon_dir_dir>io_daemon_dir"), 131 not_initialized bit(1) int static init("1"b), 132 /* true when we must get new queue data */ 133 ret_default_q fixed bin int static, 134 ret_max_q fixed bin int static, 135 retriever_dir char(168) int static init(">daemon_dir_dir>volume_retriever"); 136 137 dcl error_table_$badopt fixed bin(35) ext static, 138 error_table_$id_not_found fixed bin(35) ext static, 139 error_table_$noarg fixed bin(35) ext static, 140 iox_$user_output ptr ext static; 141 142 143 144 145 /* Begin include file lar_info.incl.pl1 */ 1 2 1 3 /* Original version Aug 1977 */ 1 4 /* Modified May 1978 by T. Casey to add many new parameters */ 1 5 /* Modified November 1978 by T. Casey to add several variables for MR7.0 */ 1 6 /* Modified to add queue_name 11/05/79 S. Herbst */ 1 7 /* Modified Jan 1982 by G. Dixon to dcl constants for request_type values */ 1 8 1 9 /****^ HISTORY COMMENTS: 1 10* 1) change(88-04-20,Parisek), approve(88-06-13,MCR7913), 1 11* audit(88-08-16,Farley), install(88-08-22,MR12.2-1089): 1 12* A) Added the abs_rqi, com_rqi, output_rqi, retv_rqi, and imft_rqi 1 13* elements to store bit values which determine what specific data is 1 14* requested by request_info command/AF. Modified the pad field 1 15* to fill in the remaining unused word. 1 16* B) Included the arrays defining the information keywords used with 1 17* request_info (rqi). Each element in these arrays pertains to a 1 18* bit value within one of the bit strings listed in A above. Also, 1 19* the order of each element represents the identical order of the 1 20* respective bit within the above mentioned bit strings. 1 21* C) Added forms_sw and forms_name elements for storing info about 1 22* requested output special forms. 1 23* 2) change(88-08-25,Farley), approve(88-09-16,MCR7911), 1 24* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 1 25* Increased forms_name to 64 characters. 1 26* END HISTORY COMMENTS */ 1 27 1 28 1 29 dcl info_ptr ptr; 1 30 dcl 1 info aligned based (info_ptr), 1 31 2 temptr ptr aligned, /* pointer to temporary segment */ 1 32 2 mseg_idx fixed bin aligned, /* offset of message segment */ 1 33 2 request_type fixed bin, /* ABS, IO, OUTPUT, RETV */ 1 34 2 queue_name char (32) unal, /* request type for io_daemon: printer, punch, etc. */ 1 35 2 queue fixed bin aligned, /* priority level of message segment */ 1 36 2 input_count fixed bin (21) aligned, /* length of temporary in chars when called */ 1 37 2 output_count fixed bin (21) aligned, /* length of temporary in chars on return */ 1 38 2 select_count fixed bin aligned, /* returned count of selected entries (from all queues) */ 1 39 2 user_select_count fixed bin aligned, /* returned count of requests for specified user (from all Qs) */ 1 40 2 message_count fixed bin, /* returned count of total entries (from all queues) */ 1 41 2 switches, 1 42 3 long_sw bit (1) unaligned, /* on - long format */ 1 43 3 admin_sw bit (1) unaligned, /* on - admin option */ 1 44 3 total_sw bit (1) unaligned, /* on - totals only */ 1 45 3 user_sw bit (1) unaligned, /* on - look for supplied person.project */ 1 46 3 immediate bit (1) unaligned, /* on - return only non-deferred matches */ 1 47 3 long_id_sw bit (1) unaligned, /* on - print long ID even when not in long format */ 1 48 3 all_opt_sw bit (1) unaligned, /* on - all queue data wanted */ 1 49 3 q_opt_sw bit (1) unaligned, /* on - user specified a queue */ 1 50 3 path_sw bit (1) unaligned, /* on - print full pathname even when not in long format */ 1 51 3 brief_sw bit (1) unaligned, /* on - brief format */ 1 52 3 position_sw bit (1) unaligned, /* on - print position in queue */ 1 53 3 resource_sw bit (1) unaligned, /* on - print just rq's w/resource arg and print resource */ 1 54 3 dirname_sw bit (1) unaligned, /* on - dirname given */ 1 55 3 ename_sw bit (1) unaligned, /* on - ename given */ 1 56 3 id_sw bit (1) unaligned, /* on - request ID given */ 1 57 3 deferred_indefinitely bit (1) unaligned, /* on - print only requests that are deferred indefinitely */ 1 58 3 sender_sw bit (1) unaligned, /* on - sender (RJE station) given */ 1 59 3 no_total_sw bit (1) unaligned, /* RETURNED: on if unable to get totals for a queue */ 1 60 3 abs_q_1 bit (1) unaligned, /* on - listing abs Qs 0 & 1, pretending all from 1 */ 1 61 3 resource_name_sw bit (1) unaligned, /* on - resource name given */ 1 62 3 search_all bit (1) unaligned, /* on - search all Qs, list ones that we select requests from */ 1 63 3 forms_sw bit (1) unaligned, /* on - special forms name given */ 1 64 3 abs_rqi bit (13) unaligned, /* each bit represents 1 request element */ 1 65 3 com_rqi bit (11) unaligned, /* each bit represents 1 request element */ 1 66 3 output_rqi bit (11) unaligned, /* each bit represents 1 request element */ 1 67 3 retv_rqi bit (4) unaligned, /* each bit represents 1 request element */ 1 68 3 imft_rqi bit (3) unaligned, /* each bit represents 1 request element */ 1 69 3 pad bit (8) unaligned, /* rest of word */ 1 70 2 person char (28) aligned, /* supplied person name - may be "*" */ 1 71 2 project char (28) aligned, /* supplied project name - may be "*" */ 1 72 2 request_id char (19) aligned, /* select request(s) matching this ID */ 1 73 2 dirname char (168) unal, /* select requests from this directory */ 1 74 2 ename char (32) unal, /* select requests matching this ename (can be starname) */ 1 75 2 sender char (32) aligned, /* select requests entered by this RJE station */ 1 76 2 resource_name char (100) varying aligned, /* select requests requiring the named resource(s) */ 1 77 2 forms_name char (64) unal; /* select requests requiring the named form(s) */ 1 78 1 79 /* possible values for info.request_type. */ 1 80 dcl ABS fixed bin int static options(constant) init(1), /* list_abs_requests */ 1 81 IO fixed bin int static options(constant) init(2), /* list_daemon_requests (almost obsolete) */ 1 82 OUTPUT fixed bin int static options(constant) init(3), /* list_output_requests */ 1 83 RETV fixed bin int static options(constant) init(4); /* list_retrieval_requests */ 1 84 1 85 /* below is defined the request_info */ 1 86 /* information keyword arrays */ 1 87 /* The order of the following keywords within their respective arrays is 1 88* important as each element MUST be kept in sync with the respective 1 89* bit defined in com_rqi, abs_rqi, retv_rqi, output_rqi, or imft_rqi. 1 90* If any additional keywords are added in the future be sure a corresponding 1 91* bit is added to the proper bit string above. Also add the format data 1 92* for the new element within its proper place in the buffer_element routine 1 93* of lar_util_. 1 94**/ 1 95 1 96 dcl abs_keywords (28) char(32) int static options (constant) init 1 97 ("max_cpu_time", "limit", "li", /* 1 */ 1 98 "output_file", "of", /* 2 */ 1 99 "proxy_name", "pxn", /* 3 */ 1 100 "resource", "rsc", /* 4 */ 1 101 "sender", /* 5 */ 1 102 "comment", /* 6 */ 1 103 "args", /* 7 */ 1 104 "home_dir", "hd", /* 8 */ 1 105 "init_proc", "ip", /* 9 */ 1 106 "initial_ring", "ring", "rg", /* 10 */ 1 107 "authorization", "auth", /* 11 */ 1 108 "deferred_time", "dftime", "time", 1 109 "dftm", "tm", /* 12 */ 1 110 "deferred_by", "dfb"), /* 13 */ 1 111 1 112 abs_keyword_index (28) fixed bin int static options (constant) init 1 113 /* index in info.abs_rqi */ 1 114 (1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 10, 1 115 11, 11, 12, 12, 12, 12, 12, 13, 13), 1 116 1 117 com_keywords (23) char(32) int static options (constant) init 1 118 ("all", "a", /* 1 */ 1 119 "request_id", "id", /* 2 */ 1 120 "submitter", /* 3 */ 1 121 "position", "pos", /* 4 */ 1 122 "directory", "dr", /* 5 */ 1 123 "entry", "et", /* 6 */ 1 124 "enter_time", "etime", "etm", /* 7 */ 1 125 "message_type", "type", "tp", /* 8 */ 1 126 "queue", "q", /* 9 */ 1 127 "state", "st", /* 10 */ 1 128 "request_flags", "flags"), /* 11 */ 1 129 1 130 com_keyword_index (23) fixed bin int static options (constant) init 1 131 /* index in info.com_rqi */ 1 132 (1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 7, 8, 8, 8, 1 133 9, 9, 10, 10, 11, 11), 1 134 1 135 output_keywords (23) char(32) int static options (constant) init 1 136 ("bit_count", "bc", /* 1 */ 1 137 "copies", "cp", /* 2 */ 1 138 "destination", "dest", "ds", /* 3 */ 1 139 "heading", "he", /* 4 */ 1 140 "indent", "ind", "in", /* 5 */ 1 141 "line_length", "ll", /* 6 */ 1 142 "page_length", "pl", /* 7 */ 1 143 "top_label", "tlbl", /* 8 */ 1 144 "bottom_label", "blbl", /* 9 */ 1 145 "output_conversion", "ocv", /* 10 */ 1 146 "forms"), /* 11 */ 1 147 1 148 output_keyword_index (23) fixed bin int static options (constant) init 1 149 /* index in info.output_rqi */ 1 150 (1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7, 7, 7, 8, 1 151 9, 9, 10, 10, 11), 1 152 1 153 retv_keywords (10) char(32) int static options (constant) init 1 154 ("from_time", "fmtime", "fmtm", /* 1 */ 1 155 "new_dir", "ndr", /* 2 */ 1 156 "new_entry", "net", /* 3 */ 1 157 "to_time", "ttime", "ttm"), /* 4 */ 1 158 1 159 retv_keyword_index (10) fixed bin int static options (constant) init 1 160 /* index in info.retv_rqi */ 1 161 (1, 1, 1, 2, 2, 3, 3, 4, 4, 4), 1 162 1 163 imft_keywords (6) char(32) int static options (constant) init 1 164 ("foreign_dir", "fdr", /* 1 */ 1 165 "foreign_entry", "fet", /* 2 */ 1 166 "foreign_user", "fu"), /* 3 */ 1 167 1 168 imft_keyword_index (6) fixed bin int static options (constant) init 1 169 /* index in info.imft_rqi */ 1 170 (1, 1, 2, 2, 3, 3); 1 171 1 172 /* End include file lar_info.incl.pl1 */ 145 146 147 dcl 1 local_info like info aligned; 148 149 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 150 151 152 /* 153*list_abs_requests: 154*lar: proc; MAIN ENTRY POINT */ 155 156 abs_list_sw = ""b; 157 158 lar_init: /* come here from abs_list entry point to finish */ 159 id = "list_abs_requests"; 160 call init; /* initialization */ 161 default_queue = abs_default_q; 162 max_queue = abs_max_q; 163 min_queue = -1; 164 dir = abs_dir; 165 info.queue_name = "absentee"; 166 info.request_type = ABS; 167 goto JOIN; 168 169 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 170 171 172 abs_list: entry (a_arglist_ptr, a_arg_count, a_request_id, a_queue); 173 /* entry point used by operator command, abs list */ 174 dcl a_arglist_ptr ptr, /* ptr to arglist that admin$abs got */ 175 a_arg_count fixed bin, /* length of that arglist, including "list" */ 176 a_request_id fixed bin(71), /* request ID of job in slot N, if absN arg given */ 177 a_queue fixed bin; /* queue that job from slot N is in */ 178 179 abs_list_sw = "1"b; /* remember that we entered here */ 180 goto lar_init; /* go initialize for listing abs requests */ 181 182 183 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 184*@_r*@_D&__I9ra8ts12/15/92 __IGA$<4ra&|9<*@__4r*@__z&_JILLLraDsrs_assum.mail _JIGQ$rjra_9r*@_Jjr*@_JD&yI razuic_forum yIGL$ra 9*@yr*@yz&Ira+icd_formum IG6$ra9*@r*@&zIߨraassum-srs.link zIxG2$ raA9*@z r*@zlSmith 9>Hr*.rCDC 9z6lr*.Mallmes 9 6H*. Leskiw 9Roe 9@r*@.H^Lubey 9Vz*.&lIFra=ts12/31/92 lIjG2r$ra#9*@lr*@l&QIraAss12/31/92 QIjGL$raOo9*@Qr*@Qp&yJ@9v  ra^task=list.mail yJ@;EGw\$2*ra92*@y*r*@yp&DJbBBra:met.mail DJcGL$h`ra 9h*@D`r*@D:&yJW2xxrapfprob_sys.mail yJYGw $ra89*@yr*@yV&LJK$rass01/31/93 LJG`H1$raU9*@Lr*@L:&|JXrats01/15/93 |JaGQ $ ra-9 *@|r*@| &LJPranssdrs.mail LJGQa$@8ra 9@*@L8r*@LV&JDPPraH|UI.mls JG2B$vnra 9v*@nr*@ &AJra~"iris.tasks AJ_ZG29$rab9*@Ar*A&LJJrats01/31/93 LJGL $ra9*@Lr*@L&Jratasks.mail arch_all" then info.search_all = "1"b; 282 else if (arg = "-im" | arg = "-immediate") & info.request_type ^= RETV then 283 info.immediate = "1"b; 284 else if arg = "-q" | arg = "-queue" then do; 285 call get_arg (i+1); 286 if code ^= 0 then do; 287 arg_msg = "After -queue"; 288 goto PRINT_MISS_ARG; 289 end; 290 i = i + 1; /* get next argument - number indicating which queue */ 291 if info.q_opt_sw & abs_n_sw then do; 292 arg_msg = "The -queue and absN arguments are incompatbile"; 293 PRINT_ARG_ERR: call ioa_$rsnnl ("^a. ^a", err_msg, rs_len, arg_msg, arg); 294 call print_err_msg (-1, 0); 295 return; 296 end; 297 info.q_opt_sw = "1"b; /* remember that it has been given */ 298 if (arg = "fg" | arg = "foreground") & info.request_type = ABS then 299 priority = -1; 300 else do; 301 priority = cv_dec_check_ (arg, code); 302 /* see if valid number */ 303 if code ^= 0 then do; 304 call ioa_$rsnnl ("Illegal queue number ^a", err_msg, rs_len, arg); 305 call print_err_msg (-1, 0); 306 return; 307 end; 308 end; 309 start, finish = priority; /* set first and last queue to be searched */ 310 end; 311 312 else if arg = "-lgid" | arg = "-long_id" then 313 info.long_id_sw = "1"b; 314 else if arg = "-pn" | arg = "-absp" | arg = "-pathname" | arg = "-absolute_pathname" then 315 info.path_sw = "1"b; 316 else if arg = "-bf" | arg = "-brief" then do; 317 info.brief_sw = "1"b; 318 info.long_sw = "0"b; /* override the long option if previously given */ 319 end; 320 else if arg = "-psn" | arg = "-position" then 321 info.position_sw = "1"b; 322 else if arg = "-id" then do; 323 call get_arg (i+1); 324 if code ^= 0 then do; 325 arg_msg = "After -id"; 326 PRINT_MISS_ARG: err_msg = arg_msg; 327 call print_err_msg (-1, code); 328 return; 329 end; 330 i = i + 1; /* next arg is the ID */ 331 if info.id_sw & abs_n_sw then do; 332 arg_msg = "The -id and absN arguments are incompatible"; 333 goto PRINT_ARG_ERR; 334 end; 335 info.id_sw = "1"b; 336 info.request_id = arg; 337 end; 338 else if arg = "-et" | arg = "-entry" then do; 339 if info.ename_sw & info.dirname_sw then do; 340 /* entryname already given */ 341 DUP_ENTRY_PATH: arg_msg = "Pathname and entry name cannot both be given"; 342 goto PRINT_ARG_ERR; 343 end; 344 call get_arg (i+1); 345 if code ^= 0 then do; 346 arg_msg = "After -entry"; 347 goto PRINT_MISS_ARG; 348 end; 349 i = i + 1; 350 info.ename_sw = "1"b; 351 info.ename = arg; 352 end; 353 354 /* Absentee only control arguments */ 355 356 else if info.request_type = ABS then do; 357 if arg = "-rsc" | arg = "-resource" | arg = "-resources" then do; 358 info.resource_sw = "1"b; 359 call get_arg (i+1); /* look at next arg */ 360 if code = 0 /* if there is an arg there */ 361 then if index(arg, "-") ^= 1 then do; 362 /* and it's not a control arg */ 363 /* assume it's a resource name */ 364 i = i + 1; /* bump arg index */ 365 info.resource_name_sw = "1"b; 366 info.resource_name = arg; 367 if length (arg) > length (info.resource_name) then do; 368 call ioa_$rsnnl ("Resource name too long; limit is ^d characters. ^a", 369 err_msg, rs_len, length (info.resource_name), info.resource_name); 370 call print_err_msg (-1, 0); 371 return; 372 end; 373 end; 374 end; 375 else if arg = "-dfi" | arg = "-deferred_indefinitely" then 376 info.deferred_indefinitely = "1"b; 377 else if arg = "-sender" then do; 378 call get_arg (i+1); 379 if code ^= 0 then do; 380 arg_msg = "After -sender"; 381 goto PRINT_MISS_ARG; 382 end; 383 i = i + 1; 384 info.sender_sw = "1"b; 385 info.sender = arg; 386 end; 387 else if arg = "-fg" | arg = "-foreground" then 388 foreground_sw = "1"b; 389 else goto BADOPT; /* no other arguments valid for absentee requests */ 390 end; /* end abs control args */ 391 392 /* I/O daemon only control arguments */ 393 394 else if info.request_type = IO then do; 395 if arg = "-rqt" | arg = "-request_type" then do; 396 call get_arg (i+1); 397 if code ^= 0 then do; 398 arg_msg = "After -request_type"; 399 goto PRINT_MISS_ARG; 400 end; 401 i = i + 1; 402 rqt_sw = "1"b; 403 gen_type = ""; 404 call iod_info_$generic_type (arg, gen_type, code); 405 if code ^= 0 then 406 if code = error_table_$id_not_found then do; 407 call ioa_$rsnnl ("Unknown request type. ^a", err_msg, rs_len, arg); 408 call print_err_msg (-1, 0); 409 return; 410 end; 411 else do; 412 call ioa_$rsnnl ("Warning -- Unable to check request type ^a.", err_msg, rs_len, arg); 413 call print_err_msg (-1, 0); 414 end; 415 info.queue_name = arg; /* set request type component to message segment name */ 416 417 call iod_info_$queue_data (info.queue_name, default_queue, max_queue, code); 418 /* get new default and max queue numbers */ 419 /* this will work if the first one did */ 420 end; 421 else goto BADOPT; /* no other arguments valid for daemon requests */ 422 end; 423 else if info.request_type = OUTPUT then do; 424 if arg = "-rqt" | arg = "-request_type" then do; 425 call get_arg (i+1); 426 if code ^= 0 then do; 427 arg_msg = "After -request_type"; 428 goto PRINT_MISS_ARG; 429 end; 430 i = i + 1; 431 rqt_sw = "1"b; 432 gen_type = ""; 433 call enter_output_request$request_type (arg, 434 gen_type, info.queue_name, default_queue, 435 max_queue, code); 436 if code ^= 0 then 437 if code = error_table_$id_not_found then do; 438 call ioa_$rsnnl ("Unknown request type. ^a", err_msg, rs_len, arg); 439 call print_err_msg (-1, 0); 440 return; 441 end; 442 else do; 443 call ioa_$rsnnl ("Warning -- Unable to check request type ^a.", err_msg, rs_len, arg); 444 call print_err_msg (-1, 0); 445 end; 446 end; 447 else if arg = "-print" | arg = "-pr" then do; 448 gen_type = "printer"; 449 call enter_output_request$default_request_type (gen_type, 450 info.queue_name, default_queue, max_queue, code); 451 end; 452 else if arg = "-punch" | arg = "-pch" then do; 453 gen_type = "punch"; 454 call enter_output_request$default_request_type (gen_type, 455 info.queue_name, default_queue, max_queue, code); 456 end; 457 else if arg = "-plot" then do; 458 gen_type = "plotter"; 459 call enter_output_request$default_request_type (gen_type, 460 info.queue_name, default_queue, max_queue, code); 461 end; 462 else if arg = "-forms" then do; /* select special forms requests */ 463 call get_arg (i+1); /* check for optional forms name */ 464 if code = 0 & index (arg, "-") ^= 1 then do; 465 i = i + 1; /* increment arg index */ 466 info.forms_name = arg; /* and save form name */ 467 end; 468 else info.forms_name = ""; /* else show no form name given */ 469 info.forms_sw = "1"b; 470 end; 471 else goto BADOPT; /* no other arguments valid for daemon requests */ 472 end; 473 else do; 474 BADOPT: err_msg = arg; 475 call print_err_msg (-1, error_table_$badopt); 476 return; 477 end; 478 end; /* end control argument do group */ 479 480 else do; /* not a control argument; might be a pathname */ 481 482 if abs_list_sw & index(arg, ">") ^= 1 then do; 483 /* if abs list, it might be user name or request ID */ 484 485 if index(arg, "abs") = 1 & verify (substr (arg, 4), "0123456789") = 0 then do; /* absN */ 486 if abs_n_sw then do; 487 arg_msg = "Only one absN argument allowed"; 488 goto PRINT_ARG_ERR; 489 end; 490 if info.q_opt_sw then do; 491 arg_msg = "The -queue and absN arguments are incompatible"; 492 goto PRINT_ARG_ERR; 493 end; 494 if info.id_sw then do; 495 arg_msg = "The request ID and absN arguments are incompatible"; 496 goto PRINT_ARG_ERR; 497 end; 498 info.q_opt_sw = "1"b; 499 start, finish = a_queue; 500 info.id_sw = "1"b; 501 info.request_id = request_id_ (a_request_id); 502 end; 503 504 else if i > 3 | ctl_arg_given then do; /* only first 2 args can be user and request ID */ 505 FULL_PATH_REQUIRED: 506 arg_msg = "Relative pathnames not allowed"; 507 goto PRINT_ARG_ERR; 508 end; 509 510 else if verify (arg, "0123456789.") = 0 then do; /* digits and dot must be request ID */ 511 if info.id_sw then do; 512 arg_msg = "Reqest ID given twice"; 513 goto PRINT_ARG_ERR; 514 end; 515 info.id_sw = "1"b; 516 info.request_id = arg; 517 end; 518 else if search (arg, CAPITALS) = 1 then do; 519 /* if it begins with a capital, 520* assume it's a user name */ 521 info.user_sw = "1"b; 522 info.person = before (arg, "."); 523 info.project = before (after (arg, "."), "."); 524 if info.person = "" then info.person = "*"; 525 if info.project = "" then do; /* allow operator to forget the dot between person and project */ 526 call get_arg (i+1); /* look ahead at next arg */ 527 if code = 0 then do; /* if there is one */ 528 if arglen <= 9 /* if it's not too long */ 529 & search (arg, CAPITALS) = 1 then do; 530 /* and it begins with capital */ 531 info.project = arg; 532 /* assume it is the project name */ 533 i = i + 1; /* skip past this argument */ 534 end; 535 end; 536 if info.project = "" then info.project = "*"; /* if next arg wasn't it, set it to * */ 537 end; 538 else goto FULL_PATH_REQUIRED; /* neither request ID nor user name */ 539 end; 540 end; 541 else do; /* pick up and store pathname */ 542 if info.ename_sw then goto DUP_ENTRY_PATH; 543 call expand_pathname_ (arg, info.dirname, info.ename, code); 544 if code ^= 0 then do; 545 call ioa_$rsnnl ("Expanding pathname: ^a", err_msg, rs_len, arg); 546 call print_err_msg (-1, code); 547 return; 548 end; 549 info.dirname_sw, info.ename_sw = "1"b; 550 end; 551 end; 552 553 end; /* end argument loop */ 554 555 /* Now check the arguments for consistency */ 556 557 CHECK: 558 559 if abs_list_sw then 560 if ^(info.immediate | info.q_opt_sw | foreground_sw | info.id_sw | info.ename_sw 561 | info.resource_sw | info.deferred_indefinitely | info.sender_sw | info.user_sw) 562 & ^info.total_sw then do; 563 err_msg = 564 "No job selection arguments given. Use ""-et **"" if you really want to list all jobs in all queues"; 565 call print_err_msg (-1, 0); 566 return; 567 end; 568 569 if info.all_opt_sw & info.q_opt_sw then do; 570 err_msg = "The -all and -queue control arguments are incompatible."; 571 call print_err_msg (-1, 0); 572 return; 573 end; 574 575 if info.q_opt_sw then do; 576 if priority = -1 & info.request_type = ABS then; 577 else if priority < min_queue | priority > max_queue then do; 578 call ioa_$rsnnl ("-queue ^d is invalid. Use a number from ^d to ^d.", err_msg, rs_len, 579 priority, min_queue, max_queue); 580 call print_err_msg (-1, 0); 581 return; 582 end; 583 end; 584 585 if foreground_sw then 586 if info.all_opt_sw | info.q_opt_sw then do; 587 call ioa_$rsnnl ("The following control arguments are incompatible: -foreground^[^x-all^]^[^x-queue^]", 588 err_msg, rs_len, info.all_opt_sw, info.q_opt_sw); 589 call print_err_msg (-1, 0); 590 return; 591 end; 592 593 if info.long_sw & info.total_sw then do; 594 call ioa_$rsnnl ("The following control arguments are incompatible: -long^ and -total", 595 err_msg, rs_len); 596 call print_err_msg (-1, 0); 597 return; 598 end; 599 if info.request_type = IO & info.long_sw /* ldr -long prints contents of requests */ 600 & gen_type ^= "printer" & gen_type ^= "punch" & gen_type ^= "plotter" then do; 601 call ioa_ ("Warning: the -long control argument is only valid for 602 printer, punch or plotter generic types."); 603 info.long_sw = ""b; /* if we don't know the structure of this generic type */ 604 end; /* just list the stuff in the message header */ 605 606 /* Now set first and last queue according to arguments or defaults (but -q argument processing sets them in-line) */ 607 608 if info.all_opt_sw | info.search_all then do; 609 start = min_queue; 610 finish = max_queue; 611 end; 612 else if foreground_sw then 613 start, finish = -1; 614 else if ^info.q_opt_sw then do; /* no queue specified - set defaults */ 615 start = min_queue; /* -search_all is the default */ 616 finish = max_queue; /* that is, search all queues */ 617 info.search_all = "1"b; /* but only print for queues that we select requests from */ 618 619 end; 620 if info.request_type = ABS then do; /* for absentee queues */ 621 if start = 1 then /* if user said -q 1 */ 622 start = 0; /* we pretend queue 0 is the first part of queue 1 */ 623 if start <= 0 /* if listing queue 0 */ 624 & finish >= 1 /* and also queue 1 */ 625 then info.abs_q_1 = "1"b; /* turn on the "pretend they are one queue" switch */ 626 end; 627 628 /* Arguments are ok. Get ready to call lar_util_. First, get a temp segment for lar_util_ to build the listing in. */ 629 630 info.mseg_idx = 0; /* no open mseg */ 631 632 /* CONDITION HANDLER FOR cleanup */ 633 634 tp = null(); 635 on condition (cleanup) begin; /* but first be sure we will give it back no matter what */ 636 if info.mseg_idx ^= 0 then /* if we have an open mseg */ 637 call message_segment_$close (info.mseg_idx, i); /* i is code, to be ignored */ 638 if tp ^= null then /* if we have a temp seg */ 639 call release_temp_segment_ (id, tp, code); /* give it back */ 640 end; /* end begin block */ 641 642 /* END CONDITION HANDLER */ 643 644 call get_temp_segment_ (id, tp, code); 645 if code ^= 0 then do; 646 err_msg = "temporary segment"; 647 call print_err_msg (-1, code); 648 return; 649 end; 650 651 /* Initialize, before entering loop over queues */ 652 653 info.temptr = tp; 654 655 /* Beginning of loop over one or more queues */ 656 657 do info.queue = start to finish; 658 if info.queue = -1 then ent = "absentee_foreground.ms"; /* construct entry name of message segment */ 659 else call ioa_$rsnnl ("^a_^d.ms", ent, rs_len, info.queue_name, info.queue); 660 call message_segment_$open (dir, ent, info.mseg_idx, code); /* initiate message segment containing requests */ 661 if code = 0 then do; /* if we opened it successfully, go list it */ 662 663 /* call lar_util_, which will build up a listing of this queue's requests, in a printable segment */ 664 665 call lar_util_ (info_ptr, code); /* get information on requests in this queue */ 666 call message_segment_$close (info.mseg_idx, ignore_code); 667 /* close message segment */ 668 end; 669 if code ^= 0 then do; 670 call ioa_$rsnnl ("^[Attempting to open^x^;^]^a>^a", err_msg, rs_len, (info.mseg_idx = 0), dir, ent); 671 call print_err_msg (-1, code); 672 end; 673 info.mseg_idx = 0; /* so cleanup handler doesn't try to close it again */ 674 info.input_count = info.output_count; /* copy new length of temorary */ 675 end; 676 677 /* End of loop over queues. Now print the segment built by lar_util_. */ 678 679 /* Under some circumstances, lar_util_ will put nothing in the segment, rather than put out lots of lines 680* that say "no requests". So here we check for those circumstances, and print a line of explanation. */ 681 682 if (info.all_opt_sw & info.message_count = 0 & ^info.no_total_sw) /* if -all and Qs were all empty */ 683 | (info.search_all & info.select_count = 0) then do; /* or -search_all and no requests were selected */ 684 685 /* We want to say one of: 686* There are } 687* You have } no requests in any ^a queue. 688* ^a.^a has } 689* Selection arguments matched} 690* 691* Figure out which. */ 692 693 if info.message_count = 0 then 694 i = 1; /* There are no requests in ... */ 695 else if info.user_select_count = 0 then 696 if ^info.user_sw then /* if user name not given */ 697 i = 2; /* You have no requests in ... */ 698 else i = 3; /* ^a.^a has no requests in ... */ 699 else i = 4; /* Selection arguments matched no requests in ... */ 700 701 /* Now say it */ 702 703 call ioa_ ( 704 "^[^2sThere are^;^2sYou have^;^a.^a has^;^2sSelection arguments matched^] no requests in any ^a queue.", 705 i, info.person, info.project, info.queue_name); 706 707 end; 708 709 /* If we printed the above message, there should be nothing in the segment except an initial newline. 710* If there is something else, we have a bug. Print it, so the bug will be obvious. */ 711 712 if info.output_count > 1 then do; 713 call iox_$put_chars (iox_$user_output, info.temptr, info.output_count, code); 714 if code ^= 0 then do; 715 err_msg = "user_output"; 716 call print_err_msg (-1, code); 717 end; 718 if (info.all_opt_sw | info.search_all) & info.total_sw then 719 call ioa_; /* put blank line after single-spaced J*Gc$ra9*@r*~&AJ((ra ^ shall_format AJ_bGLg$NFrad9N*@AFr*AH&LJMH^^raVKchecklist LJGQ$|ra>^9*@L|r*L&AJraconv.mail AJGL$ra""9*@Ar*@A~&AJ raUnaming AJ_^Gw$ra!9*@Ar*A >RhnN|t  8 *v l X>,b^  T L t HxV J ^P4 N  V   2 v h  " zF0T @  B,x \ L`  *Zx @9*@gzr*@gL,&gJXbYramortem gJYtGL $ra+=9*@gr*@g&ggJSramail.mail ggJTGww$ra@9*@ggr*@gg,&gh5Jrxrayts02/28/93 gh5Jr\G`H$$raq9$*@gh5r*@gh5&ghCJrj44ra,}ss02/28/93 ghCJrSGn$ZRraY}9Z*@ghCRr*@ghCL&IJjjrabts03/15/93 IJ3G$ra9*@Ir*@Ib&Jra>TEST.mls J3G`H$ra9*@r*@l&}JS|rats03/31/93 }JG$ra9*@}r*@} 8&&N]  ra4sound.b2.mail &NGX$2*ra092*@&*r*@&p6&(mJ' BBra: judy.mail (mJG$h`ra 9h*@(m`r*@(m:&6Kפxxrapts04/15/93 6KGQK$ra>9*@6r*@6H&ɞK|E ratiris_training.activities ɞKG2$ra 9*@ɞr*ɞ&K׮{rass04/30/93 KG`H~$ raY}rg, which is "list" */ 820 info.admin_sw = "1"b; /* always list other users' requests */ 821 end; 822 else do; /* user command */ 823 call cu_$arg_count(nargs, code); /* get length of this procedure's arglist */ 824 if code ^= 0 then do; 825 call com_err_ (code, id); 826 go to ERROR_EXIT; 827 end; 828 i = 1; /* and start with the first one */ 829 end; 830 831 return; 832 833 end init; 834 835 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 836 837 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 838 839 840 print_err_msg: proc (sv, ec); 841 842 dcl sv fixed bin, /* severity, for use in sys_log_ calls */ 843 ec fixed bin(35); /* error code */ 844 845 /* The global variable, err_msg, is an implicit argument */ 846 847 if abs_list_sw then do; 848 if ec ^= 0 then 849 call sys_log_$command_error (sv, ec, "abs list", "^a", err_msg); 850 else call sys_log_$command (sv, "abs list: ^a", err_msg); 851 end; 852 else call com_err_ (ec, id, "^a", err_msg); 853 return; 854 855 end print_err_msg; 856 857 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 858 859 860 end list_abs_requests; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/28/88 1257.9 list_abs_requests.pl1 >special_ldd>install>MR12.2-1199>list_abs_requests.pl1 145 1 10/28/88 1226.7 lar_info.incl.pl1 >special_ldd>install>MR12.2-1199>lar_info.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. ABS constant fixed bin(17,0) initial dcl 1-80 ref 166 298 356 576 620 CAPITALS 000000 constant char(26) initial packed unaligned dcl 124 ref 518 528 IO constant fixed bin(17,0) initial dcl 1-80 ref 218 394 599 OUTPUT constant fixed bin(17,0) initial dcl 1-80 ref 235 423 RETV constant fixed bin(17,0) initial dcl 1-80 ref 198 282 a_arg_count parameter fixed bin(17,0) dcl 174 ref 172 818 a_arglist_ptr parameter pointer dcl 174 set ref 172 781* a_queue parameter fixed bin(17,0) dcl 174 ref 172 499 a_request_id parameter fixed bin(71,0) dcl 174 set ref 172 501* abs_default_q 000010 internal static fixed bin(17,0) dcl 124 set ref 161 803* 804 804* abs_dir 000011 internal static char(168) initial packed unaligned dcl 124 set ref 164 744* abs_list_sw 000100 automatic bit(1) packed unaligned dcl 60 set ref 156* 179* 190* 209* 227* 482 557 781 817 847 abs_max_q 000063 internal static fixed bin(17,0) dcl 124 set ref 162 802* abs_n_sw 000101 automatic bit(1) packed unaligned dcl 60 set ref 241* 291 331 486 abs_q_1 22(18) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 623* addr builtin function dcl 89 ref 814 admin_sw 22(01) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 256* 820* after builtin function dcl 89 ref 263 523 all_opt_sw 22(06) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 280* 569 585 587* 608 682 718 arg based char packed unaligned dcl 87 set ref 250 252 252 252 254 258 262 263 274 274 278 278 278 280 280 281 282 282 284 284 293* 298 298 301* 304* 312 312 314 314 314 314 316 316 320 320 322 336 338 338 351 357 357 357 360 366 367 375 375 377 385 387 387 395 395 404* 407* 412* 415 424 424 433* 438* 443* 447 447 452 452 457 462 464 466 474 482 485 485 510 516 518 522 523 528 531 543* 545* arg_msg 000102 automatic char(50) packed unaligned dcl 60 set ref 269* 287* 292* 293* 325* 326 332* 341* 346* 380* 398* 427* 487* 491* 495* 505* 512* arglen 000122 automatic fixed bin(21,0) dcl 60 set ref 250 252 252 252 254 258 262 263 274 274 278 278 278 280 280 281 282 282 284 284 293 293 298 298 301 301 304 304 312 312 314 314 314 314 316 316 320 320 322 336 338 338 351 357 357 357 360 366 367 375 375 377 385 387 387 395 395 404 404 407 407 412 412 415 424 424 433 433 438 438 443 443 447 447 452 452 457 462 464 466 474 482 485 485 510 516 518 522 523 528 528 531 543 543 545 545 781* 783* argno parameter fixed bin(17,0) dcl 779 set ref 777 781* 783* argptr 000120 automatic pointer dcl 60 set ref 250 252 252 252 254 258 262 263 274 274 278 278 278 280 280 281 282 282 284 284 293 298 298 301 304 312 312 314 314 314 314 316 316 320 320 322 336 338 338 351 357 357 357 360 366 367 375 375 377 385 387 387 395 395 404 407 412 415 424 424 433 438 443 447 447 452 452 457 462 464 466 474 482 485 485 510 516 518 522 523 528 531 543 545 781* 783* before builtin function dcl 89 ref 262 263 522 523 brief_sw 22(09) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 276* 317* cleanup 000350 stack reference condition dcl 93 ref 635 code 000123 automatic fixed bin(35,0) dcl 60 set ref 233* 249 258 268* 286 301* 303 324 327* 345 360 379 397 404* 405 405 417* 426 433* 436 436 449* 454* 459* 464 527 543* 544 546* 638* 644* 645 647* 660* 661 665* 669 671* 713* 714 716* 724* 781* 783* 796* 797 806* 807 823* 824 825* com_err_ 000216 constant entry external dcl 95 ref 825 852 ctl_arg_given 000124 automatic bit(1) packed unaligned dcl 60 set ref 241* 251* 504 cu_$arg_count 000220 constant entry external dcl 95 ref 823 cu_$arg_ptr 000222 constant entry external dcl 95 ref 783 cu_$arg_ptr_rel 000224 constant entry external dcl 95 ref 781 cv_dec_check_ 000226 constant entry external dcl 95 ref 301 default_queue 000125 automatic fixed bin(17,0) dcl 60 set ref 161* 193* 212* 233* 417* 433* 449* 454* 459* deferred_indefinitely 22(15) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 375* 557 dir 000126 automatic char(168) packed unaligned dcl 60 set ref 164* 196* 215* 231* 660* 670* dirname 47 based char(168) level 2 packed packed unaligned dcl 1-30 set ref 543* dirname_sw 22(12) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 339 549* ec parameter fixed bin(35,0) dcl 842 set ref 840 848 848* 852* ename 121 based char(32) level 2 packed packed unaligned dcl 1-30 set ref 351* 543* ename_sw 22(13) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 339 350* 542 549* 557 ent 000200 automatic char(32) packed unaligned dcl 60 set ref 658* 659* 660* 670* enter_output_request$default_request_type 000230 constant entry external dcl 95 ref 233 449 454 459 enter_output_request$request_type 000232 constant entry external dcl 95 ref 433 err_msg 000210 automatic char(256) packed unaligned dcl 60 set ref 293* 304* 326* 368* 407* 412* 438* 443* 474* 545* 563* 570* 578* 587* 594* 646* 670* 715* 848* 850* 852* error_table_$badopt 000276 external static fixed bin(35,0) dcl 137 set ref 475* error_table_$id_not_found 000300 external static fixed bin(35,0) dcl 137 ref 405 436 error_table_$noarg 000302 external static fixed bin(35,0) dcl 137 ref 268 expand_pathname_ 000234 constant entry external dcl 95 ref 543 finish 000310 automatic fixed bin(17,0) dcl 60 set ref 309* 499* 610* 612* 616* 623 657 foreground_sw 000311 automatic bit(1) packed unaligned dcl 60 set ref 241* 387* 557 585 612 forms_name 173 based char(64) level 2 packed packed unaligned dcl 1-30 set ref 466* 468* forms_sw 22(21) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 469* gen_type 000312 automatic char(32) packed unaligned dcl 60 set ref 216* 232* 233* 403* 404* 432* 433* 448* 449* 453* 454* 458* 459* 599 599 599 get_temp_segment_ 000236 constant entry external dcl 95 ref 644 hcs_$star_ 000240 constant entry external dcl 95 ref 806 i 000322 automatic fixed bin(17,0) dcl 60 set ref 247* 247* 248* 257 260* 260 285 290* 290 323 330* 330 344 349* 349 359 364* 364 378 383* 383 396 401* 401 425 430* 430 463 465* 465 504 526 533* 533* 636* 693* 695* 698* 699* 703* 819* 828* id 000323 automatic char(32) packed unaligned dcl 60 set ref 158* 191* 210* 228* 638* 644* 724* 825* 852* id_sw 22(14) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 331 335* 494 500* 511 515* 557 ignore_code 000333 automatic fixed bin(17,0) dcl 60 set ref 666* immediate 22(04) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 282* 557 index builtin function dcl 89 ref 250 258 360 464 482 485 info based structure level 1 dcl 1-30 set ref 815* info_ptr 000356 automatic pointer dcl 1-29 set ref 165 166 197 198 217 218 233 235 256 261 262 263 264 264 265 265 275 276 278 280 281 282 282 291 297 298 312 314 317 318 320 331 335 336 339 339 350 351 356 358 365 366 367 368 368 368 375 384 385 394 415 417 423 433 449 454 459 466 468 469 490 494 498 500 501 511 515 516 521 522 523 524 524 525 531 536 536 542 543 543 549 549 557 557 557 557 557 557 557 557 557 569 569 575 576 585 585 587 587 593 593 599 599 603 608 608 614 617 620 623 630 636 636 653 657 658 659 659 660 665* 666 670 673 674 674 682 682 682 682 682 693 695 695 703 703 703 712 713 713 718 718 718 814* 815 820 input_count 15 based fixed bin(21,0) level 2 dcl 1-30 set ref 674* io_default_q 000064 internal static fixed bin(17,0) dcl 124 set ref 212 796* 799* io_max_q 000065 internal static fixed bin(17,0) dcl 124 set ref 213 796* 798* ioa_ 000246 constant entry external dcl 95 ref 601 703 718 ioa_$rsnnl 000250 constant entry external dcl 95 ref 293 304 368 407 412 438 443 545 578 587 594 659 670 iod_dir 000066 internal static char(168) initial packed unaligned dcl 124 set ref 215 231 753* iod_info_$generic_type 000252 constant entry external dcl 95 ref 404 iod_info_$queue_data 000254 constant entry external dcl 95 ref 417 796 iod_info_$test 000256 constant entry external dcl 95 ref 754 iox_$put_chars 000260 constant entry external dcl 95 ref 713 iox_$user_output 000304 external static pointer dcl 137 set ref 713* lar_util_ 000262 constant entry external dcl 95 ref 665 length builtin function dcl 89 ref 367 367 368 368 local_info 000360 automatic structure level 1 dcl 147 set ref 814 long_id_sw 22(05) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 312* long_sw 22 based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 275* 318* 593 599 603* max_queue 000334 automatic fixed bin(17,0) dcl 60 set ref 162* 194* 213* 233* 417* 433* 449* 454* 459* 577 578* 610 616 message_count 21 based fixed bin(17,0) level 2 dcl 1-30 set ref 682 693 message_segment_$close 000242 constant entry external dcl 95 ref 636 666 message_segment_$open 000244 constant entry external dcl 95 ref 660 min builtin function dcl 89 ref 809 min_queue 000335 automatic fixed bin(17,0) dcl 60 set ref 163* 195* 214* 230* 577 578* 609 615 mseg_idx 2 based fixed bin(17,0) level 2 dcl 1-30 set ref 630* 636 636* 660* 666* 670 673* nargs 000336 automatic fixed bin(17,0) dcl 60 set ref 247 818* 823* no_total_sw 22(17) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 682 not_initialized 000140 internal static bit(1) initial packed unaligned dcl 124 set ref 743* 752* 762* 795 811* null builtin function dcl 89 ref 634 638 806 806 806 806 output_count 16 based fixed bin(21,0) level 2 dcl 1-30 set ref 674 712 713* path_sw 22(08) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 314* person 24 based char(28) level 2 dcl 1-30 set ref 262* 264 264* 522* 524 524* 703* position_sw 22(10) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 320* priority 000337 automatic fixed bin(17,0) dcl 60 set ref 298* 301* 309 576 577 577 578* project 33 based char(28) level 2 dcl 1-30 set ref 263* 265 265* 523* 525 531* 536 536* 703* q_opt_sw 22(07) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 291 297* 490 498* 557 569 575 585 587* 614 queue 14 based fixed bin(17,0) level 2 dcl 1-30 set ref 657* 658 659* queue_name 4 based char(32) level 2 packed packed unaligned dcl 1-30 set ref 165* 197* 217* 233* 415* 417* 433* 449* 454* 459* 659* 703* release_temp_segment_ 000264 constant entry external dcl 95 ref 638 724 request_id 42 based char(19) level 2 dcl 1-30 set ref 336* 501* 516* request_id_ 000266 constant entry external dcl 95 ref 501 request_type 3 based fixed bin(17,0) level 2 dcl 1-30 set ref 166* 198* 218* 235* 282 298 356 394 423 576 599 620 resource_name 141 based varying char(100) level 2 dcl 1-30 set ref 366* 367 368 368 368* resource_name_sw 22(19) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 365* resource_sw 22(11) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 358* 557 ret_default_q 000141 internal static fixed bin(17,0) dcl 124 set ref 193 809* ret_max_q 000142 internal static fixed bin(17,0) dcl 124 set ref 194 806* 807* 809 retriever_dir 000143 internal static char(168) initial packed unaligned dcl 124 set ref 196 763* 806* rqt_sw 000340 automatic bit(1) packed unaligned dcl 60 set ref 241* 402* 431* rs_len 000341 automatic fixed bin(17,0) dcl 60 set ref 293* 304* 368* 407* 412* 438* 443* 545* 578* 587* 594* 659* 670* search builtin function dcl 89 ref 518 528 search_all 22(20) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 281* 608 617* 682 718 select_count 17 based fixed bin(17,0) level 2 dcl 1-30 set ref 682 sender 131 based char(32) level 2 dcl 1-30 set ref 385* sender_sw 22(16) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 384* 557 start 000342 automatic fixed bin(17,0) dcl 60 set ref 309* 499* 609* 612* 615* 621 621* 623 657 substr builtin function dcl 89 ref 485 sv parameter fixed bin(17,0) dcl 842 set ref 840 848* 850* switches 22 based structure level 2 dcl 1-30 sys_dir parameter char packed unaligned dcl 741 set ref 739 744 750 753 754* 760 763 sys_log_$command 000270 constant entry external dcl 95 ref 850 sys_log_$command_error 000272 constant entry external dcl 95 ref 848 system_info_$default_absentee_queue 000274 constant entry external dcl 95 ref 803 temptr based pointer level 2 dcl 1-30 set ref 653* 713* total_sw 22(02) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 278* 557 593 718 tp 000344 automatic pointer dcl 60 set ref 634* 638 638* 644* 653 724* unspec builtin function dcl 89 set ref 815* user_arg 000346 automatic bit(1) dcl 60 set ref 254* 255* 267 user_select_count 20 based fixed bin(17,0) level 2 dcl 1-30 set ref 695 user_sw 22(03) based bit(1) level 3 packed packed unaligned dcl 1-30 set ref 261* 521* 557 695 verify builtin function dcl 89 ref 485 510 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. abs_keyword_index internal static fixed bin(17,0) initial array dcl 1-96 abs_keywords internal static char(32) initial array packed unaligned dcl 1-96 com_keyword_index internal static fixed bin(17,0) initial array dcl 1-96 com_keywords internal static char(32) initial array packed unaligned dcl 1-96 imft_keyword_index internal static fixed bin(17,0) initial array dcl 1-96 imft_keywords internal static char(32) initial array packed unaligned dcl 1-96 output_keyword_index internal static fixed bin(17,0) initial array dcl 1-96 output_keywords internal static char(32) initial array packed unaligned dcl 1-96 retv_keyword_index internal static fixed bin(17,0) initial array dcl 1-96 retv_keywords internal static char(32) initial array packed unaligned dcl 1-96 NAMES DECLARED BY EXPLICIT CONTEXT. BADOPT 003227 constant label dcl 474 ref 387 395 462 CHECK 003670 constant label dcl 557 ref 249 DUP_ENTRY_PATH 002136 constant label dcl 341 ref 542 ERROR_EXIT 004755 constant label dcl 725 ref 826 FULL_PATH_REQUIRED 003371 constant label dcl 505 ref 525 JOIN 001233 constant label dcl 241 ref 167 199 219 236 PRINT_ARG_ERR 001574 constant label dcl 293 ref 333 342 488 492 496 507 513 PRINT_MISS_ARG 002066 constant label dcl 326 ref 270 288 347 381 399 428 abs_list 001024 constant entry external dcl 172 get_arg 005075 constant entry internal dcl 777 ref 248 257 285 323 344 359 378 396 425 463 526 init 005140 constant entry internal dcl 793 ref 160 192 211 229 lar 000755 constant entry external dcl 18 lar_init 000772 constant label dcl 158 set ref 180 ldr 001100 constant entry external dcl 206 list_abs_requests 000764 constant entry external dcl 18 list_daemon_requests 001107 constant entry external dcl 206 list_output_requests 001155 constant entry external dcl 224 list_retrieval_requests 001044 constant entry external dcl 186 lor 001146 constant entry external dcl 224 lrr 001035 constant entry external dcl 186 print_err_msg 005363 constant entry internal dcl 840 ref 294 305 327 370 408 413 439 444 475 546 565 571 580 589 596 647 671 716 test_lar 004761 constant entry external dcl 739 test_ldr 005010 constant entry external dcl 750 test_lrr 005050 constant entry external dcl 760 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 7064 7372 6407 7074 Length 7710 6407 306 301 455 206 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME lar 588 external procedure is an external procedure. on unit on line 635 84 on unit get_arg internal procedure shares stack frame of external procedure lar. init internal procedure shares stack frame of external procedure lar. print_err_msg internal procedure shares stack frame of external procedure lar. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 abs_default_q lar 000011 abs_dir lar 000063 abs_max_q lar 000064 io_default_q lar 000065 io_max_q lar 000066 iod_dir lar 000140 not_initialized lar 000141 ret_default_q lar 000142 ret_max_q lar 000143 retriever_dir lar STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME lar 000100 abs_list_sw lar 000101 abs_n_sw lar 000102 arg_msg lar 000120 argptr lar 000122 arglen lar 000123 code lar 000124 ctl_arg_given lar 000125 default_queue lar 000126 dir lar 000200 ent lar 000210 err_msg lar 000310 finish lar 000311 foreground_sw lar 000312 gen_type lar 000322 i lar 000323 id lar 000333 ignore_code lar 000334 max_queue lar 000335 min_queue lar 000336 nargs lar 000337 priority lar 000340 rqt_sw lar 000341 rs_len lar 000342 start lar 000344 tp lar 000346 user_arg lar 000356 info_ptr lar 000360 local_info lar THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out_desc call_ext_out return_mac enable_op ext_entry ext_entry_desc int_entry set_chars_eis index_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr cu_$arg_ptr_rel cv_dec_check_ enter_output_request$default_request_type enter_output_request$request_type expand_pathname_ get_temp_segment_ hcs_$star_ ioa_ ioa_$rsnnl iod_info_$generic_type iod_info_$queue_data iod_info_$test iox_$put_chars lar_util_ message_segment_$close message_segment_$open release_temp_segment_ request_id_ sys_log_$command sys_log_$command_error system_info_$default_absentee_queue THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$id_not_found error_table_$noarg iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000754 156 000771 158 000772 160 000775 161 000776 162 001001 163 001003 164 001005 165 001010 166 001014 167 001016 172 001017 179 001031 180 001033 186 001034 190 001051 191 001052 192 001055 193 001056 194 001061 195 001063 196 001065 197 001070 198 001074 199 001076 206 001077 209 001114 210 001115 211 001120 212 001121 213 001124 214 001126 215 001130 216 001133 217 001136 218 001142 219 001144 224 001145 227 001162 228 001163 229 001166 230 001167 231 001171 232 001175 233 001200 235 001227 236 001232 241 001233 247 001237 248 001247 249 001251 250 001253 251 001267 252 001271 254 001306 255 001314 256 001315 257 001320 258 001325 260 001343 261 001344 262 001347 263 001360 264 001404 265 001413 266 001422 267 001423 268 001425 269 001430 270 001433 272 001434 274 001435 275 001445 276 001450 277 001452 278 001453 280 001473 281 001507 282 001517 284 001536 285 001547 286 001554 287 001556 288 001561 290 001562 291 001563 292 001571 293 001574 294 001632 295 001637 297 001640 298 001642 301 001662 303 001707 304 001711 305 001744 306 001751 309 001752 310 001755 312 001756 314 001772 316 002016 317 002026 318 002031 319 002033 320 002034 322 002050 323 002054 324 002061 325 002063 326 002066 327 002071 328 002075 330 002076 331 002077 332 002105 333 002110 335 002111 336 002113 337 002120 338 002121 339 002131 341 002136 342 002141 344 002142 345 002147 346 002151 347 002154 349 002155 350 002156 351 002161 352 002166 356 002167 357 002173 358 002210 359 002212 360 002217 364 002235 365 002236 366 002241 367 002251 368 002254 370 002310 371 002315 374 002316 375 002317 377 002332 378 002336 379 002343 380 002345 381 002350 383 002351 384 002352 385 002355 386 002362 387 002363 390 002375 394 002376 395 002400 396 002411 397 002416 398 002420 399 002423 401 002424 402 002425 403 002427 404 002432 405 002456 407 002463 408 002515 409 002522 412 002523 413 002555 415 002562 417 002570 422 002614 423 002615 424 002617 425 002630 426 002635 427 002637 428 002642 430 002643 431 002644 432 002646 433 002651 436 002710 438 002715 439 002747 440 002754 443 002755 444 003007 446 003014 447 003015 448 003025 449 003030 451 003057 452 003060 453 003070 454 003073 456 003122 457 003123 458 003127 459 003132 461 003161 462 003162 463 003166 464 003173 465 003211 466 003212 467 003216 468 003217 469 003223 472 003226 474 003227 475 003233 476 003246 478 003247 482 003250 485 003265 486 003311 487 003313 488 003316 490 003317 491 003323 492 003326 494 003327 495 003332 496 003335 498 003336 499 003340 500 003344 501 003346 502 003363 504 003364 505 003371 507 003374 510 003375 511 003410 512 003414 513 003417 515 003420 516 003422 517 003426 518 003427 521 003443 522 003446 523 003457 524 003503 525 003512 526 003516 527 003523 528 003525 531 003544 533 003551 536 003552 540 003562 542 003563 543 003567 544 003617 545 003621 546 003654 547 003660 549 003661 553 003666 557 003670 563 003703 565 003706 566 003713 569 003714 570 003730 571 003733 572 003740 575 003741 576 003743 577 003752 578 003757 580 004014 581 004021 585 004022 587 004030 589 004067 590 004074 593 004075 594 004104 596 004130 597 004135 599 004136 601 004157 603 004173 608 004176 609 004201 610 004203 611 004205 612 004206 614 004214 615 004217 616 004221 617 004223 620 004225 621 004230 623 004234 630 004243 634 004244 635 004246 636 004262 638 004276 640 004324 644 004325 645 004346 646 004350 647 004353 648 004357 653 004360 657 004362 658 004376 659 004406 660 004437 661 004465 665 004467 666 004500 669 004512 670 004514 671 004560 673 004564 674 004566 675 004570 682 004573 693 004611 695 004616 698 004626 699 004631 703 004633 712 004666 713 004672 714 004707 715 004711 716 004714 718 004720 724 004734 725 004755 739 004756 743 004774 744 004777 745 005005 750 005006 752 005023 753 005026 754 005034 755 005045 760 005046 762 005063 763 005066 764 005074 777 005075 781 005077 783 005122 784 005137 793 005140 795 005141 796 005144 797 005171 798 005173 799 005176 802 005200 803 005203 804 005211 806 005216 807 005274 809 005301 811 005307 814 005310 815 005312 817 005315 818 005317 819 005322 820 005324 821 005327 823 005330 824 005340 825 005342 826 005357 828 005360 831 005362 840 005363 847 005365 848 005367 850 005430 851 005455 852 005456 853 005505 ----------------------------------------------------------- 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