COMPILATION LISTING OF SEGMENT retv_notify_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/17/82 1627.8 mst Wed 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_notify_: proc (message, inputp, myname); 12 13 /* This proc prints informative messages and notifies the user if requested */ 14 15 dcl message char (*); 16 dcl myname char (*); 17 dcl new_message char (256); 18 dcl code fixed bin (35); 19 dcl ignore fixed bin(35); 20 21 dcl ioa_ entry options (variable); 22 dcl ioa_$rsnnl entry options (variable); 23 dcl retv_report_$error_output entry options (variable); 24 dcl request_id_ entry (fixed bin (71)) returns (char (19)); 25 dcl send_message_$notify_mail entry (char (*), char (*), fixed bin (35)); 26 dcl send_mail_$access_class entry (char (*), char (*), ptr, bit (72) aligned, fixed bin (35)); 27 28 dcl (addr, substr, after, reverse) builtin; 29 1 1 /* BEGIN INCLUDE FILE ... retv_input.incl.pl1 ... June 1976 */ 1 2 1 3 dcl inputp ptr; 1 4 1 5 1 6 dcl 1 retv_input based (inputp) aligned, 1 7 2 request like retv_request aligned, /* orignal request */ 1 8 2 bits, 1 9 3 dir_scanned bit (1), /* if on indicates that dir already scanned for subtree requests */ 1 10 3 proxy bit (1), /* on if request submitted as result of -all option */ 1 11 3 user_ms_id bit (72), /* uid of message in user queue */ 1 12 3 retv_ms_id bit(72), /* uid of message in retv queue */ 1 13 3 access_class bit (72), /* access class of requestor */ 1 14 3 uid bit (36), /* uid of object being retrieved */ 1 15 3 entry_retrieval bit (1), /* on if this is a entry retrieval */ 1 16 3 entry_recovered bit (1), /* on if entry recovered */ 1 17 3 in_progress bit (1), /* on if retrieval in progress */ 1 18 3 object_recovered bit (1), /* on if object finished */ 1 19 3 recovery_complete bit (1), /* on if recovery complete */ 1 20 3 skip_it bit (1), /* if on skip this request */ 1 21 3 volid bit (36), /* volid object recoverd from */ 1 22 2 fixed_bin, 1 23 3 level fixed bin, /* validation level of requestor */ 1 24 3 q_num fixed bin, /* queue number of user queue being serviced */ 1 25 3 errcode fixed bin (35), /* error code if retrieval failed */ 1 26 3 submission_time fixed bin (71), /* time request submitted */ 1 27 2 chars, 1 28 3 requestor char (32), /* qed */ 1 29 3 entry_name char (32); /* name of entry being retrieved */ 1 30 1 31 /* END INCLUDE FILE ... retv_input.incl.pl1 */ 30 2 1 /* BEGIN INCLUDE FILE ... retv_request.incl.pl1 ... June 1976 */ 2 2 2 3 dcl requestp ptr; 2 4 2 5 dcl retv_request_version_2 fixed bin int static init (2) options (constant); 2 6 2 7 dcl 1 retv_request based (requestp) aligned, 2 8 2 header like queue_msg_hdr, 2 9 2 bits, 2 10 3 subtree bit (1), /* on if sub-tree retrieval desired */ 2 11 3 dirs bit (1), /* on if only subtree dirs desired */ 2 12 3 segs bit (1), /* on if only subtree segments desired */ 2 13 3 previous bit (1), /* on if prior object desired */ 2 14 2 fixed_bin, 2 15 3 version fixed bin, /* version of structure */ 2 16 3 to_time fixed bin (71), /* latest time to start search from */ 2 17 3 from_time fixed bin (71), /* from_time time not to search past */ 2 18 2 chars, 2 19 3 new_dirname char (168), /* cross retrieval directory name */ 2 20 3 new_ename char (32); /* cross retrieval entry name */ 2 21 2 22 /* END INCLUDE FILE ... retv_request.incl.pl1 */ 31 3 1 /* BEGIN send_mail_info include file */ 3 2 3 3 dcl send_mail_info_version_2 fixed bin init(2); 3 4 3 5 dcl 1 send_mail_info aligned, 3 6 2 version fixed bin, /* = 2 */ 3 7 2 sent_from char(32) aligned, 3 8 2 switches, 3 9 3 wakeup bit(1) unal, 3 10 3 mbz1 bit(1) unal, 3 11 3 always_add bit(1) unal, 3 12 3 never_add bit(1) unal, 3 13 3 notify bit(1) unal, 3 14 3 acknowledge bit(1) unal, 3 15 3 mbz bit(30) unal; 3 16 3 17 /* END send_mail_info include file */ 32 4 1 /* BEGIN INCLUDE FILE ... queue_msg_hdr.incl.pl1 */ 4 2 4 3 /* This is the message header used for standard system queue messages, namely: 4 4* IO daemon requests, absentee requests, retrieval requests. 4 5**/ 4 6 4 7 /* Written by Jerry Whitmore, Spring 1978. 4 8* Modified by T. Casey, November 1978, to add values for state. 4 9* Modified by R. Kovalcik, June 1982, defer_until_process_terminataion 4 10**/ 4 11 4 12 dcl 1 queue_msg_hdr based aligned, /* standard header for all system queue messages */ 4 13 2 msg_time fixed bin (71), /* date and time of request */ 4 14 2 hdr_version fixed bin, /* version of this declaration */ 4 15 2 dirname char (168), /* directory name */ 4 16 2 ename char (32), /* entry name of file requested */ 4 17 2 message_type fixed bin, /* message format descriptor */ 4 18 /* 0 = absentee request */ 4 19 /* 1 = print request */ 4 20 /* 2 = punch request */ 4 21 /* 3 = tape request */ 4 22 /* 4 = retrieval request */ 4 23 2 bit_flags, 4 24 3 delete_sw bit (1) unal, /* delete file when done */ 4 25 3 notify bit (1) unal, /* user wants to be notified */ 4 26 3 defer_until_process_termination bit (1) unal, /* don't process request until process terminates */ 4 27 3 padding bit (33) unal, 4 28 2 state fixed bin, /* stage of processing after being queued: 4 29* 0 = initial unprocessed state, 1 = deferred, 4 30* 2 = in state transition, 3 = eligible, 4 = running, 4 31* 5 = bumped, 6 = deferred_until_process_termination */ 4 32 2 orig_queue fixed bin, /* queue the request was submitted to */ 4 33 2 std_length fixed bin, /* length of std msg for this type */ 4 34 2 dupt_lock bit (36) aligned, /* lock word for defer until process termination */ 4 35 2 hdr_pad (3) fixed bin; 4 36 4 37 dcl queue_msg_hdr_version_1 fixed bin int static options (constant) init (1); /* current version of the header */ 4 38 4 39 /* Values for queue_msg_hdr.state */ 4 40 4 41 dcl STATE_UNPROCESSED fixed bin int static options (constant) init (0); 4 42 dcl STATE_DEFERRED fixed bin int static options (constant) init (1); 4 43 dcl STATE_TRANSITION fixed bin int static options (constant) init (2); 4 44 dcl STATE_ELIGIBLE fixed bin int static options (constant) init (3); 4 45 dcl STATE_RUNNING fixed bin int static options (constant) init (4); 4 46 dcl STATE_BUMPED fixed bin int static options (constant) init (5); 4 47 dcl STATE_DUPT fixed bin int static options (constant) init (6); 4 48 4 49 /* END INCLUDE FILE ... queue_msg_hdr.incl.pl1 */ 33 34 35 send_mail_info.version = send_mail_info_version_2; 36 send_mail_info.sent_from = "Volume Retriever"; 37 send_mail_info.wakeup = "0"b; 38 send_mail_info.always_add = "1"b; 39 send_mail_info.never_add = "0"b; 40 send_mail_info.acknowledge = "0"b; 41 call ioa_ ("^a", message); 42 if retv_input.notify then do; 43 call ioa_$rsnnl ("ID: ^a ^a", new_message, (0), substr (request_id_ (retv_input.msg_time), 7, 8), 44 message); 45 call send_mail_$access_class (mail_destination_ (), new_message, 46 addr (send_mail_info), retv_input.access_class, code); 47 if code ^= 0 then 48 call retv_report_$error_output (code, myname, "Unable to notify ^a", 49 mail_destination_ ()); 50 call send_message_$notify_mail (mail_destination_ (), "", ignore); 51 end; 52 53 mail_destination_: proc returns (char (32)); 54 55 /* This proc constructs the mail/send_message destination from the requestor's name */ 56 57 return (reverse (after (reverse (retv_input.requestor), "."))); 58 end mail_destination_; 59 end retv_notify_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/17/82 1626.4 retv_notify_.pl1 >spec>on>11/17/82>retv_notify_.pl1 30 1 05/01/81 1921.2 retv_input.incl.pl1 >ldd>include>retv_input.incl.pl1 31 2 09/04/80 2006.4 retv_request.incl.pl1 >ldd>include>retv_request.incl.pl1 32 3 04/27/78 1504.4 send_mail_info.incl.pl1 >ldd>include>send_mail_info.incl.pl1 33 4 08/31/82 1636.3 queue_msg_hdr.incl.pl1 >ldd>include>queue_msg_hdr.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. access_class 200 based bit(72) level 3 dcl 1-6 set ref 45* acknowledge 11(05) 000203 automatic bit(1) level 3 packed unaligned dcl 3-5 set ref 40* addr builtin function dcl 28 ref 45 45 after builtin function dcl 28 ref 57 always_add 11(02) 000203 automatic bit(1) level 3 packed unaligned dcl 3-5 set ref 38* bit_flags 66 based structure level 4 dcl 1-6 bits 172 based structure level 2 dcl 1-6 chars 220 based structure level 2 dcl 1-6 code 000200 automatic fixed bin(35,0) dcl 18 set ref 45* 47 47* header based structure level 3 dcl 1-6 ignore 000201 automatic fixed bin(35,0) dcl 19 set ref 50* inputp parameter pointer dcl 1-3 ref 11 42 43 43 45 57 ioa_ 000010 constant entry external dcl 21 ref 41 ioa_$rsnnl 000012 constant entry external dcl 22 ref 43 message parameter char unaligned dcl 15 set ref 11 41* 43* msg_time based fixed bin(71,0) level 4 dcl 1-6 set ref 43* 43* myname parameter char unaligned dcl 16 set ref 11 47* never_add 11(03) 000203 automatic bit(1) level 3 packed unaligned dcl 3-5 set ref 39* new_message 000100 automatic char(256) unaligned dcl 17 set ref 43* 45* notify 66(01) based bit(1) level 5 packed unaligned dcl 1-6 ref 42 queue_msg_hdr based structure level 1 dcl 4-12 request based structure level 2 dcl 1-6 request_id_ 000016 constant entry external dcl 24 ref 43 43 requestor 220 based char(32) level 3 dcl 1-6 ref 57 retv_input based structure level 1 dcl 1-6 retv_report_$error_output 000014 constant entry external dcl 23 ref 47 retv_request based structure level 1 dcl 2-7 reverse builtin function dcl 28 ref 57 57 send_mail_$access_class 000022 constant entry external dcl 26 ref 45 send_mail_info 000203 automatic structure level 1 dcl 3-5 set ref 45 45 send_mail_info_version_2 000202 automatic fixed bin(17,0) initial dcl 3-3 set ref 35 3-3* send_message_$notify_mail 000020 constant entry external dcl 25 ref 50 sent_from 1 000203 automatic char(32) level 2 dcl 3-5 set ref 36* substr builtin function dcl 28 ref 43 43 switches 11 000203 automatic structure level 2 dcl 3-5 version 000203 automatic fixed bin(17,0) level 2 dcl 3-5 set ref 35* wakeup 11 000203 automatic bit(1) level 3 packed unaligned dcl 3-5 set ref 37* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. STATE_BUMPED internal static fixed bin(17,0) initial dcl 4-46 STATE_DEFERRED internal static fixed bin(17,0) initial dcl 4-42 STATE_DUPT internal static fixed bin(17,0) initial dcl 4-47 STATE_ELIGIBLE internal static fixed bin(17,0) initial dcl 4-44 STATE_RUNNING internal static fixed bin(17,0) initial dcl 4-45 STATE_TRANSITION internal static fixed bin(17,0) initial dcl 4-43 STATE_UNPROCESSED internal static fixed bin(17,0) initial dcl 4-41 queue_msg_hdr_version_1 internal static fixed bin(17,0) initial dcl 4-37 requestp automatic pointer dcl 2-3 retv_request_version_2 internal static fixed bin(17,0) initial dcl 2-5 NAMES DECLARED BY EXPLICIT CONTEXT. mail_destination_ 000317 constant entry internal dcl 53 ref 45 45 47 47 50 50 retv_notify_ 000036 constant entry external dcl 11 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 500 524 373 510 Length 760 373 24 220 104 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME retv_notify_ 207 external procedure is an external procedure. mail_destination_ internal procedure shares stack frame of external procedure retv_notify_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME retv_notify_ 000100 new_message retv_notify_ 000200 code retv_notify_ 000201 ignore retv_notify_ 000202 send_mail_info_version_2 retv_notify_ 000203 send_mail_info retv_notify_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return shorten_stack ext_entry_desc reverse_cs set_cs_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_ ioa_$rsnnl request_id_ retv_report_$error_output send_mail_$access_class send_message_$notify_mail NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000032 3 3 000056 35 000060 36 000061 37 000064 38 000066 39 000070 40 000072 41 000074 42 000113 43 000121 45 000175 47 000235 50 000273 59 000316 53 000317 57 000321 ----------------------------------------------------------- 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