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);