#if !defined ISO && !defined ISO99 && !defined ISO11
type cc_t
type speed_t
type tcflag_t

type {struct termios}

#if defined XOPEN2K8 || defined POSIX2008
type pid_t
#endif

element {struct termios} tcflag_t c_iflag
element {struct termios} tcflag_t c_oflag
element {struct termios} tcflag_t c_cflag
element {struct termios} tcflag_t c_lflag
element {struct termios} cc_t c_cc[NCCS]

constant NCCS

constant VEOF
constant VEOL
constant VERASE
constant VINTR
constant VKILL
constant VMIN
constant VQUIT
constant VSTART
constant VSTOP
constant VSUSP
constant VTIME

constant BRKINT
constant ICRNL
constant IGNBRK
constant IGNCR
constant IGNPAR
constant INLCR
constant INPCK
constant ISTRIP
# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
constant IUCLC
# endif
constant IXANY
constant IXOFF
constant IXON
constant PARMRK

constant OPOST
# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
constant OLCUC
# endif
# if !defined POSIX && !defined POSIX2008
constant ONLCR
constant OCRNL
constant ONOCR
constant ONLRET
constant OFDEL
constant OFILL
constant NLDLY
constant NL0
constant NL1
constant CRDLY
constant CR0
constant CR1
constant CR2
constant CR3
constant TABDLY
constant TAB0
constant TAB1
constant TAB2
constant TAB3
constant BSDLY
constant BS0
constant BS1
constant VTDLY
constant VT0
constant VT1
constant FFDLY
constant FF0
constant FF1
# endif

constant B0
constant B50
constant B75
constant B110
constant B134
constant B150
constant B200
constant B300
constant B600
constant B1200
constant B1800
constant B2400
constant B4800
constant B9600
constant B19200
constant B38400

constant CSIZE
constant CS5
constant CS6
constant CS7
constant CS8
constant CSTOPB
constant CREAD
constant PARENB
constant PARODD
constant HUPCL
constant CLOCAL

constant ECHO
constant ECHOE
constant ECHOK
constant ECHONL
constant ICANON
constant IEXTEN
constant ISIG
constant NOFLSH
constant TOSTOP
# if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
constant XCASE
# endif

constant TCSANOW
constant TCSADRAIN
constant TCSAFLUSH

constant TCIFLUSH
constant TCIOFLUSH

constant TCIOFF
constant TCION
constant TCOOFF
constant TCOON

function speed_t cfgetispeed (const struct termios*)
function speed_t cfgetospeed (const struct termios*)
function int cfsetispeed (struct termios*, speed_t)
function int cfsetospeed (struct termios*, speed_t)
function int tcdrain (int)
function int tcflow (int, int)
function int tcflush (int, int)
function int tcgetattr (int, struct termios*)
#ifndef POSIX
function pid_t tcgetsid (int)
#endif
function int tcsendbreak (int, int)
function int tcsetattr (int, int, const struct termios*)

allow CBAUD
allow DEFECHO
allow ECHOCTL
allow ECHOKE
allow ECHOPRT
allow EXTA
allow EXTB
allow FLUSHO
allow LOBLK
allow PENDIN
allow SWTCH
allow VDISCARD
allow VDSUSP
allow VLNEXT
allow VREPRINT
allow VSTATUS
allow VWERASE

allow c_*
allow V*
allow I*
allow O*
allow TC*
allow B*
allow *_t
#endif
