Commit 2dae860de3
Changed files (3)
lib
std
lib/std/c/darwin.zig
@@ -1788,99 +1788,103 @@ pub const V = struct {
pub const NCCS = 20; // 2 spares (7, 19)
-pub const IGNBRK = 0x00000001; // ignore BREAK condition
-pub const BRKINT = 0x00000002; // map BREAK to SIGINTR
-pub const IGNPAR = 0x00000004; // ignore (discard) parity errors
-pub const PARMRK = 0x00000008; // mark parity and framing errors
-pub const INPCK = 0x00000010; // enable checking of parity errors
-pub const ISTRIP = 0x00000020; // strip 8th bit off chars
-pub const INLCR = 0x00000040; // map NL into CR
-pub const IGNCR = 0x00000080; // ignore CR
-pub const ICRNL = 0x00000100; // map CR to NL (ala CRMOD)
-pub const IXON = 0x00000200; // enable output flow control
-pub const IXOFF = 0x00000400; // enable input flow control
-pub const IXANY = 0x00000800; // any char will restart after stop
-pub const IMAXBEL = 0x00002000; // ring bell on input queue full
-pub const IUTF8 = 0x00004000; // maintain state for UTF-8 VERASE
-
-pub const OPOST = 0x00000001; //enable following output processing
-pub const ONLCR = 0x00000002; // map NL to CR-NL (ala CRMOD)
-pub const OXTABS = 0x00000004; // expand tabs to spaces
-pub const ONOEOT = 0x00000008; // discard EOT's (^D) on output)
-
-pub const OCRNL = 0x00000010; // map CR to NL on output
-pub const ONOCR = 0x00000020; // no CR output at column 0
-pub const ONLRET = 0x00000040; // NL performs CR function
-pub const OFILL = 0x00000080; // use fill characters for delay
-pub const NLDLY = 0x00000300; // \n delay
-pub const TABDLY = 0x00000c04; // horizontal tab delay
-pub const CRDLY = 0x00003000; // \r delay
-pub const FFDLY = 0x00004000; // form feed delay
-pub const BSDLY = 0x00008000; // \b delay
-pub const VTDLY = 0x00010000; // vertical tab delay
-pub const OFDEL = 0x00020000; // fill is DEL, else NUL
-
-pub const NL0 = 0x00000000;
-pub const NL1 = 0x00000100;
-pub const NL2 = 0x00000200;
-pub const NL3 = 0x00000300;
-pub const TAB0 = 0x00000000;
-pub const TAB1 = 0x00000400;
-pub const TAB2 = 0x00000800;
-pub const TAB3 = 0x00000004;
-pub const CR0 = 0x00000000;
-pub const CR1 = 0x00001000;
-pub const CR2 = 0x00002000;
-pub const CR3 = 0x00003000;
-pub const FF0 = 0x00000000;
-pub const FF1 = 0x00004000;
-pub const BS0 = 0x00000000;
-pub const BS1 = 0x00008000;
-pub const VT0 = 0x00000000;
-pub const VT1 = 0x00010000;
-
-pub const CIGNORE = 0x00000001; // ignore control flags
-pub const CSIZE = 0x00000300; // character size mask
-pub const CS5 = 0x00000000; // 5 bits (pseudo)
-pub const CS6 = 0x00000100; // 6 bits
-pub const CS7 = 0x00000200; // 7 bits
-pub const CS8 = 0x00000300; // 8 bits
-pub const CSTOPB = 0x0000040; // send 2 stop bits
-pub const CREAD = 0x00000800; // enable receiver
-pub const PARENB = 0x00001000; // parity enable
-pub const PARODD = 0x00002000; // odd parity, else even
-pub const HUPCL = 0x00004000; // hang up on last close
-pub const CLOCAL = 0x00008000; // ignore modem status lines
-pub const CCTS_OFLOW = 0x00010000; // CTS flow control of output
-pub const CRTSCTS = (CCTS_OFLOW | CRTS_IFLOW);
-pub const CRTS_IFLOW = 0x00020000; // RTS flow control of input
-pub const CDTR_IFLOW = 0x00040000; // DTR flow control of input
-pub const CDSR_OFLOW = 0x00080000; // DSR flow control of output
-pub const CCAR_OFLOW = 0x00100000; // DCD flow control of output
-pub const MDMBUF = 0x00100000; // old name for CCAR_OFLOW
-
-pub const ECHOKE = 0x00000001; // visual erase for line kill
-pub const ECHOE = 0x00000002; // visually erase chars
-pub const ECHOK = 0x00000004; // echo NL after line kill
-pub const ECHO = 0x00000008; // enable echoing
-pub const ECHONL = 0x00000010; // echo NL even if ECHO is off
-pub const ECHOPRT = 0x00000020; // visual erase mode for hardcopy
-pub const ECHOCTL = 0x00000040; // echo control chars as ^(Char)
-pub const ISIG = 0x00000080; // enable signals INTR, QUIT, [D]SUSP
-pub const ICANON = 0x00000100; // canonicalize input lines
-pub const ALTWERASE = 0x00000200; // use alternate WERASE algorithm
-pub const IEXTEN = 0x00000400; // enable DISCARD and LNEXT
-pub const EXTPROC = 0x00000800; // external processing
-pub const TOSTOP = 0x00400000; // stop background jobs from output
-pub const FLUSHO = 0x00800000; // output being flushed (state)
-pub const NOKERNINFO = 0x02000000; // no kernel output from VSTATUS
-pub const PENDIN = 0x20000000; // XXX retype pending input (state)
-pub const NOFLSH = 0x80000000; // don't flush after interrupt
-
-pub const TCSANOW = 0; // make change immediate
-pub const TCSADRAIN = 1; // drain output, then change
-pub const TCSAFLUSH = 2; // drain output, flush input
-pub const TCSASOFT = 0x10; // flag - don't alter h.w. state
+pub const cc_t = u8;
+pub const speed_t = u64;
+pub const tcflag_t = u64;
+
+pub const IGNBRK: tcflag_t = 0x00000001; // ignore BREAK condition
+pub const BRKINT: tcflag_t = 0x00000002; // map BREAK to SIGINTR
+pub const IGNPAR: tcflag_t = 0x00000004; // ignore (discard) parity errors
+pub const PARMRK: tcflag_t = 0x00000008; // mark parity and framing errors
+pub const INPCK: tcflag_t = 0x00000010; // enable checking of parity errors
+pub const ISTRIP: tcflag_t = 0x00000020; // strip 8th bit off chars
+pub const INLCR: tcflag_t = 0x00000040; // map NL into CR
+pub const IGNCR: tcflag_t = 0x00000080; // ignore CR
+pub const ICRNL: tcflag_t = 0x00000100; // map CR to NL (ala CRMOD)
+pub const IXON: tcflag_t = 0x00000200; // enable output flow control
+pub const IXOFF: tcflag_t = 0x00000400; // enable input flow control
+pub const IXANY: tcflag_t = 0x00000800; // any char will restart after stop
+pub const IMAXBEL: tcflag_t = 0x00002000; // ring bell on input queue full
+pub const IUTF8: tcflag_t = 0x00004000; // maintain state for UTF-8 VERASE
+
+pub const OPOST: tcflag_t = 0x00000001; //enable following output processing
+pub const ONLCR: tcflag_t = 0x00000002; // map NL to CR-NL (ala CRMOD)
+pub const OXTABS: tcflag_t = 0x00000004; // expand tabs to spaces
+pub const ONOEOT: tcflag_t = 0x00000008; // discard EOT's (^D) on output)
+
+pub const OCRNL: tcflag_t = 0x00000010; // map CR to NL on output
+pub const ONOCR: tcflag_t = 0x00000020; // no CR output at column 0
+pub const ONLRET: tcflag_t = 0x00000040; // NL performs CR function
+pub const OFILL: tcflag_t = 0x00000080; // use fill characters for delay
+pub const NLDLY: tcflag_t = 0x00000300; // \n delay
+pub const TABDLY: tcflag_t = 0x00000c04; // horizontal tab delay
+pub const CRDLY: tcflag_t = 0x00003000; // \r delay
+pub const FFDLY: tcflag_t = 0x00004000; // form feed delay
+pub const BSDLY: tcflag_t = 0x00008000; // \b delay
+pub const VTDLY: tcflag_t = 0x00010000; // vertical tab delay
+pub const OFDEL: tcflag_t = 0x00020000; // fill is DEL, else NUL
+
+pub const NL0: tcflag_t = 0x00000000;
+pub const NL1: tcflag_t = 0x00000100;
+pub const NL2: tcflag_t = 0x00000200;
+pub const NL3: tcflag_t = 0x00000300;
+pub const TAB0: tcflag_t = 0x00000000;
+pub const TAB1: tcflag_t = 0x00000400;
+pub const TAB2: tcflag_t = 0x00000800;
+pub const TAB3: tcflag_t = 0x00000004;
+pub const CR0: tcflag_t = 0x00000000;
+pub const CR1: tcflag_t = 0x00001000;
+pub const CR2: tcflag_t = 0x00002000;
+pub const CR3: tcflag_t = 0x00003000;
+pub const FF0: tcflag_t = 0x00000000;
+pub const FF1: tcflag_t = 0x00004000;
+pub const BS0: tcflag_t = 0x00000000;
+pub const BS1: tcflag_t = 0x00008000;
+pub const VT0: tcflag_t = 0x00000000;
+pub const VT1: tcflag_t = 0x00010000;
+
+pub const CIGNORE: tcflag_t = 0x00000001; // ignore control flags
+pub const CSIZE: tcflag_t = 0x00000300; // character size mask
+pub const CS5: tcflag_t = 0x00000000; // 5 bits (pseudo)
+pub const CS6: tcflag_t = 0x00000100; // 6 bits
+pub const CS7: tcflag_t = 0x00000200; // 7 bits
+pub const CS8: tcflag_t = 0x00000300; // 8 bits
+pub const CSTOPB: tcflag_t = 0x0000040; // send 2 stop bits
+pub const CREAD: tcflag_t = 0x00000800; // enable receiver
+pub const PARENB: tcflag_t = 0x00001000; // parity enable
+pub const PARODD: tcflag_t = 0x00002000; // odd parity, else even
+pub const HUPCL: tcflag_t = 0x00004000; // hang up on last close
+pub const CLOCAL: tcflag_t = 0x00008000; // ignore modem status lines
+pub const CCTS_OFLOW: tcflag_t = 0x00010000; // CTS flow control of output
+pub const CRTSCTS: tcflag_t = (CCTS_OFLOW | CRTS_IFLOW);
+pub const CRTS_IFLOW: tcflag_t = 0x00020000; // RTS flow control of input
+pub const CDTR_IFLOW: tcflag_t = 0x00040000; // DTR flow control of input
+pub const CDSR_OFLOW: tcflag_t = 0x00080000; // DSR flow control of output
+pub const CCAR_OFLOW: tcflag_t = 0x00100000; // DCD flow control of output
+pub const MDMBUF: tcflag_t = 0x00100000; // old name for CCAR_OFLOW
+
+pub const ECHOKE: tcflag_t = 0x00000001; // visual erase for line kill
+pub const ECHOE: tcflag_t = 0x00000002; // visually erase chars
+pub const ECHOK: tcflag_t = 0x00000004; // echo NL after line kill
+pub const ECHO: tcflag_t = 0x00000008; // enable echoing
+pub const ECHONL: tcflag_t = 0x00000010; // echo NL even if ECHO is off
+pub const ECHOPRT: tcflag_t = 0x00000020; // visual erase mode for hardcopy
+pub const ECHOCTL: tcflag_t = 0x00000040; // echo control chars as ^(Char)
+pub const ISIG: tcflag_t = 0x00000080; // enable signals INTR, QUIT, [D]SUSP
+pub const ICANON: tcflag_t = 0x00000100; // canonicalize input lines
+pub const ALTWERASE: tcflag_t = 0x00000200; // use alternate WERASE algorithm
+pub const IEXTEN: tcflag_t = 0x00000400; // enable DISCARD and LNEXT
+pub const EXTPROC: tcflag_t = 0x00000800; // external processing
+pub const TOSTOP: tcflag_t = 0x00400000; // stop background jobs from output
+pub const FLUSHO: tcflag_t = 0x00800000; // output being flushed (state)
+pub const NOKERNINFO: tcflag_t = 0x02000000; // no kernel output from VSTATUS
+pub const PENDIN: tcflag_t = 0x20000000; // XXX retype pending input (state)
+pub const NOFLSH: tcflag_t = 0x80000000; // don't flush after interrupt
+
+pub const TCSANOW: tcflag_t = 0; // make change immediate
+pub const TCSADRAIN: tcflag_t = 1; // drain output, then change
+pub const TCSAFLUSH: tcflag_t = 2; // drain output, flush input
+pub const TCSASOFT: tcflag_t = 0x10; // flag - don't alter h.w. state
pub const TCSA = enum(c_uint) {
NOW,
DRAIN,
@@ -1888,43 +1892,39 @@ pub const TCSA = enum(c_uint) {
_,
};
-pub const B0 = 0;
-pub const B50 = 50;
-pub const B75 = 75;
-pub const B110 = 110;
-pub const B134 = 134;
-pub const B150 = 150;
-pub const B200 = 200;
-pub const B300 = 300;
-pub const B600 = 600;
-pub const B1200 = 1200;
-pub const B1800 = 1800;
-pub const B2400 = 2400;
-pub const B4800 = 4800;
-pub const B9600 = 9600;
-pub const B19200 = 19200;
-pub const B38400 = 38400;
-pub const B7200 = 7200;
-pub const B14400 = 14400;
-pub const B28800 = 28800;
-pub const B57600 = 57600;
-pub const B76800 = 76800;
-pub const B115200 = 115200;
-pub const B230400 = 230400;
-pub const EXTA = 19200;
-pub const EXTB = 38400;
-
-pub const TCIFLUSH = 1;
-pub const TCOFLUSH = 2;
-pub const TCIOFLUSH = 3;
-pub const TCOOFF = 1;
-pub const TCOON = 2;
-pub const TCIOFF = 3;
-pub const TCION = 4;
-
-pub const cc_t = u8;
-pub const speed_t = u64;
-pub const tcflag_t = u64;
+pub const B0: tcflag_t = 0;
+pub const B50: tcflag_t = 50;
+pub const B75: tcflag_t = 75;
+pub const B110: tcflag_t = 110;
+pub const B134: tcflag_t = 134;
+pub const B150: tcflag_t = 150;
+pub const B200: tcflag_t = 200;
+pub const B300: tcflag_t = 300;
+pub const B600: tcflag_t = 600;
+pub const B1200: tcflag_t = 1200;
+pub const B1800: tcflag_t = 1800;
+pub const B2400: tcflag_t = 2400;
+pub const B4800: tcflag_t = 4800;
+pub const B9600: tcflag_t = 9600;
+pub const B19200: tcflag_t = 19200;
+pub const B38400: tcflag_t = 38400;
+pub const B7200: tcflag_t = 7200;
+pub const B14400: tcflag_t = 14400;
+pub const B28800: tcflag_t = 28800;
+pub const B57600: tcflag_t = 57600;
+pub const B76800: tcflag_t = 76800;
+pub const B115200: tcflag_t = 115200;
+pub const B230400: tcflag_t = 230400;
+pub const EXTA: tcflag_t = 19200;
+pub const EXTB: tcflag_t = 38400;
+
+pub const TCIFLUSH: tcflag_t = 1;
+pub const TCOFLUSH: tcflag_t = 2;
+pub const TCIOFLUSH: tcflag_t = 3;
+pub const TCOOFF: tcflag_t = 1;
+pub const TCOON: tcflag_t = 2;
+pub const TCIOFF: tcflag_t = 3;
+pub const TCION: tcflag_t = 4;
pub const termios = extern struct {
iflag: tcflag_t, // input flags
lib/std/c/openbsd.zig
@@ -726,56 +726,57 @@ const V = struct {
pub const STATUS = 18; // ICANON
// 19 spare 2
};
+
+pub const tcflag_t = c_uint;
+pub const speed_t = c_uint;
+pub const cc_t = u8;
+
pub const NCCS = 20;
// Input flags - software input processing
-pub const IGNBRK = 0x00000001; // ignore BREAK condition
-pub const BRKINT = 0x00000002; // map BREAK to SIGINT
-pub const IGNPAR = 0x00000004; // ignore (discard) parity errors
-pub const PARMRK = 0x00000008; // mark parity and framing errors
-pub const INPCK = 0x00000010; // enable checking of parity errors
-pub const ISTRIP = 0x00000020; // strip 8th bit off chars
-pub const INLCR = 0x00000040; // map NL into CR
-pub const IGNCR = 0x00000080; // ignore CR
-pub const ICRNL = 0x00000100; // map CR to NL (ala CRMOD)
-pub const IXON = 0x00000200; // enable output flow control
-pub const IXOFF = 0x00000400; // enable input flow control
-pub const IXANY = 0x00000800; // any char will restart after stop
-pub const IUCLC = 0x00001000; // translate upper to lower case
-pub const IMAXBEL = 0x00002000; // ring bell on input queue full
+pub const IGNBRK: tcflag_t = 0x00000001; // ignore BREAK condition
+pub const BRKINT: tcflag_t = 0x00000002; // map BREAK to SIGINT
+pub const IGNPAR: tcflag_t = 0x00000004; // ignore (discard) parity errors
+pub const PARMRK: tcflag_t = 0x00000008; // mark parity and framing errors
+pub const INPCK: tcflag_t = 0x00000010; // enable checking of parity errors
+pub const ISTRIP: tcflag_t = 0x00000020; // strip 8th bit off chars
+pub const INLCR: tcflag_t = 0x00000040; // map NL into CR
+pub const IGNCR: tcflag_t = 0x00000080; // ignore CR
+pub const ICRNL: tcflag_t = 0x00000100; // map CR to NL (ala CRMOD)
+pub const IXON: tcflag_t = 0x00000200; // enable output flow control
+pub const IXOFF: tcflag_t = 0x00000400; // enable input flow control
+pub const IXANY: tcflag_t = 0x00000800; // any char will restart after stop
+pub const IUCLC: tcflag_t = 0x00001000; // translate upper to lower case
+pub const IMAXBEL: tcflag_t = 0x00002000; // ring bell on input queue full
// Output flags - software output processing
-pub const OPOST = 0x00000001; // enable following output processing
-pub const ONLCR = 0x00000002; // map NL to CR-NL (ala CRMOD)
-pub const OXTABS = 0x00000004; // expand tabs to spaces
-pub const ONOEOT = 0x00000008; // discard EOT's (^D) on output
-pub const OCRNL = 0x00000010; // map CR to NL
-pub const OLCUC = 0x00000020; // translate lower case to upper case
-pub const ONOCR = 0x00000040; // No CR output at column 0
-pub const ONLRET = 0x00000080; // NL performs the CR function
+pub const OPOST: tcflag_t = 0x00000001; // enable following output processing
+pub const ONLCR: tcflag_t = 0x00000002; // map NL to CR-NL (ala CRMOD)
+pub const OXTABS: tcflag_t = 0x00000004; // expand tabs to spaces
+pub const ONOEOT: tcflag_t = 0x00000008; // discard EOT's (^D) on output
+pub const OCRNL: tcflag_t = 0x00000010; // map CR to NL
+pub const OLCUC: tcflag_t = 0x00000020; // translate lower case to upper case
+pub const ONOCR: tcflag_t = 0x00000040; // No CR output at column 0
+pub const ONLRET: tcflag_t = 0x00000080; // NL performs the CR function
// Control flags - hardware control of terminal
-pub const CIGNORE = 0x00000001; // ignore control flags
-pub const CSIZE = 0x00000300; // character size mask
-pub const CS5 = 0x00000000; // 5 bits (pseudo)
-pub const CS6 = 0x00000100; // 6 bits
-pub const CS7 = 0x00000200; // 7 bits
-pub const CS8 = 0x00000300; // 8 bits
-pub const CSTOPB = 0x00000400; // send 2 stop bits
-pub const CREAD = 0x00000800; // enable receiver
-pub const PARENB = 0x00001000; // parity enable
-pub const PARODD = 0x00002000; // odd parity, else even
-pub const HUPCL = 0x00004000; // hang up on last close
-pub const CLOCAL = 0x00008000; // ignore modem status lines
-pub const CRTSCTS = 0x00010000; // RTS/CTS full-duplex flow control
-pub const CRTS_IFLOW = CRTSCTS; // XXX compat
-pub const CCTS_OFLOW = CRTSCTS; // XXX compat
-pub const MDMBUF = 0x00100000; // DTR/DCD hardware flow control
-pub const CHWFLOW = (MDMBUF | CRTSCTS); // all types of hw flow control
-
-pub const tcflag_t = c_uint;
-pub const speed_t = c_uint;
-pub const cc_t = u8;
+pub const CIGNORE: tcflag_t = 0x00000001; // ignore control flags
+pub const CSIZE: tcflag_t = 0x00000300; // character size mask
+pub const CS5: tcflag_t = 0x00000000; // 5 bits (pseudo)
+pub const CS6: tcflag_t = 0x00000100; // 6 bits
+pub const CS7: tcflag_t = 0x00000200; // 7 bits
+pub const CS8: tcflag_t = 0x00000300; // 8 bits
+pub const CSTOPB: tcflag_t = 0x00000400; // send 2 stop bits
+pub const CREAD: tcflag_t = 0x00000800; // enable receiver
+pub const PARENB: tcflag_t = 0x00001000; // parity enable
+pub const PARODD: tcflag_t = 0x00002000; // odd parity, else even
+pub const HUPCL: tcflag_t = 0x00004000; // hang up on last close
+pub const CLOCAL: tcflag_t = 0x00008000; // ignore modem status lines
+pub const CRTSCTS: tcflag_t = 0x00010000; // RTS/CTS full-duplex flow control
+pub const CRTS_IFLOW: tcflag_t = CRTSCTS; // XXX compat
+pub const CCTS_OFLOW: tcflag_t = CRTSCTS; // XXX compat
+pub const MDMBUF: tcflag_t = 0x00100000; // DTR/DCD hardware flow control
+pub const CHWFLOW: tcflag_t = (MDMBUF | CRTSCTS); // all types of hw flow control
pub const termios = extern struct {
iflag: tcflag_t, // input flags
lib/std/os/linux.zig
@@ -4096,55 +4096,55 @@ pub const V = switch (native_arch) {
},
};
-pub const IGNBRK = 1;
-pub const BRKINT = 2;
-pub const IGNPAR = 4;
-pub const PARMRK = 8;
-pub const INPCK = 16;
-pub const ISTRIP = 32;
-pub const INLCR = 64;
-pub const IGNCR = 128;
-pub const ICRNL = 256;
-pub const IUCLC = 512;
-pub const IXON = 1024;
-pub const IXANY = 2048;
-pub const IXOFF = 4096;
-pub const IMAXBEL = 8192;
-pub const IUTF8 = 16384;
-
-pub const OPOST = 1;
-pub const OLCUC = 2;
-pub const ONLCR = 4;
-pub const OCRNL = 8;
-pub const ONOCR = 16;
-pub const ONLRET = 32;
-pub const OFILL = 64;
-pub const OFDEL = 128;
-pub const VTDLY = 16384;
-pub const VT0 = 0;
-pub const VT1 = 16384;
-
-pub const CSIZE = 48;
-pub const CS5 = 0;
-pub const CS6 = 16;
-pub const CS7 = 32;
-pub const CS8 = 48;
-pub const CSTOPB = 64;
-pub const CREAD = 128;
-pub const PARENB = 256;
-pub const PARODD = 512;
-pub const HUPCL = 1024;
-pub const CLOCAL = 2048;
-
-pub const ISIG = 1;
-pub const ICANON = 2;
-pub const ECHO = 8;
-pub const ECHOE = 16;
-pub const ECHOK = 32;
-pub const ECHONL = 64;
-pub const NOFLSH = 128;
-pub const TOSTOP = 256;
-pub const IEXTEN = 32768;
+pub const IGNBRK: tcflag_t = 1;
+pub const BRKINT: tcflag_t = 2;
+pub const IGNPAR: tcflag_t = 4;
+pub const PARMRK: tcflag_t = 8;
+pub const INPCK: tcflag_t = 16;
+pub const ISTRIP: tcflag_t = 32;
+pub const INLCR: tcflag_t = 64;
+pub const IGNCR: tcflag_t = 128;
+pub const ICRNL: tcflag_t = 256;
+pub const IUCLC: tcflag_t = 512;
+pub const IXON: tcflag_t = 1024;
+pub const IXANY: tcflag_t = 2048;
+pub const IXOFF: tcflag_t = 4096;
+pub const IMAXBEL: tcflag_t = 8192;
+pub const IUTF8: tcflag_t = 16384;
+
+pub const OPOST: tcflag_t = 1;
+pub const OLCUC: tcflag_t = 2;
+pub const ONLCR: tcflag_t = 4;
+pub const OCRNL: tcflag_t = 8;
+pub const ONOCR: tcflag_t = 16;
+pub const ONLRET: tcflag_t = 32;
+pub const OFILL: tcflag_t = 64;
+pub const OFDEL: tcflag_t = 128;
+pub const VTDLY: tcflag_t = 16384;
+pub const VT0: tcflag_t = 0;
+pub const VT1: tcflag_t = 16384;
+
+pub const CSIZE: tcflag_t = 48;
+pub const CS5: tcflag_t = 0;
+pub const CS6: tcflag_t = 16;
+pub const CS7: tcflag_t = 32;
+pub const CS8: tcflag_t = 48;
+pub const CSTOPB: tcflag_t = 64;
+pub const CREAD: tcflag_t = 128;
+pub const PARENB: tcflag_t = 256;
+pub const PARODD: tcflag_t = 512;
+pub const HUPCL: tcflag_t = 1024;
+pub const CLOCAL: tcflag_t = 2048;
+
+pub const ISIG: tcflag_t = 1;
+pub const ICANON: tcflag_t = 2;
+pub const ECHO: tcflag_t = 8;
+pub const ECHOE: tcflag_t = 16;
+pub const ECHOK: tcflag_t = 32;
+pub const ECHONL: tcflag_t = 64;
+pub const NOFLSH: tcflag_t = 128;
+pub const TOSTOP: tcflag_t = 256;
+pub const IEXTEN: tcflag_t = 32768;
pub const TCSA = enum(c_uint) {
NOW,