linux/arch/sparc/include/uapi/asm/termbits.h
<<
>>
Prefs
   1#ifndef _UAPI_SPARC_TERMBITS_H
   2#define _UAPI_SPARC_TERMBITS_H
   3
   4#include <linux/posix_types.h>
   5
   6typedef unsigned char   cc_t;
   7typedef unsigned int    speed_t;
   8
   9#if defined(__sparc__) && defined(__arch64__)
  10typedef unsigned int    tcflag_t;
  11#else
  12typedef unsigned long   tcflag_t;
  13#endif
  14
  15#define NCC 8
  16struct termio {
  17        unsigned short c_iflag;         /* input mode flags */
  18        unsigned short c_oflag;         /* output mode flags */
  19        unsigned short c_cflag;         /* control mode flags */
  20        unsigned short c_lflag;         /* local mode flags */
  21        unsigned char c_line;           /* line discipline */
  22        unsigned char c_cc[NCC];        /* control characters */
  23};
  24
  25#define NCCS 17
  26struct termios {
  27        tcflag_t c_iflag;               /* input mode flags */
  28        tcflag_t c_oflag;               /* output mode flags */
  29        tcflag_t c_cflag;               /* control mode flags */
  30        tcflag_t c_lflag;               /* local mode flags */
  31        cc_t c_line;                    /* line discipline */
  32#ifndef __KERNEL__
  33        cc_t c_cc[NCCS];                /* control characters */
  34#else
  35        cc_t c_cc[NCCS+2];      /* kernel needs 2 more to hold vmin/vtime */
  36#define SIZEOF_USER_TERMIOS sizeof (struct termios) - (2*sizeof (cc_t))
  37#endif
  38};
  39
  40struct termios2 {
  41        tcflag_t c_iflag;               /* input mode flags */
  42        tcflag_t c_oflag;               /* output mode flags */
  43        tcflag_t c_cflag;               /* control mode flags */
  44        tcflag_t c_lflag;               /* local mode flags */
  45        cc_t c_line;                    /* line discipline */
  46        cc_t c_cc[NCCS+2];              /* control characters */
  47        speed_t c_ispeed;               /* input speed */
  48        speed_t c_ospeed;               /* output speed */
  49};
  50
  51struct ktermios {
  52        tcflag_t c_iflag;               /* input mode flags */
  53        tcflag_t c_oflag;               /* output mode flags */
  54        tcflag_t c_cflag;               /* control mode flags */
  55        tcflag_t c_lflag;               /* local mode flags */
  56        cc_t c_line;                    /* line discipline */
  57        cc_t c_cc[NCCS+2];              /* control characters */
  58        speed_t c_ispeed;               /* input speed */
  59        speed_t c_ospeed;               /* output speed */
  60};
  61
  62/* c_cc characters */
  63#define VINTR    0
  64#define VQUIT    1
  65#define VERASE   2
  66#define VKILL    3
  67#define VEOF     4
  68#define VEOL     5
  69#define VEOL2    6
  70#define VSWTC    7
  71#define VSTART   8
  72#define VSTOP    9
  73
  74
  75
  76#define VSUSP    10
  77#define VDSUSP   11  /* SunOS POSIX nicety I do believe... */
  78#define VREPRINT 12
  79#define VDISCARD 13
  80#define VWERASE  14
  81#define VLNEXT   15
  82
  83/* Kernel keeps vmin/vtime separated, user apps assume vmin/vtime is
  84 * shared with eof/eol
  85 */
  86#ifndef __KERNEL__
  87#define VMIN     VEOF
  88#define VTIME    VEOL
  89#endif
  90
  91/* c_iflag bits */
  92#define IGNBRK  0x00000001
  93#define BRKINT  0x00000002
  94#define IGNPAR  0x00000004
  95#define PARMRK  0x00000008
  96#define INPCK   0x00000010
  97#define ISTRIP  0x00000020
  98#define INLCR   0x00000040
  99#define IGNCR   0x00000080
 100#define ICRNL   0x00000100
 101#define IUCLC   0x00000200
 102#define IXON    0x00000400
 103#define IXANY   0x00000800
 104#define IXOFF   0x00001000
 105#define IMAXBEL 0x00002000
 106#define IUTF8   0x00004000
 107
 108/* c_oflag bits */
 109#define OPOST   0x00000001
 110#define OLCUC   0x00000002
 111#define ONLCR   0x00000004
 112#define OCRNL   0x00000008
 113#define ONOCR   0x00000010
 114#define ONLRET  0x00000020
 115#define OFILL   0x00000040
 116#define OFDEL   0x00000080
 117#define NLDLY   0x00000100
 118#define   NL0   0x00000000
 119#define   NL1   0x00000100
 120#define CRDLY   0x00000600
 121#define   CR0   0x00000000
 122#define   CR1   0x00000200
 123#define   CR2   0x00000400
 124#define   CR3   0x00000600
 125#define TABDLY  0x00001800
 126#define   TAB0  0x00000000
 127#define   TAB1  0x00000800
 128#define   TAB2  0x00001000
 129#define   TAB3  0x00001800
 130#define   XTABS 0x00001800
 131#define BSDLY   0x00002000
 132#define   BS0   0x00000000
 133#define   BS1   0x00002000
 134#define VTDLY   0x00004000
 135#define   VT0   0x00000000
 136#define   VT1   0x00004000
 137#define FFDLY   0x00008000
 138#define   FF0   0x00000000
 139#define   FF1   0x00008000
 140#define PAGEOUT 0x00010000  /* SUNOS specific */
 141#define WRAP    0x00020000  /* SUNOS specific */
 142
 143/* c_cflag bit meaning */
 144#define CBAUD     0x0000100f
 145#define  B0       0x00000000   /* hang up */
 146#define  B50      0x00000001
 147#define  B75      0x00000002
 148#define  B110     0x00000003
 149#define  B134     0x00000004
 150#define  B150     0x00000005
 151#define  B200     0x00000006
 152#define  B300     0x00000007
 153#define  B600     0x00000008
 154#define  B1200    0x00000009
 155#define  B1800    0x0000000a
 156#define  B2400    0x0000000b
 157#define  B4800    0x0000000c
 158#define  B9600    0x0000000d
 159#define  B19200   0x0000000e
 160#define  B38400   0x0000000f
 161#define EXTA      B19200
 162#define EXTB      B38400
 163#define  CSIZE    0x00000030
 164#define   CS5     0x00000000
 165#define   CS6     0x00000010
 166#define   CS7     0x00000020
 167#define   CS8     0x00000030
 168#define CSTOPB    0x00000040
 169#define CREAD     0x00000080
 170#define PARENB    0x00000100
 171#define PARODD    0x00000200
 172#define HUPCL     0x00000400
 173#define CLOCAL    0x00000800
 174#define CBAUDEX   0x00001000
 175/* We'll never see these speeds with the Zilogs, but for completeness... */
 176#define  BOTHER   0x00001000
 177#define  B57600   0x00001001
 178#define  B115200  0x00001002
 179#define  B230400  0x00001003
 180#define  B460800  0x00001004
 181/* This is what we can do with the Zilogs. */
 182#define  B76800   0x00001005
 183/* This is what we can do with the SAB82532. */
 184#define  B153600  0x00001006
 185#define  B307200  0x00001007
 186#define  B614400  0x00001008
 187#define  B921600  0x00001009
 188/* And these are the rest... */
 189#define  B500000  0x0000100a
 190#define  B576000  0x0000100b
 191#define B1000000  0x0000100c
 192#define B1152000  0x0000100d
 193#define B1500000  0x0000100e
 194#define B2000000  0x0000100f
 195/* These have totally bogus values and nobody uses them
 196   so far. Later on we'd have to use say 0x10000x and
 197   adjust CBAUD constant and drivers accordingly.
 198#define B2500000  0x00001010
 199#define B3000000  0x00001011
 200#define B3500000  0x00001012
 201#define B4000000  0x00001013  */
 202#define CIBAUD    0x100f0000  /* input baud rate (not used) */
 203#define CMSPAR    0x40000000  /* mark or space (stick) parity */
 204#define CRTSCTS   0x80000000  /* flow control */
 205
 206#define IBSHIFT   16            /* Shift from CBAUD to CIBAUD */
 207
 208/* c_lflag bits */
 209#define ISIG    0x00000001
 210#define ICANON  0x00000002
 211#define XCASE   0x00000004
 212#define ECHO    0x00000008
 213#define ECHOE   0x00000010
 214#define ECHOK   0x00000020
 215#define ECHONL  0x00000040
 216#define NOFLSH  0x00000080
 217#define TOSTOP  0x00000100
 218#define ECHOCTL 0x00000200
 219#define ECHOPRT 0x00000400
 220#define ECHOKE  0x00000800
 221#define DEFECHO 0x00001000  /* SUNOS thing, what is it? */
 222#define FLUSHO  0x00002000
 223#define PENDIN  0x00004000
 224#define IEXTEN  0x00008000
 225#define EXTPROC 0x00010000
 226
 227/* modem lines */
 228#define TIOCM_LE        0x001
 229#define TIOCM_DTR       0x002
 230#define TIOCM_RTS       0x004
 231#define TIOCM_ST        0x008
 232#define TIOCM_SR        0x010
 233#define TIOCM_CTS       0x020
 234#define TIOCM_CAR       0x040
 235#define TIOCM_RNG       0x080
 236#define TIOCM_DSR       0x100
 237#define TIOCM_CD        TIOCM_CAR
 238#define TIOCM_RI        TIOCM_RNG
 239#define TIOCM_OUT1      0x2000
 240#define TIOCM_OUT2      0x4000
 241#define TIOCM_LOOP      0x8000
 242
 243/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
 244#define TIOCSER_TEMT    0x01    /* Transmitter physically empty */
 245
 246
 247/* tcflow() and TCXONC use these */
 248#define TCOOFF          0
 249#define TCOON           1
 250#define TCIOFF          2
 251#define TCION           3
 252
 253/* tcflush() and TCFLSH use these */
 254#define TCIFLUSH        0
 255#define TCOFLUSH        1
 256#define TCIOFLUSH       2
 257
 258/* tcsetattr uses these */
 259#define TCSANOW         0
 260#define TCSADRAIN       1
 261#define TCSAFLUSH       2
 262
 263#endif /* _UAPI_SPARC_TERMBITS_H */
 264