1 " ***********************************************************
2 " * *
3 " * Copyright, C BULL HN Information Systems Inc., 1989 *
4 " * *
5 " * Copyright, C Honeywell Bull Inc., 1988 *
6 " * *
7 " * Copyright, C Honeywell Information Systems Inc., 1982 *
8 " * *
9 " * Copyright c 1972 by Massachusetts Institute of *
10 " * Technology and Honeywell Information Systems, Inc. *
11 " * *
12 " ***********************************************************
13
14 " HISTORY COMMENTS:
15 " 1) change88-06-15Berno, approve88-07-13MCR7928,
16 " audit88-07-05Parisek, install88-07-19MR12.2-1061:
17 " Add transfers to the uncp multiplexer interface for the DSA gateway.
18 " 2) change88-07-07Beattie, approve88-06-27MCR7926,
19 " audit88-08-03Brunelle, install88-08-08MR12.2-1082:
20 " Add transfers for X.25 lap multiplexer.
21 " 3) change89-03-20Parisek, approve89-06-01MCR8110,
22 " audit89-10-09Farley, install89-10-25MR12.3-1100:
23 " Add transfers to protocol_mpx entries.
24 " END HISTORY COMMENTS
25
26 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
27 "
28 " cmtv --- channel manager transfer vector
29 "
30 " This source segment defines a data base containing a transfer
31 " vector used by the channel_manager and priv_channel_manager
32 " procedures. It has the following structure:
33 "
34 "
35 " dcl 1 cmtv aligned based addr cmtv$,
36 " 2 no_channel_types fixed bin,
37 " 2 pad fixed bin,
38 " 2 chan_type_index 0:16 fixed bin,
39 " 2 entries no_entry_types 0 refer cmtv.no_channel_types bit 72;
40 "
41 "
42 " Created 9/21/78 by J. Stern
43 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
44
45
46 macro prologue
47
48 name cmtv
49 set .cur_index,0
50 set .tty_index,0
51 set .fnp_index,0
52 set .user1_index,0
53 set .user2_index,0
54 set .user3_index,0
55 set .user4_index,0
56 set .user5_index,0
57 set .ibm3270_index,0
58 set .vip7760_index,0
59 set .sty_index,0
60 set .lap_index,0
61 set .x25_index,0
62 set .hasp_index,0
63 set .uncp_index,0
64 set .cxi_index,0
65 set .system1_index,0
66 set .protocol_index,0
67
68 &end
69
70
71 macro epilogue
72
73 use .text.
74 segdef cmtv
75 cmtv: null
76 zero 0,.cur_index
77 dec 0
78 zero 0,.tty_index
79 zero 0,.fnp_index
80 zero 0,.user1_index
81 zero 0,.user2_index
82 zero 0,.user3_index
83 zero 0,.user4_index
84 zero 0,.user5_index
85 zero 0,.ibm3270_index
86 zero 0,.vip7760_index
87 zero 0,.sty_index
88 zero 0,.lap_index
89 zero 0,.x25_index
90 zero 0,.hasp_index
91 zero 0,.uncp_index
92 zero 0,.cxi_index
93 zero 0,.system1_index
94 zero 0,.protocol_index
95
96
97 join /text/.init_channel.
98 join /text/.terminate_channel.
99 join /text/.init_multiplexer.
100 join /text/.terminate_multiplexer.
101 join /text/.start.
102 join /text/.stop.
103 join /text/.shutdown.
104 join /text/.priv_control.
105 join /text/.hpriv_control.
106 join /text/.read.
107 join /text/.write.
108 join /text/.control.
109 join /text/.set_modes.
110 join /text/.check_modes.
111 join /text/.get_modes.
112 join /text/.interrupt.
113
114 maclist on
115 end
116
117 &end
118 ^L
119 " The following macros define valid entry type names:
120
121 macro init_channel
122 &end
123 macro terminate_channel
124 &end
125 macro init_multiplexer
126 &end
127 macro terminate_multiplexer
128 &end
129 macro start
130 &end
131 macro stop
132 &end
133 macro shutdown
134 &end
135 macro priv_control
136 &end
137 macro hpriv_control
138 &end
139 macro read
140 &end
141 macro write
142 &end
143 macro control
144 &end
145 macro set_modes
146 &end
147 macro check_modes
148 &end
149 macro get_modes
150 &end
151 macro interrupt
152 &end
153
154
155 " The following macros define valid channel type names:
156
157 macro tty
158 &end
159 macro fnp
160 &end
161 macro user1
162 &end
163 macro user2
164 &end
165 macro user3
166 &end
167 macro user4
168 &end
169 macro user5
170 &end
171 macro ibm3270
172 &end
173 macro vip7760
174 &end
175 macro sty
176 &end
177 macro lap
178 &end
179 macro x25
180 &end
181 macro hasp
182 &end
183 macro uncp
184 &end
185 macro cxi
186 &end
187 macro system1
188 &end
189 macro protocol
190 &end
191 ^L
192 macro add_entry
193
194 &1
195 use .&1.
196 getlp
197 tra &2$&1
198 set .&1_incr,0
199
200 &end
201
202
203 macro type
204
205 &1
206 set .cur_index,.cur_index+1
207 set .&1_index,.cur_index
208
209 set .init_channel_incr,2
210 set .terminate_channel_incr,2
211 set .init_multiplexer_incr,2
212 set .terminate_multiplexer_incr,2
213 set .start_incr,2
214 set .stop_incr,2
215 set .shutdown_incr,2
216 set .priv_control_incr,2
217 set .hpriv_control_incr,2
218 set .read_incr,2
219 set .write_incr,2
220 set .control_incr,2
221 set .set_modes_incr,2
222 set .check_modes_incr,2
223 set .get_modes_incr,2
224 set .interrupt_incr,2
225
226 &R3& add_entry &i&2
227 &
228
229 use .init_channel.
230 bss ,.init_channel_incr
231 use .terminate_channel.
232 bss ,.terminate_channel_incr
233 use .init_multiplexer.
234 bss ,.init_multiplexer_incr
235 use .terminate_multiplexer.
236 bss ,.terminate_multiplexer_incr
237 use .start.
238 bss ,.start_incr
239 use .stop.
240 bss ,.stop_incr
241 use .shutdown.
242 bss ,.shutdown_incr
243 use .priv_control.
244 bss ,.priv_control_incr
245 use .hpriv_control.
246 bss ,.hpriv_control_incr
247 use .read.
248 bss ,.read_incr
249 use .write.
250 bss ,.write_incr
251 use .control.
252 bss ,.control_incr
253 use .set_modes.
254 bss ,.set_modes_incr
255 use .check_modes.
256 bss ,.check_modes_incr
257 use .get_modes.
258 bss ,.get_modes_incr
259 use .interrupt.
260 bss ,.interrupt_incr
261
262 &end
263
264 maclist off
265 ^L
266 " The transfer vector definition has the following syntax:
267 "
268 "
269 " <transfer_vector> := prologue <type_list> epilogue
270 " <type_list> := <type_stmt> | <type_stmt> <type_list>
271 " <type_stmt> := type <channel_type> , <global_seg_name> , <entry_list>
272 " <entry_list> := <entry> | <entry> , <entry_list>
273 " <entry> := <entry_type> | <entry_type> <local_seg_name>
274 " <channel_type> := tty | fnp | user1 | user2 | user3 | user4 | user5 | ibm3270
275 " | vip7760 | sty | lap | x25 | hasp | uncp | cxi | system1
276 " | protocol
277 " <entry_type> := init_channel | terminate_channel | init_multiplexer | terminate_multiplexer |
278 start | stop | shutdown | priv_control | hpriv_control | read | write |
279 control | set_modes | check_modes | get_modes | interrupt
280 " <global_seg_name> := the name of a procedure segment
281 " <local_seg_name> := the name of a procedure segment
282 "
283 "
284 " Each "type" statement defines a channel type.
285 " It specifies the valid entry types for the channel type.
286 " It specifies the transfer vector target for each valid entry type.
287 " The transfer vector target for an entry type is an entrypoint
288 " in a procedure segment.
289 " The name of the entrypoint is always the name of the entry type.
290 " The segment name may optionally be specified by a local segment name.
291 " If no local segment name is given, then the global segment name is used.
292
293
294
295 prologue
296
297 type tty,tty_index,
298 init_channel,
299 terminate_channel,
300 interrupttty_interrupt
301
302 type fnp,fnp_multiplexer,
303 init_multiplexer,
304 terminate_multiplexer,
305 start,
306 stop,
307 shutdown,
308 priv_control,
309 hpriv_control,
310 read,
311 write,
312 control,
313 set_modes,
314 check_modes,
315 get_modes
316
317 type vip7760,polled_vip_mpx,
318 init_multiplexerpriv_polled_vip_mpx,
319 terminate_multiplexerpriv_polled_vip_mpx,
320 startpriv_polled_vip_mpx,
321 stoppriv_polled_vip_mpx,
322 shutdownpriv_polled_vip_mpx,
323 hpriv_controlpriv_polled_vip_mpx,
324 priv_controlpriv_polled_vip_mpx,
325 read,
326 write,
327 check_modes,
328 set_modes,
329 get_modes,
330 control,
331 interrupt
332
333 type ibm3270,ibm3270_mpx,
334 init_multiplexerpriv_ibm3270_mpx,
335 terminate_multiplexerpriv_ibm3270_mpx,
336 startpriv_ibm3270_mpx,
337 stoppriv_ibm3270_mpx,
338 shutdownpriv_ibm3270_mpx,
339 priv_controlpriv_ibm3270_mpx,
340 hpriv_controlpriv_ibm3270_mpx,
341 control,
342 read,
343 check_modes,
344 set_modes,
345 get_modes,
346 write,
347 interrupt
348
349 type lap,lap_simplex,
350 init_multiplexer,terminate_multiplexer,
351 start,stop,shutdown,
352 hpriv_control,priv_control,control,
353 check_modes,set_modes,get_modes,
354 write,
355 interrupt
356
357 type x25,x25_mpx,
358 init_multiplexerpriv_x25_mpx,
359 terminate_multiplexerpriv_x25_mpx,
360 startpriv_x25_mpx,
361 stoppriv_x25_mpx,
362 shutdownpriv_x25_mpx,
363 hpriv_controlpriv_x25_mpx,
364 priv_controlpriv_x25_mpx,
365 control,
366 check_modes,set_modes,get_modes,
367 write,
368 interrupt
369
370 type sty,sty_mpx,
371 init_multiplexer,terminate_multiplexer,
372 start,stop,shutdown,
373 read,write,control,
374 get_modes,set_modes,check_modes
375
376 type hasp,hasp_mpx,
377 init_multiplexerpriv_hasp_mpx,
378 terminate_multiplexerpriv_hasp_mpx,
379 startpriv_hasp_mpx,
380 stoppriv_hasp_mpx,
381 shutdownpriv_hasp_mpx,
382 priv_controlpriv_hasp_mpx,
383 hpriv_controlpriv_hasp_mpx,
384 read,write,interrupt,control,
385 check_modes,set_modes,get_modes
386
387 type uncp,uncp_multiplexer,
388 init_multiplexer,
389 terminate_multiplexer,
390 start,
391 stop,
392 shutdown,
393 priv_control,
394 hpriv_control,
395 read,
396 write,
397 control,
398 set_modes,
399 check_modes,
400 get_modes
401
402 type protocol,protocol_mpx,
403 init_multiplexer,
404 terminate_multiplexer,
405 start,
406 stop,
407 shutdown,
408 priv_control,
409 hpriv_control,
410 interrupt
411 epilogue