1 /* BEGIN INCLUDE FILE - dm_im_ci_header.incl.pl1 */
 2 
 3 /* DESCRIPTION:
 4 
 5           Each node (control interval) in the index has a header which
 6      describes the contents of that node.  Although there are two different
 7      kinds of headers, leaf and branch, they have a great deal in common, the
 8      common_ci_header.  The common_ci_header states which slots are used by
 9      the keys (leaf or branch) in the key_range substructure.  There is an
10      "upward pointer" to the node's parent branch key (parent_id_string).
11      There are pointers to the previous and next nodes (previous_id and
12      next_id) on the same level to facilitate rotation of keys, and sequential
13      searching.  There is also a count of how much space is in use by the keys.
14 
15 */
16 
17 /* HISTORY:
18 
19 Written by Lindsey Spratt, 03/29/82.
20 Modified:
21 10/25/84 by Lindsey L. Spratt:  Added a description and fixed the history
22             section format.
23 */
24 
25 /* format: style2,ind3 */
26      dcl     1 common_ci_header     based (common_ci_header_ptr),
27                2 flags              unaligned,
28                  3 is_leaf          bit (1) unaligned,      /* ON for leaf_ci, OFF for branch_ci. */
29                  3 pad              bit (17) unaligned,     /* Must be zero. */
30                2 key_tail_space_used_since_last_prefix_compaction
31                                     fixed bin (18) unsigned unal,
32                2 key_range          unaligned,
33                  3 first            fixed bin (18) unsigned,
34                  3 last             fixed bin (18) unsigned,
35                2 parent_id_string   bit (36) aligned,
36                2 previous_id        fixed bin (24) unsigned unaligned,
37                2 next_id            fixed bin (24) unsigned unaligned,
38                2 pad                bit (24) unaligned;
39 
40 
41      dcl     common_ci_header_ptr   ptr;
42 
43      dcl     1 leaf_ci_header       based (leaf_ci_header_ptr),
44                2 common             like common_ci_header;
45 
46      dcl     leaf_ci_header_ptr     ptr;
47 
48      dcl     1 branch_ci_header     based (branch_ci_header_ptr),
49                2 common             like common_ci_header,
50                2 low_branch_id      fixed bin (24) unsigned unaligned,
51                2 pad                bit (12) unaligned;
52 
53      dcl     branch_ci_header_ptr   ptr;
54 
55 
56      dcl     (
57              DEFAULT_INITIAL_KEY_SLOT
58                                     init (2),
59              DEFAULT_INDEX_CONTROL_INTERVAL_HEADER_SLOT
60                                     init (1),
61              LEAF_CI_HEADER_LENGTH_IN_BITS
62                                     init (180),
63              BRANCH_CI_HEADER_LENGTH_IN_BITS
64                                     init (216)
65              )                      internal static options (constant) fixed bin;
66 
67 /* END INCLUDE FILE - dm_im_ci_header.incl.pl1 */