COMPILATION LISTING OF SEGMENT retv_report_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/17/88 1432.2 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 retv_report_: proc; 11 12 /* This routine is used by the volume retriever to report and log error and status 13* messages. It is modled after the system routine com_err_. When called for the first time in a volume retriever 14* invocation, it creates, in the working directory, an error file, in which it logs all error and status messages. 15* If requested it also writes error messages on the stream error_output. */ 16 17 dcl code fixed bin (35); 18 dcl icode fixed bin (35); 19 dcl tstring char (24); 20 dcl uname char (32); 21 dcl caller char (*); 22 dcl message char (*); 23 dcl argp ptr; 24 dcl retv_string char (512); 25 dcl control_string char (32) aligned; 26 dcl len fixed bin; 27 dcl error_output bit (1); 28 dcl short char (8) aligned; 29 dcl long char (100) aligned; 30 31 dcl myname char (15) static init ("retv_report_") options (constant); 32 33 dcl iox_$error_output ptr ext; 34 35 dcl date_time_ entry (fixed bin (71), char (*)); 36 dcl cu_$arg_list_ptr entry (ptr); 37 dcl ioa_$general_rs entry (ptr, fixed bin, fixed bin, char (*), fixed bin, bit (1) aligned, bit (1) aligned); 38 dcl iox_$attach_ioname entry (char (*), ptr, char (*), fixed bin (35)); 39 dcl iox_$open entry (ptr, fixed bin, bit (36), fixed bin (35)); 40 dcl convert_status_code_ entry (fixed bin (35), char (8) aligned, char (100) aligned); 41 dcl ioa_$ioa_switch entry options (variable); 42 dcl retv_report_$online_output entry options (variable); 43 44 dcl null builtin; 45 dcl clock builtin; 46 dcl substr builtin; 47 1 1 /* BEGIN INCLUDE FILE ... retv_data_.incl.pl1 ... 8/76 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(86-11-17,GWMay), approve(86-11-17,MCR7445), audit(86-11-19,GDixon), 1 7* install(86-11-21,MR12.0-1223): 1 8* Changed declaration of queue_dir from constant to just internal static so 1 9* that the entrypoints "test" in the err and retrieve_from_volume requests 1 10* are able to modify the value. 1 11* 2) change(88-08-10,GWMay), approve(88-10-05,MCR8005), audit(88-10-12,Farley), 1 12* install(88-10-17,MR12.2-1173): 1 13* Added pointer and length values for use as an input_buffer for 1 14* intermediate reads. 1 15* END HISTORY COMMENTS */ 1 16 1 17 1 18 dcl retv_data_version_1 fixed bin static init (1) options(constant); /* version of data base */ 1 19 1 20 /* queue_dir should not be declared options (constant). $test entrypoints in */ 1 21 /* enter_retrieval_request and retrieve_from_volume programs modify it. */ 1 22 1 23 dcl queue_dir char (168) int static init (">daemon_dir_dir>volume_retriever"); 1 24 dcl user fixed bin static init (1) options (constant); 1 25 dcl retriever fixed bin static init (2) options (constant); 1 26 1 27 dcl 1 retv_data_ external static aligned, 1 28 2 version fixed bin, /* version of structure */ 1 29 2 fixed, 1 30 3 qidx (2) fixed bin, /* indexs of queues */ 1 31 3 queue fixed bin, /* mseg queue */ 1 32 3 nvol fixed bin, /* number of volume control segments */ 1 33 3 spare fixed bin, 1 34 3 input_buffer_len fixed bin (21), /* length of the data in the read buffer */ 1 35 3 input_buffer_start fixed bin (21), /* position in read buffer where new data begins */ 1 36 2 chars, 1 37 3 sys_dir char (168), /* system dir where files live */ 1 38 3 last_valid_vtoce_ename char (32), /* last valid entry name from vtoce */ 1 39 3 last_volname char (32), /* last volume mounted */ 1 40 3 io_module char (32), /* name of io outer module */ 1 41 3 input_volume_desc char (256), /* alternate input attach description */ 1 42 2 bits, 1 43 3 last_valid_puid (16) bit (36), /* last valid uid pathname */ 1 44 3 flags, 1 45 4 manual bit (1) unal, /* if on operator will tell us what tapes to use */ 1 46 4 arg_init bit (1) unal, /* if on indicates that args have been processed */ 1 47 4 err_online bit (1) unal, /* if on causes errors to be printed */ 1 48 4 disable_error_report bit (1) unal, /* if on - no errors are reported */ 1 49 4 all bit (1) unal, /* if on indicates all queues are processed */ 1 50 4 accounting bit (1) unal, /* if on enable accounting */ 1 51 4 debug bit (1) unal, /* if on, enable debugging features */ 1 52 4 long bit(1) unal, /* if on enable long messages */ 1 53 2 ptrs, 1 54 3 page_buffer_ptr ptr, /* ptr to paged read buffer */ 1 55 3 input_buffer_ptr ptr, /* ptr to read buffer */ 1 56 3 skip ptr, /* ptr to skip_list */ 1 57 3 rasp ptr, /* ptr to accounting seg */ 1 58 3 input_iocbp ptr, /* iocb ptr for input */ 1 59 3 error_iocbp ptr, /* iocb ptr for error output */ 1 60 3 areap ptr, /* ptr to system area */ 1 61 3 contentsp ptr, /* ptr to most recent contents seg from input volume */ 1 62 3 nlp ptr, /* ptr to name array for branch being retrieved */ 1 63 3 aclp ptr, /* ptr to acl array for branch being retrieved */ 1 64 3 recordp ptr, /* ptr to last read volume record */ 1 65 3 objectp ptr, /* ptr to last read segmet or directory */ 1 66 3 vlp ptr, /* ptr to last reload group generated */ 1 67 3 rvcp (1000) ptr; /* ptrs to volume control segments */ 1 68 1 69 /* END INCLUDE FILE ... retv_data_.incl.pl1 */ 48 2 1 /* Begin include file ..... iox_modes.incl.pl1 */ 2 2 2 3 /* Written by C. D. Tavares, 03/17/75 */ 2 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 2 5 2 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 2 7 ("stream_input", "stream_output", "stream_input_output", 2 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 2 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 2 10 "direct_input", "direct_output", "direct_update"); 2 11 2 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 2 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 2 14 2 15 dcl (Stream_input initial (1), 2 16 Stream_output initial (2), 2 17 Stream_input_output initial (3), 2 18 Sequential_input initial (4), 2 19 Sequential_output initial (5), 2 20 Sequential_input_output initial (6), 2 21 Sequential_update initial (7), 2 22 Keyed_sequential_input initial (8), 2 23 Keyed_sequential_output initial (9), 2 24 Keyed_sequential_update initial (10), 2 25 Direct_input initial (11), 2 26 Direct_output initial (12), 2 27 Direct_update initial (13)) fixed bin int static options (constant); 2 28 2 29 /* End include file ..... iox_modes.incl.pl1 */ 49 50 51 error_output: entry (icode, caller, message); 52 53 /* If an error file is not attached then fabricate a name with a data/time stamp, attach and open it. If 54* successsful then report via online mechanism. */ 55 56 if retv_data_.disable_error_report then return; 57 error_output = "1"b; 58 59 if retv_data_.error_iocbp = null then do; /* error file not attached */ 60 61 call date_time_ (clock, tstring); 62 uname = "retv_err." || substr (tstring, 1, 8)||"."|| substr (tstring, 11, 4); 63 call iox_$attach_ioname ("error_file", retv_data_.error_iocbp, "vfile_ " || uname, code); 64 if code ^= 0 then do; 65 call retv_report_$online_output (code, myname, "Unable to attach error file"); 66 return; 67 end; 68 call iox_$open (retv_data_.error_iocbp, Stream_output, ""b, code); 69 if code ^= 0 then do; 70 call retv_report_$online_output (code, myname, "Error opening error file"); 71 return; 72 end; 73 call retv_report_$online_output (0, myname, "Error file ^a created", uname); 74 end; 75 76 common: 77 /* If given a non-zero code convert to a message */ 78 if icode ^= 0 then do; 79 call convert_status_code_ (icode, short, long); 80 control_string = "^a:^x^a;^x^a"; 81 end; 82 else do; 83 short, long = ""; 84 control_string = "^a:^x^a^s"; 85 end; 86 /* pick up arg list ptr */ 87 call cu_$arg_list_ptr (argp); 88 /* convert args to message */ 89 call ioa_$general_rs (argp, 3, 4, retv_string, len, "0"b, "0"b); 90 if error_output then /* write to file if specified */ 91 call ioa_$ioa_switch (retv_data_.error_iocbp, control_string, caller, substr (retv_string, 1, len), long); 92 93 94 /* Write online if requested, if args not initialized yet, or if online entry */ 95 96 if (error_output & retv_data_.err_online) | ^error_output | ^retv_data_.arg_init then 97 call ioa_$ioa_switch (iox_$error_output, control_string, caller, substr (retv_string, 1, len), long); 98 99 return; 100 101 online_output: entry (icode, caller, message); 102 103 error_output = "0"b; 104 goto common; 105 106 end retv_report_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/17/88 1428.0 retv_report_.pl1 >spec>install>MR12.2-1173>retv_report_.pl1 48 1 10/17/88 1425.1 retv_data_.incl.pl1 >spec>install>MR12.2-1173>retv_data_.incl.pl1 49 2 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.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. Stream_output 000026 constant fixed bin(17,0) initial dcl 2-15 set ref 68* arg_init 232(01) 000032 external static bit(1) level 4 packed packed unaligned dcl 1-27 ref 96 argp 000120 automatic pointer dcl 23 set ref 87* 89* bits 212 000032 external static structure level 2 dcl 1-27 caller parameter char packed unaligned dcl 21 set ref 51 90* 96* 101 clock builtin function dcl 45 ref 61 61 code 000100 automatic fixed bin(35,0) dcl 17 set ref 63* 64 65* 68* 69 70* control_string 000322 automatic char(32) dcl 25 set ref 80* 84* 90* 96* convert_status_code_ 000024 constant entry external dcl 40 ref 79 cu_$arg_list_ptr 000014 constant entry external dcl 36 ref 87 date_time_ 000012 constant entry external dcl 35 ref 61 disable_error_report 232(03) 000032 external static bit(1) level 4 packed packed unaligned dcl 1-27 ref 56 err_online 232(02) 000032 external static bit(1) level 4 packed packed unaligned dcl 1-27 ref 96 error_iocbp 246 000032 external static pointer level 3 dcl 1-27 set ref 59 63* 68* 90* error_output 000333 automatic bit(1) packed unaligned dcl 27 set ref 57* 90 96 96 103* flags 232 000032 external static structure level 3 dcl 1-27 icode parameter fixed bin(35,0) dcl 18 set ref 51 76 79* 101 ioa_$general_rs 000016 constant entry external dcl 37 ref 89 ioa_$ioa_switch 000026 constant entry external dcl 41 ref 90 96 iox_$attach_ioname 000020 constant entry external dcl 38 ref 63 iox_$error_output 000010 external static pointer dcl 33 set ref 96* iox_$open 000022 constant entry external dcl 39 ref 68 len 000332 automatic fixed bin(17,0) dcl 26 set ref 89* 90 90 96 96 long 000336 automatic char(100) dcl 29 set ref 79* 83* 90* 96* message parameter char packed unaligned dcl 22 ref 51 101 myname 000000 constant char(15) initial packed unaligned dcl 31 set ref 65* 70* 73* null builtin function dcl 44 ref 59 ptrs 234 000032 external static structure level 2 dcl 1-27 retv_data_ 000032 external static structure level 1 dcl 1-27 retv_report_$online_output 000030 constant entry external dcl 42 ref 65 70 73 retv_string 000122 automatic char(512) packed unaligned dcl 24 set ref 89* 90 90 96 96 short 000334 automatic char(8) dcl 28 set ref 79* 83* substr builtin function dcl 46 ref 62 62 90 90 96 96 tstring 000101 automatic char(24) packed unaligned dcl 19 set ref 61* 62 62 uname 000107 automatic char(32) packed unaligned dcl 20 set ref 62* 63 73* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Direct_input internal static fixed bin(17,0) initial dcl 2-15 Direct_output internal static fixed bin(17,0) initial dcl 2-15 Direct_update internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 2-15 Sequential_input internal static fixed bin(17,0) initial dcl 2-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 2-15 Sequential_output internal static fixed bin(17,0) initial dcl 2-15 Sequential_update internal static fixed bin(17,0) initial dcl 2-15 Stream_input internal static fixed bin(17,0) initial dcl 2-15 Stream_input_output internal static fixed bin(17,0) initial dcl 2-15 iox_modes internal static char(24) initial array dcl 2-6 queue_dir internal static char(168) initial packed unaligned dcl 1-23 retriever internal static fixed bin(17,0) initial dcl 1-25 retv_data_version_1 internal static fixed bin(17,0) initial dcl 1-18 short_iox_modes internal static char(4) initial array dcl 2-12 user internal static fixed bin(17,0) initial dcl 1-24 NAMES DECLARED BY EXPLICIT CONTEXT. common 000404 constant label dcl 76 ref 104 error_output 000110 constant entry external dcl 51 online_output 000644 constant entry external dcl 101 retv_report_ 000076 constant entry external dcl 10 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1034 1070 667 1044 Length 1314 667 34 210 144 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME retv_report_ 324 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME retv_report_ 000100 code retv_report_ 000101 tstring retv_report_ 000107 uname retv_report_ 000120 argp retv_report_ 000122 retv_string retv_report_ 000322 control_string retv_report_ 000332 len retv_report_ 000333 error_output retv_report_ 000334 short retv_report_ 000336 long retv_report_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry ext_entry_desc clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. convert_status_code_ cu_$arg_list_ptr date_time_ ioa_$general_rs ioa_$ioa_switch iox_$attach_ioname iox_$open retv_report_$online_output THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$error_output retv_data_ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000075 51 000103 56 000130 57 000134 59 000136 61 000142 62 000161 63 000206 64 000247 65 000251 66 000275 68 000276 69 000316 70 000320 71 000347 73 000350 76 000404 79 000407 80 000422 81 000425 83 000426 84 000433 87 000436 89 000445 90 000512 96 000557 99 000640 101 000642 103 000664 104 000665 ----------------------------------------------------------- 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