Commit e97fa8b038
Changed files (6)
lib/std/c/darwin.zig
@@ -2692,26 +2692,6 @@ pub const SHUT = struct {
pub const RDWR = 2;
};
-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
lib/std/c/netbsd.zig
@@ -806,27 +806,6 @@ pub const T = struct {
pub const IOCXMTFRAME = 0x80087444;
};
-
-// 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 CDTRCTS: tcflag_t = 0x00020000; // DTR/CTS full-duplex flow control
-pub const MDMBUF: tcflag_t = 0x00100000; // DTR/DCD hardware flow control
-pub const CHWFLOW: tcflag_t = (MDMBUF | CRTSCTS | CDTRCTS); // all types of hw flow control
-
// Commands passed to tcsetattr() for setting the termios structure.
pub const TCSA = struct {
pub const NOW = 0; // make change immediate
lib/std/c/openbsd.zig
@@ -768,27 +768,6 @@ pub const AUTH = struct {
pub const ALLOW: c_int = (OKAY | ROOTOKAY | SECURE);
};
-
-
-// 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
-
// Commands passed to tcsetattr() for setting the termios structure.
pub const TCSA = struct {
pub const NOW = 0; // make change immediate
lib/std/os/linux.zig
@@ -5120,6 +5120,33 @@ pub const tc_oflag_t = switch (native_arch) {
},
};
+pub const CSIZE = enum(u2) { CS5, CS6, CS7, CS8 };
+
+pub const tc_cflag_t = switch (native_arch) {
+ .powerpc, .powerpcle, .powerpc64, .powerpc64le => packed struct(u32) {
+ _0: u8 = 0,
+ CSIZE: CSIZE = .CS5,
+ CSTOPB: bool = false,
+ CREAD: bool = false,
+ PARENB: bool = false,
+ PARODD: bool = false,
+ HUPCL: bool = false,
+ CLOCAL: bool = false,
+ _: u16 = 0,
+ },
+ else => packed struct(u32) {
+ _0: u4 = 0,
+ CSIZE: CSIZE = .CS5,
+ CSTOPB: bool = false,
+ CREAD: bool = false,
+ PARENB: bool = false,
+ PARODD: bool = false,
+ HUPCL: bool = false,
+ CLOCAL: bool = false,
+ _: u20 = 0,
+ },
+};
+
pub const cc_t = switch (native_arch) {
.mips, .mipsel, .mips64, .mips64el => enum(u8) {
VINTR = 0,
@@ -5182,18 +5209,6 @@ pub const cc_t = switch (native_arch) {
pub const tcflag_t = u32;
-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;
@@ -5215,7 +5230,7 @@ pub const termios = switch (native_arch) {
.powerpc, .powerpcle, .powerpc64, .powerpc64le => extern struct {
iflag: tc_iflag_t,
oflag: tc_oflag_t,
- cflag: tcflag_t,
+ cflag: tc_cflag_t,
lflag: tcflag_t,
cc: [NCCS]cc_t,
line: cc_t,
@@ -5225,7 +5240,7 @@ pub const termios = switch (native_arch) {
else => extern struct {
iflag: tc_iflag_t,
oflag: tc_oflag_t,
- cflag: tcflag_t,
+ cflag: tc_cflag_t,
lflag: tcflag_t,
line: cc_t,
cc: [NCCS]cc_t,
lib/std/c.zig
@@ -795,7 +795,7 @@ pub const termios = switch (native_os) {
.macos, .ios, .tvos, .watchos => extern struct {
iflag: tc_iflag_t,
oflag: tc_oflag_t,
- cflag: tcflag_t,
+ cflag: tc_cflag_t,
lflag: tcflag_t,
cc: [NCCS]cc_t,
ispeed: speed_t align(8),
@@ -804,7 +804,7 @@ pub const termios = switch (native_os) {
.freebsd, .kfreebsd, .netbsd, .dragonfly, .openbsd => extern struct {
iflag: tc_iflag_t,
oflag: tc_oflag_t,
- cflag: tcflag_t,
+ cflag: tc_cflag_t,
lflag: tcflag_t,
cc: [NCCS]cc_t,
ispeed: speed_t,
@@ -813,7 +813,7 @@ pub const termios = switch (native_os) {
.haiku => extern struct {
iflag: tc_iflag_t,
oflag: tc_oflag_t,
- cflag: tcflag_t,
+ cflag: tc_cflag_t,
lflag: tcflag_t,
line: cc_t,
ispeed: speed_t,
@@ -823,14 +823,14 @@ pub const termios = switch (native_os) {
.solaris, .illumos => extern struct {
iflag: tc_iflag_t,
oflag: tc_oflag_t,
- cflag: tcflag_t,
+ cflag: tc_cflag_t,
lflag: tcflag_t,
cc: [NCCS]cc_t,
},
.emscripten, .wasi => extern struct {
iflag: tc_iflag_t,
oflag: tc_oflag_t,
- cflag: tcflag_t,
+ cflag: tc_cflag_t,
lflag: tcflag_t,
line: std.c.cc_t,
cc: [NCCS]cc_t,
@@ -1041,6 +1041,148 @@ pub const tc_oflag_t = switch (native_os) {
else => @compileError("target libc does not have tc_oflag_t"),
};
+pub const CSIZE = switch (native_os) {
+ .linux => std.os.linux.CSIZE,
+ .haiku => enum(u1) { CS7, CS8 },
+ else => enum(u2) { CS5, CS6, CS7, CS8 },
+};
+
+pub const tc_cflag_t = switch (native_os) {
+ .linux => std.os.linux.tc_cflag_t,
+ .macos, .ios, .tvos, .watchos => packed struct(u32) {
+ CIGNORE: bool = false,
+ _1: u5 = 0,
+ CSTOPB: bool = false,
+ _7: u1 = 0,
+ CSIZE: CSIZE = .CS5,
+ _10: u1 = 0,
+ CREAD: bool = false,
+ PARENB: bool = false,
+ PARODD: bool = false,
+ HUPCL: bool = false,
+ CLOCAL: bool = false,
+ CCTS_OFLOW: bool = false,
+ CRTS_IFLOW: bool = false,
+ CDTR_IFLOW: bool = false,
+ CDSR_OFLOW: bool = false,
+ CCAR_OFLOW: bool = false,
+ _: u11 = 0,
+ },
+ .freebsd, .kfreebsd => packed struct(u32) {
+ CIGNORE: bool = false,
+ _1: u7 = 0,
+ CSIZE: CSIZE = .CS5,
+ CSTOPB: bool = false,
+ CREAD: bool = false,
+ PARENB: bool = false,
+ PARODD: bool = false,
+ HUPCL: bool = false,
+ CLOCAL: bool = false,
+ CCTS_OFLOW: bool = false,
+ CRTS_IFLOW: bool = false,
+ CDTR_IFLOW: bool = false,
+ CDSR_OFLOW: bool = false,
+ CCAR_OFLOW: bool = false,
+ CNO_RTSDTR: bool = false,
+ _: u10 = 0,
+ },
+ .netbsd => packed struct(u32) {
+ CIGNORE: bool = false,
+ _1: u7 = 0,
+ CSIZE: CSIZE = .CS5,
+ CSTOPB: bool = false,
+ CREAD: bool = false,
+ PARENB: bool = false,
+ PARODD: bool = false,
+ HUPCL: bool = false,
+ CLOCAL: bool = false,
+ CRTSCTS: bool = false,
+ CDTRCTS: bool = false,
+ _18: u2 = 0,
+ MDMBUF: bool = false,
+ _: u11 = 0,
+ },
+ .dragonfly => packed struct(u32) {
+ CIGNORE: bool = false,
+ _1: u7 = 0,
+ CSIZE: CSIZE = .CS5,
+ CSTOPB: bool = false,
+ CREAD: bool = false,
+ PARENB: bool = false,
+ PARODD: bool = false,
+ HUPCL: bool = false,
+ CLOCAL: bool = false,
+ CCTS_OFLOW: bool = false,
+ CRTS_IFLOW: bool = false,
+ CDTR_IFLOW: bool = false,
+ CDSR_OFLOW: bool = false,
+ CCAR_OFLOW: bool = false,
+ _: u11 = 0,
+ },
+ .openbsd => packed struct(u32) {
+ CIGNORE: bool = false,
+ _1: u7 = 0,
+ CSIZE: CSIZE = .CS5,
+ CSTOPB: bool = false,
+ CREAD: bool = false,
+ PARENB: bool = false,
+ PARODD: bool = false,
+ HUPCL: bool = false,
+ CLOCAL: bool = false,
+ CRTSCTS: bool = false,
+ _17: u3 = 0,
+ MDMBUF: bool = false,
+ _: u11 = 0,
+ },
+ .haiku => packed struct(u32) {
+ _0: u5 = 0,
+ CSIZE: CSIZE = .CS7,
+ CSTOPB: bool = false,
+ CREAD: bool = false,
+ PARENB: bool = false,
+ PARODD: bool = false,
+ HUPCL: bool = false,
+ CLOCAL: bool = false,
+ XLOBLK: bool = false,
+ CTSFLOW: bool = false,
+ RTSFLOW: bool = false,
+ _: u17 = 0,
+ },
+ .solaris, .illumos => packed struct(u32) {
+ _0: u4 = 0,
+ CSIZE: CSIZE = .CS5,
+ CSTOPB: bool = false,
+ CREAD: bool = false,
+ PARENB: bool = false,
+ PARODD: bool = false,
+ HUPCL: bool = false,
+ CLOCAL: bool = false,
+ RCV1EN: bool = false,
+ XMT1EN: bool = false,
+ LOBLK: bool = false,
+ XCLUDE: bool = false,
+ _16: u4 = 0,
+ PAREXT: bool = false,
+ CBAUDEXT: bool = false,
+ CIBAUDEXT: bool = false,
+ _23: u7 = 0,
+ CRTSXOFF: bool = false,
+ CRTSCTS: bool = false,
+ },
+ .wasi, .emscripten => packed struct(u32) {
+ _0: u4 = 0,
+ CSIZE: CSIZE = .CS5,
+ CSTOPB: bool = false,
+ CREAD: bool = false,
+ PARENB: bool = false,
+ PARODD: bool = false,
+ HUPCL: bool = false,
+ CLOCAL: bool = false,
+ _: u20 = 0,
+ },
+ else => @compileError("target libc does not have tc_cflag_t"),
+};
+
pub const tcflag_t = switch (native_os) {
.linux => std.os.linux.tcflag_t,
.macos, .ios, .tvos, .watchos => u64,
lib/std/os.zig
@@ -184,11 +184,13 @@ pub const uid_t = system.uid_t;
pub const user_desc = system.user_desc;
pub const utsname = system.utsname;
+pub const CSIZE = system.CSIZE;
pub const NCCS = system.NCCS;
pub const speed_t = system.speed_t;
pub const tcflag_t = system.tcflag_t;
pub const tc_iflag_t = system.tc_iflag_t;
pub const tc_oflag_t = system.tc_oflag_t;
+pub const tc_cflag_t = system.tc_cflag_t;
pub const F_OK = system.F_OK;
pub const R_OK = system.R_OK;