linux/drivers/staging/dgnc/digi.h
<<
>>
Prefs
   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 */
 129