1 /*        Begin  include file ... mca_data.incl.pl1
 2    *
 3    *      Created on 09/14/84 by Paul Farley.
 4    *      Modified by R. A. Fawcett 10/25/84
 5 */
 6 
 7 /****^  HISTORY COMMENTS:
 8   1) change(85-09-11,Fawcett), approve(85-09-11,MCR6979),
 9      audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033):
10      Created for MCA
11      support
12   2) change(86-08-19,Fawcett), approve(86-08-19,MCR7374),
13      audit(86-08-26,Lippard), install(86-09-16,MR12.0-1159):
14      Fix problems found in audit of the Online manager code.
15                                                    END HISTORY COMMENTS */
16 
17 dcl  MCA_data_version_1 char (8) int static options
18           (constant) init ("MCA00001");
19 
20 dcl  mca_data_seg_ptr ptr static init (null ());
21 
22 dcl  mcad_ptr ptr;
23 
24 dcl  ipcd_ptr ptr;
25 
26 dcl  1 mca_data_seg based (mca_data_seg_ptr),
27        2 version char (8),
28        2 array (1:4) like mcad;
29 
30 
31 dcl  1 mcad based (mcad_ptr) aligned,
32        2 lock bit (36),                                     /* The mca write lock. */
33        2 state fixed bin,                                   /* Current mca state */
34        2 attach_time fixed bin (71),                        /* DT/time of attach */
35        2 attach_pid bit (36),                               /* PID of attaching process */
36        2 name char (1),                                     /* name of this mca (a b c d) */
37        2 imu_number fixed bin (17),                         /* number of the IMU */
38        2 ioi_idx fixed bin,                                 /* value to use with ioi_ */
39        2 event_chn fixed bin (71),                          /* ipc channel for IO processing ring_1 */
40        2 ioi_wks_ptr ptr,                                   /* pointer to IOI Workspace */
41        2 max_ws_size fixed bin (19),
42        2 pad fixed bin,
43        2 user_ptr ptr,                                      /* used for async_io */
44        2 return_data_ptr ptr,                               /* user for async_io */
45        2 io_param_ptr ptr,                                  /* pointer to the io_parameter_block for mca returned data */
46        2 entry_to_return_data entry (ptr, fixed bin (21), fixed bin (35)),
47                                                             /* entry that will return the data to the user for async_io */
48        2 status_offset fixed bin,                           /* offset into work space for status */
49        2 current_ws_size fixed bin (18),                    /* current work_space */
50        2 rcp_id bit (36),
51        2 flags unaligned,
52          3 async_io bit (1),                                /* 1 = outer ring will catch IO events */
53                                                             /* 0 = ring 1 will go blocked and wait for IO to complete */
54          3 config_data_requested bit (1),                   /* used during mca attachment */
55          3 pad bit (34),
56        2 max_time_out fixed bin (71),                       /* maximum time for time out */
57        2 last_status bit (71),                              /* most recent MCA status return */
58 
59        2 ipcd_array (0:15) like ipcd aligned;
60 
61 dcl  1 ipcd based (ipcd_ptr) aligned,
62        2 ipc_name char (8),                                 /* "ipcXX" */
63        2 channel fixed bin (17) unaligned,                  /* base channel */
64        2 nchan fixed bin (17) unaligned,                    /* number of channels */
65        2 type_info,                                         /* type of IPC */
66          3 no_level_2_info bit (1) unaligned,
67          3 is_micro_cont bit (1) unaligned,
68          3 fbus_disable_latch bit (1) unaligned,
69          3 pad bit (6) unaligned,
70          3 type_index fixed bin (8) unaligned,
71        2 state fixed bin (17) unaligned,                    /* current state */
72        2 level_1_state fixed bin (17),                      /* LVL-1_STATE  */
73        2 prph_attachments fixed bin (17),                   /* # of RCP attachments */
74        2 attach_data (8),
75          3 prph_name char (4),                              /* Multics prph name */
76          3 flags unaligned,
77            4 attached_thru_rcp bit (1),                     /* must detach when done */
78            4 io_suspended bit (1),                          /* must resume IO when done */
79            4 pad (34) bit (1),
80          3 attach_time fixed bin (71),                      /* DT/time of attach */
81          3 ipc_rcp_id bit (36),                             /* rcp id */
82          3 ipc_ioi_idx fixed bin;                           /* index from rcp */
83 
84 dcl  SYSTEM_DIR char (17) init (">system_library_1") static options (constant);
85 dcl  DATA_SEG char (12) init ("mca_data_seg") static options (constant);
86 
87 
88 dcl  (MCA_NOT_CONFIGURED init (0),                          /* possible mcad.state values */
89      MCA_FREE init (1),
90      MCA_ATTACHING init (2),
91      MCA_ATTACHED init (3),
92      MAINT_SESSION init (10)) fixed bin internal static options (constant);
93 
94 dcl  (IPC_NOT_CONFIGURED init (0),                          /* possible ipcd.state values */
95      IPC_FREE init (1),
96      IPC_ATTACHED init (2)) fixed bin internal static options (constant);
97 
98 /*        End of include file ... mca_data.incl.pl1         */