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