Home | History | Annotate | Download | only in sys
      1 /* Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2  * Use of this source code is governed by a BSD-style license that can be
      3  * found in the LICENSE file. */
      4 
      5 #ifndef LIBRARIES_NACL_IO_INCLUDE_SYS_TERMIOS_H_
      6 #define LIBRARIES_NACL_IO_INCLUDE_SYS_TERMIOS_H_
      7 
      8 #define IGNBRK  0000001
      9 #define BRKINT  0000002
     10 #define IGNPAR  0000004
     11 #define PARMRK  0000010
     12 #define INPCK   0000020
     13 #define ISTRIP  0000040
     14 #define INLCR   0000100
     15 #define IGNCR   0000200
     16 #define ICRNL   0000400
     17 #define IUCLC   0001000
     18 #define IXON    0002000
     19 #define IXANY   0004000
     20 #define IXOFF   0010000
     21 #define IMAXBEL 0020000
     22 #define IUTF8   0040000
     23 
     24 #define OPOST   000001
     25 #define OCRNL   000004
     26 #define ONLCR   000010
     27 #define ONOCR   000020
     28 #define ONLRET  000040
     29 #define TAB3    014000
     30 
     31 #define CLOCAL  004000
     32 #define CREAD   000200
     33 #define PARODD  001000
     34 #define CSIZE   000060
     35 #define CS5     0
     36 #define CS6     020
     37 #define CS7     040
     38 #define CS8     060
     39 #define CSTOPB  000100
     40 #define HUPCL   002000
     41 #define PARENB  000400
     42 #define PAODD   001000
     43 
     44 #define ECHO    0000010
     45 #define ECHOE   0000020
     46 #define ECHOK   0000040
     47 #define ECHONL  0000100
     48 #define ICANON  0000002
     49 #define IEXTEN  0100000
     50 #define ISIG    0000001
     51 #define NOFLSH  0000200
     52 #define TOSTOP  0000400
     53 #define ECHOCTL 0001000
     54 #define ECHOPRT 0002000
     55 #define ECHOKE  0004000
     56 #define FLUSHO  0010000
     57 #define PENDIN  0040000
     58 
     59 #define VINTR     0
     60 #define VQUIT     1
     61 #define VERASE    2
     62 #define VKILL     3
     63 #define VEOF      4
     64 #define VTIME     5
     65 #define VMIN      6
     66 #define VSWTC     7
     67 #define VSTART    8
     68 #define VSTOP     9
     69 #define VSUSP    10
     70 #define VEOL     11
     71 #define VREPRINT 12
     72 #define VDISCARD 13
     73 #define VWERASE  14
     74 #define VLNEXT   15
     75 #define VEOL2    16
     76 
     77 #define B0      000000
     78 #define B50     000001
     79 #define B75     000002
     80 #define B110    000003
     81 #define B134    000004
     82 #define B150    000005
     83 #define B200    000006
     84 #define B300    000007
     85 #define B600    000010
     86 #define B1200   000011
     87 #define B1800   000012
     88 #define B2400   000013
     89 #define B4800   000014
     90 #define B9600   000015
     91 #define B19200  000016
     92 #define B38400  000017
     93 
     94 #define TCIFLUSH  0
     95 #define TCOFLUSH  1
     96 #define TCIOFLUSH 2
     97 
     98 #define TCSANOW   0
     99 #define TCSADRAIN 1
    100 #define TCSAFLUSH 2
    101 
    102 #define TCOOFF    0
    103 #define TCOON     1
    104 #define TCIOFF    2
    105 #define TCION     3
    106 
    107 typedef unsigned char cc_t;
    108 typedef unsigned short tcflag_t;
    109 typedef char speed_t;
    110 
    111 #define NCCS 32
    112 struct termios {
    113   tcflag_t c_iflag;
    114   tcflag_t c_oflag;
    115   tcflag_t c_cflag;
    116   tcflag_t c_lflag;
    117   char c_line;
    118   cc_t c_cc[NCCS];
    119   speed_t c_ispeed;
    120   speed_t c_ospeed;
    121 };
    122 
    123 #include <sys/cdefs.h>
    124 
    125 __BEGIN_DECLS
    126 
    127 speed_t cfgetispeed(const struct termios* termios_p);
    128 speed_t cfgetospeed(const struct termios* termios_p);
    129 int cfsetispeed(struct termios* termios_p, speed_t speed);
    130 int cfsetospeed(struct termios* termios_p, speed_t speed);
    131 int cfsetspeed(struct termios* termios_p, speed_t speed);
    132 
    133 int tcdrain(int fd);
    134 int tcflow(int fd, int action);
    135 int tcflush(int fd, int queue_selector);
    136 int tcgetattr(int fd, struct termios* termios_p);
    137 int tcsendbreak(int fd, int duration);
    138 int tcsetattr(int fd, int optional_actions, const struct termios* termios_p);
    139 
    140 __END_DECLS
    141 
    142 #endif  /* LIBRARIES_NACL_IO_INCLUDE_SYS_TERMIOS_H_ */
    143