1 /* BEGIN INCLUDE FILE linkdcl.incl.pl1 --- last modified 15 Nov 1971 by C Garman */ 2 3 /* Last Modified (Date and Reason): 4 6/75 by M.Weaver to add virgin_linkage_header declaration 5 6/75 by S.Webber to comment existing structures better 6 9/77 by M. Weaver to add run_depth to link 7 2/83 by M. Weaver to add linkage header flags and change run_depth precision 8 */ 9 10 /* format: style3 */ 11 dcl 1 link based aligned, /* link pair in linkage section */ 12 2 head_ptr bit (18) unal, /* rel pointer to beginning of linkage section */ 13 2 ringno bit (3) unal, 14 2 mbz bit (6) unal, 15 2 run_depth fixed bin (2) unal, /* run unit depth, filled when link is snapped */ 16 2 ft2 bit (6) unal, /* fault tag. 46(8) if not snapped, 43(8) if snapped */ 17 2 exp_ptr bit (18) unal, /* pointer (rel to defs) of expression word */ 18 2 mbz2 bit (12) unal, 19 2 modifier bit (6) unal; /* modifier to be left in snapped link */ 20 21 dcl 1 exp_word based aligned, /* expression word in link definition */ 22 2 type_ptr bit (18) unal, /* pointer (rel to defs) of type pair structure */ 23 2 exp bit (18) unal; /* constant expression to be added in when snapping link */ 24 25 dcl 1 type_pair based aligned, /* type pair in link definition */ 26 2 type bit (18) unal, /* type of link. may be 1,2,3,4,5, or 6 */ 27 2 trap_ptr bit (18) unal, /* pointer (rel to defs) to the trap word */ 28 2 seg_ptr bit (18) unal, /* pointer to ACC reference name for segment referenced */ 29 2 ext_ptr bit (18) unal; /* pointer (rel to defs) of ACC segdef name */ 30 31 dcl 1 header based aligned, /* linkage block header */ 32 2 def_ptr ptr, /* pointer to definition section */ 33 2 symbol_ptr ptr unal, /* pointer to symbol section in object segment */ 34 2 original_linkage_ptr 35 ptr unal, /* pointer to linkage section in object segment */ 36 2 unused bit (72), 37 2 stats, 38 3 begin_links bit (18) unal, /* offset (rel to this section) of first link */ 39 3 block_length bit (18) unal, /* number of words in this linkage section */ 40 3 segment_number 41 bit (18) unal, /* text segment number associated with this section */ 42 3 static_length bit (18) unal; /* number of words of static for this segment */ 43 44 dcl 1 linkage_header_flags 45 aligned based, /* overlay of def_ptr for flags */ 46 2 pad1 bit (28) unaligned, /* flags are in first word */ 47 2 static_vlas bit (1) unaligned, /* static section "owns" some LA/VLA segments */ 48 2 perprocess_static 49 bit (1) unaligned, /* 1 copy of static section is used by all tasks/run units */ 50 2 pad2 bit (6) unaligned; 51 52 dcl 1 virgin_linkage_header 53 aligned based, /* template for linkage header in object segment */ 54 2 pad bit (30) unaligned, /* is filled in by linker */ 55 2 defs_in_link bit (6) unaligned, /* =o20 if defs in linkage (nonstandard) */ 56 2 def_offset bit (18) unaligned, /* offset of definition section */ 57 2 first_ref_relp bit (18) unaligned, /* offset of trap-at-first-reference offset array */ 58 2 filled_in_later bit (144), 59 2 link_begin bit (18) unaligned, /* offset of first link */ 60 2 linkage_section_lng 61 bit (18) unaligned, /* length of linkage section */ 62 2 segno_pad bit (18) unaligned, /* will be segment number of copied linkage */ 63 2 static_length bit (18) unaligned; /* length of static section */ 64 65 66 dcl 1 trap_word based aligned, /* trap word in link definition */ 67 2 call_ptr bit (18) unal, /* pointer (rel to link) of link to trap procedure */ 68 2 arg_ptr bit (18) unal; /* pointer (rel to link) of link to arg info for trap proc */ 69 70 dcl 1 name based aligned, /* storage of ASCII names in definitions */ 71 2 nchars bit (9) unaligned, /* number of characters in name */ 72 2 char_string char (31) unaligned; /* 31-character name */ 73 74 /* END INCLUDE FILE linkdcl.incl.pl1 */