1 /* Include file bndtbl.incl.pl1 */ 2 3 4 /****^ HISTORY COMMENTS: 5 1) change(85-09-24,Elhard), approve(85-09-24,MCR7198), 6 audit(86-06-30,Weaver), install(86-07-16,MR12.0-1094): 7 Added link_regeneration_table and eliminated the use of "p" as a pointer 8 to base structures on.. 9 END HISTORY COMMENTS */ 10 11 /* DIVERSE BINDER TABLES */ 12 13 /* Modified Oct 1978 by David Spector for hash coding snt and strm */ 14 /* Modified Dec 1978 by David Spector for making repatch table 15 automatically extensible */ 16 17 declare (sntp, adnp, odnp, rptp, rptep, strmp, lrtp) pointer; 18 19 /* The SEGNAME table - segnames and synonyms of all components */ 20 21 declare 1 snt aligned based(sntp), 22 2 hash_table (0:210) unaligned ptr, /* prime length */ 23 2 max_size fixed bin, /* size limit of allocated segname table */ 24 2 n_names fixed bin, /* number of segname-table entries used */ 25 2 entry(1000) like seg; 26 27 /* declaration of a SEGNAME entry */ 28 29 declare 1 seg aligned based, /* redeclaration of a single segname */ 30 2 name char(33) aligned, /* segname in ACC string format */ 31 2 lng fixed bin, /* length of segname, incl ACC count */ 32 2 addname fixed bin, /* 1-> add name to bound segment */ 33 2 defrel bit(18), /* offset in defs of new definition */ 34 2 comp pointer, /* pointer to associated component table */ 35 2 hash_thread ptr; /* thread to next "seg" in bucket */ 36 37 38 /* the ADDNAME table - list of names specified by "Addname" statement */ 39 40 declare 1 an aligned based(adnp), 41 2 max_size fixed bin, /* size limit of addname table */ 42 2 n_an fixed bin, /* number of names to add */ 43 2 syn(1000) char(32) aligned; /* contains the names to be added */ 44 45 46 /* The ODDNAME table - scratchpad memory to suppress redundant error messages */ 47 48 declare 1 od aligned based(odnp), 49 2 max_size fixed bin, /* max size of table */ 50 2 n_odds fixed bin, /* current size of table */ 51 2 entry(1000), 52 3 name char(289) aligned; 53 54 55 /* The REPATCH table - of halfwords to be relocated at a later time */ 56 57 declare 1 rpt aligned based(rptp), 58 2 thread unaligned ptr, /* To next rpt (null at end) */ 59 2 npt fixed bin, 60 2 entry(1000) like rpte aligned; 61 62 63 declare 1 rpte aligned based(rptep), /* declaration of single repatch table entry */ 64 2 poffset bit(18) unaligned, /* offset into text of word to be patched */ 65 2 pexpr bit(18) unaligned, /* value to add to patched halfword */ 66 2 halfword char(3) aligned, /* designates wordhalf to be patched */ 67 2 pbase char(1) unaligned, /* section designator of word to be patched */ 68 2 code char(1) unaligned; /* code of section base to be used as patch value */ 69 70 71 /* The STRINGMAP table - to avoid redundant strings in definition section */ 72 73 declare 1 strm aligned based(strmp), 74 2 hash_table (0:862) fixed bin(17), /* prime length */ 75 2 max_size fixed bin, 76 2 nstr fixed bin, 77 2 entry(2048) unaligned, 78 3 map bit(18), /* rel pointer to string in def section */ 79 3 hash_thread fixed bin(17); /* index of next strm.entry in hash bucket */ 80 81 /* The LINK_REGENERATION table - to flag links which have and */ 82 /* have not been regenerated to insure generation of all links */ 83 84 declare 1 lrt aligned based (lrtp), 85 2 count fixed bin, 86 2 start_offset fixed bin (18) unsigned, 87 2 regenerated (0 refer (lrt.count)) 88 bit (18) unaligned; 89 90 declare UNRESOLVED bit (18) static options (constant) init ("000000"b3); 91 declare INTERNALLY_RESOLVED bit (18) static options (constant) init ("777777"b3);