x86/mm/pat: Don't report PAT on CPUs that don't support it
[linux/fpc-iii.git] / drivers / staging / dgnc / digi.h
blobec2e3dda6119e2c80e28a2813dbbbf097ccefcf1
1 /*
2 * Copyright 2003 Digi International (www.digi.com)
3 * Scott H Kilau <Scott_Kilau at digi dot com>
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
8 * any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED; without even the
12 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13 * PURPOSE. See the GNU General Public License for more details.
16 #ifndef __DIGI_H
17 #define __DIGI_H
19 #ifndef TIOCM_LE
20 #define TIOCM_LE 0x01 /* line enable */
21 #define TIOCM_DTR 0x02 /* data terminal ready */
22 #define TIOCM_RTS 0x04 /* request to send */
23 #define TIOCM_ST 0x08 /* secondary transmit */
24 #define TIOCM_SR 0x10 /* secondary receive */
25 #define TIOCM_CTS 0x20 /* clear to send */
26 #define TIOCM_CAR 0x40 /* carrier detect */
27 #define TIOCM_RNG 0x80 /* ring indicator */
28 #define TIOCM_DSR 0x100 /* data set ready */
29 #define TIOCM_RI TIOCM_RNG /* ring (alternate) */
30 #define TIOCM_CD TIOCM_CAR /* carrier detect (alt) */
31 #endif
33 #if !defined(TIOCMSET)
34 #define TIOCMSET (('d' << 8) | 252) /* set modem ctrl state */
35 #define TIOCMGET (('d' << 8) | 253) /* set modem ctrl state */
36 #endif
38 #if !defined(TIOCMBIC)
39 #define TIOCMBIC (('d' << 8) | 254) /* set modem ctrl state */
40 #define TIOCMBIS (('d' << 8) | 255) /* set modem ctrl state */
41 #endif
43 #define DIGI_GETA (('e' << 8) | 94) /* Read params */
44 #define DIGI_SETA (('e' << 8) | 95) /* Set params */
45 #define DIGI_SETAW (('e' << 8) | 96) /* Drain & set params */
46 #define DIGI_SETAF (('e' << 8) | 97) /* Drain, flush & set params */
47 #define DIGI_GET_NI_INFO (('d' << 8) | 250) /* Non-intelligent state info */
48 #define DIGI_LOOPBACK (('d' << 8) | 252) /*
49 * Enable/disable UART
50 * internal loopback
52 #define DIGI_FAST 0x0002 /* Fast baud rates */
53 #define RTSPACE 0x0004 /* RTS input flow control */
54 #define CTSPACE 0x0008 /* CTS output flow control */
55 #define DIGI_COOK 0x0080 /* Cooked processing done in FEP */
56 #define DIGI_FORCEDCD 0x0100 /* Force carrier */
57 #define DIGI_ALTPIN 0x0200 /* Alternate RJ-45 pin config */
58 #define DIGI_PRINTER 0x0800 /* Hold port open for flow cntrl*/
59 #define DIGI_DTR_TOGGLE 0x2000 /* Support DTR Toggle */
60 #define DIGI_RTS_TOGGLE 0x8000 /* Support RTS Toggle */
61 #define DIGI_PLEN 28 /* String length */
62 #define DIGI_TSIZ 10 /* Terminal string len */
65 * Structure used with ioctl commands for DIGI parameters.
67 struct digi_t {
68 unsigned short digi_flags; /* Flags (see above) */
69 unsigned short digi_maxcps; /* Max printer CPS */
70 unsigned short digi_maxchar; /* Max chars in print queue */
71 unsigned short digi_bufsize; /* Buffer size */
72 unsigned char digi_onlen; /* Length of ON string */
73 unsigned char digi_offlen; /* Length of OFF string */
74 char digi_onstr[DIGI_PLEN]; /* Printer on string */
75 char digi_offstr[DIGI_PLEN]; /* Printer off string */
76 char digi_term[DIGI_TSIZ]; /* terminal string */
79 /* Structure to get driver status information */
81 struct digi_dinfo {
82 unsigned int dinfo_nboards; /* # boards configured */
83 char dinfo_reserved[12]; /* for future expansion */
84 char dinfo_version[16]; /* driver version */
87 #define DIGI_GETDD (('d' << 8) | 248) /* get driver info */
90 * Structure used with ioctl commands for per-board information
92 * physsize and memsize differ when board has "windowed" memory
94 struct digi_info {
95 unsigned int info_bdnum; /* Board number (0 based) */
96 unsigned int info_ioport; /* io port address */
97 unsigned int info_physaddr; /* memory address */
98 unsigned int info_physsize; /* Size of host mem window */
99 unsigned int info_memsize; /* Amount of dual-port mem */
100 /* on board */
101 unsigned short info_bdtype; /* Board type */
102 unsigned short info_nports; /* number of ports */
103 char info_bdstate; /* board state */
104 char info_reserved[7]; /* for future expansion */
107 #define DIGI_GETBD (('d' << 8) | 249) /* get board info */
109 struct digi_getbuffer /* Struct for holding buffer use counts */
111 unsigned long tx_in;
112 unsigned long tx_out;
113 unsigned long rxbuf;
114 unsigned long txbuf;
115 unsigned long txdone;
118 struct digi_getcounter {
119 unsigned long norun; /* number of UART overrun errors */
120 unsigned long noflow; /* number of buffer overflow errors */
121 unsigned long nframe; /* number of framing errors */
122 unsigned long nparity; /* number of parity errors */
123 unsigned long nbreak; /* number of breaks received */
124 unsigned long rbytes; /* number of received bytes */
125 unsigned long tbytes; /* number of bytes transmitted fully */
128 /* Board State Definitions */
129 #define BD_RUNNING 0x0
130 #define BD_NOFEP 0x5
132 #define DIGI_SETCUSTOMBAUD _IOW('e', 106, int) /* Set integer baud rate */
133 #define DIGI_GETCUSTOMBAUD _IOR('e', 107, int) /* Get integer baud rate */
135 #define DIGI_REALPORT_GETBUFFERS (('e' << 8) | 108)
136 #define DIGI_REALPORT_SENDIMMEDIATE (('e' << 8) | 109)
137 #define DIGI_REALPORT_GETCOUNTERS (('e' << 8) | 110)
138 #define DIGI_REALPORT_GETEVENTS (('e' << 8) | 111)
140 #define EV_OPU 0x0001 /* !<Output paused by client */
141 #define EV_OPS 0x0002 /* !<Output paused by regular sw flowctrl */
142 #define EV_IPU 0x0010 /* !<Input paused unconditionally by user */
143 #define EV_IPS 0x0020 /* !<Input paused by high/low water marks */
144 #define EV_TXB 0x0040 /* !<Transmit break pending */
147 * This structure holds data needed for the intelligent <--> nonintelligent
148 * DPA translation
150 struct ni_info {
151 int board;
152 int channel;
153 int dtr;
154 int rts;
155 int cts;
156 int dsr;
157 int ri;
158 int dcd;
159 int curtx;
160 int currx;
161 unsigned short iflag;
162 unsigned short oflag;
163 unsigned short cflag;
164 unsigned short lflag;
165 unsigned int mstat;
166 unsigned char hflow;
167 unsigned char xmit_stopped;
168 unsigned char recv_stopped;
169 unsigned int baud;
172 #define T_CLASSIC 0002
173 #define T_PCIBUS 0400
174 #define T_NEO_EXPRESS 0001
175 #define T_NEO 0000
177 #define TTY_FLIPBUF_SIZE 512
178 #endif /* DIGI_H */