1
2
3
4
5
6
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),
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),
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,
48 3 assigned
49 ) bit (1) unaligned,
50 2 pad bit (36),
51 2 pchan_idx (8) fixed bin;
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),
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),
62 2 comment char (32) unaligned,
63 2 flags,
64 ( 3 configured,
65 3 assigned
66 ) bit (1) unaligned,
67 2 controller_idx fixed bin,
68 2 iom_idx fixed bin,
69 2 base_channel_idx fixed bin;
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),
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),
80 2 comment char (32) unaligned,
81 2 flags,
82 ( 3 configured,
83 3 assigned
84 ) bit (1) unaligned,
85 2 pad bit (36);
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),
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
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