1 /* BEGIN INCLUDE FILE dm_cm_file_header.incl.pl1 */
 2 
 3 /* DESCRIPTION:
 4 
 5         This include file contains the cm_file_header and collection_id_table
 6    structure.  These structures are stored as elements in the Header Collection
 7    of a file and contain per-file, as opposed to per-collection, information.
 8 
 9         The cm_file_header structure is always stored in the element whose
10    identifier is CM_FILE_HEADER_ELEMENT_ID, declared in
11    dm_cm_hdr_col_ids.incl.pl1.
12 
13         The collection_id_table is an array of identifiers of each collection
14    in the file, excepting the Header Collection.  The identifier of a
15    collection is the same as the identifier of the element which holds that
16    collection's collection_header, described in dm_cm_collection_header.incl.pl1.
17    The identifier of the element in which the collection_id_table is
18    stored is cm_file_header.collection_id_table_element_id.
19 
20       A file also has a reservation map for determining which controls
21    intervals have been reserved by a collection.  It is divided into
22    several blocks, or fragments.  The file_reservation_map is actually an
23    array of element identifiers of the fragments of the map.  The
24    file_reservation_map is stored in the element whose identifier is
25    cm_file_header.allocation_map_element_id (quite a misnomer).  The number
26    of fragments of the map is cm_file_header.number_of_blocks.  The size
27    of each is fragment is cm_file_header.number_of_control_intervals_per_block
28    bits long, representing equally as many control intervals.  The
29    file_reservation_map is described in dm_cm_reservation_map.incl.pl1.
30    cm_file_header.highest_numbered_ci is the number of the control
31    interval in the file with the highest control interval number.  It is not
32    yet used or maintained.
33 
34 */
35 
36 /* HISTORY:
37 Written by Matthew Pierret, 03/23/82.
38 Modified:
39 04/08/82 by Matthew Pierret: Removed storage method constants.
40 05/18/82 by Matthew Pierret: Made the array of collections an array of element
41             ids referring to collection_header's. Reduced buffer length to 120,
42             enough bytes to hold the collmgr_header with 25 collection header
43             element ids.
44 06/03/82 by Matthew Pierret: Added collmgr_header_header.
45 07/01/82 by Matthew Pierret: Removed collmgr_header_header. Changed to version A
46             made fixed length, split off array of collection_ids (also known as
47             element_ids of collection_headers).
48 10/29/82 by Matthew Pierret: Changed from collmgr_header to cm_file_header.
49 09/18/84 by Matthew Pierret: Added DESCRIPTION section. Moved constants to
50             dm_cm_hdr_col_ids.incl.pl1.
51 */
52 
53 /* format: style2,ind3,ll79 */
54 
55      dcl     1 cm_file_header       aligned based (cm_file_header_ptr),
56                2 version            char (8),
57                2 highest_numbered_ci
58                                     fixed bin (24) uns,
59                2 number_of_collections
60                                     fixed bin (17) unal,
61                2 number_of_blocks   fixed bin (17) unal,
62                2 number_of_control_intervals_per_block
63                                     fixed bin (17),
64                2 allocation_map_element_id
65                                     bit (36) aligned,
66                2 collection_id_table_element_id
67                                     bit (36) aligned;
68 
69      dcl     cm_file_header_ptr     ptr;
70      dcl     CM_FILE_HEADER_VERSION_1
71                                     char (8) aligned init ("cm_fhdr1")
72                                     int static options (constant);
73 
74 
75      dcl     collection_id_table    (cit_number_of_collections)
76                                     bit (36) aligned
77                                     based (collection_id_table_ptr);
78 
79      dcl     collection_id_table_ptr
80                                     ptr;
81      dcl     cit_number_of_collections
82                                     fixed bin (17);
83 
84 
85 
86 /* ----------End include file dm_cm_file_header.incl.pl1---------- */
87