blob: b414ee80db88604b0ea2022f5594a9dcca136064 [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright 2003 Digi International (www.digi.com)
* Scott H Kilau <Scott_Kilau at digi dot com>
*/
#ifndef _DIGI_H
#define _DIGI_H
#define DIGI_GETA (('e' << 8) | 94) /* Read params */
#define DIGI_SETA (('e' << 8) | 95) /* Set params */
#define DIGI_SETAW (('e' << 8) | 96) /* Drain & set params */
#define DIGI_SETAF (('e' << 8) | 97) /* Drain, flush & set params */
#define DIGI_LOOPBACK (('d' << 8) | 252) /* Enable/disable UART
* internal loopback
*/
#define DIGI_FAST 0x0002 /* Fast baud rates */
#define RTSPACE 0x0004 /* RTS input flow control */
#define CTSPACE 0x0008 /* CTS output flow control */
#define DIGI_COOK 0x0080 /* Cooked processing done in FEP */
#define DIGI_FORCEDCD 0x0100 /* Force carrier */
#define DIGI_ALTPIN 0x0200 /* Alternate RJ-45 pin config */
#define DIGI_PRINTER 0x0800 /* Hold port open for flow cntrl*/
#define DIGI_DTR_TOGGLE 0x2000 /* Support DTR Toggle */
#define DIGI_RTS_TOGGLE 0x8000 /* Support RTS Toggle */
#define DIGI_PLEN 28 /* String length */
#define DIGI_TSIZ 10 /* Terminal string len */
/*
* Structure used with ioctl commands for DIGI parameters.
*/
/**
* struct digi_t - Ioctl commands for DIGI parameters.
* @digi_flags: Flags.
* @digi_maxcps: Maximum printer CPS.
* @digi_maxchar: Maximum characters in the print queue.
* @digi_bufsize: Buffer size.
* @digi_onlen: Length of ON string.
* @digi_offlen: Length of OFF string.
* @digi_onstr: Printer ON string.
* @digi_offstr: Printer OFF string.
* @digi_term: Terminal string.
*/
struct digi_t {
unsigned short digi_flags;
unsigned short digi_maxcps;
unsigned short digi_maxchar;
unsigned short digi_bufsize;
unsigned char digi_onlen;
unsigned char digi_offlen;
char digi_onstr[DIGI_PLEN];
char digi_offstr[DIGI_PLEN];
char digi_term[DIGI_TSIZ];
};
/**
* struct digi_getbuffer - Holds buffer use counts.
*/
struct digi_getbuffer {
unsigned long tx_in;
unsigned long tx_out;
unsigned long rxbuf;
unsigned long txbuf;
unsigned long txdone;
};
/**
* struct digi_getcounter
* @norun: Number of UART overrun errors.
* @noflow: Number of buffer overflow errors.
* @nframe: Number of framing errors.
* @nparity: Number of parity errors.
* @nbreak: Number of breaks received.
* @rbytes: Number of received bytes.
* @tbytes: Number of transmitted bytes.
*/
struct digi_getcounter {
unsigned long norun;
unsigned long noflow;
unsigned long nframe;
unsigned long nparity;
unsigned long nbreak;
unsigned long rbytes;
unsigned long tbytes;
};
#define DIGI_SETCUSTOMBAUD _IOW('e', 106, int) /* Set integer baud rate */
#define DIGI_GETCUSTOMBAUD _IOR('e', 107, int) /* Get integer baud rate */
#define DIGI_REALPORT_GETBUFFERS (('e' << 8) | 108)
#define DIGI_REALPORT_SENDIMMEDIATE (('e' << 8) | 109)
#define DIGI_REALPORT_GETCOUNTERS (('e' << 8) | 110)
#define DIGI_REALPORT_GETEVENTS (('e' << 8) | 111)
#define EV_OPU 0x0001 /* Output paused by client */
#define EV_OPS 0x0002 /* Output paused by regular sw flowctrl */
#define EV_IPU 0x0010 /* Input paused unconditionally by user */
#define EV_IPS 0x0020 /* Input paused by high/low water marks */
#define EV_TXB 0x0040 /* Transmit break pending */
/**
* struct ni_info - intelligent <--> non-intelligent DPA translation.
*/
struct ni_info {
int board;
int channel;
int dtr;
int rts;
int cts;
int dsr;
int ri;
int dcd;
int curtx;
int currx;
unsigned short iflag;
unsigned short oflag;
unsigned short cflag;
unsigned short lflag;
unsigned int mstat;
unsigned char hflow;
unsigned char xmit_stopped;
unsigned char recv_stopped;
unsigned int baud;
};
#define TTY_FLIPBUF_SIZE 512
#endif /* _DIGI_H */