1 /* BEGIN INCLUDE FILE ... log_read_data.incl.pl1 ... 84-05-03 ... W. Olin Sibert */
 2 
 3 /* Added reader_procedure, area_ptr, reader_data_ptr, and entry variables 11/28/84 Steve Herbst */
 4 /* Added (latest earlier)_message_ptr, (first last)_held_message and get_log_uid 11/30/84 Steve Herbst */
 5 /* Put everything before the segments array into header 12/04/84 Steve Herbst */
 6 /* Added entry variables free_message, register & deregister 12/06/84 Steve Herbst */
 7 
 8 
 9 declare   log_read_data_ptr             pointer;
10 declare   log_read_data_n_segments      fixed bin;
11 
12 declare 1 log_read_data                 aligned based (log_read_data_ptr),
13           2 header                      aligned,
14             3 sentinel                  char (8) aligned,
15             3 n_segments                fixed bin,
16             3 history_complete          bit (1) aligned,
17             3 call_procedures           bit (1) aligned,
18             3 allocate_copies           bit (1) aligned,
19             3 current_ptr               pointer,            /* Trivial optimization for positioning */
20             3 current_idx               fixed bin,
21             3 reader_data_ptr           pointer,            /* log_read_data_ptr returned by reader_proc$open */
22             3 user_area_ptr             pointer,            /* Used in the inner ring to allocate outer ring copies. */
23             3 latest_message            aligned like saved_message,   /* The last message returned */
24             3 earlier_message           aligned like saved_message,   /* The one returned before latest */
25             3 n_held_messages           fixed bin,
26             3 first_held_message_ptr    pointer,            /* Used by $hold_message */
27             3 last_held_message_ptr     pointer,            /* ditto */
28             3 ev,                                           /* Entry variable for each operation */
29               4 open variable entry (char (*), char (*), pointer, pointer, fixed bin (35)),
30               4 close variable entry (pointer, fixed bin (35)),
31               4 next_message variable entry (pointer, pointer, fixed bin (35)),
32               4 prev_message variable entry (pointer, pointer, fixed bin (35)),
33               4 position_sequence variable entry (pointer, fixed bin (35), bit (1) aligned, pointer, fixed bin (35)),
34               4 position_time variable entry (pointer, fixed bin (71), bit (1) aligned, pointer, fixed bin (35)),
35               4 update variable entry (fixed bin (35), pointer, pointer, fixed bin (35)),
36               4 hold_message variable entry (pointer, pointer),
37               4 free_message variable entry (pointer, pointer),
38               4 get_log_uid variable entry (pointer, bit (36) aligned, fixed bin (35)),
39               4 register variable entry (pointer, bit (36) aligned, fixed bin (71), fixed bin (35)),
40               4 deregister variable entry (pointer, bit (36) aligned, fixed bin (71), fixed bin (35)),
41             3 limits                      aligned,            /* Absolute limits of family contents */
42               4 very_first_time           fixed bin (71),     /* Set up during initialization */
43               4 very_last_time            fixed bin (71),
44               4 very_first_sequence       fixed bin (35),
45               4 very_last_sequence        fixed bin (35),
46               4 very_first_log_idx        fixed bin,
47               4 very_last_log_idx         fixed bin,
48 
49           2 segments (log_read_data_n_segments refer (log_read_data.n_segments)),
50             3 dname                     char (168) unaligned,
51             3 ename                     char (32) unaligned,
52             3 ptr                       pointer,
53             3 suffix_time               fixed bin (71),     /* Time from suffix-- all messages in log are earlier */
54             3 dir_uid                   bit (36) aligned,   /* UID of parent dir */
55             3 prev_missing              bit (1) aligned,
56             3 damaged                   bit (1) aligned,
57 
58           2 pad                         fixed bin;
59 
60 declare 1 saved_message                 aligned based,
61           2 actual_ptr                  pointer,            /* Points to message in log. */
62           2 copy_ptr                    pointer;            /* Points to user-ring allocated copy. */
63 
64 dcl  1 log_held_message_node aligned based,
65        2 message aligned like saved_message,
66        2 reference_count fixed bin,
67        2 next_ptr ptr;
68 
69 declare LOG_READ_DATA_VERSION_SENTINEL char (8) int static options (constant)
70         init ("logr0001") options (constant);
71 
72 /* END INCLUDE FILE ... log_read_data.incl.pl1 */