#ifndef _SYS_TERMIOS_H
#define _SYS_TERMIOS_H
#include <sys/feature_tests.h>
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#include <sys/ttydev.h>
#include <sys/time.h>
#endif
#include <sys/types.h>
#ifdef __cplusplus
extern "C" {
#endif
#if !defined(_XPG6) || defined(__EXTENSIONS__)
#ifndef _POSIX_VDISABLE
#define _POSIX_VDISABLE 0
#endif
#endif
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define CTRL(c) ((c)&037)
#define IBSHIFT 16
#endif
#define _NCC 8
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define NCC _NCC
#endif
#define NCCS 19
typedef unsigned int tcflag_t;
typedef unsigned char cc_t;
typedef unsigned int speed_t;
struct termios {
tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_cflag;
tcflag_t c_lflag;
cc_t c_cc[NCCS];
};
#ifndef _KERNEL
extern speed_t cfgetospeed(const struct termios *);
extern int cfsetospeed(struct termios *, speed_t);
extern speed_t cfgetispeed(const struct termios *);
extern int cfsetispeed(struct termios *, speed_t);
extern int tcgetattr(int, struct termios *);
extern int tcsetattr(int, int, const struct termios *);
extern int tcsendbreak(int, int);
extern int tcdrain(int);
extern int tcflush(int, int);
extern int tcflow(int, int);
#if !defined(__XOPEN_OR_POSIX) || defined(_XPG4_2) || defined(__EXTENSIONS__)
extern pid_t tcgetsid(int);
#endif
#endif
#define VINTR 0
#define VQUIT 1
#define VERASE 2
#define VKILL 3
#define VEOF 4
#define VEOL 5
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define VEOL2 6
#endif
#define VMIN 4
#define VTIME 5
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define VSWTCH 7
#endif
#define VSTART 8
#define VSTOP 9
#define VSUSP 10
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define VDSUSP 11
#define VREPRINT 12
#define VDISCARD 13
#define VWERASE 14
#define VLNEXT 15
#define VSTATUS 16
#define VERASE2 17
#define VCEOF NCC
#define VCEOL (NCC + 1)
#define CNUL 0
#define CDEL 0177
#define CESC '\\'
#define CINTR CTRL('c')
#define CQUIT 034
#define CERASE 0177
#define CERASE2 CTRL('h')
#define CKILL CTRL('u')
#define CEOT 04
#define CEOL 0
#define CEOL2 0
#define CEOF 04
#define CSTART 021
#define CSTOP 023
#define CSWTCH 032
#define CNSWTCH 0
#define CSUSP CTRL('z')
#define CDSUSP CTRL('y')
#define CRPRNT CTRL('r')
#define CFLUSH CTRL('o')
#define CWERASE CTRL('w')
#define CLNEXT CTRL('v')
#define CSTATUS CTRL('t')
#endif
#define IGNBRK 0000001
#define BRKINT 0000002
#define IGNPAR 0000004
#define PARMRK 0000010
#define INPCK 0000020
#define ISTRIP 0000040
#define INLCR 0000100
#define IGNCR 0000200
#define ICRNL 0000400
#if !defined(_POSIX_C_SOURCE) || \
(defined(_XOPEN_SOURCE) && !defined(_XPG6)) || \
defined(__EXTENSIONS__)
#define IUCLC 0001000
#endif
#define IXON 0002000
#if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
defined(__EXTENSIONS__)
#define IXANY 0004000
#endif
#define IXOFF 0010000
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define IMAXBEL 0020000
#define DOSMODE 0100000
#endif
#define OPOST 0000001
#if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
defined(__EXTENSIONS__)
#if !defined(_XPG6) || defined(__EXTENSIONS__)
#define OLCUC 0000002
#endif
#define ONLCR 0000004
#define OCRNL 0000010
#define ONOCR 0000020
#define ONLRET 0000040
#define OFILL 0000100
#define OFDEL 0000200
#define NLDLY 0000400
#define NL0 0
#define NL1 0000400
#define CRDLY 0003000
#define CR0 0
#define CR1 0001000
#define CR2 0002000
#define CR3 0003000
#define TABDLY 0014000
#define TAB0 0
#define TAB1 0004000
#define TAB2 0010000
#define TAB3 0014000
#endif
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define XTABS 0014000
#endif
#if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
defined(__EXTENSIONS__)
#define BSDLY 0020000
#define BS0 0
#define BS1 0020000
#define VTDLY 0040000
#define VT0 0
#define VT1 0040000
#define FFDLY 0100000
#define FF0 0
#define FF1 0100000
#endif
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define PAGEOUT 0200000
#define WRAP 0400000
#define CBAUD 0000017
#endif
#define CSIZE 0000060
#define CS5 0
#define CS6 0000020
#define CS7 0000040
#define CS8 0000060
#define CSTOPB 0000100
#define CREAD 0000200
#define PARENB 0000400
#define PARODD 0001000
#define HUPCL 0002000
#define CLOCAL 0004000
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define RCV1EN 0010000
#define XMT1EN 0020000
#define LOBLK 0040000
#define XCLUDE 0100000
#define CRTSXOFF 010000000000
#define CRTSCTS 020000000000
#define CIBAUD 03600000
#define PAREXT 04000000
#define CBAUDEXT 010000000
#define CIBAUDEXT 020000000
#define CRTS_IFLOW 010000000000
#define CCTS_OFLOW 020000000000
#endif
#define ISIG 0000001
#define ICANON 0000002
#if !defined(_POSIX_C_SOURCE) || \
(defined(_XOPEN_SOURCE) && !defined(_XPG6)) || \
defined(__EXTENSIONS__)
#define XCASE 0000004
#endif
#define ECHO 0000010
#define ECHOE 0000020
#define ECHOK 0000040
#define ECHONL 0000100
#define NOFLSH 0000200
#define TOSTOP 0000400
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define ECHOCTL 0001000
#define ECHOPRT 0002000
#define ECHOKE 0004000
#define DEFECHO 0010000
#define FLUSHO 0020000
#define PENDIN 0040000
#endif
#define IEXTEN 0100000
#define _TIOC ('T'<<8)
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define TIOC _TIOC
#define TCGETA (_TIOC|1)
#define TCSETA (_TIOC|2)
#define TCSETAW (_TIOC|3)
#define TCSETAF (_TIOC|4)
#define TCSBRK (_TIOC|5)
#define TCXONC (_TIOC|6)
#define TCFLSH (_TIOC|7)
#define TIOCKBON (_TIOC|8)
#define TIOCKBOF (_TIOC|9)
#define KBENABLED (_TIOC|10)
#ifndef IOCTYPE
#define IOCTYPE 0xff00
#endif
#define TCDSET (_TIOC|32)
#define RTS_TOG (_TIOC|33)
#define TIOCGWINSZ (_TIOC|104)
#define TIOCSWINSZ (_TIOC|103)
#define TIOCGSOFTCAR (_TIOC|105)
#define TIOCSSOFTCAR (_TIOC|106)
#define TCGETS (_TIOC|13)
#define TCSETS (_TIOC|14)
#endif
#define TCSANOW (_TIOC|14)
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define TCSETSW (_TIOC|15)
#endif
#define TCSADRAIN (_TIOC|15)
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define TCSETSF (_TIOC|16)
#define TIOCGPPS (_TIOC|125)
#define TIOCSPPS (_TIOC|126)
#define TIOCGPPSEV (_TIOC|127)
struct ppsclockev {
struct timeval tv;
uint_t serial;
};
#if defined(_SYSCALL32)
struct ppsclockev32 {
struct timeval32 tv;
uint32_t serial;
};
#endif
#endif
#define TCSAFLUSH (_TIOC|16)
#define TCIFLUSH 0
#define TCOFLUSH 1
#define TCIOFLUSH 2
#define TCOOFF 0
#define TCOON 1
#define TCIOFF 2
#define TCION 3
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define tIOC ('t'<<8)
#endif
#ifndef _SYS_TTOLD_H
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define TIOCGETD (tIOC|0)
#define TIOCSETD (tIOC|1)
#define TIOCHPCL (tIOC|2)
#define TIOCGETP (tIOC|8)
#define TIOCSETP (tIOC|9)
#define TIOCSETN (tIOC|10)
#define TIOCEXCL (tIOC|13)
#define TIOCNXCL (tIOC|14)
#define TIOCFLUSH (tIOC|16)
#define TIOCSETC (tIOC|17)
#define TIOCGETC (tIOC|18)
#define TIOCLBIS (tIOC|127)
#define TIOCLBIC (tIOC|126)
#define TIOCLSET (tIOC|125)
#define TIOCLGET (tIOC|124)
#define TIOCSBRK (tIOC|123)
#define TIOCCBRK (tIOC|122)
#define TIOCSDTR (tIOC|121)
#define TIOCCDTR (tIOC|120)
#define TIOCSLTC (tIOC|117)
#define TIOCGLTC (tIOC|116)
#define TIOCOUTQ (tIOC|115)
#define TIOCNOTTY (tIOC|113)
#define TIOCSCTTY (tIOC|132)
#define TIOCSTOP (tIOC|111)
#define TIOCSTART (tIOC|110)
#define TIOCSILOOP (tIOC|109)
#define TIOCCILOOP (tIOC|108)
#endif
#endif
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
#define TIOCGPGRP (tIOC|20)
#define TIOCSPGRP (tIOC|21)
#define TIOCGSID (tIOC|22)
#define TIOCSTI (tIOC|23)
#define TIOCMSET (tIOC|26)
#define TIOCMBIS (tIOC|27)
#define TIOCMBIC (tIOC|28)
#define TIOCMGET (tIOC|29)
#define TIOCM_LE 0001
#define TIOCM_DTR 0002
#define TIOCM_RTS 0004
#define TIOCM_ST 0010
#define TIOCM_SR 0020
#define TIOCM_CTS 0040
#define TIOCM_CAR 0100
#define TIOCM_CD TIOCM_CAR
#define TIOCM_RNG 0200
#define TIOCM_RI TIOCM_RNG
#define TIOCM_DSR 0400
#define TIOCREMOTE (tIOC|30)
#define TIOCSIGNAL (tIOC|31)
#define LDIOC ('D'<<8)
#define LDOPEN (LDIOC|0)
#define LDCLOSE (LDIOC|1)
#define LDCHG (LDIOC|2)
#define LDGETT (LDIOC|8)
#define LDSETT (LDIOC|9)
#define LDSMAP (LDIOC|110)
#define LDGMAP (LDIOC|111)
#define LDNMAP (LDIOC|112)
#define LDEMAP (LDIOC|113)
#define LDDMAP (LDIOC|114)
#define DIOC ('d'<<8)
#define DIOCGETP (DIOC|8)
#define DIOCSETP (DIOC|9)
#define FIORDCHK (('f'<<8)|3)
#endif
#define B0 0
#define B50 1
#define B75 2
#define B110 3
#define B134 4
#define B150 5
#define B200 6
#define B300 7
#define B600 8
#define B1200 9
#define B1800 10
#define B2400 11
#define B4800 12
#define B9600 13
#define B19200 14
#define B38400 15
#define B57600 16
#define B76800 17
#define B115200 18
#define B153600 19
#define B230400 20
#define B307200 21
#define B460800 22
#define B921600 23
#define B1000000 24
#define B1152000 25
#define B1500000 26
#define B2000000 27
#define B2500000 28
#define B3000000 29
#define B3500000 30
#define B4000000 31
#ifndef _SYS_TTOLD_H
#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
struct winsize {
unsigned short ws_row;
unsigned short ws_col;
unsigned short ws_xpixel;
unsigned short ws_ypixel;
};
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif