mirror of
https://github.com/openharmony/third_party_rust_linux-raw-sys.git
synced 2026-07-21 00:25:54 -04:00
Add x32 support. (#36)
Add x32 support, by adding special cases for it in the generator.
This commit is contained in:
+15
-7
@@ -133,7 +133,13 @@ fn main() {
|
||||
let mod_rs = format!("{}/{}.rs", src_arch, mod_name);
|
||||
|
||||
writeln!(src_lib_rs, "#[cfg(feature = \"{}\")]", mod_name).unwrap();
|
||||
writeln!(src_lib_rs, "#[cfg(target_arch = \"{}\")]", rust_arch).unwrap();
|
||||
if *rust_arch == "x32" {
|
||||
writeln!(src_lib_rs, "#[cfg(all(target_arch = \"x86_64\", target_pointer_width = \"32\"))]").unwrap();
|
||||
} else if *rust_arch == "x86_64" {
|
||||
writeln!(src_lib_rs, "#[cfg(all(target_arch = \"x86_64\", target_pointer_width = \"64\"))]").unwrap();
|
||||
} else {
|
||||
writeln!(src_lib_rs, "#[cfg(target_arch = \"{}\")]", rust_arch).unwrap();
|
||||
}
|
||||
writeln!(src_lib_rs, "#[path = \"{}/{}.rs\"]", rust_arch, mod_name).unwrap();
|
||||
writeln!(src_lib_rs, "pub mod {};", mod_name).unwrap();
|
||||
|
||||
@@ -271,7 +277,7 @@ fn rust_arches(linux_arch: &str) -> &[&str] {
|
||||
"riscv" => &["riscv32", "riscv64"],
|
||||
"s390" => &["s390x"],
|
||||
"sparc" => &["sparc", "sparc64"],
|
||||
"x86" => &["x86", "x86_64"],
|
||||
"x86" => &["x86", "x86_64", "x32"],
|
||||
"alpha" | "cris" | "h8300" | "m68k" | "microblaze" | "mn10300" | "score" | "blackfin"
|
||||
| "frv" | "ia64" | "m32r" | "m68knommu" | "parisc" | "sh" | "um" | "xtensa"
|
||||
| "unicore32" | "c6x" | "nios2" | "openrisc" | "csky" | "arc" | "nds32" | "metag"
|
||||
@@ -288,7 +294,7 @@ fn run_bindgen(
|
||||
rust_arch: &str,
|
||||
linux_version: &str,
|
||||
) {
|
||||
let clang_arch = compute_clang_arch(rust_arch);
|
||||
let clang_target = compute_clang_target(rust_arch);
|
||||
|
||||
eprintln!(
|
||||
"Generating bindings for {} on Linux {} architecture {}",
|
||||
@@ -306,7 +312,7 @@ fn run_bindgen(
|
||||
})
|
||||
.array_pointers_in_arguments(true)
|
||||
.derive_debug(true)
|
||||
.clang_arg(&format!("--target={}-unknown-linux", clang_arch))
|
||||
.clang_arg(&format!("--target={}", clang_target))
|
||||
.clang_arg("-DBITS_PER_LONG=(__SIZEOF_LONG__*__CHAR_BIT__)")
|
||||
.clang_arg("-nostdinc")
|
||||
.clang_arg("-I")
|
||||
@@ -333,10 +339,12 @@ fn run_bindgen(
|
||||
.expect(&format!("write_to_file for {}", mod_name));
|
||||
}
|
||||
|
||||
fn compute_clang_arch(rust_arch: &str) -> &str {
|
||||
fn compute_clang_target(rust_arch: &str) -> String {
|
||||
if rust_arch == "x86" {
|
||||
"i686"
|
||||
format!("i686-unknown-linux")
|
||||
} else if rust_arch == "x32" {
|
||||
format!("x86_64-unknown-linux-gnux32")
|
||||
} else {
|
||||
rust_arch
|
||||
format!("{}-unknown-linux", rust_arch)
|
||||
}
|
||||
}
|
||||
|
||||
+20
-4
@@ -272,18 +272,34 @@ pub mod ioctl;
|
||||
#[path = "x86/netlink.rs"]
|
||||
pub mod netlink;
|
||||
#[cfg(feature = "errno")]
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
||||
#[path = "x86_64/errno.rs"]
|
||||
pub mod errno;
|
||||
#[cfg(feature = "general")]
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
||||
#[path = "x86_64/general.rs"]
|
||||
pub mod general;
|
||||
#[cfg(feature = "ioctl")]
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
||||
#[path = "x86_64/ioctl.rs"]
|
||||
pub mod ioctl;
|
||||
#[cfg(feature = "netlink")]
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
||||
#[path = "x86_64/netlink.rs"]
|
||||
pub mod netlink;
|
||||
#[cfg(feature = "errno")]
|
||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
|
||||
#[path = "x32/errno.rs"]
|
||||
pub mod errno;
|
||||
#[cfg(feature = "general")]
|
||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
|
||||
#[path = "x32/general.rs"]
|
||||
pub mod general;
|
||||
#[cfg(feature = "ioctl")]
|
||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
|
||||
#[path = "x32/ioctl.rs"]
|
||||
pub mod ioctl;
|
||||
#[cfg(feature = "netlink")]
|
||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
|
||||
#[path = "x32/netlink.rs"]
|
||||
pub mod netlink;
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
/* automatically generated by rust-bindgen 0.59.2 */
|
||||
|
||||
pub const EPERM: u32 = 1;
|
||||
pub const ENOENT: u32 = 2;
|
||||
pub const ESRCH: u32 = 3;
|
||||
pub const EINTR: u32 = 4;
|
||||
pub const EIO: u32 = 5;
|
||||
pub const ENXIO: u32 = 6;
|
||||
pub const E2BIG: u32 = 7;
|
||||
pub const ENOEXEC: u32 = 8;
|
||||
pub const EBADF: u32 = 9;
|
||||
pub const ECHILD: u32 = 10;
|
||||
pub const EAGAIN: u32 = 11;
|
||||
pub const ENOMEM: u32 = 12;
|
||||
pub const EACCES: u32 = 13;
|
||||
pub const EFAULT: u32 = 14;
|
||||
pub const ENOTBLK: u32 = 15;
|
||||
pub const EBUSY: u32 = 16;
|
||||
pub const EEXIST: u32 = 17;
|
||||
pub const EXDEV: u32 = 18;
|
||||
pub const ENODEV: u32 = 19;
|
||||
pub const ENOTDIR: u32 = 20;
|
||||
pub const EISDIR: u32 = 21;
|
||||
pub const EINVAL: u32 = 22;
|
||||
pub const ENFILE: u32 = 23;
|
||||
pub const EMFILE: u32 = 24;
|
||||
pub const ENOTTY: u32 = 25;
|
||||
pub const ETXTBSY: u32 = 26;
|
||||
pub const EFBIG: u32 = 27;
|
||||
pub const ENOSPC: u32 = 28;
|
||||
pub const ESPIPE: u32 = 29;
|
||||
pub const EROFS: u32 = 30;
|
||||
pub const EMLINK: u32 = 31;
|
||||
pub const EPIPE: u32 = 32;
|
||||
pub const EDOM: u32 = 33;
|
||||
pub const ERANGE: u32 = 34;
|
||||
pub const EDEADLK: u32 = 35;
|
||||
pub const ENAMETOOLONG: u32 = 36;
|
||||
pub const ENOLCK: u32 = 37;
|
||||
pub const ENOSYS: u32 = 38;
|
||||
pub const ENOTEMPTY: u32 = 39;
|
||||
pub const ELOOP: u32 = 40;
|
||||
pub const EWOULDBLOCK: u32 = 11;
|
||||
pub const ENOMSG: u32 = 42;
|
||||
pub const EIDRM: u32 = 43;
|
||||
pub const ECHRNG: u32 = 44;
|
||||
pub const EL2NSYNC: u32 = 45;
|
||||
pub const EL3HLT: u32 = 46;
|
||||
pub const EL3RST: u32 = 47;
|
||||
pub const ELNRNG: u32 = 48;
|
||||
pub const EUNATCH: u32 = 49;
|
||||
pub const ENOCSI: u32 = 50;
|
||||
pub const EL2HLT: u32 = 51;
|
||||
pub const EBADE: u32 = 52;
|
||||
pub const EBADR: u32 = 53;
|
||||
pub const EXFULL: u32 = 54;
|
||||
pub const ENOANO: u32 = 55;
|
||||
pub const EBADRQC: u32 = 56;
|
||||
pub const EBADSLT: u32 = 57;
|
||||
pub const EDEADLOCK: u32 = 35;
|
||||
pub const EBFONT: u32 = 59;
|
||||
pub const ENOSTR: u32 = 60;
|
||||
pub const ENODATA: u32 = 61;
|
||||
pub const ETIME: u32 = 62;
|
||||
pub const ENOSR: u32 = 63;
|
||||
pub const ENONET: u32 = 64;
|
||||
pub const ENOPKG: u32 = 65;
|
||||
pub const EREMOTE: u32 = 66;
|
||||
pub const ENOLINK: u32 = 67;
|
||||
pub const EADV: u32 = 68;
|
||||
pub const ESRMNT: u32 = 69;
|
||||
pub const ECOMM: u32 = 70;
|
||||
pub const EPROTO: u32 = 71;
|
||||
pub const EMULTIHOP: u32 = 72;
|
||||
pub const EDOTDOT: u32 = 73;
|
||||
pub const EBADMSG: u32 = 74;
|
||||
pub const EOVERFLOW: u32 = 75;
|
||||
pub const ENOTUNIQ: u32 = 76;
|
||||
pub const EBADFD: u32 = 77;
|
||||
pub const EREMCHG: u32 = 78;
|
||||
pub const ELIBACC: u32 = 79;
|
||||
pub const ELIBBAD: u32 = 80;
|
||||
pub const ELIBSCN: u32 = 81;
|
||||
pub const ELIBMAX: u32 = 82;
|
||||
pub const ELIBEXEC: u32 = 83;
|
||||
pub const EILSEQ: u32 = 84;
|
||||
pub const ERESTART: u32 = 85;
|
||||
pub const ESTRPIPE: u32 = 86;
|
||||
pub const EUSERS: u32 = 87;
|
||||
pub const ENOTSOCK: u32 = 88;
|
||||
pub const EDESTADDRREQ: u32 = 89;
|
||||
pub const EMSGSIZE: u32 = 90;
|
||||
pub const EPROTOTYPE: u32 = 91;
|
||||
pub const ENOPROTOOPT: u32 = 92;
|
||||
pub const EPROTONOSUPPORT: u32 = 93;
|
||||
pub const ESOCKTNOSUPPORT: u32 = 94;
|
||||
pub const EOPNOTSUPP: u32 = 95;
|
||||
pub const EPFNOSUPPORT: u32 = 96;
|
||||
pub const EAFNOSUPPORT: u32 = 97;
|
||||
pub const EADDRINUSE: u32 = 98;
|
||||
pub const EADDRNOTAVAIL: u32 = 99;
|
||||
pub const ENETDOWN: u32 = 100;
|
||||
pub const ENETUNREACH: u32 = 101;
|
||||
pub const ENETRESET: u32 = 102;
|
||||
pub const ECONNABORTED: u32 = 103;
|
||||
pub const ECONNRESET: u32 = 104;
|
||||
pub const ENOBUFS: u32 = 105;
|
||||
pub const EISCONN: u32 = 106;
|
||||
pub const ENOTCONN: u32 = 107;
|
||||
pub const ESHUTDOWN: u32 = 108;
|
||||
pub const ETOOMANYREFS: u32 = 109;
|
||||
pub const ETIMEDOUT: u32 = 110;
|
||||
pub const ECONNREFUSED: u32 = 111;
|
||||
pub const EHOSTDOWN: u32 = 112;
|
||||
pub const EHOSTUNREACH: u32 = 113;
|
||||
pub const EALREADY: u32 = 114;
|
||||
pub const EINPROGRESS: u32 = 115;
|
||||
pub const ESTALE: u32 = 116;
|
||||
pub const EUCLEAN: u32 = 117;
|
||||
pub const ENOTNAM: u32 = 118;
|
||||
pub const ENAVAIL: u32 = 119;
|
||||
pub const EISNAM: u32 = 120;
|
||||
pub const EREMOTEIO: u32 = 121;
|
||||
pub const EDQUOT: u32 = 122;
|
||||
pub const ENOMEDIUM: u32 = 123;
|
||||
pub const EMEDIUMTYPE: u32 = 124;
|
||||
pub const ECANCELED: u32 = 125;
|
||||
pub const ENOKEY: u32 = 126;
|
||||
pub const EKEYEXPIRED: u32 = 127;
|
||||
pub const EKEYREVOKED: u32 = 128;
|
||||
pub const EKEYREJECTED: u32 = 129;
|
||||
pub const EOWNERDEAD: u32 = 130;
|
||||
pub const ENOTRECOVERABLE: u32 = 131;
|
||||
pub const ERFKILL: u32 = 132;
|
||||
pub const EHWPOISON: u32 = 133;
|
||||
+4998
File diff suppressed because it is too large
Load Diff
+1560
File diff suppressed because it is too large
Load Diff
+2683
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user