1 /* ====== BEGIN INCLUDE SEGMENT         syscon_mseg.incl.pl1 ====================================== */
 2 
 3 
 4 
 5 /****^  HISTORY COMMENTS:
 6   1) change(87-09-02,Parisek), approve(87-09-03,MECR0005),
 7      audit(87-09-02,GDixon), install(87-09-03,MR12.1-1098):
 8      Increase quit_bits from 72 bits to 504 bits so more than 72 sources
 9      may enable quit without error. (phx20974)
10                                                    END HISTORY COMMENTS */
11 
12 
13 /* Message Coordinator message segment declaration.  Each daemon process
14    enqueues its messages in a segment like this one.
15 
16    The segment consists of a header followed by many message blocks,
17    each  capable  of  holding  a  message  of  132  characters  plus
18    information  on  when  the  message was sent, who it's from, etc.
19    These blocks are "allocated" only as needed and placed on a  free
20    storage list when freed.  Blocks in use are chained together in a
21    first-in-first-out queue.   */
22 
23 dcl  buff_len fixed bin init (132) internal static;
24 
25 dcl 1 syscon_mseg aligned based,                            /* This header is of length 24 dec 30 oct words */
26     2 mlock bit (36) aligned,
27     2 current_process_id bit (36),
28     2 ipc_el,                                               /* mrdim_ blocks on this list for normal reads */
29       3 n fixed bin,
30       3 pad fixed bin,
31       3 channel fixed bin (71),
32     2 proto_el,                                             /* mrdim_ blocks on this list for attach and detach */
33       3 n fixed bin,
34       3 pad fixed bin,
35       3 channel fixed bin (71),
36     2 flags unaligned,
37       3 test_mode bit (1),                                  /* ON if running in test environment */
38       3 receiver_woken bit (1),                             /* ON if wakeup sent but not received yet */
39       3 unused bit (34),
40     2 first_message fixed bin,                              /* index of head of message chain */
41     2 last_message fixed bin,                               /* index of tail of message chain */
42     2 first_proto fixed bin,                                /* index of head of protocol chain */
43     2 last_proto fixed bin,                                 /* index of tail of protocol chain */
44     2 first_free_buffer fixed bin,                          /* head of free chain */
45     2 last_assigned_buffer fixed bin,                       /* high water mark of buffers ever used */
46     2 no_of_streams fixed bin,
47     2 quit_bits bit (504),                                  /* used in mc.message to mark a source waiting to be quit */
48     2 locked_by_pid bit (36),                               /* process id of locker */
49     2 mescount fixed bin,                                   /* Count of unprinted messages */
50     2 output_wait bit (1),                                  /* TRUE if in output wait - mc_wakeups resets */
51     2 pad fixed bin,
52     2 message (1) like message_block aligned;               /* the array of messages */
53 
54 dcl 1 message_block aligned based (messp),                  /* 56 dec 70 oct words */
55     2 time_sent fixed bin (71),
56     2 from_source char (32),
57     2 from_stream char (32),
58     2 source_index fixed bin,                               /* index in MRT */
59     2 stream_index fixed bin,                               /* .. */
60     2 next_message fixed bin,                               /* foward pointer of message chain */
61     2 flags unal,
62       3 continue bit (1),                                   /* ON if message continued in next block */
63       3 introduction bit (1),                               /* ON if message is an introduction */
64       3 farewell bit (1),                                   /* ON if message is farewell */
65       3 sentinel bit (1),                                   /* ON if special formatting wanted */
66       3 trace bit (1),                                      /* used only by dump_msg */
67       3 unused bit (31) unal,
68     2 length fixed bin,                                     /* number of characters in body */
69     2 message_body char (132);                              /* text of message */
70 
71 dcl 1 debug_info based aligned,
72     2 flag fixed bin (71),
73     2 time fixed bin (71),
74     2 last_pid bit (36),
75     2 first_msg fixed bin,
76     2 last_msg fixed bin,
77     2 first_pro fixed bin,
78     2 last_pro fixed bin,
79     2 free_chain fixed bin;
80 
81 /* ------ END INCLUDE SEGMENT           syscon_mseg.incl.pl1 -------------------------------------- */