Linux Audio

Check our new training course

Linux kernel drivers training

Mar 31-Apr 9, 2025, special US time zones
Register
Loading...
v3.15
 
  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.
 14 *
 15 * You should have received a copy of the GNU General Public License
 16 * along with this program; if not, write to the Free Software
 17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 18 *
 19 *	NOTE: THIS IS A SHARED HEADER. DO NOT CHANGE CODING STYLE!!!
 20 */
 21
 22#ifndef __DIGI_H
 23#define __DIGI_H
 24
 25/************************************************************************
 26 ***	Definitions for Digi ditty(1) command.
 27 ************************************************************************/
 28
 29
 30/*
 31 * Copyright (c) 1988-96 Digi International Inc., All Rights Reserved.
 32 */
 33
 34/************************************************************************
 35 * This module provides application access to special Digi
 36 * serial line enhancements which are not standard UNIX(tm) features.
 37 ************************************************************************/
 38
 39#if !defined(TIOCMODG)
 40
 41#define	TIOCMODG	('d'<<8) | 250		/* get modem ctrl state	*/
 42#define	TIOCMODS	('d'<<8) | 251		/* set modem ctrl state	*/
 43
 44#ifndef TIOCM_LE
 45#define		TIOCM_LE	0x01		/* line enable		*/
 46#define		TIOCM_DTR	0x02		/* data terminal ready	*/
 47#define		TIOCM_RTS	0x04		/* request to send	*/
 48#define		TIOCM_ST	0x08		/* secondary transmit	*/
 49#define		TIOCM_SR	0x10		/* secondary receive	*/
 50#define		TIOCM_CTS	0x20		/* clear to send	*/
 51#define		TIOCM_CAR	0x40		/* carrier detect	*/
 52#define		TIOCM_RNG	0x80		/* ring	indicator	*/
 53#define		TIOCM_DSR	0x100		/* data set ready	*/
 54#define		TIOCM_RI	TIOCM_RNG	/* ring (alternate)	*/
 55#define		TIOCM_CD	TIOCM_CAR	/* carrier detect (alt)	*/
 56#endif
 57
 58#endif
 59
 60#if !defined(TIOCMSET)
 61#define	TIOCMSET	('d'<<8) | 252		/* set modem ctrl state	*/
 62#define	TIOCMGET	('d'<<8) | 253		/* set modem ctrl state	*/
 63#endif
 64
 65#if !defined(TIOCMBIC)
 66#define	TIOCMBIC	('d'<<8) | 254		/* set modem ctrl state */
 67#define	TIOCMBIS	('d'<<8) | 255		/* set modem ctrl state */
 68#endif
 69
 70
 71#if !defined(TIOCSDTR)
 72#define	TIOCSDTR	('e'<<8) | 0		/* set DTR		*/
 73#define	TIOCCDTR	('e'<<8) | 1		/* clear DTR		*/
 74#endif
 75
 76/************************************************************************
 77 * Ioctl command arguments for DIGI parameters.
 78 ************************************************************************/
 79#define DIGI_GETA	('e'<<8) | 94		/* Read params		*/
 80
 81#define DIGI_SETA	('e'<<8) | 95		/* Set params		*/
 82#define DIGI_SETAW	('e'<<8) | 96		/* Drain & set params	*/
 83#define DIGI_SETAF	('e'<<8) | 97		/* Drain, flush & set params */
 84
 85#define DIGI_KME	('e'<<8) | 98		/* Read/Write Host	*/
 86						/* Adapter Memory	*/
 87
 88#define	DIGI_GETFLOW	('e'<<8) | 99		/* Get startc/stopc flow */
 89						/* control characters 	 */
 90#define	DIGI_SETFLOW	('e'<<8) | 100		/* Set startc/stopc flow */
 91						/* control characters	 */
 92#define	DIGI_GETAFLOW	('e'<<8) | 101		/* Get Aux. startc/stopc */
 93						/* flow control chars 	 */
 94#define	DIGI_SETAFLOW	('e'<<8) | 102		/* Set Aux. startc/stopc */
 95						/* flow control chars	 */
 96
 97#define DIGI_GEDELAY	('d'<<8) | 246		/* Get edelay */
 98#define DIGI_SEDELAY	('d'<<8) | 247		/* Set edelay */
 99
100struct	digiflow_t {
101	unsigned char	startc;				/* flow cntl start char	*/
102	unsigned char	stopc;				/* flow cntl stop char	*/
103};
104
105
106#ifdef	FLOW_2200
107#define	F2200_GETA	('e'<<8) | 104		/* Get 2x36 flow cntl flags */
108#define	F2200_SETAW	('e'<<8) | 105		/* Set 2x36 flow cntl flags */
109#define		F2200_MASK	0x03		/* 2200 flow cntl bit mask  */
110#define		FCNTL_2200	0x01		/* 2x36 terminal flow cntl  */
111#define		PCNTL_2200	0x02		/* 2x36 printer flow cntl   */
112#define	F2200_XON	0xf8
113#define	P2200_XON	0xf9
114#define	F2200_XOFF	0xfa
115#define	P2200_XOFF	0xfb
116
117#define	FXOFF_MASK	0x03			/* 2200 flow status mask    */
118#define	RCVD_FXOFF	0x01			/* 2x36 Terminal XOFF rcvd  */
119#define	RCVD_PXOFF	0x02			/* 2x36 Printer XOFF rcvd   */
120#endif
121
122/************************************************************************
123 * Values for digi_flags
124 ************************************************************************/
125#define DIGI_IXON	0x0001		/* Handle IXON in the FEP	*/
126#define DIGI_FAST	0x0002		/* Fast baud rates		*/
127#define RTSPACE		0x0004		/* RTS input flow control	*/
128#define CTSPACE		0x0008		/* CTS output flow control	*/
129#define DSRPACE		0x0010		/* DSR output flow control	*/
130#define DCDPACE		0x0020		/* DCD output flow control	*/
131#define DTRPACE		0x0040		/* DTR input flow control	*/
132#define DIGI_COOK	0x0080		/* Cooked processing done in FEP */
133#define DIGI_FORCEDCD	0x0100		/* Force carrier		*/
134#define	DIGI_ALTPIN	0x0200		/* Alternate RJ-45 pin config	*/
135#define	DIGI_AIXON	0x0400		/* Aux flow control in fep	*/
136#define	DIGI_PRINTER	0x0800		/* Hold port open for flow cntrl*/
137#define DIGI_PP_INPUT	0x1000		/* Change parallel port to input*/
138#define DIGI_DTR_TOGGLE	0x2000		/* Support DTR Toggle           */
139#define DIGI_422	0x4000		/* for 422/232 selectable panel */
140#define DIGI_RTS_TOGGLE	0x8000		/* Support RTS Toggle		*/
141
142/************************************************************************
143 * These options are not supported on the comxi.
144 ************************************************************************/
145#define	DIGI_COMXI	(DIGI_FAST|DIGI_COOK|DSRPACE|DCDPACE|DTRPACE)
146
147#define DIGI_PLEN	28		/* String length		*/
148#define	DIGI_TSIZ	10		/* Terminal string len		*/
149
150/************************************************************************
151 * Structure used with ioctl commands for DIGI parameters.
152 ************************************************************************/
 
 
 
 
 
 
 
 
 
 
 
 
153struct digi_t {
154	unsigned short	digi_flags;		/* Flags (see above)	*/
155	unsigned short	digi_maxcps;		/* Max printer CPS	*/
156	unsigned short	digi_maxchar;		/* Max chars in print queue */
157	unsigned short	digi_bufsize;		/* Buffer size		*/
158	unsigned char	digi_onlen;		/* Length of ON string	*/
159	unsigned char	digi_offlen;		/* Length of OFF string	*/
160	char		digi_onstr[DIGI_PLEN];	/* Printer on string	*/
161	char		digi_offstr[DIGI_PLEN];	/* Printer off string	*/
162	char		digi_term[DIGI_TSIZ];	/* terminal string	*/
163};
164
165/************************************************************************
166 * KME definitions and structures.
167 ************************************************************************/
168#define	RW_IDLE		0	/* Operation complete			*/
169#define	RW_READ		1	/* Read Concentrator Memory		*/
170#define	RW_WRITE	2	/* Write Concentrator Memory		*/
171
172struct rw_t {
173	unsigned char	rw_req;		/* Request type			*/
174	unsigned char	rw_board;	/* Host Adapter board number	*/
175	unsigned char	rw_conc;	/* Concentrator number		*/
176	unsigned char	rw_reserved;	/* Reserved for expansion	*/
177	unsigned int	rw_addr;	/* Address in concentrator	*/
178	unsigned short	rw_size;	/* Read/write request length	*/
179	unsigned char	rw_data[128];	/* Data to read/write		*/
180};
181
182/***********************************************************************
183 * Shrink Buffer and Board Information definitions and structures.
184
185 ************************************************************************/
186			/* Board type return codes */
187#define	PCXI_TYPE 1     /* Board type at the designated port is a PC/Xi */
188#define PCXM_TYPE 2     /* Board type at the designated port is a PC/Xm */
189#define	PCXE_TYPE 3     /* Board type at the designated port is a PC/Xe */
190#define	MCXI_TYPE 4     /* Board type at the designated port is a MC/Xi */
191#define COMXI_TYPE 5     /* Board type at the designated port is a COM/Xi */
192
193			 /* Non-Zero Result codes. */
194#define RESULT_NOBDFND 1 /* A Digi product at that port is not config installed */
195#define RESULT_NODESCT 2 /* A memory descriptor was not obtainable */
196#define RESULT_NOOSSIG 3 /* FEP/OS signature was not detected on the board */
197#define RESULT_TOOSML  4 /* Too small an area to shrink.  */
198#define RESULT_NOCHAN  5 /* Channel structure for the board was not found */
199
200struct shrink_buf_struct {
201	unsigned int	shrink_buf_vaddr;	/* Virtual address of board */
202	unsigned int	shrink_buf_phys;	/* Physical address of board */
203	unsigned int	shrink_buf_bseg;	/* Amount of board memory */
204	unsigned int	shrink_buf_hseg;	/* '186 Beginning of Dual-Port */
205
206	unsigned int	shrink_buf_lseg;	/* '186 Beginning of freed memory */
207	unsigned int	shrink_buf_mseg;	/* Linear address from start of
208						   dual-port were freed memory
209						   begins, host viewpoint. */
210
211	unsigned int	shrink_buf_bdparam;	/* Parameter for xxmemon and
212						   xxmemoff */
213
214	unsigned int	shrink_buf_reserva;	/* Reserved */
215	unsigned int	shrink_buf_reservb;	/* Reserved */
216	unsigned int	shrink_buf_reservc;	/* Reserved */
217	unsigned int	shrink_buf_reservd;	/* Reserved */
218
219	unsigned char	shrink_buf_result;	/* Reason for call failing
220						   Zero is Good return */
221	unsigned char	shrink_buf_init;	/* Non-Zero if it caused an
222						   xxinit call. */
223
224	unsigned char	shrink_buf_anports;	/* Number of async ports  */
225	unsigned char	shrink_buf_snports; 	/* Number of sync  ports */
226	unsigned char	shrink_buf_type;	/* Board type 1 = PC/Xi,
227							      2 = PC/Xm,
228							      3 = PC/Xe
229							      4 = MC/Xi
230							      5 = COMX/i */
231	unsigned char	shrink_buf_card;	/* Card number */
232
233};
234
235/************************************************************************
236 * Structure to get driver status information
237 ************************************************************************/
238struct digi_dinfo {
239	unsigned int	dinfo_nboards;		/* # boards configured	*/
240	char		dinfo_reserved[12];	/* for future expansion */
241	char		dinfo_version[16];	/* driver version       */
242};
243
244#define	DIGI_GETDD	('d'<<8) | 248		/* get driver info      */
245
246/************************************************************************
247 * Structure used with ioctl commands for per-board information
248 *
249 * physsize and memsize differ when board has "windowed" memory
250 ************************************************************************/
251struct digi_info {
252	unsigned int	info_bdnum;		/* Board number (0 based)  */
253	unsigned int	info_ioport;		/* io port address         */
254	unsigned int	info_physaddr;		/* memory address          */
255	unsigned int	info_physsize;		/* Size of host mem window */
256	unsigned int	info_memsize;		/* Amount of dual-port mem */
257						/* on board                */
258	unsigned short	info_bdtype;		/* Board type              */
259	unsigned short	info_nports;		/* number of ports         */
260	char		info_bdstate;		/* board state             */
261	char		info_reserved[7];	/* for future expansion    */
262};
263
264#define	DIGI_GETBD	('d'<<8) | 249		/* get board info          */
265
266struct digi_stat {
267	unsigned int	info_chan;		/* Channel number (0 based)  */
268	unsigned int	info_brd;		/* Board number (0 based)  */
269	unsigned int	info_cflag;		/* cflag for channel       */
270	unsigned int	info_iflag;		/* iflag for channel       */
271	unsigned int	info_oflag;		/* oflag for channel       */
272	unsigned int	info_mstat;		/* mstat for channel       */
273	unsigned int	info_tx_data;		/* tx_data for channel       */
274	unsigned int	info_rx_data;		/* rx_data for channel       */
275	unsigned int	info_hflow;		/* hflow for channel       */
276	unsigned int	info_reserved[8];	/* for future expansion    */
277};
278
279#define	DIGI_GETSTAT	('d'<<8) | 244		/* get board info          */
280/************************************************************************
281 *
282 * Structure used with ioctl commands for per-channel information
283 *
284 ************************************************************************/
285struct digi_ch {
286	unsigned int	info_bdnum;		/* Board number (0 based)  */
287	unsigned int	info_channel;		/* Channel index number    */
288	unsigned int	info_ch_cflag;		/* Channel cflag   	   */
289	unsigned int	info_ch_iflag;		/* Channel iflag   	   */
290	unsigned int	info_ch_oflag;		/* Channel oflag   	   */
291	unsigned int	info_chsize;		/* Channel structure size  */
292	unsigned int	info_sleep_stat;	/* sleep status		   */
293	dev_t		info_dev;		/* device number	   */
294	unsigned char	info_initstate;		/* Channel init state	   */
295	unsigned char	info_running;		/* Channel running state   */
296	int		reserved[8];		/* reserved for future use */
297};
298
299/*
300* This structure is used with the DIGI_FEPCMD ioctl to
301* tell the driver which port to send the command for.
302*/
303struct digi_cmd {
304	int	cmd;
305	int	word;
306	int	ncmds;
307	int	chan; /* channel index (zero based) */
308	int	bdid; /* board index (zero based) */
309};
310
311
312struct digi_getbuffer /* Struct for holding buffer use counts */
313{
314	unsigned long tIn;
315	unsigned long tOut;
316	unsigned long rxbuf;
317	unsigned long txbuf;
318	unsigned long txdone;
319};
320
 
 
 
 
 
 
 
 
 
 
321struct digi_getcounter {
322	unsigned long norun;		/* number of UART overrun errors */
323	unsigned long noflow;		/* number of buffer overflow errors */
324	unsigned long nframe;		/* number of framing errors */
325	unsigned long nparity;		/* number of parity errors */
326	unsigned long nbreak;		/* number of breaks received */
327	unsigned long rbytes;		/* number of received bytes */
328	unsigned long tbytes;		/* number of bytes transmitted fully */
329};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
330
331/*
332*  info_sleep_stat defines
333*/
334#define INFO_RUNWAIT	0x0001
335#define INFO_WOPEN	0x0002
336#define INFO_TTIOW	0x0004
337#define INFO_CH_RWAIT	0x0008
338#define INFO_CH_WEMPTY	0x0010
339#define INFO_CH_WLOW	0x0020
340#define INFO_XXBUF_BUSY 0x0040
341
342#define	DIGI_GETCH	('d'<<8) | 245		/* get board info          */
343
344/* Board type definitions */
345
346#define	SUBTYPE		0007
347#define	T_PCXI		0000
348#define T_PCXM		0001
349#define T_PCXE		0002
350#define T_PCXR		0003
351#define T_SP		0004
352#define T_SP_PLUS	0005
353#	define T_HERC	0000
354#	define T_HOU	0001
355#	define T_LON	0002
356#	define T_CHA	0003
357#define FAMILY		0070
358#define T_COMXI		0000
359#define T_PCXX		0010
360#define T_CX		0020
361#define T_EPC		0030
362#define	T_PCLITE	0040
363#define	T_SPXX		0050
364#define	T_AVXX		0060
365#define T_DXB		0070
366#define T_A2K_4_8	0070
367#define BUSTYPE		0700
368#define T_ISABUS	0000
369#define T_MCBUS		0100
370#define	T_EISABUS	0200
371#define	T_PCIBUS	0400
372
373/* Board State Definitions */
374
375#define	BD_RUNNING	0x0
376#define	BD_REASON	0x7f
377#define	BD_NOTFOUND	0x1
378#define	BD_NOIOPORT	0x2
379#define	BD_NOMEM	0x3
380#define	BD_NOBIOS	0x4
381#define	BD_NOFEP	0x5
382#define	BD_FAILED	0x6
383#define BD_ALLOCATED	0x7
384#define BD_TRIBOOT	0x8
385#define	BD_BADKME	0x80
386
387#define DIGI_SPOLL            ('d'<<8) | 254  /* change poller rate   */
388
389#define DIGI_SETCUSTOMBAUD	_IOW('e', 106, int)	/* Set integer baud rate */
390#define DIGI_GETCUSTOMBAUD	_IOR('e', 107, int)	/* Get integer baud rate */
391
392#define DIGI_REALPORT_GETBUFFERS ('e'<<8 ) | 108
393#define DIGI_REALPORT_SENDIMMEDIATE ('e'<<8 ) | 109
394#define DIGI_REALPORT_GETCOUNTERS ('e'<<8 ) | 110
395#define DIGI_REALPORT_GETEVENTS ('e'<<8 ) | 111
396
397#define EV_OPU		0x0001		//!<Output paused by client
398#define EV_OPS		0x0002		//!<Output paused by reqular sw flowctrl
399#define EV_OPX		0x0004		//!<Output paused by extra sw flowctrl
400#define EV_OPH		0x0008		//!<Output paused by hw flowctrl
401#define EV_OPT		0x0800		//!<Output paused for RTS Toggle predelay
402
403#define EV_IPU		0x0010		//!<Input paused unconditionally by user
404#define EV_IPS		0x0020		//!<Input paused by high/low water marks
405//#define EV_IPH	0x0040		//!<Input paused w/ hardware
406#define EV_IPA		0x0400		//!<Input paused by pattern alarm module
407
408#define EV_TXB		0x0040		//!<Transmit break pending
409#define EV_TXI		0x0080		//!<Transmit immediate pending
410#define EV_TXF		0x0100		//!<Transmit flowctrl char pending
411#define EV_RXB		0x0200		//!<Break received
412
413#define EV_OPALL	0x080f		//!<Output pause flags
414#define EV_IPALL	0x0430		//!<Input pause flags
415
416#endif /* DIGI_H */
v4.17
  1/* SPDX-License-Identifier: GPL-2.0+ */
  2/*
  3 * Copyright 2003 Digi International (www.digi.com)
  4 *	Scott H Kilau <Scott_Kilau at digi dot com>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  5 */
  6
  7#ifndef _DIGI_H
  8#define _DIGI_H
  9
 10#define DIGI_GETA	(('e' << 8) | 94)	/* Read params */
 11#define DIGI_SETA	(('e' << 8) | 95)	/* Set params */
 12#define DIGI_SETAW	(('e' << 8) | 96)	/* Drain & set params */
 13#define DIGI_SETAF	(('e' << 8) | 97)	/* Drain, flush & set params */
 14#define DIGI_LOOPBACK (('d' << 8) | 252)	/* Enable/disable UART
 15						 * internal loopback
 16						 */
 17#define DIGI_FAST	0x0002		/* Fast baud rates */
 18#define RTSPACE		0x0004		/* RTS input flow control */
 19#define CTSPACE		0x0008		/* CTS output flow control */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 20#define DIGI_COOK	0x0080		/* Cooked processing done in FEP */
 21#define DIGI_FORCEDCD	0x0100		/* Force carrier */
 22#define	DIGI_ALTPIN	0x0200		/* Alternate RJ-45 pin config */
 
 23#define	DIGI_PRINTER	0x0800		/* Hold port open for flow cntrl*/
 24#define DIGI_DTR_TOGGLE	0x2000		/* Support DTR Toggle */
 25#define DIGI_RTS_TOGGLE	0x8000		/* Support RTS Toggle */
 26#define DIGI_PLEN	28		/* String length */
 27#define	DIGI_TSIZ	10		/* Terminal string len */
 
 
 
 
 
 28
 29/*
 
 
 
 30 * Structure used with ioctl commands for DIGI parameters.
 31 */
 32/**
 33 * struct digi_t - Ioctl commands for DIGI parameters.
 34 * @digi_flags: Flags.
 35 * @digi_maxcps: Maximum printer CPS.
 36 * @digi_maxchar: Maximum characters in the print queue.
 37 * @digi_bufsize: Buffer size.
 38 * @digi_onlen: Length of ON string.
 39 * @digi_offlen: Length of OFF string.
 40 * @digi_onstr: Printer ON string.
 41 * @digi_offstr: Printer OFF string.
 42 * @digi_term: Terminal string.
 43 */
 44struct digi_t {
 45	unsigned short	digi_flags;
 46	unsigned short	digi_maxcps;
 47	unsigned short	digi_maxchar;
 48	unsigned short	digi_bufsize;
 49	unsigned char	digi_onlen;
 50	unsigned char	digi_offlen;
 51	char		digi_onstr[DIGI_PLEN];
 52	char		digi_offstr[DIGI_PLEN];
 53	char		digi_term[DIGI_TSIZ];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 54};
 55
 56/**
 57 * struct digi_getbuffer - Holds buffer use counts.
 58 */
 59struct digi_getbuffer {
 60	unsigned long tx_in;
 61	unsigned long tx_out;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 62	unsigned long rxbuf;
 63	unsigned long txbuf;
 64	unsigned long txdone;
 65};
 66
 67/**
 68 * struct digi_getcounter
 69 * @norun: Number of UART overrun errors.
 70 * @noflow: Number of buffer overflow errors.
 71 * @nframe: Number of framing errors.
 72 * @nparity: Number of parity errors.
 73 * @nbreak: Number of breaks received.
 74 * @rbytes: Number of received bytes.
 75 * @tbytes: Number of transmitted bytes.
 76 */
 77struct digi_getcounter {
 78	unsigned long norun;
 79	unsigned long noflow;
 80	unsigned long nframe;
 81	unsigned long nparity;
 82	unsigned long nbreak;
 83	unsigned long rbytes;
 84	unsigned long tbytes;
 85};
 86
 87#define DIGI_SETCUSTOMBAUD _IOW('e', 106, int)	/* Set integer baud rate */
 88#define DIGI_GETCUSTOMBAUD _IOR('e', 107, int)	/* Get integer baud rate */
 89
 90#define DIGI_REALPORT_GETBUFFERS (('e' << 8) | 108)
 91#define DIGI_REALPORT_SENDIMMEDIATE (('e' << 8) | 109)
 92#define DIGI_REALPORT_GETCOUNTERS (('e' << 8) | 110)
 93#define DIGI_REALPORT_GETEVENTS (('e' << 8) | 111)
 94
 95#define EV_OPU 0x0001 /* Output paused by client */
 96#define EV_OPS 0x0002 /* Output paused by regular sw flowctrl */
 97#define EV_IPU 0x0010 /* Input paused unconditionally by user */
 98#define EV_IPS 0x0020 /* Input paused by high/low water marks */
 99#define EV_TXB 0x0040 /* Transmit break pending */
100
101/**
102 * struct ni_info - intelligent <--> non-intelligent DPA translation.
103 */
104struct ni_info {
105	int board;
106	int channel;
107	int dtr;
108	int rts;
109	int cts;
110	int dsr;
111	int ri;
112	int dcd;
113	int curtx;
114	int currx;
115	unsigned short iflag;
116	unsigned short oflag;
117	unsigned short cflag;
118	unsigned short lflag;
119	unsigned int mstat;
120	unsigned char hflow;
121	unsigned char xmit_stopped;
122	unsigned char recv_stopped;
123	unsigned int baud;
124};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
126#define TTY_FLIPBUF_SIZE 512
 
127
128#endif	/* _DIGI_H */