diff --git a/libc-test/build.rs b/libc-test/build.rs index c24986ff8d0d8..ea2099209d607 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1659,6 +1659,10 @@ fn test_android(target: &str) { // Requires Linux kernel 5.6 "VMADDR_CID_LOCAL" => true, + // FIXME: conflicts with standard C headers and is tested in + // `linux_termios.rs` below: + "TCGETS2" | "TCSETS2" | "TCSETSW2" | "TCSETSF2" => true, + _ => false, } }); @@ -2867,7 +2871,11 @@ fn test_linux(target: &str) { // FIXME: conflicts with glibc headers and is tested in // `linux_termios.rs` below: - "BOTHER" => true, + | "BOTHER" + | "TCGETS2" + | "TCSETS2" + | "TCSETSW2" + | "TCSETSF2" => true, // FIXME: on musl the pthread types are defined a little differently // - these constants are used by the glibc implementation. @@ -3210,10 +3218,15 @@ fn test_linux_like_apis(target: &str) { // test termios let mut cfg = ctest_cfg(); cfg.header("asm/termbits.h"); + cfg.header("linux/termios.h"); cfg.skip_type(|_| true) .skip_static(|_| true) .skip_fn(|_| true) - .skip_const(|c| c != "BOTHER") + .skip_const(|c| match c { + "BOTHER" => false, + "TCGETS2" | "TCSETS2" | "TCSETSW2" | "TCSETSF2" => false, + _ => true, + }) .skip_struct(|s| s != "termios2") .type_name(move |ty, is_struct, is_union| match ty { t if is_struct => format!("struct {}", t), diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 759eaa9af423e..7edf9ce7d9b4a 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1338,6 +1338,10 @@ pub const TCGETS: ::c_int = 0x5401; pub const TCSETS: ::c_int = 0x5402; pub const TCSETSW: ::c_int = 0x5403; pub const TCSETSF: ::c_int = 0x5404; +pub const TCGETS2: ::c_int = 0x802c542a; +pub const TCSETS2: ::c_int = 0x402c542b; +pub const TCSETSW2: ::c_int = 0x402c542c; +pub const TCSETSF2: ::c_int = 0x402c542d; pub const TCGETA: ::c_int = 0x5405; pub const TCSETA: ::c_int = 0x5406; pub const TCSETAW: ::c_int = 0x5407; diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 0e7fb70f6ec95..a1eaa2b6a630f 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -447,6 +447,10 @@ pub const TCGETS: ::c_ulong = 0x5401; pub const TCSETS: ::c_ulong = 0x5402; pub const TCSETSW: ::c_ulong = 0x5403; pub const TCSETSF: ::c_ulong = 0x5404; +pub const TCGETS2: ::c_ulong = 0x802c542a; +pub const TCSETS2: ::c_ulong = 0x402c542b; +pub const TCSETSW2: ::c_ulong = 0x402c542c; +pub const TCSETSF2: ::c_ulong = 0x402c542d; pub const TCGETA: ::c_ulong = 0x5405; pub const TCSETA: ::c_ulong = 0x5406; pub const TCSETAW: ::c_ulong = 0x5407; diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 4ded201fb4f1b..3208d82ddc49d 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -730,6 +730,10 @@ pub const TCGETS: ::c_ulong = 0x540d; pub const TCSETS: ::c_ulong = 0x540e; pub const TCSETSW: ::c_ulong = 0x540f; pub const TCSETSF: ::c_ulong = 0x5410; +pub const TCGETS2: ::c_ulong = 0x4030542a; +pub const TCSETS2: ::c_ulong = 0x8030542b; +pub const TCSETSW2: ::c_ulong = 0x8030542c; +pub const TCSETSF2: ::c_ulong = 0x8030542d; pub const TCGETA: ::c_ulong = 0x5401; pub const TCSETA: ::c_ulong = 0x5402; pub const TCSETAW: ::c_ulong = 0x5403; diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index 09061f3837a13..73b317fc868d6 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -483,6 +483,10 @@ pub const TCGETS: ::c_ulong = 21505; pub const TCSETS: ::c_ulong = 21506; pub const TCSETSW: ::c_ulong = 21507; pub const TCSETSF: ::c_ulong = 21508; +pub const TCGETS2: ::c_ulong = 0x802c542a; +pub const TCSETS2: ::c_ulong = 0x402c542b; +pub const TCSETSW2: ::c_ulong = 0x402c542c; +pub const TCSETSF2: ::c_ulong = 0x402c542d; pub const TCGETA: ::c_ulong = 21509; pub const TCSETA: ::c_ulong = 21510; pub const TCSETAW: ::c_ulong = 21511; diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 4364814094371..15074b45e8f05 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -508,6 +508,10 @@ pub const TCGETS: ::c_ulong = 0x40245408; pub const TCSETS: ::c_ulong = 0x80245409; pub const TCSETSW: ::c_ulong = 0x8024540a; pub const TCSETSF: ::c_ulong = 0x8024540b; +pub const TCGETS2: ::c_ulong = 0x402c540c; +pub const TCSETS2: ::c_ulong = 0x802c540d; +pub const TCSETSW2: ::c_ulong = 0x802c540e; +pub const TCSETSF2: ::c_ulong = 0x802c540f; pub const TCGETA: ::c_ulong = 0x40125401; pub const TCSETA: ::c_ulong = 0x80125402; pub const TCSETAW: ::c_ulong = 0x80125403; diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 75edd27885a28..cf8378544168c 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -666,6 +666,10 @@ pub const TCGETS: ::c_ulong = 0x5401; pub const TCSETS: ::c_ulong = 0x5402; pub const TCSETSW: ::c_ulong = 0x5403; pub const TCSETSF: ::c_ulong = 0x5404; +pub const TCGETS2: ::c_ulong = 0x802c542a; +pub const TCSETS2: ::c_ulong = 0x402c542b; +pub const TCSETSW2: ::c_ulong = 0x402c542c; +pub const TCSETSF2: ::c_ulong = 0x402c542d; pub const TCGETA: ::c_ulong = 0x5405; pub const TCSETA: ::c_ulong = 0x5406; pub const TCSETAW: ::c_ulong = 0x5407; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 35fe306122014..dfb254e6946cf 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -560,6 +560,10 @@ pub const TCGETS: ::c_ulong = 0x5401; pub const TCSETS: ::c_ulong = 0x5402; pub const TCSETSW: ::c_ulong = 0x5403; pub const TCSETSF: ::c_ulong = 0x5404; +pub const TCGETS2: ::c_ulong = 0x802c542a; +pub const TCSETS2: ::c_ulong = 0x402c542b; +pub const TCSETSW2: ::c_ulong = 0x402c542c; +pub const TCSETSF2: ::c_ulong = 0x402c542d; pub const TCGETA: ::c_ulong = 0x5405; pub const TCSETA: ::c_ulong = 0x5406; pub const TCSETAW: ::c_ulong = 0x5407; diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index 87939566f7c12..cbd4cae8a505f 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -830,6 +830,10 @@ pub const TCGETS: ::c_ulong = 0x540d; pub const TCSETS: ::c_ulong = 0x540e; pub const TCSETSW: ::c_ulong = 0x540f; pub const TCSETSF: ::c_ulong = 0x5410; +pub const TCGETS2: ::c_ulong = 0x4030542a; +pub const TCSETS2: ::c_ulong = 0x8030542b; +pub const TCSETSW2: ::c_ulong = 0x8030542c; +pub const TCSETSF2: ::c_ulong = 0x8030542d; pub const TCGETA: ::c_ulong = 0x5401; pub const TCSETA: ::c_ulong = 0x5402; pub const TCSETAW: ::c_ulong = 0x5403; diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 982277d818da4..9986dcb6ae368 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -521,6 +521,10 @@ pub const TCGETS: ::c_ulong = 21505; pub const TCSETS: ::c_ulong = 21506; pub const TCSETSW: ::c_ulong = 21507; pub const TCSETSF: ::c_ulong = 21508; +pub const TCGETS2: ::c_ulong = 0x802c542a; +pub const TCSETS2: ::c_ulong = 0x402c542b; +pub const TCSETSW2: ::c_ulong = 0x402c542c; +pub const TCSETSF2: ::c_ulong = 0x402c542d; pub const TCGETA: ::c_ulong = 21509; pub const TCSETA: ::c_ulong = 21510; pub const TCSETAW: ::c_ulong = 21511; diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index 5ed83ab8ed9f2..302dba5a00f04 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -587,6 +587,10 @@ pub const TCGETS: ::c_ulong = 0x40245408; pub const TCSETS: ::c_ulong = 0x80245409; pub const TCSETSW: ::c_ulong = 0x8024540a; pub const TCSETSF: ::c_ulong = 0x8024540b; +pub const TCGETS2: ::c_ulong = 0x402c540c; +pub const TCSETS2: ::c_ulong = 0x802c540d; +pub const TCSETSW2: ::c_ulong = 0x802c540e; +pub const TCSETSF2: ::c_ulong = 0x802c540f; pub const TCGETA: ::c_ulong = 0x40125401; pub const TCSETA: ::c_ulong = 0x80125402; pub const TCSETAW: ::c_ulong = 0x80125403; diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 99937dfabd8eb..0f113500a770f 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -772,6 +772,10 @@ pub const TCGETS: ::c_ulong = 0x5401; pub const TCSETS: ::c_ulong = 0x5402; pub const TCSETSW: ::c_ulong = 0x5403; pub const TCSETSF: ::c_ulong = 0x5404; +pub const TCGETS2: ::c_ulong = 0x802c542a; +pub const TCSETS2: ::c_ulong = 0x402c542b; +pub const TCSETSW2: ::c_ulong = 0x402c542c; +pub const TCSETSF2: ::c_ulong = 0x402c542d; pub const TCGETA: ::c_ulong = 0x5405; pub const TCSETA: ::c_ulong = 0x5406; pub const TCSETAW: ::c_ulong = 0x5407;