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 -------------------------------------- */