1 /*  START OF:       lib_node_.incl.pl1                        *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
  2 
  3           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
  4           /*                                                                                        */
  5           /* N^H__^Ha_^Hm_^He:  lib_node_.incl.pl1                                                                      */
  6           /*                                                                                        */
  7           /*      This include segment defines the structures which form the tree of status nodes   */
  8           /* created by lib_get_tree_.  Each node of the tree is associated with a directory        */
  9           /* entry or an archive component.  The node lists the attributes of that entry, which is  */
 10           /* called the node target.                                                                */
 11           /*                                                                                        */
 12           /* S^H__^Ht_^Ha_^Ht_^Hu_^Hs                                                                                   */
 13           /*                                                                                        */
 14           /* 0) Created:  May, 1973 by G. C. Dixon                                                  */
 15           /* 1) Modified: Aug, 1973 by G. C. Dixon - standardize descriptor format.                 */
 16           /* 2) Modified: Oct, 1973 by G. C. Dixon - add object_info_ descriptor.                   */
 17           /* 3) Modified: Apr, 1975 by G. C. Dixon - add ACL and IACL descriptors.                  */
 18           /* 4) Modified: Oct, 1975 by G. C. Dixon - additional status info added.                  */
 19           /*                                                                                        */
 20           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
 21 
 22           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
 23           /*                                                                                        */
 24           /*        The structure of each node whose target is a link is shown below.     The       */
 25           /* structure of nodes for other types of targets is shown on the next page.  Note that    */
 26           /* both types of nodes are the same length.                                               */
 27           /*                                                                                        */
 28           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
 29 
 30      dcl  1 link_node                   based (Pnode),      /* node of a status tree.                         */
 31             2 Pparent                   ptr,                /* ptr to:    parent node (previous tree level).  */
 32             2 PD                        ptr,                /* ptr to:    descriptor chain attached to node.  */
 33             2 Svalid                    bit(72) aligned,    /* switches:  node data which is valid.           */
 34             2 Sreq                      bit(72) aligned,    /* switches:  node data which is req'd for output.*/
 35                                                             /*             (= node.Svalid & Srequirements)    */
 36             2 T                         fixed bin(35),      /* attribute: type of node target.                */
 37             2 switches                  unaligned,
 38               3 Smode                   bit(3),             /* attribute: user's access mode to entry.        */
 39               3 Sprev_mode              bit(3),             /* attribute: user's previous access mode to the  */
 40                                                             /*             entry before lib_access_mode_$set. */
 41               3 pad                     bit(22),
 42               3 Smaster_dir             bit(1),             /* attribute: master directory                    */
 43               3 Stpd                    bit(1),             /* attribute: transparent (never on) paging device*/
 44               3 Ssafety                 bit(1),             /* attribute: safety switch.                      */
 45               3 Saim_security_oos       bit(1),             /* attribute: security out-of-service.            */
 46               3 Saim_audit              bit(1),             /* attribute: AIM audit use of node target.       */
 47               3 Saim_multiple_class     bit(1),             /* attribute: AIM multiple class segment.         */
 48               3 Sterminal_account       bit(1),             /* attribute: if on, records charged against quota*/
 49                                                             /*             in this directory;  if off, records*/
 50                                                             /*             charged against 1st superior       */
 51                                                             /*             directory with switch on.          */
 52               3 Sterminal_account_dir   bit(1),             /* attribute: like Sterminal_account for dir quota*/
 53               3 Scopy                   bit(1),             /* attribute: copy-on-write switch.               */
 54             2 unique_id                 bit(36),            /* attribute: unique identifier.                  */
 55             2 author                    char(32) varying,   /* attribute: author of node target.              */
 56             2 dtem                      bit(36),            /* attribute: date-time attributes modified.      */
 57             2 dtd                       bit(36),            /* attribute: date-time node target dumped.       */
 58 
 59                                                             /* From here on, link_nodes differ from nodes     */
 60                                                             /*  for other types of node targets.              */
 61             2 link_target               char(168) varying;  /* attribute: target pathname of the link.        */
 62 
 63           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
 64           /*                                                                                        */
 65           /*        The structure of nodes for other types of node targets is shown below.          */
 66           /*                                                                                        */
 67           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
 68 
 69      dcl  1 node                        based (Pnode),      /* node of a status tree.                         */
 70             2 Pparent                   ptr,                /* ptr to:    parent node (previous tree level).  */
 71             2 PD                        ptr,                /* ptr to:    descriptor chain attached to node.  */
 72             2 Svalid                    bit(72) aligned,    /* switches:  node data which is valid.           */
 73             2 Sreq                      bit(72) aligned,    /* switches:  node data which is req'd for output.*/
 74                                                             /*             (= node.Svalid & Srequirements)    */
 75             2 T                         fixed bin(35),      /* attribute: type of node target.                */
 76             2 switches                  unaligned,
 77               3 Smode                   bit(3),             /* attribute: user's access mode to entry.        */
 78               3 Sprev_mode              bit(3),             /* attribute: user's previous access mode to the  */
 79                                                             /*             entry before lib_access_mode_$set. */
 80               3 pad                     bit(22),
 81               3 Smaster_dir             bit(1),             /* attribute: master directory                    */
 82               3 Stpd                    bit(1),             /* attribute: transparent (never on) paging device*/
 83               3 Ssafety                 bit(1),             /* attribute: safety switch.                      */
 84               3 Saim_security_oos       bit(1),             /* attribute: security out-of-service.            */
 85               3 Saim_audit              bit(1),             /* attribute: AIM audit use of node target.       */
 86               3 Saim_multiple_class     bit(1),             /* attribute: AIM multiple class segment.         */
 87               3 Sterminal_account       bit(1),             /* attribute: if on, records charged against quota*/
 88                                                             /*             in this directory;  if off, records*/
 89                                                             /*             charged against 1st superior       */
 90                                                             /*             directory with switch on.          */
 91               3 Sterminal_account_dir   bit(1),             /* attribute: like Sterminal_account for dir quota*/
 92               3 Scopy                   bit(1),             /* attribute: copy-on-write switch.               */
 93             2 unique_id                 bit(36),            /* attribute: unique identifier.                  */
 94             2 author                    char(32) varying,   /* attribute: author of node target.              */
 95             2 dtem                      bit(36),            /* attribute: date-time attributes modified.      */
 96             2 dtd                       bit(36),            /* attribute: date-time node target dumped.       */
 97 
 98                                                             /* From here on, other nodes differ from          */
 99                                                             /*  link_nodes.                                   */
100             2 dtm                       bit(36),            /* attribute: date-time node target modified.     */
101             2 dtu                       bit(36),            /* attribute: date-time node target last used.    */
102             2 rb (3)                    fixed bin(3),       /* attribute: ring brackets.                      */
103             2 pad1 (1)                  fixed bin,
104             2 access_class              bit(72) aligned,    /* attribute: access class assoc. with entry.     */
105             2 records_used              fixed bin(35),      /* attribute: storage used, in records.           */
106             2 current_length            fixed bin(35),      /* attribute: length, in records.                 */
107             2 max_length                fixed bin(35),      /* attribute: maximum length.                     */
108             2 msf_indicator             fixed bin(35),      /* attribute: msf indicator.                      */
109             2 bit_count                 fixed bin(35),      /* attribute: bit count.                          */
110             2 bit_count_author          char(32) varying,   /* attribute: bit count/msf indicator author.     */
111             2 offset                    fixed bin(35),      /* attribute: offset, in words, of an archive     */
112                                                             /*             component from the base of archive.*/
113             2 entry_bound               fixed bin(35),      /* attribute: entry limit for calls to a gate.    */
114             2 segment,                                      /* group:  segment quota information for a dir.   */
115               3 quota                   fixed bin(35),      /* attribute: quota set.                          */
116               3 quota_used              fixed bin(35),      /* attribute: quota used.                         */
117               3 trp                     fixed bin(71),      /* attribute: time-record product.                */
118               3 dttrp                   bit(36),            /* attribute: date-time time-record product last  */
119                                                             /*             updated.                           */
120               3 Ninf_quota              fixed bin(35),      /* attribute: number of immediately-inferior      */
121                                                             /*             directories with Sterminal_account */
122                                                             /*             on.                                */
123             2 directory,                                    /* group:  directory quota information for a dir. */
124               3 quota                   fixed bin(35),      /* attribute: quota set.                          */
125               3 quota_used              fixed bin(35),      /* attribute: quota used.                         */
126               3 trp                     fixed bin(71),      /* attribute: time-record product.                */
127               3 dttrp                   bit(36),            /* attribute: date-time time-record product last  */
128                                                             /*             updated.                           */
129               3 Ninf_quota              fixed bin(35),      /* attribute: number of immediately-inferior      */
130                                                             /*             directories with Sterminal_account */
131                                                             /*             on.                                */
132             2 pvid                      bit(36),            /* attribute: physical volume id.                 */
133             2 lvid                      bit(36),            /* attribute: logical volume id.                  */
134             2 pad2 (5)                  fixed bin,
135           Pnode                         ptr;                /* ptr to:    a tree node.                        */
136 ^L
137           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
138           /*                                                                                        */
139           /*      The descriptors attached to each node of the tree describe the variable-sized     */
140           /* attributes of the directory entry or archive component associated with the node.       */
141           /* Each descriptor must begin with a header shown in structure D below.  The following    */
142           /* descriptors are the only ones that have been defined.                                  */
143           /*                                                                                        */
144           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
145 
146      dcl  1 D                           based (PD),         /* Header common to all descriptors.              */
147             2 length                    fixed bin(17) unal, /* descriptor: length, in words.                  */
148             2 version                   fixed bin(17) unal, /* descriptor: version number.                    */
149             2 T                         fixed bin,          /* descriptor: type of descriptor.                */
150             2 Pnext           ptr,                          /* ptr to:    next descriptor attached to node.   */
151           PD                            ptr;                /* ptr to:    a descriptor.                       */
152 
153      dcl  1 Dacl                        based (PDacl),      /* a segment ACL descriptor.                      */
154             2 length                    fixed bin(17) unal, /* descriptor: length, in words.                  */
155             2 version                   fixed bin(17) unal, /* descriptor: version number = 1.                */
156             2 T                         fixed bin,          /* descriptor: type = Tacl.                       */
157             2 Pnext                     ptr,                /* ptr to:    next descriptor attached to node.   */
158             2 C                         fixed bin(35),      /* attribute: error code from filling descriptor. */
159             2 N                         fixed bin,          /* attribute: number of ACL entries.              */
160             2 acls (Nacls refer (Dacl.N)),                  /* attribute: ACL entries.                        */
161               3 access_name             char(32),           /* attribute: access name associated with entry.  */
162               3 modes                   bit(36),            /* attribute: access modes associated with entry. */
163               3 zero_pad                bit(36),
164               3 status_code             fixed bin(35),      /* attribute: status code associated with entry.  */
165           Nacls                         fixed bin,          /* temporary: number of entries in ACL descriptor.*/
166           PDacl                         ptr,                /* ptr to:    a segment ACL descriptor.           */
167           Vacl_1                        fixed bin int static options(constant) init (1),
168                                                             /* version:   version of ACL descriptor.          */
169           Tacl                          fixed bin int static options(constant) init (7);
170                                                             /* attribute: type of a segment ACL descriptor.   */
171 
172      dcl  1 Ddir_acl                    based (PDdir_acl),  /* a directory ACL descriptor.                    */
173             2 length                    fixed bin(17) unal, /* descriptor: length, in words.                  */
174             2 version                   fixed bin(17) unal, /* descriptor: version number = 1.                */
175             2 T                         fixed bin,          /* descriptor: type = Tdir_acl.                   */
176             2 Pnext                     ptr,                /* ptr to:    next descriptor attached to node.   */
177             2 C                         fixed bin(35),      /* attribute: error code from filling descriptor. */
178             2 N                         fixed bin,          /* attribute: number of ACL entries.              */
179             2 acls (Ndir_acls refer (Ddir_acl.N)),          /* attribute: ACL entries.                        */
180               3 access_name             char(32),           /* attribute: access name associated with entry.  */
181               3 dir_modes               bit(36),            /* attribute: access modes associated with entry. */
182               3 status_code             fixed bin(35),      /* attribute: status code associated with entry.  */
183           Ndir_acls                     fixed bin,          /* temporary: number of entries in ACL descriptor.*/
184           PDdir_acl                     ptr,                /* ptr to:    a directory ACL descriptor.         */
185           Vdir_acl_1                    fixed bin int static options(constant) init (1),
186                                                             /* version:   version of directory ACL descriptor.*/
187           Tdir_acl                      fixed bin int static options(constant) init (8);
188                                                             /* attribute: type of a directory ACL descriptor. */
189 ^L
190      dcl  1 Ddir_iacl                   based (PDdir_iacl), /* a directory IACL descriptor.                   */
191             2 length                    fixed bin(17) unal, /* descriptor: length, in words.                  */
192             2 version                   fixed bin(17) unal, /* descriptor: version number = 1.                */
193             2 T                         fixed bin,          /* descriptor: type = Tdir_iacl.                  */
194             2 Pnext                     ptr,                /* ptr to:    next descriptor attached to node.   */
195             2 C                         fixed bin(35),      /* attribute: error code from filling descriptor. */
196             2 N                         fixed bin,          /* attribute: number of ACL entries.              */
197             2 Iring (0:7)               fixed bin,          /* attribute: index of first ACLe in each ring.   */
198             2 Nring (0:7)               fixed bin,          /* attribute: number of ACL entries in each ring. */
199             2 acls (Ndir_iacls refer (Ddir_iacl.N)),        /* attribute: ACL entries.                        */
200               3 access_name             char(32),           /* attribute: access name associated with entry.  */
201               3 dir_modes               bit(36),            /* attribute: access modes associated with entry. */
202               3 status_code             fixed bin(35),      /* attribute: status code associated with entry.  */
203           Ndir_iacls                    fixed bin,          /* temporary: number of entries in IACL descriptor*/
204           PDdir_iacl                    ptr,                /* ptr to:    a directory IACL descriptor.        */
205           Vdir_iacl_1                   fixed bin int static options(constant) init (1),
206                                                             /* version:   version of dir IACL descriptor.     */
207           Tdir_iacl                     fixed bin int static options(constant) init (9);
208 
209      dcl  1 Diacl                       based (PDiacl),     /* a segment IACL descriptor.                     */
210             2 length                    fixed bin(17) unal, /* descriptor: length, in words.                  */
211             2 version                   fixed bin(17) unal, /* descriptor: version number = 1.                */
212             2 T                         fixed bin,          /* descriptor: type = Tiacl.                      */
213             2 Pnext                     ptr,                /* ptr to:    next descriptor attached to node.   */
214             2 C                         fixed bin(35),      /* attribute: error code from filling descriptor. */
215             2 N                         fixed bin,          /* attribute: number of ACL entries.              */
216             2 Iring (0:7)               fixed bin,          /* attribute: index of first ACLe in each ring.   */
217             2 Nring (0:7)               fixed bin,          /* attribute: number of ACL entries in each ring. */
218             2 acls (Niacls refer (Diacl.N)),                /* attribute: ACL entries.                        */
219               3 access_name             char(32),           /* attribute: access name associated with entry.  */
220               3 modes                   bit(36),            /* attribute: access modes associated with entry. */
221               3 zero_pad                bit(36),
222               3 status_code             fixed bin(35),      /* attribute: status code associated with entry.  */
223           Niacls                        fixed bin,          /* temporary: number of entries in IACL descriptor*/
224           PDiacl                        ptr,                /* ptr to:    a segment IACL descriptor.          */
225           Viacl_1                       fixed bin int static options(constant) init (1),
226                                                             /* version:   version of segment IACL descriptor. */
227           Tiacl                         fixed bin int static options(constant) init (10);
228                                                             /* attribute: type of a segment IACL descriptor.  */
229 
230      dcl  1 Dnames                      based (PDnames),    /* name attribute descriptor.                     */
231             2 length                    fixed bin(17) unal, /* descriptor: length, in words.                  */
232             2 version                   fixed bin(17) unal, /* descriptor: version number = 1.                */
233             2 T                         fixed bin,          /* descriptor: type = Tnames.                     */
234             2 Pnext                     ptr,                /* ptr to:    next descriptor attached to node.   */
235             2 N                         fixed bin,          /* attribute: number of names.                    */
236             2 names (Nnames refer (Dnames.N))
237                                         char(32),           /* attribute: names.                              */
238           Nnames                        fixed bin,          /* temporary: number of names in name descriptor. */
239           PDnames                       ptr,                /* ptr to:    a name descriptor.                  */
240           Vnames_1                      fixed bin int static options(constant) init (1),
241                                                             /* version:   version of names descriptor.        */
242           Tnames                        fixed bin int static options(constant) init (1);
243                                                             /* attribute: type of a name descriptor.          */
244 ^L
245      dcl  1 Dnodes                      based (PDnodes),    /* descriptor for array of immediately-inferior   */
246                                                             /* nodes.                                         */
247             2 header,
248               3 length                  fixed bin(17) unal, /* descriptor: length, in words.                  */
249               3 version                 fixed bin(17) unal, /* descriptor: version number = 1.                */
250               3 T                       fixed bin,          /* descriptor: type = Tnodes.                     */
251               3 Pnext                   ptr,                /* ptr to:    next descriptor attached to node.   */
252               3 C                       fixed bin(35),      /* attribute: error code from filling array.      */
253               3 N                       fixed bin,          /* attribute: number of nodes in node array.      */
254             2 nodes (Nnodes refer (Dnodes.N))               /* attribute: node array                          */
255                                         like node,
256           Nnodes                        fixed bin,          /* temporary: number of nodes in node array.      */
257           PDnodes                       ptr,                /* ptr to:    a node array descriptor.            */
258           Vnodes_1                      fixed bin int static options(constant) init (1),
259                                                             /* version:   version of nodes descriptor.        */
260           Tnodes                        fixed bin int static options(constant) init (2);
261                                                             /* attribute: type of a node descriptor.          */
262 
263      dcl  1 Dobj                        based (PDobj),      /* an object_info_ descriptor.                    */
264             2 length                    fixed bin(17) unal, /* descriptor: length, in words.                  */
265             2 version                   fixed bin(17) unal, /* descriptor: version number = 1.                */
266             2 T                         fixed bin,          /* descriptor: type = Tobj.                       */
267             2 Pnext                     ptr,                /* ptr to:    next descriptor attached to node.   */
268             2 info,
269               3 Otext                   fixed bin(35),      /* attribute: offset of text.                     */
270               3 Odefinitions            fixed bin(35),      /* attribute: offset of definitions.              */
271               3 Olink                   fixed bin(35),      /* attribute: offset of linkage section.          */
272               3 Ostatic                 fixed bin(35),      /* attribute: offset of static section.           */
273               3 Osymbols                fixed bin(35),      /* attribute: offset of symbol section.           */
274               3 Obreaks                 fixed bin(35),      /* attribute: offset of break map.                */
275               3 Ltext                   fixed bin(35),      /* attribute: length of text, in words.           */
276               3 Ldefinitions            fixed bin(35),      /* attribute: length of definitions, in words.    */
277               3 Llink                   fixed bin(35),      /* attribute: length of linkage section, in words.*/
278               3 Lstatic                 fixed bin(35),      /* attribute: length of static section, in words. */
279               3 Lsymbols                fixed bin(35),      /* attribute: length of symbol section, in words. */
280               3 Lbreaks                 fixed bin(35),      /* attribute: length of break map, in words.      */
281               3 format                  aligned,
282                 4 old_format            bit(1) unal,        /* attribute: segment is in old format.           */
283                 4 bound                 bit(1) unal,        /* attribute: a bound segment.                    */
284                 4 relocatable           bit(1) unal,        /* attribute: object is relocatable.              */
285                 4 procedure             bit(1) unal,        /* attribute: executable procedure.               */
286                 4 standard              bit(1) unal,        /* attribute: standard object segment.            */
287                 4 gate                  bit(1) unal,        /* attribute: gate procedure.                     */
288                 4 separate_static       bit(1) unal,        /* attribute: proc has separate static section.   */
289                 4 links_in_text         bit(1) unal,        /* attribute: proc has links in text section.     */
290                 4 pad                   bit(28) unal,
291               3 entry_bound             fixed bin(35),      /* attribute: entry point bound for a gate.       */
292               3 Otext_links             fixed bin(35),      /* attribute: offset of first link in text section*/
293               3 compiler                char(8),            /* attribute: compiler of this object segment.    */
294               3 compile_time            fixed bin(71),      /* attribute: date/time of compilation.           */
295               3 userid                  char(32),           /* attribute: id of user who compiled segment.    */
296               3 cversion,                                   /* attribite: compiler version string.            */
297                 4 O                     fixed bin(17) unal, /*            offset                              */
298                 4 L                     fixed bin(17) unal, /*            length                              */
299               3 comment,                                    /* attribute: compiler-generated comment.         */
300                 4 O                     fixed bin(17) unal, /*            offset                              */
301                 4 L                     fixed bin(17) unal, /*            length                              */
302               3 Osource                 fixed bin(35),      /* attribute: offset of source map.               */
303             2 cversion                  char(64) varying,   /* attribute: compiler version number             */
304             2 comment                   char(64) varying,   /* attribute: compiler's comment info             */
305           PDobj                         ptr,                /* ptr to:    an object_info_ descriptor.         */
306           Vobj_1                        fixed bin int static options(constant) init (1),
307                                                             /* version:   version of object_info_ descriptor. */
308           Tobj                          fixed bin int static options(constant) init (3);
309                                                             /* attribute: type of a node descriptor.          */
310 
311      dcl  1 Dsearch_proc                based (PDsearch_proc),
312                                                             /* library root search_proc attribute descriptor. */
313             2 length                    fixed bin(17) unal, /* descriptor: length, in words.                  */
314             2 version                   fixed bin(17) unal, /* descriptor: version number = 1.                */
315             2 T                         fixed bin,          /* descriptor: type = Tsearch_proc.               */
316             2 Pnext                     ptr,                /* ptr to:    next descriptor attached to node.   */
317             2 search_proc               char(65) varying,   /* attribute: name of library search procedure.   */
318           PDsearch_proc                 ptr,                /* ptr to:    a search_proc info descriptor.      */
319           Vsearch_proc_1                fixed bin int static options(constant) init (1),
320                                                             /* version:   version of search_proc info descrip.*/
321           Tsearch_proc                  fixed bin int static options(constant) init (5);
322                                                             /* attribute: type of a search_proc descriptor.   */
323 
324      dcl  1 Duser                       based (PDuser),     /* user attribute descriptor.                     */
325             2 length                    fixed bin(17) unal, /* descriptor: length, in words.                  */
326             2 version                   fixed bin(17) unal, /* descriptor: version number = 1.                */
327             2 T                         fixed bin,          /* descriptor: type = Tuser.                      */
328             2 Pnext                     ptr,                /* ptr to:    next descriptor attached to node.   */
329             2 label                     char(18),           /* attribute: label to be used for this field in  */
330                                                             /*            output.                             */
331             2 L                         fixed bin,          /* attribute: length of user info string.         */
332             2 info                      char(Luser refer (Duser.L)),
333                                                             /* attribute: user info string.                   */
334           Luser                         fixed bin,          /* temporary: length of user info string.         */
335           PDuser                        ptr,                /* ptr to:    a user info descriptor.             */
336           Vuser_1                       fixed bin int static options(constant) init (1),
337                                                             /* version:   version of user info descriptor.    */
338           Tuser                         fixed bin int static options(constant) init (6);
339                                                             /* attribute: type of a user descriptor.          */
340 ^L
341 %include lib_Svalid_req_;
342 
343      dcl  1 Svalid                      aligned based(addr(node.Svalid)) like Svalid_req,
344           1 Sreq                        aligned based(addr(node.Sreq)) like Svalid_req;
345 ^L
346 %include lib_Scontrol_;
347 
348 
349           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
350           /*                                                                                        */
351           /*      The following entry type attributes have been defined.  Note that the types       */
352           /* for segments, archive components, and msf components all have the characteristic       */
353           /* that:            mod (type, 2) = 1;                                                    */
354           /*                                                                                        */
355           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
356 
357 
358      dcl (Tlink                         init (0),
359           Tsegment                      init (1),
360           Tdirectory                    init (2),
361           Tmsf                          init (3),
362           Tmsf_comp                     init (4),
363           Tarchive                      init (5),
364           Tarchive_comp                 init (6)) fixed bin(17) int static options(constant);
365 
366 
367           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
368           /*                                                                                        */
369           /*      The following character string arrays identify each entry type attribute by name. */
370           /* Both brief and long string arrays are provided.                                        */
371           /*                                                                                        */
372           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
373 
374      dcl  node_type (0:6)               char(32) varying aligned int static options(constant) init (
375                                         "link",
376                                         "segment",
377                                         "directory",
378                                         "multisegment file",
379                                         "multi-segment file component",
380                                         "archive",
381                                         "archive component"),
382           brief_node_type (0:6)         char(12) varying aligned int static options(constant) init (
383                                         "link",
384                                         "segment",
385                                         "directory",
386                                         "msf",
387                                         "msf comp",
388                                         "archive",
389                                         "arch comp");
390 
391 
392 /*  END OF:         lib_node_.incl.pl1                        *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */