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 /* Maximum Number of Boards supported */
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 ulong memsize;
53 ushort first_minor;
54 void *region;
55 };
56
57
58 #define TXSTOPPED 0x01
59 #define LOWWAIT 0x02
60 #define EMPTYWAIT 0x04
61 #define RXSTOPPED 0x08
62 #define TXBUSY 0x10
63
64 #define DISABLED 0
65 #define ENABLED 1
66 #define OFF 0
67 #define ON 1
68
69 #define FEPTIMEOUT 200000
70 #define SERIAL_TYPE_NORMAL 1
71 #define SERIAL_TYPE_CALLOUT 2
72 #define PCXE_EVENT_HANGUP 1
73 #define PCXX_MAGIC 0x5c6df104L
74
75 struct channel {
76 /* --------- Board/channel information ---------- */
77 long magic;
78 unchar boardnum;
79 unchar channelnum;
80 uint dev;
81 long session;
82 long pgrp;
83 struct tty_struct *tty;
84 struct board_info *board;
85 volatile struct board_chan *brdchan;
86 volatile struct global_data *mailbox;
87 int asyncflags;
88 int count;
89 int blocked_open;
90 int close_delay;
91 int event;
92 wait_queue_head_t open_wait;
93 wait_queue_head_t close_wait;
94 struct tq_struct tqueue;
95 /* ------------ Async control data ------------- */
96 unchar modemfake; /* Modem values to be forced */
97 unchar modem; /* Force values */
98 ulong statusflags;
99 unchar omodem; /* FEP output modem status */
100 unchar imodem; /* FEP input modem status */
101 unchar hflow;
102 unchar dsr;
103 unchar dcd;
104 unchar stopc;
105 unchar startc;
106 unchar stopca;
107 unchar startca;
108 unchar fepstopc;
109 unchar fepstartc;
110 unchar fepstopca;
111 unchar fepstartca;
112 ushort fepiflag;
113 ushort fepcflag;
114 ushort fepoflag;
115 /* ---------- Transmit/receive system ---------- */
116 unchar txwin;
117 unchar rxwin;
118 ushort txbufsize;
119 ushort rxbufsize;
120 unchar *txptr;
121 unchar *rxptr;
122 unchar *tmp_buf; /* Temp buffer */
123 /* ---- Termios data ---- */
124 ulong c_iflag;
125 ulong c_cflag;
126 ulong c_lflag;
127 ulong c_oflag;
128 struct termios normal_termios;
129 struct termios callout_termios;
130 struct digi_struct digiext;
131 ulong dummy[8];
132 };
133