COMPILATION LISTING OF SEGMENT log_move_ Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1024.1 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* *********************************************************** */ 8 log_move_: 9 procedure (); 10 11 /* * LOG_MOVE_ 12* * 13* * This procedure moves a message from one log segment to another 14* * (using log_write_ to create the new message), and deletes the 15* * old message from the original log segment, ensuring that a 16* * loop of moves can be restarted after an interruption without 17* * copying more than one extra message. 18* * 19* * It would be swift to add a new entrypoint for ring zero that 20* * used log_segment_ instead of log_write_, but that's not needed 21* * until the syserr_data segment is converted to be a log segment. 22* * 23* * Modification history: 24* * 1984-11-11, W. Olin Sibert: Initial coding 25* * 1984-12-21, WOS: Changed to make data_class the right size (16 chars) 26* */ 27 28 declare P_log_write_data_ptr pointer parameter; 29 declare P_old_ptr pointer parameter; 30 declare P_new_ptr pointer parameter; 31 declare P_code fixed bin (35) parameter; 32 33 declare code fixed bin (35); 34 declare log_write_data_ptr pointer; 35 declare old_ptr pointer; 36 declare new_ptr pointer; 37 declare data_class char (16) varying; 38 39 declare log_data_$deleted_message_flag bit (36) aligned external static; 40 41 declare log_segment_$finish_message entry (pointer, pointer, fixed bin (35)); 42 declare log_write_$general entry 43 (pointer, fixed bin (35), fixed bin, fixed bin, char (16) varying, pointer, fixed bin (35)); 44 45 /* */ 46 47 log_move_$message: 48 entry (P_log_write_data_ptr, P_old_ptr, P_new_ptr, P_code); 49 50 log_write_data_ptr = P_log_write_data_ptr; 51 old_ptr = P_old_ptr; 52 53 if (dimension (old_ptr -> log_message.data, 1) > 0) then 54 data_class = old_ptr -> log_message.data_class; 55 else data_class = ""; 56 57 call log_write_$general (log_write_data_ptr, 58 old_ptr -> log_message.sequence, 59 length (old_ptr -> log_message.text), 60 dimension (old_ptr -> log_message.data, 1), 61 data_class, new_ptr, code); 62 63 if (code ^= 0) then 64 goto FINISHED; 65 66 new_ptr -> log_message.time = old_ptr -> log_message.time; 67 new_ptr -> log_message.severity = old_ptr -> log_message.severity; 68 new_ptr -> log_message.process_id = old_ptr -> log_message.process_id; 69 new_ptr -> log_message.text = old_ptr -> log_message.text; 70 71 if (dimension (old_ptr -> log_message.data, 1) > 0) then 72 unspec (new_ptr -> log_message.data) = unspec (old_ptr -> log_message.data); 73 74 call log_segment_$finish_message (pointer (new_ptr, 0), new_ptr, code); 75 76 old_ptr -> log_message.sentinel = log_data_$deleted_message_flag; 77 78 P_new_ptr = new_ptr; 79 80 FINISHED: 81 P_code = code; 82 return; 83 84 /* BEGIN INCLUDE FILE ... log_message.incl.pl1 ... 84-04-25 ... W. Olin Sibert */ 1 2 1 3 declare 1 log_message_header aligned based, /* Items marked "(SET)" are set by $create_message */ 1 4 2 sentinel bit (36) aligned, /* Proper value declared in log_segment.incl.pl1 */ 1 5 2 sequence fixed bin (35), /* Sequence number for this message (SET) */ 1 6 2 severity fixed bin (8) unaligned, /* Severity of message */ 1 7 2 data_class_lth fixed bin (9) unaligned unsigned, /* Length of data class-- 0 to 16 (SET) */ 1 8 2 time fixed bin (53) unaligned, /* Time message originated */ 1 9 2 text_lth fixed bin (17) unaligned, /* Length of message text. Must be nonzero (SET) */ 1 10 2 data_lth fixed bin (17) unaligned, /* Length of binary data. May be zero (SET) */ 1 11 2 process_id bit (36) aligned; /* Process id of process writing message */ 1 12 1 13 declare 1 log_message aligned based (log_message_ptr), 1 14 2 header aligned like log_message_header, 1 15 2 text char (log_message_text_lth refer (log_message.text_lth)) unaligned, 1 16 2 data_class char (log_message_data_class_lth refer (log_message.data_class_lth)) unaligned, 1 17 2 data dim (log_message_data_lth refer (log_message.data_lth)) bit (36) aligned; 1 18 1 19 declare log_message_ptr pointer; 1 20 declare log_message_text_lth fixed bin; 1 21 declare log_message_data_class_lth fixed bin; 1 22 declare log_message_data_lth fixed bin; 1 23 1 24 /* END INCLUDE FILE ... log_message.incl.pl1 */ 84 85 86 end log_move_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0802.0 log_move_.pl1 >spec>install>1111>log_move_.pl1 84 1 01/21/85 0912.2 log_message.incl.pl1 >ldd>include>log_message.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. P_code parameter fixed bin(35,0) dcl 31 set ref 47 80* P_log_write_data_ptr parameter pointer dcl 28 ref 47 50 P_new_ptr parameter pointer dcl 30 set ref 47 78* P_old_ptr parameter pointer dcl 29 ref 47 51 code 000100 automatic fixed bin(35,0) dcl 33 set ref 57* 63 74* 80 data based bit(36) array level 2 dcl 1-13 set ref 53 57 57 71 71* 71 data_class based char level 2 in structure "log_message" packed packed unaligned dcl 1-13 in procedure "log_move_" ref 53 data_class 000110 automatic varying char(16) dcl 37 in procedure "log_move_" set ref 53* 55* 57* data_class_lth 2(09) based fixed bin(9,0) level 3 packed packed unsigned unaligned dcl 1-13 ref 53 53 57 57 71 71 71 data_lth 4(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 1-13 ref 53 57 57 71 71 71 header based structure level 2 dcl 1-13 log_data_$deleted_message_flag 000010 external static bit(36) dcl 39 ref 76 log_message based structure level 1 dcl 1-13 log_message_header based structure level 1 dcl 1-3 log_segment_$finish_message 000012 constant entry external dcl 41 ref 74 log_write_$general 000014 constant entry external dcl 42 ref 57 log_write_data_ptr 000102 automatic pointer dcl 34 set ref 50* 57* new_ptr 000106 automatic pointer dcl 36 set ref 57* 66 67 68 69 71 74 74 74* 78 old_ptr 000104 automatic pointer dcl 35 set ref 51* 53 53 57 57 57 57 57 66 67 68 69 71 71 76 process_id 5 based bit(36) level 3 dcl 1-13 set ref 68* 68 sentinel based bit(36) level 3 dcl 1-13 set ref 76* sequence 1 based fixed bin(35,0) level 3 dcl 1-13 set ref 57* severity 2 based fixed bin(8,0) level 3 packed packed unaligned dcl 1-13 set ref 67* 67 text 6 based char level 2 packed packed unaligned dcl 1-13 set ref 57 57 69* 69 text_lth 4 based fixed bin(17,0) level 3 packed packed unaligned dcl 1-13 ref 53 53 57 57 57 57 69 69 71 71 71 time 2(18) based fixed bin(53,0) level 3 packed packed unaligned dcl 1-13 set ref 66* 66 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. log_message_data_class_lth automatic fixed bin(17,0) dcl 1-21 log_message_data_lth automatic fixed bin(17,0) dcl 1-22 log_message_ptr automatic pointer dcl 1-19 log_message_text_lth automatic fixed bin(17,0) dcl 1-20 NAMES DECLARED BY EXPLICIT CONTEXT. FINISHED 000232 constant label dcl 80 set ref 63 log_move_ 000003 constant entry external dcl 8 log_move_$message 000016 constant entry external dcl 47 NAMES DECLARED BY CONTEXT OR IMPLICATION. dimension builtin function ref 53 57 57 71 length builtin function ref 57 57 pointer builtin function ref 74 74 unspec builtin function ref 71 71 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 336 354 236 346 Length 540 236 16 147 100 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME log_move_ 100 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME log_move_ 000100 code log_move_ 000102 log_write_data_ptr log_move_ 000104 old_ptr log_move_ 000106 new_ptr log_move_ 000110 data_class log_move_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. log_segment_$finish_message log_write_$general THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. log_data_$deleted_message_flag LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 8 000002 47 000010 50 000023 51 000027 53 000032 55 000060 57 000061 63 000110 66 000112 67 000122 68 000124 69 000126 71 000137 74 000207 76 000224 78 000227 80 000232 82 000235 ----------------------------------------------------------- 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