1 /* BEGIN INCLUDE FILE... cmcs_wait_ctl.incl.pl1 */
 2 
 3 /* This include file defines the wait control structure for COBOL MCS */
 4 
 5 /* Bob May, 5/31/77 */
 6 
 7 dcl (wait_ctl_hdr_len init (32),
 8      wait_ctl_entry_len init (32),
 9      wait_ctl_version init (1)) fixed bin int static options (constant);
10 
11 dcl  wait_ctl_ptr ptr int static;
12 
13 dcl 1 wait_ctl aligned based (wait_ctl_ptr),
14     2 hdr like control_hdr,
15     2 linked_lists,                                         /* to maintain FIFO processing */
16       3 used,
17         4 count fixed bin,
18        (4 findex,
19         4 bindex) fixed bin (18),
20       3 free,
21         4 count fixed bin,
22        (4 findex,
23         4 bindex) fixed bin (18),
24     2 mp_info,                                              /* for the message processors */
25       3 mp_lockword bit (36) aligned,
26       3 mp_current_size fixed bin,                          /* max of 10 */
27       3 mp_active_count fixed bin,                          /* <= current_size */
28       3 mp_entries (10) like wait_ctl_mp_entry,
29     2 entries (wait_ctl.current_size) like wait_ctl_entry;
30 
31 dcl  wait_ctl_eindex fixed bin;
32 
33 dcl  wait_ctl_eptr ptr;
34 
35 dcl 1 wait_ctl_entry aligned based (wait_ctl_eptr),
36     2 linked_list_indexes,
37      (3 findex,
38       3 bindex) fixed bin (18),                             /* should be FB (18) unsigned */
39     2 lockword bit (36) aligned,                            /* process that has a msg */
40     2 entry_status fixed bin,                               /* 0 = free, 1 = used */
41     2 rcv_process_id bit (36),                              /* process that wants a msg */
42     2 rcv_tree_path,
43       3 level_names (4) char (12),                          /* from receive request */
44     2 abs_tree_path,
45       3 level_names (4) char (12),                          /* full hierarchy path of queue */
46     2 queue_ctl_eindex fixed bin,                           /* corresponds to abs_tree_path */
47     2 ev_wait_chn fixed bin (71),                           /* set by requestor */
48     2 ev_message fixed bin (71),
49     2 queue_name char (32),                                 /* physical queue where it is */
50     2 tree_ctl_eindex fixed bin;                            /* back to tree_ctl to set up I/O control */
51 
52 dcl  wait_ctl_mp_eindex fixed bin;
53 
54 dcl  wait_ctl_mp_eptr ptr;
55 
56 dcl 1 wait_ctl_mp_entry aligned based (wait_ctl_mp_eptr),
57     2 process_id bit (36),
58     2 flags,
59      (3 available_sw bit (1),                               /* ready to process another message */
60       3 filler bit (35)) unaligned,
61     2 ev_wait_chn fixed bin (71),
62     2 ev_message fixed bin (71),                            /* (currently unused) anything in addition to ipc_ message */
63     2 tree_ctl_eindex fixed bin;
64 
65 /* END INCLUDE FILE... cmcs_wait_ctl.incl.pl1 */