1 /*  BEGIN INCLUDE FILE ... x25_data.incl.pl1  */
  2 
  3 
  4 /****^  HISTORY COMMENTS:
  5   1) change(89-03-20,Parisek), approve(89-06-01,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 
 11 /*       Created june 9, 1979 by B.Westcott   */
 12 /* Revised January 1982 by C. Hornig */
 13 /* Modified  May 1982, by D. W. Cousins for level 2 activation data */
 14 /* Modified August 1983 by Jeff Schiller to implement the "reverse charging" facility. */
 15 /* Modified October 1984 by R.J.C. Kissel to have a value for the idle timer to use for breakall mode. */
 16 /* Modified October 1984 by R.J.C. Kissel to add the write_status_sync_sent flag. */
 17 
 18 dcl  x25_data_ptr ptr;
 19 dcl  x25_data_n_sc fixed bin;                               /* number of Multics subchannels */
 20 
 21 dcl  1 x25_data aligned based (x25_data_ptr),               /* level 3 data */
 22        2 name char (32),                                    /* channel name for messages */
 23        2 devx fixed bin,                                    /* device index of multiplexer */
 24        2 state fixed bin,                                   /* see below */
 25        2 n_lc fixed bin,                                    /* number of logical channels */
 26        2 n_sc fixed bin,                                    /* number of subchannels */
 27        2 n_pvc fixed bin,                                   /* number of Permanent Virtual Circuits */
 28        2 flags,
 29          3 send_output bit (1) unaligned,
 30          3 mpx_started bit (1) unaligned,
 31          3 bypass_restart bit (1) unaligned,
 32          3 no_d bit (1) unaligned,                          /* end-to-end ack not available */
 33          3 out_calls_collect bit (1) unaligned,
 34          3 packet_trace_sw   bit (1) unaligned,             /* Log packets? */
 35          3 pad1 bit (30) unaligned,
 36        2 seq_mod uns fixed bin (8),                         /* modulus for packet sequencing */
 37        2 gfid bit (2),                                      /* format code to use */
 38        2 load_proc_id bit (36),                             /* bootload process id */
 39        2 load_ev_chan fixed bin (71),                       /* bootload event channel */
 40        2 net_type char (8),                                 /* type of net this is */
 41        2 restart_time fixed bin (71),                       /* time last restart sent */
 42        2 dialup_info like dialup_info,                      /* dialup interrupt info */
 43        2 lc_ptr ptr,                                        /* LC table */
 44        2 (write_head, write_tail) ptr,                      /* chain of packets to write */
 45        2 long_packet_size fixed bin (11),                   /* smallest long packet */
 46        2 long_packet_head fixed bin,                        /* head of long packet SC chain */
 47        2 long_packet_tail fixed bin,                        /* tail of long packet SC chain */
 48        2 breakall_idle_timer fixed bin,                     /* breakall idle timer in 1/20 sec. */
 49        2 my_address varying char (15),                      /* local DTE address */
 50        2 sc (x25_data_n_sc refer (x25_data.n_sc)) like xsce;/* subchannel tables */
 51 
 52 dcl  (
 53      X25_HUNGUP init (0),                                   /* values of x25_data.state */
 54      X25_LISTENING init (1),
 55      X25_RESTARTING init (2),
 56      X25_ACTIVE init (3)
 57      ) fixed bin static options (constant);
 58 
 59 dcl  1 x25_lces aligned based (x25_data.lc_ptr),            /* logical channel table */
 60        2 lc (x25_data.n_lc) like xlce;
 61 
 62 dcl  xlcep ptr;
 63 dcl  1 xlce aligned based (xlcep),
 64        2 state fixed bin,                                   /* see definitions below */
 65        2 scx fixed bin,                                     /* index of associated subchannel */
 66        2 max_packet_size uns fixed bin (18),                /* maximum data packet allowed */
 67        2 max_window_size uns fixed bin (7),
 68        2 baud_rate fixed bin,                               /* speed of remote correspondent */
 69        2 flags aligned,                                     /* start on a word. */
 70          3 iti_call bit (1) unaligned,                      /* set if iti call */
 71          3 int_issued bit (1) unaligned,                    /* interrupt packet issued */
 72          3 rnr_received bit (1) unaligned,                  /* dce sent rnr packet */
 73          3 iti_break bit (1) unaligned,                     /* iti break being serviced */
 74          3 rnr_sent bit (1) unaligned,                      /* we sent a RNR */
 75          3 originate bit (1) unaligned,                     /* we started this call */
 76          3 timer_set bit (1) unaligned,                     /* timing out on RR */
 77          3 collect_call bit (1) unaligned,                  /* who pays for call */
 78          3 write_status_sync_sent bit (1) unaligned,        /* we sent one, and haven't heard the result. */
 79          3 pad bit (27) unaligned,
 80        2 window_size fixed bin,                             /* V (W) current window size */
 81        2 force_ack_time fixed bin (71),                     /* deadline for sending RR */
 82        2 state_time fixed bin (71),                         /* time of last state change */
 83        2 next_recv_seq unsigned fixed bin (7),              /* V(R) next receive sequence number */
 84        2 next_send_seq unsigned fixed bin (7),              /* V(S) next sequence for transmssion */
 85        2 last_recv_seq unsigned fixed bin (7),              /* P(R) last issued receive sequence */
 86        2 next_ack_seq unsigned fixed bin (7),               /* P(S) sequence of next ack to be issued */
 87        2 his_address varying char (15),                     /* outgoing host number */
 88        2 call_data varying char (16),                       /* call user data */
 89        2 iti_params (18) uns fixed bin (9) unaligned;       /* PAD simulation parameters */
 90 
 91 /* state definitions */
 92 
 93 dcl  (
 94      READY init (1),
 95      DTE_WAITING init (2),
 96      FLOW_CONTROL_READY init (3),
 97      DTE_CLEAR_REQUEST init (4),
 98      DTE_RESET_REQUEST init (5),
 99      CONRESP_WAITING   init (6)
100      ) fixed bin static options (constant);
101 
102 dcl  xscep ptr;
103 dcl  1 xsce aligned based (xscep),
104        2 name char (32),                                    /* name of the channel */
105        2 devx fixed bin,                                    /* device index */
106        2 lcx fixed bin,                                     /* index of xlce */
107        2 state fixed bin,                                   /* see definitions below */
108        2 flags,
109          3 output_ready bit (1) unaligned,                  /* set if window full */
110          3 end_of_page bit (1) unaligned,                   /* set if output read end-of-page */
111          3 wru_done bit (1) unaligned,                      /* user has done a WRU */
112          3 need_ftd bit (1) unaligned,                      /* user has done get_foreign_terminal_data */
113          3 long_packet_pending bit (1) unaligned,           /* there is a long packet "on hold" */
114          3 pad bit (13) unaligned,
115          3 mode (18) bit (1) unaligned,                     /* rawi, echoplex, breakall, iflow, oflow, hndlquit, polite, lfecho, 8bit */
116        2 long_packet_next_scx fixed bin,                    /* thread of held sc's */
117        2 service char (12),                                 /* name of service offered here */
118        2 (write_head, write_tail) ptr,                      /* data packet chain */
119        2 trans_table_ptr ptr;                               /* translation table */
120 
121 dcl  (
122      SC_HUNGUP init (0),
123      SC_LISTENING init (1),
124      SC_DIALING init (2),
125      SC_DIALED init (3)
126      ) fixed bin static options (constant);
127 
128 %include mcs_interrupt_info;
129 
130 /* End include file x25_data.incl.pl1 */