1 /* BEGIN INCLUDE FILE ... log_segment.incl.pl1 ... 84-05-03 ... W. Olin Sibert */
 2 
 3 declare   log_segment_ptr               pointer;
 4 declare   log_segment_max_size          fixed bin (18);
 5 declare   LOG_SEGMENT_VERSION_1         char (8) internal static options (constant) init ("SysLog01");
 6 
 7 
 8 declare 1 log_segment                   aligned based (log_segment_ptr),
 9           2 header                      aligned like log_segment_header,
10           2 data                        dim (log_segment_max_size refer (log_segment.max_size)) bit (36) aligned;
11 
12 
13 declare 1 log_segment_header            aligned based,
14           2 version                     char (8) unaligned, /* LOG_SEGMENT_VERSION_1 */
15           2 time_created                fixed bin (71),     /* When the segment header was initialized */
16           2 previous_log_dir            char (168) unaligned, /* Directory containing previous log segment */
17 
18           2 limits,
19             3 first_sequence            fixed bin (35),     /* First and last sequence numbers / time stamps */
20             3 last_sequence             fixed bin (35),     /* of messages in the log. These may be slightly */
21             3 first_time                fixed bin (71),     /* incorrect due to lockless updating strategy */
22             3 last_time                 fixed bin (71),
23 
24           2 alloc_info,                                     /* Complex STACQ hack for allocating and assigning */
25             3 word_1                    fixed bin (18),     /* sequence numbers locklessly. See log_segment_ */
26             3 word_2                    bit (36) aligned,   /* for details of strategy */
27           2 max_size                    fixed bin (18),     /* Total words in data area */
28 
29           2 listeners_registered        bit (1) aligned,    /* Set if ANY processes were ever registered-- it's only */
30           2 listener_bootload_time      fixed bin (71),     /* kept here for efficiency. The bootload time is used to */
31                                                             /* detect all the dead listeners after a reboot */
32           2 listener (25),                                  /* Processes waiting for messages in the log */
33             3 process_id                bit (36) aligned,
34             3 event_channel             fixed bin (71) unaligned, /* Saves space-- allows 3-word entries */
35 
36           2 last_wakeup_time            fixed bin (71),     /* When last wakeup was sent */
37           2 wakeup_delta                fixed bin (71),     /* Wakeups sent no more than once per this interval */
38 
39           2 pad (6)                     fixed bin (71);     /* Pad header to 150 words */
40 
41 
42 declare   LOG_SEGMENT_NEW_MESSAGE           init ("777111555333"b3) bit (36) aligned internal static options (constant);
43 declare   LOG_SEGMENT_COMPLETE_MESSAGE      init ("666000444222"b3) bit (36) aligned internal static options (constant);
44 
45 /* END INCLUDE FILE ... log_segment.incl.pl1 */