1      dcl     1 uns_info             based (addr (info)),    /* info structure for unstructured files */
 2                2 info_version       fixed,                  /* (Input) must =1--only one version
 3                                                                currently supported */
 4                2 type               fixed,                  /* =1 */
 5                2 end_pos            fixed (34),             /* length (bytes) not including header */
 6                2 flags              aligned,
 7                  3 pad1             bit (2) unal,           /* used for lock_status in other files */
 8                  3 header_present   bit (1) unal,           /* on if file code is set */
 9                  3 pad2             bit (33) unal,
10                2 header_id          fixed (35);             /* meaning is user defined */
11      dcl     1 seq_info             based (addr (info)),    /* info structure for sequential files */
12                2 info_version       fixed,
13                2 type               fixed,                  /* =2 */
14                2 end_pos            fixed (34),             /* record count */
15                2 flags              aligned,
16                  3 lock_status      bit (2) unal,           /* 0,1,2, or 3 to indicate not locked,
17                                                                locked by (other,this,dead) process */
18                  3 pad              bit (34) unal,
19                2 version            fixed,                  /* end_pos valid only in latest version */
20                2 action             fixed;                  /* indicates if adjustment or rollback is needed */
21      dcl     1 blk_info             based (addr (info)),    /* info structure for blocked files */
22                2 info_version       fixed,
23                2 type               fixed,                  /* =3 */
24                2 end_pos            fixed (34),             /* record count */
25                2 flags              aligned,
26                  3 lock_status      bit (2) unal,           /* same as seq_info.= */
27                  3 pad              bit (34) unal,
28                2 version            fixed,                  /* only one currently supported */
29                2 action             fixed,                  /* non-zero if truncation in progress, else =0 */
30                2 max_rec_len        fixed (21),             /* bytes--determines characteristiWc block size */
31                2 pad                fixed,                  /* not used at this time */
32                2 time_last_modified fixed (71);             /* time stamp for synchronization */
33      dcl     1 indx_info            based (addr (info)),    /* info structure for indexed files */
34                2 info_version       fixed,
35                2 type               fixed,                  /* =4 */
36                2 records            fixed (34),             /* record count */
37                2 flags              aligned,
38                  3 lock_status      bit (2) unal,           /* same as seq_info.= */
39                  3 pad              bit (34) unal,
40                2 version_info       aligned,
41                  3 file_version     fixed (17) unal,        /* headers differ */
42                  3 program_version  fixed (17) unal,        /* may indicate bugs */
43                2 action             fixed,                  /* non-zero code indicates update in progress */
44                2 non_null_recs      fixed (34),             /* count of allocated recs */
45                2 record_bytes       fixed (34),             /* total record length */
46                2 free_blocks        fixed,                  /* available record blocks */
47                2 index_height       fixed,                  /* height of index tree (0 if empty) */
48                2 nodes              fixed,                  /* nodes being used in the index */
49                2 key_bytes          fixed (34),             /* total length of keys */
50                2 change_count       fixed (35),             /* bumped on each file modification */
51                2 num_keys           fixed (34),             /* number of index entries */
52                2 dup_keys           fixed (34),             /* 0 if all keys are distinct, else 1 for each dup */
53                2 dup_key_bytes      fixed (34),             /* total bytes of duplicate keys */
54                2 word               (1) fixed;              /* reserved for future use */
55      dcl     1 vbl_info             based (addr (info)),    /* info structure for variable files */
56                2 info_version       fixed,
57                2 type               fixed,                  /* =5 */
58                2 end_pos            fixed (34),             /* logical end of file--not necessarily allocation count */
59                2 flags              aligned,
60                  3 lock_status      bit (2) unal,           /* same as seq_info.= */
61                  3 pad              bit (34) unal,
62                2 version            fixed,                  /* only one currently supported */
63                2 action             fixed,                  /* same as in indexed files */
64                2 first_nz           fixed (34),             /* position (numeric key) for first allocated record */
65                2 last_nz            fixed (34),             /* last allocated record position */
66                2 change_count       fixed (35);             /* used for synchronization */
67      dcl     vfs_version_1          static internal fixed init (1);
68                                                             /* should be used in
69                                                                assignments to info_version */