Commit | Line | Data |
---|---|---|
0b99d589 LL |
1 | /* |
2 | * Copyright 2003 Digi International (www.digi.com) | |
3 | * Scott H Kilau <Scott_Kilau at digi dot com> | |
4 | * | |
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. | |
9 | * | |
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. | |
0b99d589 LL |
14 | */ |
15 | ||
16 | #ifndef __DIGI_H | |
17 | #define __DIGI_H | |
18 | ||
b8f5472a | 19 | #ifndef TIOCM_LE |
0b99d589 LL |
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 | |
32 | ||
0b99d589 | 33 | #if !defined(TIOCMSET) |
6f6304b8 AM |
34 | #define TIOCMSET (('d'<<8) | 252) /* set modem ctrl state */ |
35 | #define TIOCMGET (('d'<<8) | 253) /* set modem ctrl state */ | |
0b99d589 LL |
36 | #endif |
37 | ||
38 | #if !defined(TIOCMBIC) | |
6f6304b8 AM |
39 | #define TIOCMBIC (('d'<<8) | 254) /* set modem ctrl state */ |
40 | #define TIOCMBIS (('d'<<8) | 255) /* set modem ctrl state */ | |
0b99d589 LL |
41 | #endif |
42 | ||
6f6304b8 | 43 | #define DIGI_GETA (('e'<<8) | 94) /* Read params */ |
6f6304b8 AM |
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 */ | |
850b41f7 GS |
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 | |
51 | */ | |
0b99d589 LL |
52 | #define DIGI_FAST 0x0002 /* Fast baud rates */ |
53 | #define RTSPACE 0x0004 /* RTS input flow control */ | |
54 | #define CTSPACE 0x0008 /* CTS output flow control */ | |
0b99d589 LL |
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 */ | |
0b99d589 | 58 | #define DIGI_PRINTER 0x0800 /* Hold port open for flow cntrl*/ |
0b99d589 | 59 | #define DIGI_DTR_TOGGLE 0x2000 /* Support DTR Toggle */ |
0b99d589 | 60 | #define DIGI_RTS_TOGGLE 0x8000 /* Support RTS Toggle */ |
0b99d589 LL |
61 | #define DIGI_PLEN 28 /* String length */ |
62 | #define DIGI_TSIZ 10 /* Terminal string len */ | |
63 | ||
64 | /************************************************************************ | |
65 | * Structure used with ioctl commands for DIGI parameters. | |
66 | ************************************************************************/ | |
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 */ | |
77 | }; | |
78 | ||
0b99d589 LL |
79 | /************************************************************************ |
80 | * Structure to get driver status information | |
81 | ************************************************************************/ | |
82 | struct digi_dinfo { | |
83 | unsigned int dinfo_nboards; /* # boards configured */ | |
84 | char dinfo_reserved[12]; /* for future expansion */ | |
85 | char dinfo_version[16]; /* driver version */ | |
86 | }; | |
87 | ||
6f6304b8 | 88 | #define DIGI_GETDD (('d'<<8) | 248) /* get driver info */ |
b8f5472a | 89 | |
0b99d589 LL |
90 | /************************************************************************ |
91 | * Structure used with ioctl commands for per-board information | |
92 | * | |
93 | * physsize and memsize differ when board has "windowed" memory | |
94 | ************************************************************************/ | |
95 | struct digi_info { | |
96 | unsigned int info_bdnum; /* Board number (0 based) */ | |
97 | unsigned int info_ioport; /* io port address */ | |
98 | unsigned int info_physaddr; /* memory address */ | |
99 | unsigned int info_physsize; /* Size of host mem window */ | |
100 | unsigned int info_memsize; /* Amount of dual-port mem */ | |
101 | /* on board */ | |
102 | unsigned short info_bdtype; /* Board type */ | |
103 | unsigned short info_nports; /* number of ports */ | |
104 | char info_bdstate; /* board state */ | |
105 | char info_reserved[7]; /* for future expansion */ | |
106 | }; | |
107 | ||
6f6304b8 | 108 | #define DIGI_GETBD (('d'<<8) | 249) /* get board info */ |
b8f5472a | 109 | |
0b99d589 LL |
110 | struct digi_getbuffer /* Struct for holding buffer use counts */ |
111 | { | |
112 | unsigned long tIn; | |
113 | unsigned long tOut; | |
114 | unsigned long rxbuf; | |
115 | unsigned long txbuf; | |
116 | unsigned long txdone; | |
117 | }; | |
118 | ||
ba48f61b | 119 | struct digi_getcounter { |
0b99d589 LL |
120 | unsigned long norun; /* number of UART overrun errors */ |
121 | unsigned long noflow; /* number of buffer overflow errors */ | |
122 | unsigned long nframe; /* number of framing errors */ | |
123 | unsigned long nparity; /* number of parity errors */ | |
124 | unsigned long nbreak; /* number of breaks received */ | |
125 | unsigned long rbytes; /* number of received bytes */ | |
126 | unsigned long tbytes; /* number of bytes transmitted fully */ | |
127 | }; | |
128 | ||
0b99d589 | 129 | /* Board State Definitions */ |
0b99d589 | 130 | #define BD_RUNNING 0x0 |
0b99d589 | 131 | #define BD_NOFEP 0x5 |
0b99d589 | 132 | |
b2d3977f BAO |
133 | #define DIGI_SETCUSTOMBAUD _IOW('e', 106, int) /* Set integer baud rate */ |
134 | #define DIGI_GETCUSTOMBAUD _IOR('e', 107, int) /* Get integer baud rate */ | |
0b99d589 | 135 | |
6f6304b8 AM |
136 | #define DIGI_REALPORT_GETBUFFERS (('e'<<8) | 108) |
137 | #define DIGI_REALPORT_SENDIMMEDIATE (('e'<<8) | 109) | |
138 | #define DIGI_REALPORT_GETCOUNTERS (('e'<<8) | 110) | |
139 | #define DIGI_REALPORT_GETEVENTS (('e'<<8) | 111) | |
0b99d589 | 140 | |
b2d3977f BAO |
141 | #define EV_OPU 0x0001 /* !<Output paused by client */ |
142 | #define EV_OPS 0x0002 /* !<Output paused by reqular sw flowctrl */ | |
143 | #define EV_IPU 0x0010 /* !<Input paused unconditionally by user */ | |
144 | #define EV_IPS 0x0020 /* !<Input paused by high/low water marks */ | |
145 | #define EV_TXB 0x0040 /* !<Transmit break pending */ | |
0b99d589 | 146 | |
850b41f7 GS |
147 | /* |
148 | * This structure holds data needed for the intelligent <--> nonintelligent | |
149 | * DPA translation | |
150 | */ | |
151 | struct ni_info { | |
152 | int board; | |
153 | int channel; | |
154 | int dtr; | |
155 | int rts; | |
156 | int cts; | |
157 | int dsr; | |
158 | int ri; | |
159 | int dcd; | |
160 | int curtx; | |
161 | int currx; | |
162 | unsigned short iflag; | |
163 | unsigned short oflag; | |
164 | unsigned short cflag; | |
165 | unsigned short lflag; | |
166 | unsigned int mstat; | |
167 | unsigned char hflow; | |
168 | unsigned char xmit_stopped; | |
169 | unsigned char recv_stopped; | |
170 | unsigned int baud; | |
171 | }; | |
172 | ||
173 | #define T_CLASSIC 0002 | |
174 | #define T_PCIBUS 0400 | |
175 | #define T_NEO_EXPRESS 0001 | |
176 | #define T_NEO 0000 | |
177 | ||
20dad752 | 178 | #define TTY_FLIPBUF_SIZE 512 |
0b99d589 | 179 | #endif /* DIGI_H */ |