1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 tc_disconnect:
32 procedure;
33 return;
34
35 declare error_table_$io_no_permission
36 external static fixed bin (35);
37
38 declare (addr, currentsize, null, string)
39 builtin;
40
41 declare Code fixed bin (35);
42 declare TC_data_ptr pointer;
43 declare signal_ entry () options (variable);
44
45 %include condition_info_header;
46 %include tc_disconnect_info;
47 declare 1 tcdi aligned like tc_disconnect_info;
48 %include tc_data_;
49 %include net_event_message;
50 ^L
51
52 check:
53 entry (TC_data_ptr, Code);
54
55 if Code ^= error_table_$io_no_permission
56 then return;
57
58 tc_data_ptr = TC_data_ptr;
59
60 string (tcdi.action_flags) = ""b;
61 tcdi.length = currentsize (tcdi);
62 tcdi.cant_restart = "1"b;
63 tcdi.info_string = "A terminal managed by video terminal control has hungup.";
64 tcdi.status_code = 0;
65 tcdi.tc_data_ptr = TC_data_ptr;
66 if tc_data.network_type = DSA_NETWORK_TYPE
67 then tcdi.tty_handle = tc_data.tty_handle;
68 else if tc_data.network_type = MOWSE_NETWORK_TYPE
69 then tcdi.mowse_terminal_iocb_ptr = tc_data.mowse_terminal_iocb_ptr;
70 else tcdi.devx = tc_data.devx;
71 call signal_ ("terminal_control_disconnection_", null (), addr (tcdi));
72 return;
73 end tc_disconnect;