COMPILATION LISTING OF SEGMENT make_alm_object_map_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-17_1945.64_Mon_mdt Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 /* Procedure to put new format object map into object segment for ALM. 14* Created on 05/06/72 at 17:23:51 by R F Mabee. 15* Modified on 05/20/72 at 13:28:34 by R F Mabee. 16* Modified for new object map on 06/15/75 by Eugene E Wiatrowski. */ 17 18 make_alm_object_map_: procedure (bit_count); 19 declare bit_count fixed binary; 20 1 1 /* BEGIN INCLUDE FILE ... object_map.incl.pl1 */ 1 2 /* coded February 8, 1972 by Michael J. Spier */ 1 3 /* Last modified on 05/20/72 at 13:29:38 by R F Mabee. */ 1 4 /* Made to agree with Spier's document on 20 May 1972 by R F Mabee. */ 1 5 /* modified on 6 May 1972 by R F Mabee to add map_ptr at end of object map. */ 1 6 /* modified May, 1972 by M. Weaver */ 1 7 /* modified 5/75 by E. Wiatrowski and 6/75 by M. Weaver */ 1 8 /* modified 5/77 by M. Weaver to add perprocess_static bit */ 1 9 1 10 declare 1 object_map aligned based, /* Structure describing standard object map */ 1 11 1 12 2 decl_vers fixed bin, /* Version number of current structure format */ 1 13 2 identifier char (8) aligned, /* Must be the constant "obj_map" */ 1 14 2 text_offset bit (18) unaligned, /* Offset relative to base of object segment of base of text section */ 1 15 2 text_length bit (18) unaligned, /* Length in words of text section */ 1 16 2 definition_offset bit (18) unaligned, /* Offset relative to base of object seg of base of definition section */ 1 17 2 definition_length bit (18) unaligned, /* Length in words of definition section */ 1 18 2 linkage_offset bit (18) unaligned, /* Offset relative to base of object seg of base of linkage section */ 1 19 2 linkage_length bit (18) unaligned, /* Length in words of linkage section */ 1 20 2 static_offset bit (18) unaligned, /* Offset relative to base of obj seg of static section */ 1 21 2 static_length bit (18) unaligned, /* Length in words of static section */ 1 22 2 symbol_offset bit (18) unaligned, /* Offset relative to base of object seg of base of symbol section */ 1 23 2 symbol_length bit (18) unaligned, /* Length in words of symbol section */ 1 24 2 break_map_offset bit (18) unaligned, /* Offset relative to base of object seg of base of break map */ 1 25 2 break_map_length bit (18) unaligned, /* Length in words of break map */ 1 26 2 entry_bound bit (18) unaligned, /* Offset in text of last gate entry */ 1 27 2 text_link_offset bit (18) unaligned, /* Offset of first text-embedded link */ 1 28 2 format aligned, /* Word containing bit flags about object type */ 1 29 3 bound bit (1) unaligned, /* On if segment is bound */ 1 30 3 relocatable bit (1) unaligned, /* On if segment has relocation info in its first symbol block */ 1 31 3 procedure bit (1) unaligned, /* On if segment is an executable object program */ 1 32 3 standard bit (1) unaligned, /* On if segment is in standard format (more than just standard map) */ 1 33 3 separate_static bit(1) unaligned, /* On if static is a separate section from linkage */ 1 34 3 links_in_text bit (1) unaligned, /* On if there are text-embedded links */ 1 35 3 perprocess_static bit (1) unaligned, /* On if static is not to be per run unit */ 1 36 3 unused bit (29) unaligned; /* Reserved */ 1 37 1 38 declare map_ptr bit(18) aligned based; /* Last word of the segment. It points to the base of the object map. */ 1 39 1 40 declare object_map_version_2 fixed bin static init(2); 1 41 1 42 /* END INCLUDE FILE ... object_map.incl.pl1 */ 21 22 2 1 /* BEGIN INCLUDE FILE segnfo.incl.pl1 for alm (see also segnfo.incl.alm) */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 2 6* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 2 7* Modified to keep a ptr to the list FCB. This is part of the fix that 2 8* removes PAD characters from the listing segment. 2 9* END HISTORY COMMENTS */ 2 10 2 11 declare 1 eb_data_$segnfo ext aligned, 2 12 2 (text, source, list, list_fcb, scrtch) ptr aligned, 2 13 2 (txtlen, srclen, lstlen) fixed bin (26) aligned; 2 14 2 15 /* END INCLUDE FILE segnfo.incl.pl1 */ 23 24 3 1 /* Begin include file objnfo.incl.pl1. 3 2* Parameters saved for object map. 3 3* Last modified on 05/12/72 at 01:10:27 by R F Mabee. */ 3 4 3 5 3 6 /****^ HISTORY COMMENTS: 3 7* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 3 8* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 3 9* Modified to add definition count used to join blocks to the definition 3 10* section. 3 11* END HISTORY COMMENTS */ 3 12 3 13 declare 1 eb_data_$objnfo external static aligned, 3 14 2 (itxpc, ilkpc, istpc, idfpc, itxcnt, ilkcnt, istcnt, idfcnt) fixed bin (26) aligned, 3 15 2 (new_text_offset, new_definition_offset, new_link_offset, new_static_offset, new_symbol_offset) fixed bin (26) aligned, 3 16 2 (new_text_length, new_definition_length, new_link_length, new_static_length, new_symbol_length) fixed bin (26) aligned; 3 17 3 18 /* End of include file objnfo.incl.pl1. */ 25 26 27 declare eb_data_$entry_bound ext fixed bin(18); 28 declare eb_data_$entrybound_bit ext bit(1); 29 declare eb_data_$separate_static ext bit(1) aligned; 30 declare eb_data_$per_process_static_sw ext fixed bin; 31 declare (object_map_pointer,end_ptr) pointer; 32 33 34 object_map_pointer = pointer (text, txtlen); 35 36 object_map_pointer -> object_map.decl_vers = object_map_version_2; 37 object_map_pointer -> object_map.identifier = "obj_map "; 38 object_map_pointer -> object_map.text_offset = bit (fixed (new_text_offset, 18)); 39 object_map_pointer -> object_map.text_length = bit (fixed (new_text_length, 18)); 40 object_map_pointer -> object_map.definition_offset = bit (fixed (new_definition_offset, 18)); 41 object_map_pointer -> object_map.definition_length = bit (fixed (new_definition_length, 18)); 42 object_map_pointer -> object_map.linkage_offset = bit (fixed (new_link_offset, 18)); 43 object_map_pointer -> object_map.linkage_length = bit (fixed (new_link_length, 18)); 44 object_map_pointer -> object_map.static_offset = bit (fixed (new_static_offset, 18)); 45 object_map_pointer -> object_map.static_length = bit (fixed (new_static_length, 18)); 46 object_map_pointer -> object_map.symbol_offset = bit (fixed (new_symbol_offset, 18)); 47 object_map_pointer -> object_map.symbol_length = bit (fixed (new_symbol_length, 18)); 48 object_map_pointer -> object_map.break_map_offset = ""b; 49 object_map_pointer -> object_map.break_map_length = ""b; 50 if eb_data_$entrybound_bit 51 then object_map_pointer -> object_map.entry_bound = bit(eb_data_$entry_bound,18); 52 53 string (object_map_pointer -> object_map.format) = ""b; 54 object_map_pointer -> object_map.format.relocatable = "1"b; 55 object_map_pointer -> object_map.format.procedure = "1"b; 56 object_map_pointer -> object_map.format.standard = "1"b; 57 object_map_pointer -> object_map.format.separate_static = eb_data_$separate_static; 58 object_map_pointer -> object_map.format.perprocess_static = (eb_data_$per_process_static_sw ^= 0); 59 60 end_ptr = addrel(object_map_pointer,size(object_map_pointer -> object_map)); 61 end_ptr -> map_ptr = rel(object_map_pointer); 62 bit_count = fixed (rel (end_ptr), 18) * 36 + 36; 63 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/17/00 1945.6 make_alm_object_map_.pl1 >udd>sm>ds>w>ml>make_alm_object_map_.pl1 21 1 08/05/77 1122.5 object_map.incl.pl1 >ldd>incl>object_map.incl.pl1 23 2 11/12/86 1203.0 segnfo.incl.pl1 >ldd>incl>segnfo.incl.pl1 25 3 11/12/86 1203.0 objnfo.incl.pl1 >ldd>incl>objnfo.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. bit_count parameter fixed bin(17,0) dcl 19 set ref 18 62* break_map_length 10(18) based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 49* break_map_offset 10 based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 48* decl_vers based fixed bin(17,0) level 2 dcl 1-10 set ref 36* definition_length 4(18) based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 41* definition_offset 4 based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 40* eb_data_$entry_bound 000014 external static fixed bin(18,0) dcl 27 ref 50 eb_data_$entrybound_bit 000016 external static bit(1) packed unaligned dcl 28 ref 50 eb_data_$objnfo 000012 external static structure level 1 dcl 3-13 eb_data_$per_process_static_sw 000022 external static fixed bin(17,0) dcl 30 ref 58 eb_data_$segnfo 000010 external static structure level 1 dcl 2-11 eb_data_$separate_static 000020 external static bit(1) dcl 29 ref 57 end_ptr 000102 automatic pointer dcl 31 set ref 60* 61 62 entry_bound 11 based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 50* format 12 based structure level 2 dcl 1-10 set ref 53* identifier 1 based char(8) level 2 dcl 1-10 set ref 37* linkage_length 5(18) based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 43* linkage_offset 5 based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 42* map_ptr based bit(18) dcl 1-38 set ref 61* new_definition_length 16 000012 external static fixed bin(26,0) level 2 dcl 3-13 ref 41 new_definition_offset 11 000012 external static fixed bin(26,0) level 2 dcl 3-13 ref 40 new_link_length 17 000012 external static fixed bin(26,0) level 2 dcl 3-13 ref 43 new_link_offset 12 000012 external static fixed bin(26,0) level 2 dcl 3-13 ref 42 new_static_length 20 000012 external static fixed bin(26,0) level 2 dcl 3-13 ref 45 new_static_offset 13 000012 external static fixed bin(26,0) level 2 dcl 3-13 ref 44 new_symbol_length 21 000012 external static fixed bin(26,0) level 2 dcl 3-13 ref 47 new_symbol_offset 14 000012 external static fixed bin(26,0) level 2 dcl 3-13 ref 46 new_text_length 15 000012 external static fixed bin(26,0) level 2 dcl 3-13 ref 39 new_text_offset 10 000012 external static fixed bin(26,0) level 2 dcl 3-13 ref 38 object_map based structure level 1 dcl 1-10 set ref 60 object_map_pointer 000100 automatic pointer dcl 31 set ref 34* 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 55 56 57 58 60 60 61 object_map_version_2 constant fixed bin(17,0) initial dcl 1-40 ref 36 perprocess_static 12(06) based bit(1) level 3 packed packed unaligned dcl 1-10 set ref 58* procedure 12(02) based bit(1) level 3 packed packed unaligned dcl 1-10 set ref 55* relocatable 12(01) based bit(1) level 3 packed packed unaligned dcl 1-10 set ref 54* separate_static 12(04) based bit(1) level 3 packed packed unaligned dcl 1-10 set ref 57* standard 12(03) based bit(1) level 3 packed packed unaligned dcl 1-10 set ref 56* static_length 6(18) based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 45* static_offset 6 based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 44* symbol_length 7(18) based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 47* symbol_offset 7 based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 46* text 000010 external static pointer level 2 dcl 2-11 ref 34 text_length 3(18) based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 39* text_offset 3 based bit(18) level 2 packed packed unaligned dcl 1-10 set ref 38* txtlen 12 000010 external static fixed bin(26,0) level 2 dcl 2-11 ref 34 NAME DECLARED BY EXPLICIT CONTEXT. make_alm_object_map_ 000007 constant entry external dcl 18 NAMES DECLARED BY CONTEXT OR IMPLICATION. addrel builtin function ref 60 bit builtin function ref 38 39 40 41 42 43 44 45 46 47 50 fixed builtin function ref 38 39 40 41 42 43 44 45 46 47 62 pointer builtin function ref 34 rel builtin function ref 61 62 size builtin function ref 60 string builtin function ref 53 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 264 310 163 274 Length 526 163 24 202 101 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME make_alm_object_map_ 68 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME make_alm_object_map_ 000100 object_map_pointer make_alm_object_map_ 000102 end_ptr make_alm_object_map_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as return_mac ext_entry NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. eb_data_$entry_bound eb_data_$entrybound_bit eb_data_$objnfo eb_data_$per_process_static_sw eb_data_$segnfo eb_data_$separate_static LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000004 34 000014 36 000022 37 000024 38 000027 39 000035 40 000042 41 000047 42 000054 43 000061 44 000066 45 000073 46 000100 47 000105 48 000112 49 000114 50 000116 53 000125 54 000126 55 000130 56 000132 57 000134 58 000141 60 000147 61 000152 62 000154 63 000162 ----------------------------------------------------------- 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