1 /* BEGIN INCLUDE FILE - dm_cm_collection_header.incl.pl1 */ 2 3 /* DESCRIPTION: 4 Associated with each collection is the following collection_header 5 structure stored as an element in the Header Collection of the file. 6 The identifier of this element is also the idenfifier of the collection. 7 Even the Header Collection has a collection_header stored in the Header 8 Collection itself in the element identified by the constant 9 HEADER_COLLECTION_HEADER_ELEMENT_ID declared in dm_cm_hdr_col_ids.incl.pl1. 10 The information in collection_header is expected to be stable information. 11 The structure elements are described as follows: 12 13 version is a character string version equal to COLLECTION_HEADER_VERSION_2. 14 15 flags.fixed_size_elements indicates, if on that all elements in the 16 collection are of a fixed length. 17 18 flags.thread_elements indicates that elements in a collection are to be 19 threaded in a linked list. This is currrently unupported. 20 21 flags.thread_control_intervals indicates, if on, that control intervals in 22 a collection are to be threaded in a linked list. This is only useful if 23 the control interval storage method is blocked. 24 25 flags.must_be_zero1 is reserved for future use and must be "0"b. 26 27 control_interval_storage_method is the method of storage management of 28 control intervals for this collection, either 29 BLOCKED_CONTROL_INTERVAL_STORAGE_METHOD (not yet supported) or 30 UNBLOCKED_CONTROL_INTERVAL_STORAGE_METHOD, declared in 31 dm_cism_info.incl.pl1. 32 33 element_storage_method is the method of storage management of elements in 34 this collection, either BASIC_ELEMENT_STORAGE_METHOD or 35 ORDERED_ELEMENT_STORAGE_METHOD, declared in dm_esm_info.incl.pl1. 36 37 maximum_element_size is the maximum size of an element in bits in this 38 collection. 39 40 header_record_element_id is the identifier of an element containing a 41 caller-defined header for this collection. If equal to "0"b, no 42 caller-defined header yet exists. The put_header collection_manager_ 43 operation stores such a header. 44 45 storage_record_element_id is the identifier of the element containing the 46 storage_record for this collection. The storage_record contains 47 information expected to be dynamic, such as the identifier of the last 48 control interval of the collection. Its format is also dependent upon the 49 storage methods in effect for this collection. storage_record structures 50 are declared in dm_cm_storage_record.incl.pl1. 51 52 */ 53 54 /* HISTORY: 55 Written by Matthew Pierret, 04/01/82. 56 Modified: 57 07/01/82 by Matthew Pierret: Changed to version A, added storage_record_area. 58 10/29/82 by Matthew Pierret: Changed to version 2 ("col_hdr2"), separated 59 storage_record_area out, leaving storage_record_element_id behind. 60 09/18/84 by Matthew Pierret: Added DESCRIPTION section. 61 */ 62 63 /* format: style2,ind3,ll79 */ 64 65 dcl 1 collection_header aligned based (collection_header_ptr), 66 2 version char (8), 67 2 flags unaligned, 68 3 fixed_size_elements 69 bit (1), 70 3 thread_elements bit (1), 71 3 thread_control_intervals 72 bit (1), 73 3 must_be_zero1 bit (15), 74 2 control_interval_storage_method 75 fixed bin (17) unal, 76 2 element_storage_method 77 fixed bin (17), 78 2 maximum_element_size 79 fixed bin (35), 80 2 header_record_element_id 81 bit (36) aligned, 82 2 storage_record_element_id 83 bit (36) aligned; 84 85 dcl collection_header_ptr ptr; 86 dcl COLLECTION_HEADER_VERSION_2 87 init ("col_hdr2") char (8) aligned 88 int static options (constant); 89 90 /* END INCLUDE FILE - dm_cm_collection_header.incl.pl1 */