1 /* include file for info structure used with record_status control order
 2    created by M. Asherman 1/6/76 */
 3 /* modified 6/15/77 to support stationary type records */
 4 
 5      dcl     rs_info_ptr            ptr;
 6      dcl     1 rs_info              based (rs_info_ptr) aligned,
 7                2 version            fixed,                  /* must be set to 1 or 2 (Input) */
 8                2 flags              aligned,
 9                  3 lock_sw          bit (1) unal,           /* Input -- if ="1"b  try to lock record */
10                  3 unlock_sw        bit (1) unal,           /* Input -- if ="1"b try to unlock record */
11                  3 create_sw        bit (1) unal,           /* Input--if set creat new record */
12                  3 locate_sw        bit (1) unal,           /* Input--if set causes current rec to be
13                                                                located outside the index by descrip, or created without key */
14                  3 inc_ref_count    bit (1) unal,           /* Input--bump reference count of record, if stationary */
15                  3 dec_ref_count    bit (1) unal,           /* Input--decrement ref count if this flag set and record stationary */
16                  3 locate_pos_sw    bit (1) unal,           /* Input--if set the record_length is taken
17                                                                as an input argument specifying the absolute logical record positioni          to which both the current and next positions will be set */
18                  3 mbz1             bit (29) unal,          /* must be set to "0"b, reserved for future use */
19                2 record_length      fixed (21),             /* length in bytes, Input if create_sw set */
20                2 max_rec_len        fixed (21),             /* max length of contained record
21                                                                Input if create_sw is set--overrides min_block_size in effect */
22                2 record_ptr         ptr,                    /* points to first byte of record--will be word aligned */
23                2 descriptor         fixed (35),             /* Input if locate_sw set and create_sw="0"b */
24                2 ref_count          fixed (34),             /* Output--should match number of keys on this record-- = -1 if non-stationary record */
25                2 time_last_modified fixed (71),             /* Output */
26                2 modifier           fixed (35),             /* Output--also Input when locking */
27                2 block_ptr          ptr unal,               /* Output */
28                2 last_image_modifier
29                                     fixed (35),
30                2 mbz2               fixed;
31 
32      dcl     1 rs_desc              based (addr (rs_info.descriptor)),
33                                                             /* record block descriptor structure */
34                2 comp_num           fixed (17) unal,        /* msf component number */
35                2 offset             bit (18) unal;          /* word offset of record block */
36 
37      dcl     1 seq_desc             based (addr (rs_info.descriptor)),
38                                                             /* for sequential files */
39                2 bitno              bit (6) unal,
40                2 comp_num           fixed (11) unal,        /* msf component number */
41                2 wordno             bit (18) unal;          /* word offset */
42 
43      dcl     rs_info_version_1      static internal fixed init (1);
44      dcl     rs_info_version_2      static internal fixed init (2);
45