linux/include/uapi/asm-generic/termbits.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2#ifndef __ASM_GENERIC_TERMBITS_H
   3#define __ASM_GENERIC_TERMBITS_H
   4
   5#include <linux/posix_types.h>
   6
   7typedef unsigned char   cc_t;
   8typedef unsigned int    speed_t;
   9typedef unsigned int    tcflag_t;
  10
  11#define NCCS 19
  12struct termios {
  13        tcflag_t c_iflag;               /* input mode flags */
  14        tcflag_t c_oflag;               /* output mode flags */
  15        tcflag_t c_cflag;               /* control mode flags */
  16        tcflag_t c_lflag;               /* local mode flags */
  17        cc_t c_line;                    /* line discipline */
  18        cc_t c_cc[NCCS];                /* control characters */
  19};
  20
  21struct termios2 {
  22        tcflag_t c_iflag;               /* input mode flags */
  23        tcflag_t c_oflag;               /* output mode flags */
  24        tcflag_t c_cflag;               /* control mode flags */
  25        tcflag_t c_lflag;               /* local mode flags */
  26        cc_t c_line;                    /* line discipline */
  27        cc_t c_cc[NCCS];                /* control characters */
  28        speed_t c_ispeed;               /* input speed */
  29        speed_t c_ospeed;               /* output speed */
  30};
  31
  32struct ktermios {
  33        tcflag_t c_iflag;               /* input mode flags */
  34        tcflag_t c_oflag;               /* output mode flags */
  35        tcflag_t c_cflag;               /* control mode flags */
  36        tcflag_t c_lflag;               /* local mode flags */
  37        cc_t c_line;                    /* line discipline */
  38        cc_t c_cc[NCCS];                /* control characters */
  39        speed_t c_ispeed;               /* input speed */
  40        speed_t c_ospeed;               /* output speed */
  41};
  42
  43/* c_cc characters */
  44#define VINTR 0
  45#define VQUIT 1
  46#define VERASE 2
  47#define VKILL 3
  48#define VEOF 4
  49#define VTIME 5
  50#define VMIN 6
  51#define VSWTC 7
  52#define VSTART 8
  53#define VSTOP 9
  54#define VSUSP 10
  55#define VEOL 11
  56#define VREPRINT 12
  57#define VDISCARD 13
  58#define VWERASE 14
  59#define VLNEXT 15
  60#define VEOL2 16
  61
  62/* c_iflag bits */
  63#define IGNBRK  0000001
  64#define BRKINT  0000002
  65#define IGNPAR  0000004
  66#define PARMRK  0000010
  67#define INPCK   0000020
  68#define ISTRIP  0000040
  69#define INLCR   0000100
  70#define IGNCR   0000200
  71#define ICRNL   0000400
  72#define IUCLC   0001000
  73#define IXON    0002000
  74#define IXANY   0004000
  75#define IXOFF   0010000
  76#define IMAXBEL 0020000
  77#define IUTF8   0040000
  78
  79/* c_oflag bits */
  80#define OPOST   0000001
  81#define OLCUC   0000002
  82#define ONLCR   0000004
  83#define OCRNL   0000010
  84#define ONOCR   0000020
  85#define ONLRET  0000040
  86#define OFILL   0000100
  87#define OFDEL   0000200
  88#define NLDLY   0000400
  89#define   NL0   0000000
  90#define   NL1   0000400
  91#define CRDLY   0003000
  92#define   CR0   0000000
  93#define   CR1   0001000
  94#define   CR2   0002000
  95#define   CR3   0003000
  96#define TABDLY  0014000
  97#define   TAB0  0000000
  98#define   TAB1  0004000
  99#define   TAB2  0010000
 100#define   TAB3  0014000
 101#define   XTABS 0014000
 102#define BSDLY   0020000
 103#define   BS0   0000000
 104#define   BS1   0020000
 105#define VTDLY   0040000
 106#define   VT0   0000000
 107#define   VT1   0040000
 108#define FFDLY   0100000
 109#define   FF0   0000000
 110#define   FF1   0100000
 111
 112/* c_cflag bit meaning */
 113#define CBAUD   0010017
 114#define  B0     0000000         /* hang up */
 115#define  B50    0000001
 116#define  B75    0000002
 117#define  B110   0000003
 118#define  B134   0000004
 119#define  B150   0000005
 120#define  B200   0000006
 121#define  B300   0000007
 122#define  B600   0000010
 123#define  B1200  0000011
 124#define  B1800  0000012
 125#define  B2400  0000013
 126#define  B4800  0000014
 127#define  B9600  0000015
 128#define  B19200 0000016
 129#define  B38400 0000017
 130#define EXTA B19200
 131#define EXTB B38400
 132#define CSIZE   0000060
 133#define   CS5   0000000
 134#define   CS6   0000020
 135#define   CS7   0000040
 136#define   CS8   0000060
 137#define CSTOPB  0000100
 138#define CREAD   0000200
 139#define PARENB  0000400
 140#define PARODD  0001000
 141#define HUPCL   0002000
 142#define CLOCAL  0004000
 143#define CBAUDEX 0010000
 144#define    BOTHER 0010000
 145#define    B57600 0010001
 146#define   B115200 0010002
 147#define   B230400 0010003
 148#define   B460800 0010004
 149#define   B500000 0010005
 150#define   B576000 0010006
 151#define   B921600 0010007
 152#define  B1000000 0010010
 153#define  B1152000 0010011
 154#define  B1500000 0010012
 155#define  B2000000 0010013
 156#define  B2500000 0010014
 157#define  B3000000 0010015
 158#define  B3500000 0010016
 159#define  B4000000 0010017
 160#define CIBAUD    002003600000  /* input baud rate */
 161#define CMSPAR    010000000000  /* mark or space (stick) parity */
 162#define CRTSCTS   020000000000  /* flow control */
 163
 164#define IBSHIFT   16            /* Shift from CBAUD to CIBAUD */
 165
 166/* c_lflag bits */
 167#define ISIG    0000001
 168#define ICANON  0000002
 169#define XCASE   0000004
 170#define ECHO    0000010
 171#define ECHOE   0000020
 172#define ECHOK   0000040
 173#define ECHONL  0000100
 174#define NOFLSH  0000200
 175#define TOSTOP  0000400
 176#define ECHOCTL 0001000
 177#define ECHOPRT 0002000
 178#define ECHOKE  0004000
 179#define FLUSHO  0010000
 180#define PENDIN  0040000
 181#define IEXTEN  0100000
 182#define EXTPROC 0200000
 183
 184/* tcflow() and TCXONC use these */
 185#define TCOOFF          0
 186#define TCOON           1
 187#define TCIOFF          2
 188#define TCION           3
 189
 190/* tcflush() and TCFLSH use these */
 191#define TCIFLUSH        0
 192#define TCOFLUSH        1
 193#define TCIOFLUSH       2
 194
 195/* tcsetattr uses these */
 196#define TCSANOW         0
 197#define TCSADRAIN       1
 198#define TCSAFLUSH       2
 199
 200#endif /* __ASM_GENERIC_TERMBITS_H */
 201