1 /* --------      BEGIN INCLUDE FILE ... protocol_data.incl.pl1     --------- */
 2 
 3 
 4 /****^  HISTORY COMMENTS:
 5   1) change(89-03-20,Parisek), approve(89-06-06,MCR8110),
 6      audit(89-10-09,Farley), install(89-10-25,MR12.3-1100):
 7      Add support of protocol mpx.
 8                                                    END HISTORY COMMENTS */
 9 
10 /*               Written 15 May 1985 by C. Claveleira - CICB            */
11 
12 /* Latest revision : */
13 /*                                                                      */
14 /* 7  oct 1985 by C. Claveleira                                         */
15 /* 19 oct 1985 by C. Claveleira                                         */
16 /* 26 dec 1985 by C. Claveleira                                         */
17 /* 14 fev 1986 by C. Claveleira                                         */
18 /* 20 mar 1986 by C. Claveleira - version 1.0 of protocol_mpx           */
19 /* 02 sep 1986 by C. Claveleira - version 1.6 of protocol_mpx           */
20 /* 26 nov 1986 by C. Claveleira - version 1.8 of protocol_mpx           */
21 
22      dcl     protocol_data_ptr      ptr;
23      dcl     protocol_channels      fixed bin;
24 
25      dcl     1 protocol_data        aligned based (protocol_data_ptr),
26 
27                2 max_channels       fixed bin,              /* maximum number of channels (filled by fnp_init) */
28                2 n_channels         fixed bin,              /* # of initialized channels */
29                2 init_time          fixed bin (71),
30                2 listeners          (4),                    /* array of listeners processes by protocol type */
31                  3 proc_id          bit (36),
32                  3 pad1             bit (36),
33                  3 event_id         fixed bin (71),
34                2 special_listeners  (10),                   /* array of non-standards protocols listened */
35                  3 call_datas,
36                    4 partial        bit (1) unal,           /* ON if test on first part of call_datas */
37                    4 pad2           bit(35) unal,
38                    4 datas          char (48) varying,      /* call_datas that must match */
39                  3 proc_id          bit (36),               /* process_id of listener */
40                  3 pad3             bit (36),
41                  3 event_id         fixed bin (71),         /* event of listener */
42                2 channels           (protocol_channels refer (protocol_data.max_channels)) like channel;
43 
44      dcl     channel_ptr            ptr;
45 
46      dcl     1 channel              aligned based (channel_ptr), /* entry is 58 words wide */
47                2 name               char (32),              /* name from lcnt */
48                2 devx               fixed bin (17),         /* index in lct */
49                2 state              fixed bin,              /* see values below */
50                2 load_proc_id       bit (36),               /* process_id of loader process */
51                2 flags,
52                  3 initialized      bit (1) unal,           /* ON after init_multiplexer */
53                  3 started          bit (1) unal,           /* ON after start */
54                  3 in_use           bit (1) unal,           /* ON if line currently in use */
55                  3 send_output      bit (1) unal,           /* ON if we can send more output */
56                  3 wflag            bit (1) unal,           /* ON if process blocked on output */
57                  3 rflag            bit (1) unal,           /* ON if process blocked on input */
58                  3 timer_set        bit (1) unal,           /* ON if timer set for this channel */
59                  3 pad              bit (29) unal,
60                2 listener_proc_id   bit (36),               /* proc_id of listener process */
61                2 pad5               bit (36),
62                2 listener_event     fixed bin (71),         /* event_channel of listener */
63                2 user_proc_id       bit (36),               /* process_id of current user */
64                2 pad6               bit (36),
65                2 user_event         fixed bin (71),         /* event_channel of user */
66                2 user_ref           fixed bin (17),         /* user's internal ref */
67                2 max_packet_size    fixed bin,              /* x25's max data packet size */
68                2 our_network_address char (15) varying,     /* network address of this channel */
69                2 his_network_address char (15) varying,     /* network address of remote */
70                2 call_data          char (48) varying,      /* call datas from remote */
71                2 facilities         char (16) varying,      /* facilities from remote */
72                2 fblock             fixed bin (17),         /* offset of first data block. Input */
73                2 lblock             fixed bin (17),         /*    "   "  last    "    "      "   */
74                2 write_first        fixed bin (17),         /*    "   "  first   "    "  . Output */
75                2 write_last         fixed bin (17),         /*    "   "  last    "    "      "    */
76                2 space_left_in_packet fixed bin,            /* current space left in x25 data packet */
77                2 max_buf_size       fixed bin (9) uns,      /* maximum buffer size we're allowed to get */
78                2 buffer_pad         fixed bin (9) uns,      /* buffer padding we must respect */
79                2 max_nsdu_size      fixed bin;              /* maximum size of NSDU permitted */
80 
81      dcl     (INACTIVE              init (0),               /* values of channel.state */
82              HUNGUP                 init (1),
83              DIALING                init (2),
84              DIALED                 init (3)
85              )                      fixed bin static options (constant);
86 
87 /* ----------      End include file protocol_data.incl.pl1        ---------- */