1 /* BEGIN INCLUDE FILE dm_cm_reservation_map.incl.pl1 */ 2 3 /* DESCRIPTION: 4 5 The collection_manager_'s file reservation map is used to keep track of 6 those control intervals which have been reserved by a collection so that 7 more than one collection in a file do not attempt to use the same control 8 interval. Logically the file reservation map is one long bit string 9 containing a bit for each control interval of the file. If the bit for 10 a control interval is "1"b, that control interval has been reserved. 11 Actually the map is divided into several fragments represented by 12 file_reservation_map_fragment structures, each a bit string of uniform 13 length and each stored as an element in the Header Collection. Ideally, 14 each fragment is stored in a different control interval of the Header 15 Collection for enhanced concurrent access to the map. 16 17 To increase speed of reference and concurrent throughput the fragments 18 are not chained together, but are kept track of by the file_reservation_map 19 structure. This structure is an array with each entry describing the 20 location of a fragment, the number of the control interval for which the 21 first bit in the fragment represents, and a flag which, if on, indicates 22 that there are no unreserved control intervals in the fragment. This flag 23 allows for skipping looking at fragments which are already full. 24 */ 25 26 /* HISTORY: 27 Written by Matthew Pierret, 2/23/83. 28 Modified: 29 09/24/84 by Matthew Pierret: Added DESCRIPTION section. 30 */ 31 32 /* format: style2,ind3,ll79 */ 33 34 dcl 1 file_reservation_map (frm_number_of_fragments) aligned 35 based (file_reservation_map_ptr), 36 2 flags unal, 37 3 no_control_intervals_are_available 38 bit (1) unal, 39 3 must_be_zero bit (11) unal, 40 2 lowest_numbered_control_interval 41 fixed bin (24) uns unal, 42 2 element_id bit (36) aligned; 43 44 dcl file_reservation_map_fragment 45 aligned 46 based (file_reservation_map_fragment_ptr) 47 bit (frmf_number_of_control_intervals); 48 49 50 dcl file_reservation_map_ptr 51 ptr; 52 dcl frm_number_of_fragments 53 fixed bin (17); 54 55 dcl file_reservation_map_fragment_ptr 56 ptr; 57 dcl frmf_number_of_control_intervals 58 fixed bin (17); 59 60 61 /* END INCLUDE FILE dm_cm_reservation_map.incl.pl1 */