diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index 1cef15a764..f766f56b66 100644 --- a/lib/std/c/darwin.zig +++ b/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 cc_t = u8; +pub const speed_t = u64; +pub const tcflag_t = u64; -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 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 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 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 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 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 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 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 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 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 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 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 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 = 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 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 diff --git a/lib/std/c/openbsd.zig b/lib/std/c/openbsd.zig index 6ca0135843..98262be36d 100644 --- a/lib/std/c/openbsd.zig +++ b/lib/std/c/openbsd.zig @@ -726,57 +726,58 @@ const V = struct { pub const STATUS = 18; // ICANON // 19 spare 2 }; -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 - -// 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 - -// 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 NCCS = 20; + +// Input flags - software input processing +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: 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: 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 oflag: tcflag_t, // output flags diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index c62160a4ba..fb43984773 100644 --- a/lib/std/os/linux.zig +++ b/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 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 = 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 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 = 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 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 = 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 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,