/* BEGIN INCLUDE FILE object_link_dcls.incl.pl1 BIM 1981 from linkdcl */ /****^ HISTORY COMMENTS: 1) change(86-05-02,Elhard), approve(86-05-02,MCR7391), audit(86-11-18,Schroth), install(86-11-20,MR12.0-1222): Modified to add partial_link structure for an object MSF partially snapped link. 2) change(86-11-13,DGHowe), approve(86-11-13,MCR7391), audit(86-11-13,Zwick), install(86-11-20,MR12.0-1222): Added a declaration of FAULT_TAG_1, FAULT_TAG_2 and FAULT_TAG_3. END HISTORY COMMENTS */ /* format: style3 */ /* everything you ever wanted in a linkage section */ /* Last Modified (Date and Reason): 15 Nov 1971 by C Garman 6/75 by M.Weaver to add virgin_linkage_header declaration 6/75 by S.Webber to comment existing structures better 9/77 by M. Weaver to add run_depth to link 7/81 by B. Margulies for firstref structure, unsigned fixed bins. 3/83 by M. Weaver to add flags overlaying def_ptr */ declare 1 object_link based aligned, /* link pair in linkage section */ 2 header_relp fixed bin (17) unal, /* rel pointer to beginning of linkage, always negative */ 2 ringno fixed bin (3) unsigned unal, /* MBZ */ 2 mbz bit (6) unal, 2 run_depth fixed bin (2) unal, /* run unit depth, filled when link is snapped */ 2 tag bit (6) unal, /* fault tag. 46(8) if not snapped, 43(8) if snapped */ 2 expression_relp fixed bin (18) unsigned unal, /* pointer (rel to defs) of expression word */ 2 mbz2 bit (12) unal, 2 modifier bit (6) unal; /* modifier to be left in snapped link */ declare 1 partial_link based aligned, /* partially snapped link */ 2 type fixed bin (3) unsigned unal, /* target section of link */ 2 component fixed bin (15) unsigned unal, /* target component index */ 2 mbz1 bit (12) unal, 2 tag bit (6) unal, /* fault tag 3 47(8), ITS 43(8) if snapped */ 2 offset fixed bin (18) unsigned unal, /* word offset of link */ 2 mbz2 bit (3) unal, 2 bit_offset fixed bin (6) unsigned unal, /* bit offset (in practice, always 0) */ 2 mbz3 bit (3) unal, 2 modifier bit (6) unal; /* modifier to be left in snapped link */ declare 1 linkage_header based aligned, /* linkage block header */ 2 def_ptr ptr, /* pointer to definition section */ 2 symbol_ptr ptr unal, /* pointer to symbol section in object segment */ 2 original_linkage_ptr ptr unal, /* pointer to linkage section in object segment */ 2 unused bit (72), 2 stats, 3 begin_links fixed bin (18) unsigned unal, /* offset (rel to this section) of first link */ 3 block_length fixed bin (18) unsigned unal, /* number of words in this linkage section */ 3 segment_number fixed bin (18) unsigned unal, /* text segment number associated with this section */ 3 static_length fixed bin (18) unsigned unal; /* number of words of static for this segment */ declare 1 linkage_header_flags aligned based, /* overlay of def_ptr for flags */ 2 pad1 bit (28) unaligned, /* flags are in first word */ 2 static_vlas bit (1) unaligned, /* static section "owns" some LA/VLA segments */ 2 perprocess_static bit (1) unaligned, /* 1 copy of static section is shared among all tasks/run units */ 2 pad2 bit (6) unaligned; declare 1 virgin_linkage_header aligned based, /* template for linkage header in object segment */ 2 pad bit (30) unaligned, /* is filled in by linker */ 2 defs_in_link bit (6) unaligned, /* =o20 if defs in linkage (nonstandard) */ 2 def_offset fixed bin (18) unsigned unaligned, /* offset of definition section */ 2 first_ref_relp fixed bin (18) unsigned unaligned, /* offset of trap-at-first-reference offset array */ 2 filled_in_later bit (144), 2 link_begin fixed bin (18) unsigned unaligned, /* offset of first link */ 2 linkage_section_lng fixed bin (18) unsigned unaligned, /* length of linkage section */ 2 segno_pad fixed bin (18) unsigned unaligned, /* will be segment number of copied linkage */ 2 static_length fixed bin (18) unsigned unaligned; /* length of static section */ declare 1 fr_traps based aligned, /* First Reference Trap Procedures */ 2 decl_vers fixed bin, /* version of this struc, value=1, ABS reloc */ 2 n_traps fixed bin, /* number of traps on this segment, ABS */ 2 trap_array (n_fr_traps refer (fr_traps.n_traps)) aligned, 3 call_relp fixed bin (18) unsigned unaligned, /* LINK18, offset of link defining procedure to call */ 3 info_relp fixed bin (18) unsigned unaligned; /* LINK18, offser of link defining argument list for trap proc */ declare FR_TRAPS_VERSION_1 init (1) fixed bin internal static options (constant); declare FAULT_TAG_1 bit(6) unaligned init ("40"b3) static options (constant); declare FAULT_TAG_2 bit(6) unaligned init ("46"b3) static options (constant); declare FAULT_TAG_3 bit(6) unaligned init ("47"b3) static options (constant); /* END INCLUDE FILE object_link_dcls.incl.pl1 */ */ ----------------------------------------------------------- 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 */