1 #define FEPCODESEG 0x0200L
2 #define FEPCODE 0x2000L
3 #define BIOSCODE 0xf800L
4
5 #define MISCGLOBAL 0x0C00L
6 #define NPORT 0x0C22L
7 #define MBOX 0x0C40L
8 #define PORTBASE 0x0C90L
9
10 #define FEPCLR 0x00
11 #define FEPMEM 0x02
12 #define FEPRST 0x04
13 #define FEPINT 0x08
14 #define FEPMASK 0x0e
15 #define FEPWIN 0x80
16
17
18 #define MAX_DIGI_BOARDS 4
19
20 #define PCXX_NUM_TYPES 4
21
22 #define PCXI 0
23 #define PCXE 1
24 #define PCXEVE 2
25 #define PCXEM 3
26
27 static char *board_desc[] = {
28 "PC/Xi",
29 "PC/Xe",
30 "PC/Xeve",
31 "PC/Xem",
32 };
33
34 static char *board_mem[] = {
35 "64k",
36 "64k",
37 "8k",
38 "32k",
39 };
40 #define STARTC 021
41 #define STOPC 023
42 #define IAIXON 0x2000
43
44
45 struct board_info {
46 unchar status;
47 unchar type;
48 unchar altpin;
49 ushort numports;
50 ushort port;
51 ulong membase;
52 ushort first_minor;
53 };
54
55
56 #define TXSTOPPED 0x01
57 #define LOWWAIT 0x02
58 #define EMPTYWAIT 0x04
59 #define RXSTOPPED 0x08
60 #define TXBUSY 0x10
61
62 #define DISABLED 0
63 #define ENABLED 1
64 #define OFF 0
65 #define ON 1
66
67 #define FEPTIMEOUT 200000
68 #define SERIAL_TYPE_NORMAL 1
69 #define SERIAL_TYPE_CALLOUT 2
70 #define PCXE_EVENT_HANGUP 1
71 #define PCXX_MAGIC 0x5c6df104L
72
73 struct channel {
74
75 long magic;
76 unchar boardnum;
77 unchar channelnum;
78 uint dev;
79 long session;
80 long pgrp;
81 struct tty_struct *tty;
82 struct board_info *board;
83 volatile struct board_chan *brdchan;
84 volatile struct global_data *mailbox;
85 int asyncflags;
86 int count;
87 int blocked_open;
88 int close_delay;
89 int event;
90 struct wait_queue *open_wait;
91 struct wait_queue *close_wait;
92 struct tq_struct tqueue;
93
94 unchar modemfake;
95 unchar modem;
96 ulong statusflags;
97 unchar omodem;
98 unchar imodem;
99 unchar hflow;
100 unchar dsr;
101 unchar dcd;
102 unchar stopc;
103 unchar startc;
104 unchar stopca;
105 unchar startca;
106 unchar fepstopc;
107 unchar fepstartc;
108 unchar fepstopca;
109 unchar fepstartca;
110 ushort fepiflag;
111 ushort fepcflag;
112 ushort fepoflag;
113
114 unchar txwin;
115 unchar rxwin;
116 ushort txbufsize;
117 ushort rxbufsize;
118 unchar *txptr;
119 unchar *rxptr;
120 unchar *tmp_buf;
121
122 ulong c_iflag;
123 ulong c_cflag;
124 ulong c_lflag;
125 ulong c_oflag;
126 struct termios normal_termios;
127 struct termios callout_termios;
128 struct digi_struct digiext;
129 ulong dummy[8];
130 };