COMPILATION LISTING OF SEGMENT amu_temp_seg_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/19/84 1139.4 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 amu_temp_seg_: proc (); 7 8 return; /* not an entrypoint */ 9 10 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend,ifthendo,ifthen,^thendo */ 11 12 /* This procedure is used to allocate and release temp segments associated with 13* various amu_ data structures. These temp segments are kept track of in a chain 14* which is linked forward only. 15**/ 16 17 dcl ( 18 P_amu_info_ptr pointer, 19 P_copy_block_ptr pointer, 20 P_caller char (*), 21 P_seg_ptr pointer 22 ) parameter; 23 24 dcl code fixed bin (35); 25 dcl copy_block_ptr pointer; 26 dcl next_block pointer; 27 28 dcl 1 copy_block aligned based (copy_block_ptr), 29 2 next pointer, 30 2 seg_ptr pointer, 31 2 area_ptr pointer, 32 2 caller_name char (32) unaligned; 33 34 dcl system_area_ptr pointer; 35 dcl system_area area based (system_area_ptr); 36 37 dcl amu_error_ entry options (variable); 38 dcl get_temp_segment_ entry (char (*), pointer, fixed bin (35)); 39 dcl release_temp_segment_ entry (char (*), pointer, fixed bin (35)); 40 41 dcl null builtin; 42 43 44 45 amu_temp_seg_$get: 46 entry (P_amu_info_ptr, P_caller, P_copy_block_ptr, P_seg_ptr); 47 48 amu_info_ptr = P_amu_info_ptr; 49 allocate copy_block in (amu_area) set (copy_block_ptr); 50 51 copy_block.area_ptr = amu_info.area_ptr; 52 copy_block.caller_name = P_caller; 53 54 TRY_TO_GET_TEMP_SEGMENT: 55 call get_temp_segment_ (copy_block.caller_name, copy_block.seg_ptr, code); 56 57 if code ^= 0 then do; 58 call amu_error_ (amu_info_ptr, code, "Try terminating something and type start."); 59 goto TRY_TO_GET_TEMP_SEGMENT; 60 end; 61 62 copy_block.next = P_copy_block_ptr; /* thread it onto the chain */ 63 P_copy_block_ptr = copy_block_ptr; 64 65 P_seg_ptr = copy_block.seg_ptr; 66 67 return; /* all done for this entrypoint */ 68 69 70 71 amu_temp_seg_$release_all: 72 entry (P_copy_block_ptr); 73 74 /* This entry is used to release all the copy blocks in a chain. */ 75 76 do copy_block_ptr = P_copy_block_ptr repeat (next_block) while (copy_block_ptr ^= null ()); 77 78 call release_temp_segment_ (copy_block.caller_name, copy_block.seg_ptr, (0)); 79 80 system_area_ptr = copy_block.area_ptr; 81 next_block = copy_block.next; 82 83 free copy_block in (system_area); 84 end; 85 86 P_copy_block_ptr = null (); 87 88 return; 89 90 1 1 /* BEGIN INCLUDE FILE amu_info.incl.pl1 */ 1 2 1 3 dcl 1 amu_info aligned based (amu_info_ptr), 1 4 2 version char (8) aligned, /* AMU_INFO_VERSION */ 1 5 2 flags aligned, 1 6 3 early_dump bit(1) unal, 1 7 3 pad bit(35) unal, 1 8 2 type fixed bin unal, /* One of the types below */ 1 9 2 time_created fixed bin (71) aligned, /* time created -- for debugging purposes */ 1 10 2 chain, /* a chain of all the amu_info's which exist */ 1 11 3 prev pointer unaligned, 1 12 3 next pointer unaligned, 1 13 1 14 2 area_ptr pointer, /* pointer to area used for allocating things */ 1 15 1 16 2 translation_table_ptr pointer, /* pointer to address map -- always present */ 1 17 /* SEE: amu_translation.incl.pl1 */ 1 18 2 fdump_info_ptr pointer, 1 19 /* pointer to FDUMP info, present if looking at an FDUMP */ 1 20 /* SEE: amu_fdump_info.incl.pl1 */ 1 21 /* old_uid_table pointer if looking at a SAVED PROC. */ 1 22 /* See: amu_old_uid_table */ 1 23 1 24 1 25 2 hardcore_info_ptr pointer, /* pointer to hardcore information -- always present */ 1 26 /* SEE: amu_hardcore_info.incl.pl1 */ 1 27 2 copy_chain pointer, /* pointer to info about segment copies */ 1 28 /* SEE: amu_copy_info.incl.pl1 */ 1 29 2 process_info_ptr pointer, /* pointer to process info for this translation */ 1 30 /* SEE: amu_process_info.incl.pl1 */ 1 31 2 process_idx fixed bin, /* index of process in translation-specifc process table */ 1 32 1 33 2 proc_idx_hold fixed bin, /* a place to keep the index when a changing to another proc */ 1 34 1 35 2 error_info, /* various info about how amu_error_ is to behave */ 1 36 3 error_flags aligned, 1 37 4 handler_exists bit (1) unaligned, /* set to indicate existence of an amu_error handler */ 1 38 4 in_subsystem bit (1) unaligned, /* This amu_info belongs to an ssu_ maintained subsystem */ 1 39 4 pad bit (34) unaligned, 1 40 3 sci_ptr pointer, /* sci_ptr for subsystem, if in_subsystem = "1"b */ 1 41 2 definitions_info_ptr ptr; 1 42 1 43 dcl amu_area area based (amu_info.area_ptr); 1 44 1 45 dcl amu_info_ptr pointer; 1 46 1 47 dcl (FDUMP_TYPE init (1037), /* the various legitimate types of amu_info's */ 1 48 FDUMP_PROCESS_TYPE init (1038), 1 49 ONLINE_TYPE init (1039), 1 50 ONLINE_PROCESS_TYPE init (1040), 1 51 NETWORK_FDUMP_TYPE init (1041), 1 52 NETWORK_ONLINE_TYPE init (1042), 1 53 SAVED_PROC_TYPE init (1043), 1 54 INDIRECT_TYPE init (1044)) fixed bin internal static options (constant); 1 55 1 56 dcl AMU_INFO_VERSION_1 char (8) internal static options (constant) init ("amu_v1"); 1 57 dcl AMU_INFO_VERSION char (8) internal static options (constant) init ("amu_v1"); 1 58 dcl AMU_INFO_VERSION_2 char (8) internal static options (constant) init ("amu_v2"); 1 59 1 60 dcl PDIR_SUFFIX char(4) init("pdir") int static options(constant); 1 61 1 62 /* END INCLUDE FILE amu_info.incl.pl1 */ 91 92 93 end amu_temp_seg_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/84 1445.4 amu_temp_seg_.pl1 >special_ldd>online>6897-11/15/84>amu_temp_seg_.pl1 91 1 11/15/84 1524.3 amu_info.incl.pl1 >special_ldd>online>6897-11/15/84>amu_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. P_amu_info_ptr parameter pointer dcl 17 ref 45 48 P_caller parameter char unaligned dcl 17 ref 45 52 P_copy_block_ptr parameter pointer dcl 17 set ref 45 62 63* 71 76 86* P_seg_ptr parameter pointer dcl 17 set ref 45 65* amu_area based area(1024) dcl 1-43 ref 49 amu_error_ 000010 constant entry external dcl 37 ref 58 amu_info based structure level 1 dcl 1-3 amu_info_ptr 000110 automatic pointer dcl 1-45 set ref 48* 49 51 58* area_ptr 4 based pointer level 2 in structure "copy_block" dcl 28 in procedure "amu_temp_seg_" set ref 51* 80 area_ptr 10 based pointer level 2 in structure "amu_info" dcl 1-3 in procedure "amu_temp_seg_" ref 49 51 caller_name 6 based char(32) level 2 packed unaligned dcl 28 set ref 52* 54* 78* code 000100 automatic fixed bin(35,0) dcl 24 set ref 54* 57 58* copy_block based structure level 1 dcl 28 set ref 49 83 copy_block_ptr 000102 automatic pointer dcl 25 set ref 49* 51 52 54 54 62 63 65 76* 76* 78 78 80 81 83* get_temp_segment_ 000012 constant entry external dcl 38 ref 54 next based pointer level 2 dcl 28 set ref 62* 81 next_block 000104 automatic pointer dcl 26 set ref 81* 84 null builtin function dcl 41 ref 76 86 release_temp_segment_ 000014 constant entry external dcl 39 ref 78 seg_ptr 2 based pointer level 2 dcl 28 set ref 54* 65 78* system_area based area(1024) dcl 35 ref 83 system_area_ptr 000106 automatic pointer dcl 34 set ref 80* 83 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. AMU_INFO_VERSION internal static char(8) initial unaligned dcl 1-57 AMU_INFO_VERSION_1 internal static char(8) initial unaligned dcl 1-56 AMU_INFO_VERSION_2 internal static char(8) initial unaligned dcl 1-58 FDUMP_PROCESS_TYPE internal static fixed bin(17,0) initial dcl 1-47 FDUMP_TYPE internal static fixed bin(17,0) initial dcl 1-47 INDIRECT_TYPE internal static fixed bin(17,0) initial dcl 1-47 NETWORK_FDUMP_TYPE internal static fixed bin(17,0) initial dcl 1-47 NETWORK_ONLINE_TYPE internal static fixed bin(17,0) initial dcl 1-47 ONLINE_PROCESS_TYPE internal static fixed bin(17,0) initial dcl 1-47 ONLINE_TYPE internal static fixed bin(17,0) initial dcl 1-47 PDIR_SUFFIX internal static char(4) initial unaligned dcl 1-60 SAVED_PROC_TYPE internal static fixed bin(17,0) initial dcl 1-47 NAMES DECLARED BY EXPLICIT CONTEXT. TRY_TO_GET_TEMP_SEGMENT 000100 constant label dcl 54 ref 59 amu_temp_seg_ 000024 constant entry external dcl 6 amu_temp_seg_$get 000037 constant entry external dcl 45 amu_temp_seg_$release_all 000165 constant entry external dcl 71 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 356 374 245 366 Length 574 245 16 163 110 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME amu_temp_seg_ 106 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME amu_temp_seg_ 000100 code amu_temp_seg_ 000102 copy_block_ptr amu_temp_seg_ 000104 next_block amu_temp_seg_ 000106 system_area_ptr amu_temp_seg_ 000110 amu_info_ptr amu_temp_seg_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return ext_entry ext_entry_desc alloc_based free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. amu_error_ get_temp_segment_ release_temp_segment_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000023 8 000031 45 000032 48 000055 49 000061 51 000067 52 000072 54 000100 57 000122 58 000124 59 000150 62 000151 63 000154 65 000156 67 000161 71 000162 76 000175 78 000204 80 000227 81 000232 83 000235 84 000237 86 000242 88 000244 ----------------------------------------------------------- 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