1 
 2 declare                                                     /* Information returned by hcs_$status_ and hcs_$status_long */
 3 
 4 
 5          1 branch aligned based (info_ptr),                 /* information about this particular branch */
 6          2 type bit (2) unal,                               /* "00"b = link, "01"b = segment, "10"b = directory */
 7          2 nnames bit (16) unal,                            /* number of names this entry has */
 8          2 names_relp bit (18) unal,                        /* pointer, relative to base of segment, to names */
 9          2 dtm bit (36) unal,                               /* date-time the segment was last modified */
10          2 dtu bit (36) unal,                               /* date-time the segment was last used */
11          2 mode bit (5) unal,                               /* the user's access modes to the entry */
12          2 padding bit (13) unal,                           /* yawn */
13          2 records_used bit (18) unal,                      /* number of blocks actually occupied by entry */
14 
15 /* limit of information returned by status_ */
16 
17          2 dtd bit (36) unal,                               /* date-time the segment was last dumped */
18          2 dtbm bit (36) unal,                              /* date-time the branch for the entry was modified */
19          2 account bit (36) unal,                           /* account to which storage is charged */
20          2 current_length bit (12) unal,                    /* maximum length in blocks */
21          2 bit_count bit (24) unal,                         /* length of entry in bits */
22          2 device_id bit (4) unal,                          /* device on which segment currently resides */
23          2 mdid bit (4) unal,                               /* device to which it is currently being moved */
24          2 copy_switch bit (1) unal,                        /* segment copy switch */
25          2 tpd bit (1) unal,                                /* transparent paging device switch */
26          2 more_padding bit (8) unal,                       /* yawn, yawn */
27          2 ring_brackets (0:2) bit (6) unal,                /* ring brackets for entry */
28          2 uid bit (36) unal,                               /* unique identifier */
29 
30 
31          1 link aligned based (info_ptr),                   /* information about link entries */
32          2 type bit (2) unal,                               /* as above */
33          2 nnames bit (16) unal,                            /* number of names for this link */
34          2 names_relp bit (18) unal,                        /* as above */
35          2 dtbm bit (36) unal,                              /* date-time, entry for link was last modified */
36          2 dtd bit (36) unal,                               /* date-time dumped */
37          2 pathname_length bit (18) unal,                   /* length of link pathname */
38          2 pathname_relp bit (18) unal,                     /* pointer, relative to based of segment, to name */
39 
40          entry_names (1) character (32) aligned based (pointer (area_pointer, branch.names_relp)),
41                                                             /* array of names returned */
42          pathname character (fixed (link.pathname_length)) aligned based (pointer (area_pointer, link.pathname_relp)),
43                                                             /* pathname a link points to */
44 
45          area_pointer pointer,                              /* to area in which to allocate names */
46          info_ptr pointer;                                  /* to structure returned */
47 
48