COMPILATION LISTING OF SEGMENT retv_account_ 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.3 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 retv_account_: proc; 12 13 /* This routine provides all the accounting functions for the volume retriever. It creates and initializes the 14* account segment in the directory >system_control_1>volume_backup_accounts with a time stamp name. For each object that the 15* retriever recovers, the requestors name is entered into the account segment, if not already there, and the 16* objects recovered count is incremented by one. A test entry is provided to bypass the system directory. */ 17 18 dcl test_dir char (*); 19 dcl ename char (32) aligned; 20 dcl code fixed bin (35); 21 dcl enl fixed bin; 22 dcl time_string char (15) aligned; 23 dcl i fixed bin; 24 dcl found bit (1); 25 dcl requestor char (*); 26 27 dcl myname char (32) int static init ("retv_account_") options (constant); 28 29 dcl retv_report_$error_output entry options (variable); 30 dcl get_wdir_ entry returns (char (168) aligned); 31 dcl date_time_ entry (fixed bin (71), char (*) aligned); 32 dcl ioa_$rsnnl entry options (variable); 33 dcl hcs_$make_seg entry (char (*) aligned, char (*) aligned, char (*) aligned, fixed bin (5), ptr, fixed bin (35)); 34 35 dcl (addr, substr, clock) builtin; 36 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 */ 37 2 1 /* BEGIN INCLUDE FILE ... retv_account_seg.incl.pl1 9/76 */ 2 2 2 3 dcl rasp ptr; 2 4 dcl rasep ptr; 2 5 dcl retv_account_seg_version_1 fixed bin int static init (1) options (constant); 2 6 2 7 dcl retv_account_dir char (168) aligned int static init (">system_control_1>volume_backup_accounts"); 2 8 2 9 dcl 1 retv_account_seg based (rasp) aligned, 2 10 2 version fixed bin, 2 11 2 next fixed bin, 2 12 2 array (1) like rase aligned; 2 13 2 14 dcl 1 rase aligned based (rasep), 2 15 2 requestor char (32), 2 16 2 n_objects fixed bin; 2 17 2 18 /* END INCLUDE FILE ... retv_account_seg.incl.pl1 */ 38 39 40 create: entry (code); 41 42 /* This entry creates an retrieval account seg with a time stamp name, initializes it and sets the 43* static ptr to it. */ 44 45 code = 0; 46 call date_time_ (clock (), time_string); 47 call ioa_$rsnnl ("^a.^a.^a", ename, enl, "retv_account", substr (time_string, 1, 8), substr (time_string, 11, 4)); 48 call hcs_$make_seg (retv_account_dir, ename, "", 01011b, rasp, code); 49 if code ^= 0 then do; 50 call retv_report_$error_output (code, myname, "Unable to create ^a>^a", retv_account_dir, ename); 51 return; 52 end; 53 retv_account_seg.version = retv_account_seg_version_1; 54 retv_data_.rasp = rasp; 55 return; 56 57 update: entry (requestor); 58 59 /* This entry adds the requestors name to the next empty slot in the accounting table, if not already in the table, 60* and incremets the count of objects recovered. */ 61 62 rasp = retv_data_.rasp; 63 found = "0"b; 64 do i = 1 to retv_account_seg.next while (^found); 65 rasep = addr (retv_account_seg.array (i)); 66 if rase.requestor = requestor then do; 67 found = "1"b; 68 rase.n_objects = rase.n_objects + 1; 69 end; 70 end; 71 if ^found then do; 72 retv_account_seg.next = retv_account_seg.next + 1; 73 rasep = addr (retv_account_seg.array (i)); 74 rase.requestor = requestor; 75 rase.n_objects = 1; 76 end; 77 return; 78 79 test: entry (test_dir); 80 81 /* This entry allows testing by resetting the directory in which the account seg is created */ 82 83 retv_account_dir = test_dir; 84 return; 85 86 end retv_account_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/17/88 1428.0 retv_account_.pl1 >spec>install>MR12.2-1173>retv_account_.pl1 37 1 10/17/88 1425.1 retv_data_.incl.pl1 >spec>install>MR12.2-1173>retv_data_.incl.pl1 38 2 09/04/80 2006.4 retv_account_seg.incl.pl1 >ldd>include>retv_account_seg.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. addr builtin function dcl 35 ref 65 73 array 2 based structure array level 2 dcl 2-9 set ref 65 73 clock builtin function dcl 35 ref 46 46 code parameter fixed bin(35,0) dcl 20 set ref 40 45* 48* 49 50* date_time_ 000064 constant entry external dcl 31 ref 46 ename 000100 automatic char(32) dcl 19 set ref 47* 48* 50* enl 000110 automatic fixed bin(17,0) dcl 21 set ref 47* found 000116 automatic bit(1) packed unaligned dcl 24 set ref 63* 64 67* 71 hcs_$make_seg 000070 constant entry external dcl 33 ref 48 i 000115 automatic fixed bin(17,0) dcl 23 set ref 64* 65* 73 ioa_$rsnnl 000066 constant entry external dcl 32 ref 47 myname 000000 constant char(32) initial packed unaligned dcl 27 set ref 50* n_objects 10 based fixed bin(17,0) level 2 dcl 2-14 set ref 68* 68 75* next 1 based fixed bin(17,0) level 2 dcl 2-9 set ref 64 72* 72 ptrs 234 000072 external static structure level 2 dcl 1-27 rase based structure level 1 dcl 2-14 rasep 000122 automatic pointer dcl 2-4 set ref 65* 66 68 68 73* 74 75 rasp 242 000072 external static pointer level 3 in structure "retv_data_" dcl 1-27 in procedure "retv_account_" set ref 54* 62 rasp 000120 automatic pointer dcl 2-3 in procedure "retv_account_" set ref 48* 53 54 62* 64 65 72 72 73 requestor parameter char packed unaligned dcl 25 in procedure "retv_account_" ref 57 66 74 requestor based char(32) level 2 in structure "rase" dcl 2-14 in procedure "retv_account_" set ref 66 74* retv_account_dir 000010 internal static char(168) initial dcl 2-7 set ref 48* 50* 83* retv_account_seg based structure level 1 dcl 2-9 retv_account_seg_version_1 constant fixed bin(17,0) initial dcl 2-5 ref 53 retv_data_ 000072 external static structure level 1 dcl 1-27 retv_report_$error_output 000062 constant entry external dcl 29 ref 50 substr builtin function dcl 35 ref 47 47 47 47 test_dir parameter char packed unaligned dcl 18 ref 79 83 time_string 000111 automatic char(15) dcl 22 set ref 46* 47 47 47 47 version based fixed bin(17,0) level 2 dcl 2-9 set ref 53* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. get_wdir_ 000000 constant entry external dcl 30 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 user internal static fixed bin(17,0) initial dcl 1-24 NAMES DECLARED BY EXPLICIT CONTEXT. create 000055 constant entry external dcl 40 retv_account_ 000044 constant entry external dcl 11 test 000363 constant entry external dcl 79 update 000266 constant entry external dcl 57 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 524 620 406 534 Length 1040 406 74 203 115 52 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME retv_account_ 128 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 retv_account_dir retv_account_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME retv_account_ 000100 ename retv_account_ 000110 enl retv_account_ 000111 time_string retv_account_ 000115 i retv_account_ 000116 found retv_account_ 000120 rasp retv_account_ 000122 rasep retv_account_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return_mac ext_entry ext_entry_desc clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. date_time_ hcs_$make_seg ioa_$rsnnl retv_report_$error_output THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. retv_data_ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000043 40 000051 45 000062 46 000064 47 000103 48 000154 49 000214 50 000217 51 000253 53 000254 54 000256 55 000262 57 000263 62 000301 63 000305 64 000306 65 000321 66 000325 67 000334 68 000336 70 000337 71 000341 72 000343 73 000345 74 000350 75 000356 77 000360 79 000361 83 000376 84 000405 ----------------------------------------------------------- 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