-struct termios
-{
+struct termios {
tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_cflag;
#define VQUIT 1
#define VERASE 2
#define VKILL 3
-#define VEOF 4
+#define VMIN 4
#define VTIME 5
-#define VMIN 6
+#define VEOL2 6
#define VSWTC 7
+#define VSWTCH 7
#define VSTART 8
#define VSTOP 9
#define VSUSP 10
-#define VEOL 11
#define VREPRINT 12
#define VDISCARD 13
#define VWERASE 14
#define VLNEXT 15
-#define VEOL2 16
+#define VEOF 16
+#define VEOL 17
#define IGNBRK 0000001
#define BRKINT 0000002
#define IXANY 0004000
#define IXOFF 0010000
#define IMAXBEL 0020000
+#define IUTF8 0040000
#define OPOST 0000001
#define OLCUC 0000002
#define ONLRET 0000040
#define OFILL 0000100
#define OFDEL 0000200
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_XOPEN_SOURCE)
#define NLDLY 0000400
#define NL0 0000000
#define NL1 0000400
#define FFDLY 0100000
#define FF0 0000000
#define FF1 0100000
+#endif
#define VTDLY 0040000
#define VT0 0000000
#define VT1 0040000
-/* ?? */
-#define XTABS 0014000
-
#define B0 0000000
#define B50 0000001
#define B75 0000002
#define B3500000 0010016
#define B4000000 0010017
-#define CBAUD 0010017
-
#define CSIZE 0000060
#define CS5 0000000
#define CS6 0000020
#define HUPCL 0002000
#define CLOCAL 0004000
-#define CRTSCTS 020000000000
-
#define ISIG 0000001
#define ICANON 0000002
#define ECHO 0000010
#define ECHOK 0000040
#define ECHONL 0000100
#define NOFLSH 0000200
-#define TOSTOP 0000400
-#define IEXTEN 0100000
-
-/* Extensions? */
-#define CBAUDEX 0010000
-#define ECHOCTL 0001000
-#define ECHOPRT 0002000
-#define ECHOKE 0004000
-#define FLUSHO 0010000
-#define PENDIN 0040000
+#define IEXTEN 0000400
+#define TOSTOP 0100000
+#define ITOSTOP 0100000
#define TCOOFF 0
#define TCOON 1
#define TCSANOW 0
#define TCSADRAIN 1
#define TCSAFLUSH 2
+
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+#define EXTA 0000016
+#define EXTB 0000017
+#define CBAUD 0010017
+#define CBAUDEX 0010000
+#define CIBAUD 002003600000
+#define CMSPAR 010000000000
+#define CRTSCTS 020000000000
+
+#define XCASE 0000004
+#define ECHOCTL 0001000
+#define ECHOPRT 0002000
+#define ECHOKE 0004000
+#define FLUSHO 0020000
+#define PENDIN 0040000
+#define EXTPROC 0200000
+
+#define XTABS 0014000
+#define TIOCSER_TEMT 0x01
+#endif