1 /*        BEGIN INCLUDE FILE ... dir_header.incl.pl1 */
 2 /* Modified 8/74 for NSS */
 3 /* Modified 8/76 to add version number and hash table rel pointer for variable hash table sizes */
 4 /* Modified 3/82 BIM for change pclock */
 5 /* format: style3 */
 6 
 7 /* Template for the directory header. Length = 64 words. */
 8 
 9 dcl  dp ptr;
10 
11 dcl 1 dir based (dp) aligned,
12 
13    2 modify bit (36),                                       /* Process ID of last modifier */
14    2 type bit (18) unaligned,                     /* type of object = dir header */
15    2 size fixed bin (17) unaligned,                         /* size of header in words */
16     2 dtc (3),                                              /* date-time checked by salvager array */
17       3 date bit (36),                                      /* the date */
18       3 error bit (36),                                     /* what errors were discovered */
19 
20     2 uid bit (36),                                         /* uid of the directory           - copied from branch */
21 
22     2 pvid bit (36),                                        /* phys vol id of the dir         - copied from branch */
23 
24     2 sons_lvid bit (36),                                   /* log vol id for inf non dir seg - copied from branch */
25 
26     2 access_class bit (72),                                /* security attributes of dir     - copied from branch */
27 
28     (2 vtocx fixed bin (17),                                /* vtoc entry index of the dir    - copied from branch */
29     2 version_number fixed bin (17),                        /* version number of header */
30 
31     2 entryfrp bit (18),                                    /* rel ptr to beginning of entry list */
32     2 pad2 bit (18),
33 
34     2 entrybrp bit (18),                                    /* rel ptr to end of entry list */
35     2 pad3 bit (18),
36 
37     2 pers_frp bit (18),                                    /* rel ptr to start of person name list */
38     2 proj_frp bit (18),                                    /* rel ptr to start of project name list */
39 
40     2 pers_brp bit (18),                                    /* rel ptr to end of person name list */
41     2 proj_brp bit (18),                                    /* rel ptr to end of project name list */
42 
43     2 seg_count fixed bin (17),                             /* number of non-directory branches */
44     2 dir_count fixed bin (17),                             /* number of directory branches */
45 
46     2 lcount fixed bin (17),                                /* number of links */
47     2 acle_total fixed bin (17),                            /* total number of ACL entries in directory */
48 
49     2 arearp bit (18),                                      /* relative pointer to beginning of allocation area */
50     2 per_process_sw bit (1),                               /* indicates dir contains per process segments */
51     2 master_dir bit (1),                                   /* TRUE if this is a master dir */
52     2 force_rpv bit (1),                                    /* TRUE if segs must be on RPV */
53     2 rehashing bit (1),                                    /* TRUE if hash table is being constructed */
54     2 pad4 bit (14),
55 
56     2 iacl_count (0:7),
57       3 seg fixed bin (17),                                 /* number of initial acl entries for segs */
58       3 dir fixed bin (17),                                 /* number of initial acl entries for dir */
59 
60     2 iacl (0:7),                                           /* pointer to initial ACLs for each ring */
61       3 seg_frp bit (18),                                   /* rel ptr to start of initial ACL for segs */
62       3 seg_brp bit (18),                                   /* rel ptr to end of initial ACL for segs */
63 
64       3 dir_frp bit (18),                                   /* rel ptr to start of initial for dirs */
65       3 dir_brp bit (18),                                   /* rel ptr to end of initial ACL for dirs */
66 
67     2 htsize fixed bin (17),                                /* size of hash table */
68     2 hash_table_rp bit (18),                               /* rel ptr to start of hash table */
69 
70     2 htused fixed bin (17),                                /* no. of used places in hash table */
71     2 pad6 fixed bin (17),
72 
73     2 tree_depth fixed bin (17),                            /* number of levels from root of this dir */
74     2 pad7 bit (18)) unaligned,
75 
76     2 dts bit (36),                                         /* date-time directory last salvaged */
77 
78     2 master_dir_uid bit (36),                              /* uid of superior master dir */
79     2 change_pclock fixed bin (35),                         /* up one each call to sum$dirmod */
80     2 pad8 (11) bit (36),                                   /* pad to make it a 64 word header */
81     2 checksum bit (36),                                    /* checksummed from uid on */
82     2 owner bit (36);                                       /* uid of parent dir */
83 
84 dcl version_number_2 fixed bin int static options (constant) init (2);
85 
86 /*        END INCLUDE FILE ... dir_header.incl.pl1 */