1 /*  START OF:       io_config.incl.pl1                        *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
  2 
  3 /* Structures for overlaying the io_config data segment. */
  4 /* Written February 1984 by Chris Jones as part of IOM reconfiguration project. */
  5 
  6 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */
  7 
  8 dcl       io_config_data$        external;
  9 
 10 dcl       io_config_data_ptr     ptr;
 11 dcl       io_config_device_table_ptr
 12                                  ptr;
 13 dcl       io_config_channel_table_ptr
 14                                  ptr;
 15 dcl       io_config_controller_table_ptr
 16                                  ptr;
 17 dcl       io_config_iom_table_ptr
 18                                  ptr;
 19 
 20 dcl       tables_length          fixed bin (19);
 21 
 22 dcl       1 io_config_data       aligned based (io_config_data_ptr),
 23             2 version            char (8),
 24             2 tables_length      fixed bin (19) unsigned,
 25             2 device_table_offset
 26                                  fixed bin (18) uns unal,
 27             2 channel_table_offset
 28                                  fixed bin (18) uns unal,
 29             2 controller_table_offset
 30                                  fixed bin (18) uns unal,
 31             2 iom_table_offset   fixed bin (18) uns unal,
 32             2 p_clock            fixed bin (35),
 33             2 pad                (2) bit (36),              /* pad to 0 mod 8 boundary */
 34             2 tables             (0 refer (io_config_data.tables_length)) bit (36);
 35 
 36 dcl       1 device_table         aligned based (io_config_device_table_ptr),
 37             2 version            char (8),
 38             2 n_devices          fixed bin,
 39             2 pad                bit (36),                  /* pad to even word boundary */
 40             2 device_entry       (0 refer (device_table.n_devices)) like device_entry_template;
 41 
 42 dcl       1 device_entry_template
 43                                  aligned based,
 44             2 name               char (32) unaligned,
 45             2 comment            char (32) unaligned,
 46             2 flags,
 47             ( 3 configured,                                 /* set => not deleted */
 48               3 assigned                                    /* set => in use (by a user or ring 0) */
 49               )                  bit (1) unaligned,
 50             2 pad                bit (36),                  /* pad to even word boundary */
 51             2 pchan_idx          (8) fixed bin;             /* indexes into channel_table */
 52 
 53 dcl       1 channel_table        aligned based (io_config_channel_table_ptr),
 54             2 version            char (8),
 55             2 n_channels         fixed bin,
 56             2 pad                bit (36),                  /* pad to even word boundary */
 57             2 channel_entry      (0 refer (channel_table.n_channels)) aligned like channel_entry_template;
 58 
 59 dcl       1 channel_entry_template
 60                                  aligned based,
 61             2 name               char (8),                  /* e.g. "A31" */
 62             2 comment            char (32) unaligned,
 63             2 flags,
 64             ( 3 configured,                                 /* set => available for assignment */
 65               3 assigned                                    /* set => currently assigned */
 66               )                  bit (1) unaligned,
 67             2 controller_idx     fixed bin,                 /* index into controller table (if on MPC) */
 68             2 iom_idx            fixed bin,                 /* index into iom_table */
 69             2 base_channel_idx   fixed bin;                 /* index into channel table */
 70 
 71 dcl       1 controller_table     aligned based (io_config_controller_table_ptr),
 72             2 version            char (8) aligned,
 73             2 n_controllers      fixed bin,
 74             2 pad                bit (36),                  /* pad to even word boundary */
 75             2 controller_entry   (0 refer (controller_table.n_controllers)) like controller_entry_template;
 76 
 77 dcl       1 controller_entry_template
 78                                  aligned based,
 79             2 name               char (8),                  /* e.g. "mspa" */
 80             2 comment            char (32) unaligned,
 81             2 flags,
 82             ( 3 configured,                                 /* set => not deleted */
 83               3 assigned                                    /* set => one process has whole controller */
 84               )                  bit (1) unaligned,
 85             2 pad                bit (36);                  /* pad to even word boundary */
 86 
 87 dcl       1 iom_table            aligned based (io_config_iom_table_ptr),
 88             2 version            char (8),
 89             2 n_ioms             fixed bin,
 90             2 pad                bit (36),                  /* pad to even word boundary */
 91             2 iom_entry          (0 refer (iom_table.n_ioms)) like iom_entry_template;
 92 
 93 dcl       1 iom_entry_template   aligned based,
 94             2 name               char (8),
 95             2 comment            char (32) unaligned,
 96             2 flags,
 97             ( 3 configured                                  /* set => not deleted */
 98               )                  bit (1) unaligned,
 99             2 n_configured_channels
100                                  fixed bin;
101 
102 dcl       IO_CONFIG_DATA_VERSION_1
103                                  char (8) aligned static options (constant) init ("IOCD_01");
104 dcl       IO_CONFIG_DEVICE_TABLE_VERSION_1
105                                  char (8) aligned static options (constant) init ("DEVT_01");
106 dcl       IO_CONFIG_CHANNEL_TABLE_VERSION_1
107                                  char (8) aligned static options (constant) init ("CHANT_01");
108 dcl       IO_CONFIG_CONTROLLER_TABLE_VERSION_1
109                                  char (8) aligned static options (constant) init ("CTLRT_01");
110 dcl       IO_CONFIG_IOM_TABLE_VERSION_1
111                                  char (8) aligned static options (constant) init ("IOMT_01");
112 
113 /*  END OF:         io_config.incl.pl1                        *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */