1 /* Include file for vfile_ control orders dealing with key ranges in indexed files */
 2 /* created by M. Asherman 4/7/77
 3 Modified:
 4 12/18/80  by  Lindsey Spratt: Add the delete_old_subsets bit.
 5 */
 6 
 7 /* format: style2 */
 8      dcl     1 common_sl_info       based (info_ptr),       /* info structure for select and exclude orders */
 9                2 flags              aligned,                /* Input */
10                  3 list_type        fixed (3) unal,         /* code identifies format of tail structure */
11                  3 status_only      bit (1) unal,           /* if set, subset info is returned, but current subset stays the same */
12                  3 output_descriptors
13                                     bit (1) unal,           /* if set, resulting descriptor list is returned */
14                  3 delete_old_subsets
15                                     bit (1) unal,           /* if set, causes all of the existing subsets on this switch to be deleted. */
16                  3 mbz              bit (11) unal,          /* must be zero--in case of extensions */
17                  3 version          fixed (17) unal,        /* current info version */
18                2 array_limit        fixed,                  /* upper bound of array in tail of info structure */
19                2 subset_no          fixed,                  /* identifies temporary subset-- Output */
20                2 count              fixed (34),             /* Output--number of distinct descrips */
21                2 desc_arrayp        ptr;                    /* pointer to resulting array of descriptors */
22 
23 /* descriptor array generated if requested */
24      dcl     desc_array             (1:common_sl_info.count) based (common_sl_info.desc_arrayp);
25 
26 /* this format allows specification in terms of index intervals defined by two heads or one key */
27      dcl     1 hi_sl_info           based (info_ptr),       /* structure for list_type = 1 */
28                2 common             like common_sl_info,
29                2 interval           (1:sl_array_limit refer (hi_sl_info.array_limit)),
30                  3 first_head,
31                    4 length         fixed,
32                    4 kptr           ptr unal,
33                  3 last_head,
34                    4 length         fixed,                  /* if negative, this interval is defined by match with key */
35                    4 kptr           ptr unal;
36 
37 /* format for specification in terms of an array of descriptors */
38      dcl     1 da_sl_info           based (info_ptr),       /* list_type=2 */
39                2 common             like common_sl_info,
40                2 desc_array         (1:sl_array_limit refer (da_sl_info.array_limit)) fixed (35);
41 
42      dcl     sl_array_limit         fixed;
43      dcl     sl_info_version_0      static options (constant) internal fixed init (0);
44 
45 /* list_type=0 denotes reselection of a single, previously defined subset (no tail structure) */