Bug 1785002 - Update libc to 0.2.132. r=emilio,supply-chain-reviewers

Differential Revision: https://phabricator.services.mozilla.com/D154731
This commit is contained in:
Mike Hommey 2022-08-16 21:01:47 +00:00
Родитель 88058d9bfe
Коммит ecf2d6f3c8
43 изменённых файлов: 1246 добавлений и 131 удалений

4
Cargo.lock сгенерированный
Просмотреть файл

@ -2936,9 +2936,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.126" version = "0.2.132"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"
[[package]] [[package]]
name = "libdbus-sys" name = "libdbus-sys"

Просмотреть файл

@ -398,6 +398,11 @@ who = "Mike Hommey <mh+mozilla@glandium.org>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"
delta = "1.0.2 -> 1.0.3" delta = "1.0.2 -> 1.0.3"
[[audits.libc]]
who = "Mike Hommey <mh+mozilla@glandium.org>"
criteria = "safe-to-deploy"
delta = "0.2.126 -> 0.2.132"
[[audits.linked-hash-map]] [[audits.linked-hash-map]]
who = "Aria Beingessner <a.beingessner@gmail.com>" who = "Aria Beingessner <a.beingessner@gmail.com>"
criteria = "safe-to-deploy" criteria = "safe-to-deploy"

2
third_party/rust/libc/.cargo-checksum.json поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

4
third_party/rust/libc/CONTRIBUTING.md поставляемый
Просмотреть файл

@ -72,6 +72,10 @@ after a certain period. The steps are:
If you're using it, please comment on #XXX"). If you're using it, please comment on #XXX").
2. If we don't see any concerns for a while, do the change actually. 2. If we don't see any concerns for a while, do the change actually.
## Supported target policy
When Rust removes a support for a target, the libc crate also may remove the support anytime.
## Releasing your change to crates.io ## Releasing your change to crates.io
Now that you've done the amazing job of landing your new API or your new Now that you've done the amazing job of landing your new API or your new

2
third_party/rust/libc/Cargo.toml поставляемый
Просмотреть файл

@ -11,7 +11,7 @@
[package] [package]
name = "libc" name = "libc"
version = "0.2.126" version = "0.2.132"
authors = ["The Rust Project Developers"] authors = ["The Rust Project Developers"]
build = "build.rs" build = "build.rs"
exclude = [ exclude = [

8
third_party/rust/libc/README.md поставляемый
Просмотреть файл

@ -35,13 +35,16 @@ libc = "0.2"
This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`. This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`.
* `const-extern-fn`: Changes some `extern fn`s into `const extern fn`s. * `const-extern-fn`: Changes some `extern fn`s into `const extern fn`s.
This feature requires a nightly rustc. If you use Rust >= 1.62, this feature is implicitly enabled.
Otherwise it requires a nightly rustc.
* **deprecated**: `use_std` is deprecated, and is equivalent to `std`. * **deprecated**: `use_std` is deprecated, and is equivalent to `std`.
## Rust version support ## Rust version support
The minimum supported Rust toolchain version is **Rust 1.13.0** . APIs requiring The minimum supported Rust toolchain version is currently **Rust 1.13.0**.
(libc does not currently have any policy regarding changes to the minimum
supported Rust version; such policy is a work in progress.) APIs requiring
newer Rust features are only available on newer Rust toolchains: newer Rust features are only available on newer Rust toolchains:
| Feature | Version | | Feature | Version |
@ -53,6 +56,7 @@ newer Rust features are only available on newer Rust toolchains:
| `core::ffi::c_void` | 1.30.0 | | `core::ffi::c_void` | 1.30.0 |
| `repr(packed(N))` | 1.33.0 | | `repr(packed(N))` | 1.33.0 |
| `cfg(target_vendor)` | 1.33.0 | | `cfg(target_vendor)` | 1.33.0 |
| `const-extern-fn` | 1.62.0 |
## Platform support ## Platform support

15
third_party/rust/libc/build.rs поставляемый
Просмотреть файл

@ -97,11 +97,18 @@ fn main() {
println!("cargo:rustc-cfg=libc_thread_local"); println!("cargo:rustc-cfg=libc_thread_local");
} }
if const_extern_fn_cargo_feature { // Rust >= 1.62.0 allows to use `const_extern_fn` for "Rust" and "C".
if !is_nightly || rustc_minor_ver < 40 { if rustc_minor_ver >= 62 {
panic!("const-extern-fn requires a nightly compiler >= 1.40")
}
println!("cargo:rustc-cfg=libc_const_extern_fn"); println!("cargo:rustc-cfg=libc_const_extern_fn");
} else {
// Rust < 1.62.0 requires a crate feature and feature gate.
if const_extern_fn_cargo_feature {
if !is_nightly || rustc_minor_ver < 40 {
panic!("const-extern-fn requires a nightly compiler >= 1.40");
}
println!("cargo:rustc-cfg=libc_const_extern_fn_unstable");
println!("cargo:rustc-cfg=libc_const_extern_fn");
}
} }
} }

11
third_party/rust/libc/src/fuchsia/mod.rs поставляемый
Просмотреть файл

@ -877,6 +877,11 @@ s! {
pub c_ispeed: ::speed_t, pub c_ispeed: ::speed_t,
pub c_ospeed: ::speed_t, pub c_ospeed: ::speed_t,
} }
pub struct in6_pktinfo {
pub ipi6_addr: ::in6_addr,
pub ipi6_ifindex: ::c_uint,
}
} }
s_no_extra_traits! { s_no_extra_traits! {
@ -1788,6 +1793,9 @@ pub const IPV6_MULTICAST_LOOP: ::c_int = 19;
pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20;
pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21;
pub const IPV6_V6ONLY: ::c_int = 26; pub const IPV6_V6ONLY: ::c_int = 26;
pub const IPV6_RECVPKTINFO: ::c_int = 49;
pub const IPV6_RECVTCLASS: ::c_int = 66;
pub const IPV6_TCLASS: ::c_int = 67;
pub const TCP_NODELAY: ::c_int = 1; pub const TCP_NODELAY: ::c_int = 1;
pub const TCP_MAXSEG: ::c_int = 2; pub const TCP_MAXSEG: ::c_int = 2;
@ -2669,6 +2677,9 @@ pub const PT_GNU_EH_FRAME: u32 = 0x6474e550;
pub const PT_GNU_STACK: u32 = 0x6474e551; pub const PT_GNU_STACK: u32 = 0x6474e551;
pub const PT_GNU_RELRO: u32 = 0x6474e552; pub const PT_GNU_RELRO: u32 = 0x6474e552;
// Ethernet protocol IDs.
pub const ETH_P_IP: ::c_int = 0x0800;
pub const SFD_CLOEXEC: ::c_int = 0x080000; pub const SFD_CLOEXEC: ::c_int = 0x080000;
pub const NCCS: usize = 32; pub const NCCS: usize = 32;

10
third_party/rust/libc/src/lib.rs поставляемый
Просмотреть файл

@ -13,7 +13,9 @@
improper_ctypes, improper_ctypes,
// This lint is renamed but we run CI for old stable rustc so should be here. // This lint is renamed but we run CI for old stable rustc so should be here.
redundant_semicolon, redundant_semicolon,
redundant_semicolons redundant_semicolons,
unused_macros,
unused_macro_rules,
)] )]
#![cfg_attr(libc_deny_warnings, deny(warnings))] #![cfg_attr(libc_deny_warnings, deny(warnings))]
// Attributes needed when building as part of the standard library // Attributes needed when building as part of the standard library
@ -24,11 +26,7 @@
#![deny(missing_copy_implementations, safe_packed_borrows)] #![deny(missing_copy_implementations, safe_packed_borrows)]
#![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)] #![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)]
#![cfg_attr(feature = "rustc-dep-of-std", no_core)] #![cfg_attr(feature = "rustc-dep-of-std", no_core)]
#![cfg_attr( #![cfg_attr(libc_const_extern_fn_unstable, feature(const_extern_fn))]
feature = "rustc-dep-of-std",
feature(native_link_modifiers, native_link_modifiers_bundle)
)]
#![cfg_attr(libc_const_extern_fn, feature(const_extern_fn))]
#[macro_use] #[macro_use]
mod macros; mod macros;

16
third_party/rust/libc/src/macros.rs поставляемый
Просмотреть файл

@ -6,7 +6,6 @@
/// ///
/// This allows you to conveniently provide a long list #[cfg]'d blocks of code /// This allows you to conveniently provide a long list #[cfg]'d blocks of code
/// without having to rewrite each clause multiple times. /// without having to rewrite each clause multiple times.
#[allow(unused_macros)]
macro_rules! cfg_if { macro_rules! cfg_if {
// match if/else chains with a final `else` // match if/else chains with a final `else`
($( ($(
@ -62,7 +61,6 @@ macro_rules! cfg_if {
}; };
} }
#[allow(unused_macros, unused_macro_rules)]
macro_rules! s { macro_rules! s {
($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($( ($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($(
s!(it: $(#[$attr])* pub $t $i { $($field)* }); s!(it: $(#[$attr])* pub $t $i { $($field)* });
@ -87,7 +85,6 @@ macro_rules! s {
); );
} }
#[allow(unused_macros)]
macro_rules! s_no_extra_traits { macro_rules! s_no_extra_traits {
($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($( ($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($(
s_no_extra_traits!(it: $(#[$attr])* pub $t $i { $($field)* }); s_no_extra_traits!(it: $(#[$attr])* pub $t $i { $($field)* });
@ -123,7 +120,6 @@ macro_rules! s_no_extra_traits {
); );
} }
#[allow(unused_macros)]
macro_rules! e { macro_rules! e {
($($(#[$attr:meta])* pub enum $i:ident { $($field:tt)* })*) => ($( ($($(#[$attr:meta])* pub enum $i:ident { $($field:tt)* })*) => ($(
__item! { __item! {
@ -138,7 +134,6 @@ macro_rules! e {
)*); )*);
} }
#[allow(unused_macros)]
macro_rules! s_paren { macro_rules! s_paren {
($($(#[$attr:meta])* pub struct $i:ident ( $($field:tt)* ); )* ) => ($( ($($(#[$attr:meta])* pub struct $i:ident ( $($field:tt)* ); )* ) => ($(
__item! { __item! {
@ -182,7 +177,6 @@ macro_rules! s_paren {
// 'f!' block // 'f!' block
cfg_if! { cfg_if! {
if #[cfg(libc_const_extern_fn)] { if #[cfg(libc_const_extern_fn)] {
#[allow(unused_macros)]
macro_rules! f { macro_rules! f {
($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
$($arg:ident: $argty:ty),* $($arg:ident: $argty:ty),*
@ -198,7 +192,6 @@ cfg_if! {
)*) )*)
} }
#[allow(unused_macros)]
macro_rules! safe_f { macro_rules! safe_f {
($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
$($arg:ident: $argty:ty),* $($arg:ident: $argty:ty),*
@ -214,7 +207,6 @@ cfg_if! {
)*) )*)
} }
#[allow(unused_macros)]
macro_rules! const_fn { macro_rules! const_fn {
($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident( ($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident(
$($arg:ident: $argty:ty),* $($arg:ident: $argty:ty),*
@ -231,7 +223,6 @@ cfg_if! {
} }
} else { } else {
#[allow(unused_macros)]
macro_rules! f { macro_rules! f {
($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
$($arg:ident: $argty:ty),* $($arg:ident: $argty:ty),*
@ -247,7 +238,6 @@ cfg_if! {
)*) )*)
} }
#[allow(unused_macros)]
macro_rules! safe_f { macro_rules! safe_f {
($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
$($arg:ident: $argty:ty),* $($arg:ident: $argty:ty),*
@ -263,7 +253,6 @@ cfg_if! {
)*) )*)
} }
#[allow(unused_macros)]
macro_rules! const_fn { macro_rules! const_fn {
($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident( ($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident(
$($arg:ident: $argty:ty),* $($arg:ident: $argty:ty),*
@ -281,14 +270,12 @@ cfg_if! {
} }
} }
#[allow(unused_macros)]
macro_rules! __item { macro_rules! __item {
($i:item) => { ($i:item) => {
$i $i
}; };
} }
#[allow(unused_macros)]
macro_rules! align_const { macro_rules! align_const {
($($(#[$attr:meta])* ($($(#[$attr:meta])*
pub const $name:ident : $t1:ty pub const $name:ident : $t1:ty
@ -308,7 +295,6 @@ macro_rules! align_const {
} }
// This macro is used to deprecate items that should be accessed via the mach2 crate // This macro is used to deprecate items that should be accessed via the mach2 crate
#[allow(unused_macros)]
macro_rules! deprecated_mach { macro_rules! deprecated_mach {
(pub const $id:ident: $ty:ty = $expr:expr;) => { (pub const $id:ident: $ty:ty = $expr:expr;) => {
#[deprecated( #[deprecated(
@ -342,7 +328,6 @@ macro_rules! deprecated_mach {
} }
} }
#[allow(unused_macros)]
#[cfg(not(libc_ptr_addr_of))] #[cfg(not(libc_ptr_addr_of))]
macro_rules! ptr_addr_of { macro_rules! ptr_addr_of {
($place:expr) => { ($place:expr) => {
@ -350,7 +335,6 @@ macro_rules! ptr_addr_of {
}; };
} }
#[allow(unused_macros)]
#[cfg(libc_ptr_addr_of)] #[cfg(libc_ptr_addr_of)]
macro_rules! ptr_addr_of { macro_rules! ptr_addr_of {
($place:expr) => { ($place:expr) => {

Просмотреть файл

@ -15,6 +15,7 @@ s! {
pub uc_link: *mut ::ucontext_t, pub uc_link: *mut ::ucontext_t,
pub uc_mcsize: usize, pub uc_mcsize: usize,
pub uc_mcontext: mcontext_t, pub uc_mcontext: mcontext_t,
__mcontext_data: __darwin_mcontext64,
} }
pub struct __darwin_mcontext64 { pub struct __darwin_mcontext64 {

Просмотреть файл

@ -53,6 +53,8 @@ pub type host_info64_t = *mut integer_t;
pub type processor_flavor_t = ::c_int; pub type processor_flavor_t = ::c_int;
pub type thread_flavor_t = natural_t; pub type thread_flavor_t = natural_t;
pub type thread_inspect_t = ::mach_port_t; pub type thread_inspect_t = ::mach_port_t;
pub type thread_act_t = ::mach_port_t;
pub type thread_act_array_t = *mut ::thread_act_t;
pub type policy_t = ::c_int; pub type policy_t = ::c_int;
pub type mach_vm_address_t = u64; pub type mach_vm_address_t = u64;
pub type mach_vm_offset_t = u64; pub type mach_vm_offset_t = u64;
@ -64,6 +66,9 @@ pub type memory_object_offset_t = ::c_ulonglong;
pub type vm_inherit_t = ::c_uint; pub type vm_inherit_t = ::c_uint;
pub type vm_prot_t = ::c_int; pub type vm_prot_t = ::c_int;
pub type ledger_t = ::mach_port_t;
pub type ledger_array_t = *mut ::ledger_t;
pub type iconv_t = *mut ::c_void; pub type iconv_t = *mut ::c_void;
pub type processor_cpu_load_info_t = *mut processor_cpu_load_info; pub type processor_cpu_load_info_t = *mut processor_cpu_load_info;
@ -121,6 +126,7 @@ pub type vm_statistics64_t = *mut vm_statistics64;
pub type vm_statistics64_data_t = vm_statistics64; pub type vm_statistics64_data_t = vm_statistics64;
pub type task_t = ::mach_port_t; pub type task_t = ::mach_port_t;
pub type task_inspect_t = ::mach_port_t;
pub type sysdir_search_path_enumeration_state = ::c_uint; pub type sysdir_search_path_enumeration_state = ::c_uint;
@ -672,6 +678,13 @@ s! {
pub s_addr: ::in_addr_t, pub s_addr: ::in_addr_t,
} }
// net/ndrv.h
pub struct sockaddr_ndrv {
pub snd_len: ::c_uchar,
pub snd_family: ::c_uchar,
pub snd_name: [::c_uchar; 16] // IFNAMSIZ from if.h
}
// sys/socket.h // sys/socket.h
pub struct sa_endpoints_t { pub struct sa_endpoints_t {
@ -1038,7 +1051,8 @@ s_no_extra_traits! {
pub f_fstypename: [::c_char; 16], pub f_fstypename: [::c_char; 16],
pub f_mntonname: [::c_char; 1024], pub f_mntonname: [::c_char; 1024],
pub f_mntfromname: [::c_char; 1024], pub f_mntfromname: [::c_char; 1024],
pub f_reserved: [u32; 8], pub f_flags_ext: u32,
pub f_reserved: [u32; 7],
} }
pub struct dirent { pub struct dirent {
@ -3466,6 +3480,7 @@ pub const pseudo_AF_RTIP: ::c_int = 22;
pub const AF_IPX: ::c_int = 23; pub const AF_IPX: ::c_int = 23;
pub const AF_SIP: ::c_int = 24; pub const AF_SIP: ::c_int = 24;
pub const pseudo_AF_PIP: ::c_int = 25; pub const pseudo_AF_PIP: ::c_int = 25;
pub const AF_NDRV: ::c_int = 27;
pub const AF_ISDN: ::c_int = 28; pub const AF_ISDN: ::c_int = 28;
pub const AF_E164: ::c_int = AF_ISDN; pub const AF_E164: ::c_int = AF_ISDN;
pub const pseudo_AF_KEY: ::c_int = 29; pub const pseudo_AF_KEY: ::c_int = 29;
@ -3508,6 +3523,7 @@ pub const PF_SIP: ::c_int = AF_SIP;
pub const PF_IPX: ::c_int = AF_IPX; pub const PF_IPX: ::c_int = AF_IPX;
pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; pub const PF_RTIP: ::c_int = pseudo_AF_RTIP;
pub const PF_PIP: ::c_int = pseudo_AF_PIP; pub const PF_PIP: ::c_int = pseudo_AF_PIP;
pub const PF_NDRV: ::c_int = AF_NDRV;
pub const PF_ISDN: ::c_int = AF_ISDN; pub const PF_ISDN: ::c_int = AF_ISDN;
pub const PF_KEY: ::c_int = pseudo_AF_KEY; pub const PF_KEY: ::c_int = pseudo_AF_KEY;
pub const PF_INET6: ::c_int = AF_INET6; pub const PF_INET6: ::c_int = AF_INET6;
@ -3552,6 +3568,7 @@ pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70;
pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71; pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71;
pub const IP_BLOCK_SOURCE: ::c_int = 72; pub const IP_BLOCK_SOURCE: ::c_int = 72;
pub const IP_UNBLOCK_SOURCE: ::c_int = 73; pub const IP_UNBLOCK_SOURCE: ::c_int = 73;
pub const IPV6_BOUND_IF: ::c_int = 125;
pub const TCP_NOPUSH: ::c_int = 4; pub const TCP_NOPUSH: ::c_int = 4;
pub const TCP_NOOPT: ::c_int = 8; pub const TCP_NOOPT: ::c_int = 8;
@ -4672,6 +4689,16 @@ cfg_if! {
const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::<u32>() - 1; const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::<u32>() - 1;
p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32
} }
} else {
fn __DARWIN_ALIGN32(p: usize) -> usize {
let __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::<u32>() - 1;
p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32
}
}
}
cfg_if! {
if #[cfg(libc_const_size_of)] {
pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t =
(::mem::size_of::<thread_extended_policy_data_t>() / ::mem::size_of::<integer_t>()) (::mem::size_of::<thread_extended_policy_data_t>() / ::mem::size_of::<integer_t>())
as mach_msg_type_number_t; as mach_msg_type_number_t;
@ -4712,10 +4739,6 @@ cfg_if! {
(::mem::size_of::<vm_statistics64_data_t>() / ::mem::size_of::<integer_t>()) (::mem::size_of::<vm_statistics64_data_t>() / ::mem::size_of::<integer_t>())
as mach_msg_type_number_t; as mach_msg_type_number_t;
} else { } else {
fn __DARWIN_ALIGN32(p: usize) -> usize {
let __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::<u32>() - 1;
p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32
}
pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = 1; pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = 1;
pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = 4; pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = 4;
pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t = 1; pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t = 1;
@ -5004,6 +5027,8 @@ extern "C" {
thread_info_out: thread_info_t, thread_info_out: thread_info_t,
thread_info_outCnt: *mut mach_msg_type_number_t, thread_info_outCnt: *mut mach_msg_type_number_t,
) -> kern_return_t; ) -> kern_return_t;
#[cfg_attr(doc, doc(alias = "__errno_location"))]
#[cfg_attr(doc, doc(alias = "errno"))]
pub fn __error() -> *mut ::c_int; pub fn __error() -> *mut ::c_int;
pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int;
pub fn backtrace_symbols(addrs: *const *mut ::c_void, sz: ::c_int) -> *mut *mut ::c_char; pub fn backtrace_symbols(addrs: *const *mut ::c_void, sz: ::c_int) -> *mut *mut ::c_char;
@ -5480,6 +5505,19 @@ extern "C" {
task_info_out: task_info_t, task_info_out: task_info_t,
task_info_count: *mut mach_msg_type_number_t, task_info_count: *mut mach_msg_type_number_t,
) -> ::kern_return_t; ) -> ::kern_return_t;
pub fn task_create(
target_task: ::task_t,
ledgers: ::ledger_array_t,
ledgersCnt: ::mach_msg_type_number_t,
inherit_memory: ::boolean_t,
child_task: *mut ::task_t,
) -> ::kern_return_t;
pub fn task_terminate(target_task: ::task_t) -> ::kern_return_t;
pub fn task_threads(
target_task: ::task_inspect_t,
act_list: *mut ::thread_act_array_t,
act_listCnt: *mut ::mach_msg_type_number_t,
) -> ::kern_return_t;
pub fn host_statistics( pub fn host_statistics(
host_priv: host_t, host_priv: host_t,
flavor: host_flavor_t, flavor: host_flavor_t,
@ -5508,12 +5546,23 @@ cfg_if! {
if #[cfg(target_os = "macos")] { if #[cfg(target_os = "macos")] {
extern "C" { extern "C" {
pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int;
}
}
}
cfg_if! {
if #[cfg(any(target_os = "macos", target_os = "ios"))] {
extern "C" {
pub fn memmem( pub fn memmem(
haystack: *const ::c_void, haystack: *const ::c_void,
haystacklen: ::size_t, haystacklen: ::size_t,
needle: *const ::c_void, needle: *const ::c_void,
needlelen: ::size_t, needlelen: ::size_t,
) -> *mut ::c_void; ) -> *mut ::c_void;
pub fn task_set_info(target_task: ::task_t,
flavor: ::task_flavor_t,
task_info_in: ::task_info_t,
task_info_inCnt: ::mach_msg_type_number_t
) -> ::kern_return_t;
} }
} }
} }

Просмотреть файл

@ -34,6 +34,17 @@ pub type pthread_spinlock_t = ::uintptr_t;
pub type segsz_t = usize; pub type segsz_t = usize;
pub type vm_prot_t = u8;
pub type vm_maptype_t = u8;
pub type vm_inherit_t = i8;
pub type vm_subsys_t = ::c_int;
pub type vm_eflags_t = ::c_uint;
pub type vm_map_t = *mut __c_anonymous_vm_map;
pub type vm_map_entry_t = *mut vm_map_entry;
pub type pmap = __c_anonymous_pmap;
#[cfg_attr(feature = "extra_traits", derive(Debug))] #[cfg_attr(feature = "extra_traits", derive(Debug))]
pub enum sem {} pub enum sem {}
impl ::Copy for sem {} impl ::Copy for sem {}
@ -336,6 +347,50 @@ s! {
kp_spare: [::c_int; 2], kp_spare: [::c_int; 2],
} }
pub struct __c_anonymous_vm_map {
_priv: [::uintptr_t; 36],
}
pub struct vm_map_entry {
_priv: [::uintptr_t; 15],
pub eflags: ::vm_eflags_t,
pub maptype: ::vm_maptype_t,
pub protection: ::vm_prot_t,
pub max_protection: ::vm_prot_t,
pub inheritance: ::vm_inherit_t,
pub wired_count: ::c_int,
pub id: ::vm_subsys_t,
}
pub struct __c_anonymous_pmap {
_priv1: [::uintptr_t; 32],
_priv2: [::uintptr_t; 32],
_priv3: [::uintptr_t; 32],
_priv4: [::uintptr_t; 32],
_priv5: [::uintptr_t; 8],
}
pub struct vmspace {
vm_map: __c_anonymous_vm_map,
vm_pmap: __c_anonymous_pmap,
pub vm_flags: ::c_int,
pub vm_shm: *mut ::c_char,
pub vm_rssize: ::segsz_t,
pub vm_swrss: ::segsz_t,
pub vm_tsize: ::segsz_t,
pub vm_dsize: ::segsz_t,
pub vm_ssize: ::segsz_t,
pub vm_taddr: *mut ::c_char,
pub vm_daddr: *mut ::c_char,
pub vm_maxsaddr: *mut ::c_char,
pub vm_minsaddr: *mut ::c_char,
_unused1: ::c_int,
_unused2: ::c_int,
pub vm_pagesupply: ::c_int,
pub vm_holdcnt: ::c_uint,
pub vm_refcnt: ::c_uint,
}
pub struct cpuctl_msr_args_t { pub struct cpuctl_msr_args_t {
pub msr: ::c_int, pub msr: ::c_int,
pub data: u64, pub data: u64,
@ -1613,6 +1668,20 @@ extern "C" {
pub fn freezero(ptr: *mut ::c_void, size: ::size_t); pub fn freezero(ptr: *mut ::c_void, size: ::size_t);
} }
#[link(name = "kvm")]
extern "C" {
pub fn kvm_vm_map_entry_first(
kvm: *mut ::kvm_t,
map: vm_map_t,
entry: vm_map_entry_t,
) -> vm_map_entry_t;
pub fn kvm_vm_map_entry_next(
kvm: *mut ::kvm_t,
map: vm_map_entry_t,
entry: vm_map_entry_t,
) -> vm_map_entry_t;
}
cfg_if! { cfg_if! {
if #[cfg(libc_thread_local)] { if #[cfg(libc_thread_local)] {
mod errno; mod errno;

Просмотреть файл

@ -44,10 +44,6 @@ pub type fhandle_t = fhandle;
pub type au_id_t = ::uid_t; pub type au_id_t = ::uid_t;
pub type au_asid_t = ::pid_t; pub type au_asid_t = ::pid_t;
// It's an alias over "struct __kvm_t". However, its fields aren't supposed to be used directly,
// making the type definition system dependent. Better not bind it exactly.
pub type kvm_t = ::c_void;
#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] #[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))]
#[repr(u32)] #[repr(u32)]
pub enum devstat_support_flags { pub enum devstat_support_flags {
@ -3661,6 +3657,19 @@ pub const CPUCLOCK_WHICH_TID: ::c_int = 1;
pub const MFD_CLOEXEC: ::c_uint = 0x00000001; pub const MFD_CLOEXEC: ::c_uint = 0x00000001;
pub const MFD_ALLOW_SEALING: ::c_uint = 0x00000002; pub const MFD_ALLOW_SEALING: ::c_uint = 0x00000002;
pub const MFD_HUGETLB: ::c_uint = 0x00000004; pub const MFD_HUGETLB: ::c_uint = 0x00000004;
pub const MFD_HUGE_MASK: ::c_uint = 0xFC000000;
pub const MFD_HUGE_64KB: ::c_uint = 16 << 26;
pub const MFD_HUGE_512KB: ::c_uint = 19 << 26;
pub const MFD_HUGE_1MB: ::c_uint = 20 << 26;
pub const MFD_HUGE_2MB: ::c_uint = 21 << 26;
pub const MFD_HUGE_8MB: ::c_uint = 23 << 26;
pub const MFD_HUGE_16MB: ::c_uint = 24 << 26;
pub const MFD_HUGE_32MB: ::c_uint = 25 << 26;
pub const MFD_HUGE_256MB: ::c_uint = 28 << 26;
pub const MFD_HUGE_512MB: ::c_uint = 29 << 26;
pub const MFD_HUGE_1GB: ::c_uint = 30 << 26;
pub const MFD_HUGE_2GB: ::c_uint = 31 << 26;
pub const MFD_HUGE_16GB: ::c_uint = 34 << 26;
pub const SHM_LARGEPAGE_ALLOC_DEFAULT: ::c_int = 0; pub const SHM_LARGEPAGE_ALLOC_DEFAULT: ::c_int = 0;
pub const SHM_LARGEPAGE_ALLOC_NOWAIT: ::c_int = 1; pub const SHM_LARGEPAGE_ALLOC_NOWAIT: ::c_int = 1;
@ -3772,21 +3781,21 @@ f! {
} }
pub fn CPU_SET(cpu: usize, cpuset: &mut cpuset_t) -> () { pub fn CPU_SET(cpu: usize, cpuset: &mut cpuset_t) -> () {
let bitset_bits = ::mem::size_of::<::c_long>(); let bitset_bits = 8 * ::mem::size_of::<::c_long>();
let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits);
cpuset.__bits[idx] |= 1 << offset; cpuset.__bits[idx] |= 1 << offset;
() ()
} }
pub fn CPU_CLR(cpu: usize, cpuset: &mut cpuset_t) -> () { pub fn CPU_CLR(cpu: usize, cpuset: &mut cpuset_t) -> () {
let bitset_bits = ::mem::size_of::<::c_long>(); let bitset_bits = 8 * ::mem::size_of::<::c_long>();
let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits);
cpuset.__bits[idx] &= !(1 << offset); cpuset.__bits[idx] &= !(1 << offset);
() ()
} }
pub fn CPU_ISSET(cpu: usize, cpuset: &cpuset_t) -> bool { pub fn CPU_ISSET(cpu: usize, cpuset: &cpuset_t) -> bool {
let bitset_bits = ::mem::size_of::<::c_long>(); let bitset_bits = 8 * ::mem::size_of::<::c_long>();
let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits);
0 != cpuset.__bits[idx] & (1 << offset) 0 != cpuset.__bits[idx] & (1 << offset)
} }
@ -3794,9 +3803,9 @@ f! {
pub fn CPU_COUNT(cpuset: &cpuset_t) -> ::c_int { pub fn CPU_COUNT(cpuset: &cpuset_t) -> ::c_int {
let mut s: u32 = 0; let mut s: u32 = 0;
let cpuset_size = ::mem::size_of::<cpuset_t>(); let cpuset_size = ::mem::size_of::<cpuset_t>();
let bitset_bits = ::mem::size_of::<::c_long>(); let bitset_size = ::mem::size_of::<::c_long>();
for i in cpuset.__bits[..(cpuset_size / bitset_bits)].iter() { for i in cpuset.__bits[..(cpuset_size / bitset_size)].iter() {
s += i.count_ones(); s += i.count_ones();
}; };
s as ::c_int s as ::c_int
@ -3839,6 +3848,8 @@ cfg_if! {
} }
extern "C" { extern "C" {
#[cfg_attr(doc, doc(alias = "__errno_location"))]
#[cfg_attr(doc, doc(alias = "errno"))]
pub fn __error() -> *mut ::c_int; pub fn __error() -> *mut ::c_int;
pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int;
@ -4272,71 +4283,39 @@ extern "C" {
#[link(name = "kvm")] #[link(name = "kvm")]
extern "C" { extern "C" {
pub fn kvm_open( pub fn kvm_dpcpu_setcpu(kd: *mut ::kvm_t, cpu: ::c_uint) -> ::c_int;
execfile: *const ::c_char, pub fn kvm_getargv(kd: *mut ::kvm_t, p: *const kinfo_proc, nchr: ::c_int)
corefile: *const ::c_char, -> *mut *mut ::c_char;
swapfile: *const ::c_char, pub fn kvm_getcptime(kd: *mut ::kvm_t, cp_time: *mut ::c_long) -> ::c_int;
flags: ::c_int, pub fn kvm_getenvv(kd: *mut ::kvm_t, p: *const kinfo_proc, nchr: ::c_int)
errstr: *const ::c_char, -> *mut *mut ::c_char;
) -> *mut kvm_t; pub fn kvm_geterr(kd: *mut ::kvm_t) -> *mut ::c_char;
pub fn kvm_close(kd: *mut kvm_t) -> ::c_int; pub fn kvm_getmaxcpu(kd: *mut ::kvm_t) -> ::c_int;
pub fn kvm_dpcpu_setcpu(kd: *mut kvm_t, cpu: ::c_uint) -> ::c_int; pub fn kvm_getncpus(kd: *mut ::kvm_t) -> ::c_int;
pub fn kvm_getargv(kd: *mut kvm_t, p: *const kinfo_proc, nchr: ::c_int) -> *mut *mut ::c_char; pub fn kvm_getpcpu(kd: *mut ::kvm_t, cpu: ::c_int) -> *mut ::c_void;
pub fn kvm_getcptime(kd: *mut kvm_t, cp_time: *mut ::c_long) -> ::c_int; pub fn kvm_counter_u64_fetch(kd: *mut ::kvm_t, base: ::c_ulong) -> u64;
pub fn kvm_getenvv(kd: *mut kvm_t, p: *const kinfo_proc, nchr: ::c_int) -> *mut *mut ::c_char;
pub fn kvm_geterr(kd: *mut kvm_t) -> *mut ::c_char;
pub fn kvm_getloadavg(kd: *mut kvm_t, loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int;
pub fn kvm_getmaxcpu(kd: *mut kvm_t) -> ::c_int;
pub fn kvm_getncpus(kd: *mut kvm_t) -> ::c_int;
pub fn kvm_getpcpu(kd: *mut kvm_t, cpu: ::c_int) -> *mut ::c_void;
pub fn kvm_counter_u64_fetch(kd: *mut kvm_t, base: ::c_ulong) -> u64;
pub fn kvm_getprocs(
kd: *mut kvm_t,
op: ::c_int,
arg: ::c_int,
cnt: *mut ::c_int,
) -> *mut kinfo_proc;
pub fn kvm_getswapinfo( pub fn kvm_getswapinfo(
kd: *mut kvm_t, kd: *mut ::kvm_t,
info: *mut kvm_swap, info: *mut kvm_swap,
maxswap: ::c_int, maxswap: ::c_int,
flags: ::c_int, flags: ::c_int,
) -> ::c_int; ) -> ::c_int;
pub fn kvm_native(kd: *mut kvm_t) -> ::c_int; pub fn kvm_native(kd: *mut ::kvm_t) -> ::c_int;
pub fn kvm_nlist(kd: *mut kvm_t, nl: *mut nlist) -> ::c_int; pub fn kvm_nlist(kd: *mut ::kvm_t, nl: *mut nlist) -> ::c_int;
pub fn kvm_nlist2(kd: *mut kvm_t, nl: *mut kvm_nlist) -> ::c_int; pub fn kvm_nlist2(kd: *mut ::kvm_t, nl: *mut kvm_nlist) -> ::c_int;
pub fn kvm_openfiles(
execfile: *const ::c_char,
corefile: *const ::c_char,
swapfile: *const ::c_char,
flags: ::c_int,
errbuf: *mut ::c_char,
) -> *mut kvm_t;
pub fn kvm_read(
kd: *mut kvm_t,
addr: ::c_ulong,
buf: *mut ::c_void,
nbytes: ::size_t,
) -> ::ssize_t;
pub fn kvm_read_zpcpu( pub fn kvm_read_zpcpu(
kd: *mut kvm_t, kd: *mut ::kvm_t,
base: ::c_ulong, base: ::c_ulong,
buf: *mut ::c_void, buf: *mut ::c_void,
size: ::size_t, size: ::size_t,
cpu: ::c_int, cpu: ::c_int,
) -> ::ssize_t; ) -> ::ssize_t;
pub fn kvm_read2( pub fn kvm_read2(
kd: *mut kvm_t, kd: *mut ::kvm_t,
addr: kvaddr_t, addr: kvaddr_t,
buf: *mut ::c_void, buf: *mut ::c_void,
nbytes: ::size_t, nbytes: ::size_t,
) -> ::ssize_t; ) -> ::ssize_t;
pub fn kvm_write(
kd: *mut kvm_t,
addr: ::c_ulong,
buf: *const ::c_void,
nbytes: ::size_t,
) -> ::ssize_t;
} }
#[link(name = "util")] #[link(name = "util")]
@ -4486,10 +4465,10 @@ extern "C" {
#[link(name = "devstat")] #[link(name = "devstat")]
extern "C" { extern "C" {
pub fn devstat_getnumdevs(kd: *mut kvm_t) -> ::c_int; pub fn devstat_getnumdevs(kd: *mut ::kvm_t) -> ::c_int;
pub fn devstat_getgeneration(kd: *mut kvm_t) -> ::c_long; pub fn devstat_getgeneration(kd: *mut ::kvm_t) -> ::c_long;
pub fn devstat_getversion(kd: *mut kvm_t) -> ::c_int; pub fn devstat_getversion(kd: *mut ::kvm_t) -> ::c_int;
pub fn devstat_checkversion(kd: *mut kvm_t) -> ::c_int; pub fn devstat_checkversion(kd: *mut ::kvm_t) -> ::c_int;
pub fn devstat_selectdevs( pub fn devstat_selectdevs(
dev_select: *mut *mut device_selection, dev_select: *mut *mut device_selection,
num_selected: *mut ::c_int, num_selected: *mut ::c_int,

Просмотреть файл

@ -35,6 +35,10 @@ pub type Elf64_Xword = u64;
pub type iconv_t = *mut ::c_void; pub type iconv_t = *mut ::c_void;
// It's an alias over "struct __kvm_t". However, its fields aren't supposed to be used directly,
// making the type definition system dependent. Better not bind it exactly.
pub type kvm_t = ::c_void;
cfg_if! { cfg_if! {
if #[cfg(target_pointer_width = "64")] { if #[cfg(target_pointer_width = "64")] {
type Elf_Addr = Elf64_Addr; type Elf_Addr = Elf64_Addr;
@ -1790,6 +1794,44 @@ extern "C" {
) -> ::c_int; ) -> ::c_int;
} }
#[link(name = "kvm")]
extern "C" {
pub fn kvm_open(
execfile: *const ::c_char,
corefile: *const ::c_char,
swapfile: *const ::c_char,
flags: ::c_int,
errstr: *const ::c_char,
) -> *mut ::kvm_t;
pub fn kvm_close(kd: *mut ::kvm_t) -> ::c_int;
pub fn kvm_getprocs(
kd: *mut ::kvm_t,
op: ::c_int,
arg: ::c_int,
cnt: *mut ::c_int,
) -> *mut ::kinfo_proc;
pub fn kvm_getloadavg(kd: *mut kvm_t, loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int;
pub fn kvm_openfiles(
execfile: *const ::c_char,
corefile: *const ::c_char,
swapfile: *const ::c_char,
flags: ::c_int,
errbuf: *mut ::c_char,
) -> *mut ::kvm_t;
pub fn kvm_read(
kd: *mut ::kvm_t,
addr: ::c_ulong,
buf: *mut ::c_void,
nbytes: ::size_t,
) -> ::ssize_t;
pub fn kvm_write(
kd: *mut ::kvm_t,
addr: ::c_ulong,
buf: *const ::c_void,
nbytes: ::size_t,
) -> ::ssize_t;
}
cfg_if! { cfg_if! {
if #[cfg(target_os = "freebsd")] { if #[cfg(target_os = "freebsd")] {
mod freebsd; mod freebsd;

6
third_party/rust/libc/src/unix/bsd/mod.rs поставляемый
Просмотреть файл

@ -449,6 +449,12 @@ pub const TCP_MAXSEG: ::c_int = 2;
pub const PIPE_BUF: usize = 512; pub const PIPE_BUF: usize = 512;
// si_code values for SIGBUS signal
pub const BUS_ADRALN: ::c_int = 1;
pub const BUS_ADRERR: ::c_int = 2;
pub const BUS_OBJERR: ::c_int = 3;
// si_code values for SIGCHLD signal
pub const CLD_EXITED: ::c_int = 1; pub const CLD_EXITED: ::c_int = 1;
pub const CLD_KILLED: ::c_int = 2; pub const CLD_KILLED: ::c_int = 2;
pub const CLD_DUMPED: ::c_int = 3; pub const CLD_DUMPED: ::c_int = 3;

Просмотреть файл

@ -639,17 +639,6 @@ pub const TIOCM_DSR: ::c_int = 0o0400;
pub const TIOCM_CD: ::c_int = TIOCM_CAR; pub const TIOCM_CD: ::c_int = TIOCM_CAR;
pub const TIOCM_RI: ::c_int = TIOCM_RNG; pub const TIOCM_RI: ::c_int = TIOCM_RNG;
// Flags for chflags(2)
pub const UF_SETTABLE: ::c_ulong = 0x0000ffff;
pub const UF_NODUMP: ::c_ulong = 0x00000001;
pub const UF_IMMUTABLE: ::c_ulong = 0x00000002;
pub const UF_APPEND: ::c_ulong = 0x00000004;
pub const UF_OPAQUE: ::c_ulong = 0x00000008;
pub const SF_SETTABLE: ::c_ulong = 0xffff0000;
pub const SF_ARCHIVED: ::c_ulong = 0x00010000;
pub const SF_IMMUTABLE: ::c_ulong = 0x00020000;
pub const SF_APPEND: ::c_ulong = 0x00040000;
pub const TIMER_ABSTIME: ::c_int = 1; pub const TIMER_ABSTIME: ::c_int = 1;
#[link(name = "util")] #[link(name = "util")]

Просмотреть файл

@ -487,6 +487,134 @@ s! {
af_arg: [[::c_char; 10]; 24], af_arg: [[::c_char; 10]; 24],
} }
pub struct ki_sigset_t {
pub __bits: [u32; 4],
}
pub struct kinfo_proc2 {
pub p_forw: u64,
pub p_back: u64,
pub p_paddr: u64,
pub p_addr: u64,
pub p_fd: u64,
pub p_cwdi: u64,
pub p_stats: u64,
pub p_limit: u64,
pub p_vmspace: u64,
pub p_sigacts: u64,
pub p_sess: u64,
pub p_tsess: u64,
pub p_ru: u64,
pub p_eflag: i32,
pub p_exitsig: i32,
pub p_flag: i32,
pub p_pid: i32,
pub p_ppid: i32,
pub p_sid: i32,
pub p__pgid: i32,
pub p_tpgid: i32,
pub p_uid: u32,
pub p_ruid: u32,
pub p_gid: u32,
pub p_rgid: u32,
pub p_groups: [u32; KI_NGROUPS as usize],
pub p_ngroups: i16,
pub p_jobc: i16,
pub p_tdev: u32,
pub p_estcpu: u32,
pub p_rtime_sec: u32,
pub p_rtime_usec: u32,
pub p_cpticks: i32,
pub p_pctcpu: u32,
pub p_swtime: u32,
pub p_slptime: u32,
pub p_schedflags: i32,
pub p_uticks: u64,
pub p_sticks: u64,
pub p_iticks: u64,
pub p_tracep: u64,
pub p_traceflag: i32,
pub p_holdcnt: i32,
pub p_siglist: ki_sigset_t,
pub p_sigmask: ki_sigset_t,
pub p_sigignore: ki_sigset_t,
pub p_sigcatch: ki_sigset_t,
pub p_stat: i8,
pub p_priority: u8,
pub p_usrpri: u8,
pub p_nice: u8,
pub p_xstat: u16,
pub p_acflag: u16,
pub p_comm: [::c_char; KI_MAXCOMLEN as usize],
pub p_wmesg: [::c_char; KI_WMESGLEN as usize],
pub p_wchan: u64,
pub p_login: [::c_char; KI_MAXLOGNAME as usize],
pub p_vm_rssize: i32,
pub p_vm_tsize: i32,
pub p_vm_dsize: i32,
pub p_vm_ssize: i32,
pub p_uvalid: i64,
pub p_ustart_sec: u32,
pub p_ustart_usec: u32,
pub p_uutime_sec: u32,
pub p_uutime_usec: u32,
pub p_ustime_sec: u32,
pub p_ustime_usec: u32,
pub p_uru_maxrss: u64,
pub p_uru_ixrss: u64,
pub p_uru_idrss: u64,
pub p_uru_isrss: u64,
pub p_uru_minflt: u64,
pub p_uru_majflt: u64,
pub p_uru_nswap: u64,
pub p_uru_inblock: u64,
pub p_uru_oublock: u64,
pub p_uru_msgsnd: u64,
pub p_uru_msgrcv: u64,
pub p_uru_nsignals: u64,
pub p_uru_nvcsw: u64,
pub p_uru_nivcsw: u64,
pub p_uctime_sec: u32,
pub p_uctime_usec: u32,
pub p_cpuid: u64,
pub p_realflag: u64,
pub p_nlwps: u64,
pub p_nrlwps: u64,
pub p_realstat: u64,
pub p_svuid: u32,
pub p_svgid: u32,
pub p_ename: [::c_char; KI_MAXEMULLEN as usize],
pub p_vm_vsize: i64,
pub p_vm_msize: i64,
}
pub struct kinfo_lwp {
pub l_forw: u64,
pub l_back: u64,
pub l_laddr: u64,
pub l_addr: u64,
pub l_lid: i32,
pub l_flag: i32,
pub l_swtime: u32,
pub l_slptime: u32,
pub l_schedflags: i32,
pub l_holdcnt: i32,
pub l_priority: u8,
pub l_usrpri: u8,
pub l_stat: i8,
l_pad1: i8,
l_pad2: i32,
pub l_wmesg: [::c_char; KI_WMESGLEN as usize],
pub l_wchan: u64,
pub l_cpuid: u64,
pub l_rtime_sec: u32,
pub l_rtime_usec: u32,
pub l_cpticks: u32,
pub l_pctcpu: u32,
pub l_pid: u32,
pub l_name: [::c_char; KI_LNAMELEN as usize],
}
pub struct kinfo_vmentry { pub struct kinfo_vmentry {
pub kve_start: u64, pub kve_start: u64,
pub kve_end: u64, pub kve_end: u64,
@ -1440,10 +1568,7 @@ pub const IPPROTO_VRRP: ::c_int = 112;
/// Common Address Resolution Protocol /// Common Address Resolution Protocol
pub const IPPROTO_CARP: ::c_int = 112; pub const IPPROTO_CARP: ::c_int = 112;
/// L2TPv3 /// L2TPv3
// TEMP: Disabled for now; this constant was added to NetBSD on 2017-02-16, pub const IPPROTO_L2TP: ::c_int = 115;
// but isn't yet supported by the NetBSD rumprun kernel image used for
// libc testing.
//pub const IPPROTO_L2TP: ::c_int = 115;
/// SCTP /// SCTP
pub const IPPROTO_SCTP: ::c_int = 132; pub const IPPROTO_SCTP: ::c_int = 132;
/// PFSYNC /// PFSYNC
@ -2103,9 +2228,18 @@ pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20;
pub const POSIX_SPAWN_RETURNERROR: ::c_int = 0x40; pub const POSIX_SPAWN_RETURNERROR: ::c_int = 0x40;
// Flags for chflags(2) // Flags for chflags(2)
pub const SF_SNAPSHOT: ::c_ulong = 0x00200000; pub const SF_APPEND: ::c_ulong = 0x00040000;
pub const SF_ARCHIVED: ::c_ulong = 0x00010000;
pub const SF_IMMUTABLE: ::c_ulong = 0x00020000;
pub const SF_LOG: ::c_ulong = 0x00400000; pub const SF_LOG: ::c_ulong = 0x00400000;
pub const SF_SETTABLE: ::c_ulong = 0xffff0000;
pub const SF_SNAPINVAL: ::c_ulong = 0x00800000; pub const SF_SNAPINVAL: ::c_ulong = 0x00800000;
pub const SF_SNAPSHOT: ::c_ulong = 0x00200000;
pub const UF_APPEND: ::c_ulong = 0x00000004;
pub const UF_IMMUTABLE: ::c_ulong = 0x00000002;
pub const UF_NODUMP: ::c_ulong = 0x00000001;
pub const UF_OPAQUE: ::c_ulong = 0x00000008;
pub const UF_SETTABLE: ::c_ulong = 0x0000ffff;
// sys/sysctl.h // sys/sysctl.h
pub const KVME_PROT_READ: ::c_int = 0x00000001; pub const KVME_PROT_READ: ::c_int = 0x00000001;
@ -2121,6 +2255,22 @@ pub const KVME_FLAG_GROWS_DOWN: ::c_int = 0x000000020;
pub const NGROUPS_MAX: ::c_int = 16; pub const NGROUPS_MAX: ::c_int = 16;
pub const KI_NGROUPS: ::c_int = 16;
pub const KI_MAXCOMLEN: ::c_int = 24;
pub const KI_WMESGLEN: ::c_int = 8;
pub const KI_MAXLOGNAME: ::c_int = 24;
pub const KI_MAXEMULLEN: ::c_int = 16;
pub const KI_LNAMELEN: ::c_int = 20;
// sys/lwp.h
pub const LSIDL: ::c_int = 1;
pub const LSRUN: ::c_int = 2;
pub const LSSLEEP: ::c_int = 3;
pub const LSSTOP: ::c_int = 4;
pub const LSZOMB: ::c_int = 5;
pub const LSONPROC: ::c_int = 7;
pub const LSSUSPENDED: ::c_int = 8;
const_fn! { const_fn! {
{const} fn _ALIGN(p: usize) -> usize { {const} fn _ALIGN(p: usize) -> usize {
(p + _ALIGNBYTES) & !_ALIGNBYTES (p + _ALIGNBYTES) & !_ALIGNBYTES

Просмотреть файл

@ -1628,6 +1628,17 @@ pub const EPROC_SLEADER: i32 = 0x02; // session leader
pub const EPROC_UNVEIL: i32 = 0x04; // has unveil settings pub const EPROC_UNVEIL: i32 = 0x04; // has unveil settings
pub const EPROC_LKUNVEIL: i32 = 0x08; // unveil is locked pub const EPROC_LKUNVEIL: i32 = 0x08; // unveil is locked
// Flags for chflags(2)
pub const UF_SETTABLE: ::c_uint = 0x0000ffff;
pub const UF_NODUMP: ::c_uint = 0x00000001;
pub const UF_IMMUTABLE: ::c_uint = 0x00000002;
pub const UF_APPEND: ::c_uint = 0x00000004;
pub const UF_OPAQUE: ::c_uint = 0x00000008;
pub const SF_SETTABLE: ::c_uint = 0xffff0000;
pub const SF_ARCHIVED: ::c_uint = 0x00010000;
pub const SF_IMMUTABLE: ::c_uint = 0x00020000;
pub const SF_APPEND: ::c_uint = 0x00040000;
const_fn! { const_fn! {
{const} fn _ALIGN(p: usize) -> usize { {const} fn _ALIGN(p: usize) -> usize {
(p + _ALIGNBYTES) & !_ALIGNBYTES (p + _ALIGNBYTES) & !_ALIGNBYTES

92
third_party/rust/libc/src/unix/haiku/mod.rs поставляемый
Просмотреть файл

@ -52,6 +52,9 @@ pub type Elf64_Xword = u64;
pub type ENTRY = entry; pub type ENTRY = entry;
pub type ACTION = ::c_int; pub type ACTION = ::c_int;
pub type posix_spawnattr_t = *mut ::c_void;
pub type posix_spawn_file_actions_t = *mut ::c_void;
#[cfg_attr(feature = "extra_traits", derive(Debug))] #[cfg_attr(feature = "extra_traits", derive(Debug))]
pub enum timezone {} pub enum timezone {}
impl ::Copy for timezone {} impl ::Copy for timezone {}
@ -1051,6 +1054,7 @@ pub const LOCK_EX: ::c_int = 0x02;
pub const LOCK_NB: ::c_int = 0x04; pub const LOCK_NB: ::c_int = 0x04;
pub const LOCK_UN: ::c_int = 0x08; pub const LOCK_UN: ::c_int = 0x08;
pub const MINSIGSTKSZ: ::size_t = 8192;
pub const SIGSTKSZ: ::size_t = 16384; pub const SIGSTKSZ: ::size_t = 16384;
pub const IOV_MAX: ::c_int = 1024; pub const IOV_MAX: ::c_int = 1024;
@ -1067,6 +1071,9 @@ pub const SA_NOMASK: ::c_int = SA_NODEFER;
pub const SA_STACK: ::c_int = SA_ONSTACK; pub const SA_STACK: ::c_int = SA_ONSTACK;
pub const SA_ONESHOT: ::c_int = SA_RESETHAND; pub const SA_ONESHOT: ::c_int = SA_RESETHAND;
pub const SS_ONSTACK: ::c_int = 0x1;
pub const SS_DISABLE: ::c_int = 0x2;
pub const FD_SETSIZE: usize = 1024; pub const FD_SETSIZE: usize = 1024;
pub const RTLD_LOCAL: ::c_int = 0x0; pub const RTLD_LOCAL: ::c_int = 0x0;
@ -1225,6 +1232,8 @@ pub const SO_PEERCRED: ::c_int = 0x4000000b;
pub const SCM_RIGHTS: ::c_int = 0x01; pub const SCM_RIGHTS: ::c_int = 0x01;
pub const SOMAXCONN: ::c_int = 32;
pub const NI_MAXHOST: ::size_t = 1025; pub const NI_MAXHOST: ::size_t = 1025;
pub const WNOHANG: ::c_int = 0x01; pub const WNOHANG: ::c_int = 0x01;
@ -1234,6 +1243,12 @@ pub const WEXITED: ::c_int = 0x08;
pub const WSTOPPED: ::c_int = 0x10; pub const WSTOPPED: ::c_int = 0x10;
pub const WNOWAIT: ::c_int = 0x20; pub const WNOWAIT: ::c_int = 0x20;
// si_code values for SIGBUS signal
pub const BUS_ADRALN: ::c_int = 40;
pub const BUS_ADRERR: ::c_int = 41;
pub const BUS_OBJERR: ::c_int = 42;
// si_code values for SIGCHLD signal
pub const CLD_EXITED: ::c_int = 60; pub const CLD_EXITED: ::c_int = 60;
pub const CLD_KILLED: ::c_int = 61; pub const CLD_KILLED: ::c_int = 61;
pub const CLD_DUMPED: ::c_int = 62; pub const CLD_DUMPED: ::c_int = 62;
@ -1432,6 +1447,13 @@ pub const LOG_SERIAL: ::c_int = 16 << 12;
pub const LOG_PERROR: ::c_int = 32 << 12; pub const LOG_PERROR: ::c_int = 32 << 12;
pub const LOG_NOWAIT: ::c_int = 64 << 12; pub const LOG_NOWAIT: ::c_int = 64 << 12;
// spawn.h
pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01;
pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02;
pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10;
pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20;
pub const POSIX_SPAWN_SETSID: ::c_int = 0x40;
const_fn! { const_fn! {
{const} fn CMSG_ALIGN(len: usize) -> usize { {const} fn CMSG_ALIGN(len: usize) -> usize {
len + ::mem::size_of::<usize>() - 1 & !(::mem::size_of::<usize>() - 1) len + ::mem::size_of::<usize>() - 1 & !(::mem::size_of::<usize>() - 1)
@ -1768,8 +1790,6 @@ extern "C" {
pub fn endgrent(); pub fn endgrent();
pub fn getgrent() -> *mut ::group; pub fn getgrent() -> *mut ::group;
pub fn setgrent(); pub fn setgrent();
pub fn setreuid(ruid: ::uid_t, euid: ::uid_t) -> ::c_int;
pub fn setregid(rgid: ::gid_t, egid: ::gid_t) -> ::c_int;
pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int;
pub fn pthread_atfork( pub fn pthread_atfork(
prepare: ::Option<unsafe extern "C" fn()>, prepare: ::Option<unsafe extern "C" fn()>,
@ -1884,6 +1904,74 @@ extern "C" {
pub fn brk(addr: *mut ::c_void) -> ::c_int; pub fn brk(addr: *mut ::c_void) -> ::c_int;
pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void;
pub fn posix_spawn(
pid: *mut ::pid_t,
path: *const ::c_char,
file_actions: *const ::posix_spawn_file_actions_t,
attrp: *const ::posix_spawnattr_t,
argv: *const *mut ::c_char,
envp: *const *mut ::c_char,
) -> ::c_int;
pub fn posix_spawnp(
pid: *mut ::pid_t,
file: *const ::c_char,
file_actions: *const ::posix_spawn_file_actions_t,
attrp: *const ::posix_spawnattr_t,
argv: *const *mut ::c_char,
envp: *const *mut ::c_char,
) -> ::c_int;
pub fn posix_spawn_file_actions_init(file_actions: *mut posix_spawn_file_actions_t) -> ::c_int;
pub fn posix_spawn_file_actions_destroy(
file_actions: *mut posix_spawn_file_actions_t,
) -> ::c_int;
pub fn posix_spawn_file_actions_addopen(
file_actions: *mut posix_spawn_file_actions_t,
fildes: ::c_int,
path: *const ::c_char,
oflag: ::c_int,
mode: ::mode_t,
) -> ::c_int;
pub fn posix_spawn_file_actions_addclose(
file_actions: *mut posix_spawn_file_actions_t,
fildes: ::c_int,
) -> ::c_int;
pub fn posix_spawn_file_actions_adddup2(
file_actions: *mut posix_spawn_file_actions_t,
fildes: ::c_int,
newfildes: ::c_int,
) -> ::c_int;
pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int;
pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int;
pub fn posix_spawnattr_getflags(
attr: *const posix_spawnattr_t,
_flags: *mut ::c_short,
) -> ::c_int;
pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int;
pub fn posix_spawnattr_getpgroup(
attr: *const posix_spawnattr_t,
_pgroup: *mut ::pid_t,
) -> ::c_int;
pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, pgroup: ::pid_t) -> ::c_int;
pub fn posix_spawnattr_getsigdefault(
attr: *const posix_spawnattr_t,
sigdefault: *mut ::sigset_t,
) -> ::c_int;
pub fn posix_spawnattr_setsigdefault(
attr: *mut posix_spawnattr_t,
sigdefault: *const ::sigset_t,
) -> ::c_int;
pub fn posix_spawnattr_getsigmask(
attr: *const posix_spawnattr_t,
_sigmask: *mut ::sigset_t,
) -> ::c_int;
pub fn posix_spawnattr_setsigmask(
attr: *mut posix_spawnattr_t,
sigmask: *const ::sigset_t,
) -> ::c_int;
} }
#[link(name = "bsd")] #[link(name = "bsd")]

Просмотреть файл

@ -346,6 +346,9 @@ cfg_if! {
} else if #[cfg(target_arch = "aarch64")] { } else if #[cfg(target_arch = "aarch64")] {
mod aarch64; mod aarch64;
pub use self::aarch64::*; pub use self::aarch64::*;
} else if #[cfg(target_arch = "riscv64")] {
mod riscv64;
pub use self::riscv64::*;
} else { } else {
// Unknown target_arch // Unknown target_arch
} }

Просмотреть файл

@ -0,0 +1,7 @@
s_no_extra_traits! {
#[allow(missing_debug_implementations)]
#[repr(align(16))]
pub struct max_align_t {
priv_: [f32; 8]
}
}

Просмотреть файл

@ -0,0 +1,342 @@
pub type c_char = i8;
pub type wchar_t = u32;
pub type greg_t = i64;
pub type __u64 = ::c_ulonglong;
s! {
pub struct stat {
pub st_dev: ::dev_t,
pub st_ino: ::ino_t,
pub st_mode: ::c_uint,
pub st_nlink: ::c_uint,
pub st_uid: ::uid_t,
pub st_gid: ::gid_t,
pub st_rdev: ::dev_t,
__pad1: ::c_ulong,
pub st_size: ::off64_t,
pub st_blksize: ::c_int,
__pad2: ::c_int,
pub st_blocks: ::c_long,
pub st_atime: ::time_t,
pub st_atime_nsec: ::c_long,
pub st_mtime: ::time_t,
pub st_mtime_nsec: ::c_long,
pub st_ctime: ::time_t,
pub st_ctime_nsec: ::c_long,
__unused4: ::c_uint,
__unused5: ::c_uint,
}
pub struct stat64 {
pub st_dev: ::dev_t,
pub st_ino: ::ino_t,
pub st_mode: ::c_uint,
pub st_nlink: ::c_uint,
pub st_uid: ::uid_t,
pub st_gid: ::gid_t,
pub st_rdev: ::dev_t,
__pad1: ::c_ulong,
pub st_size: ::off64_t,
pub st_blksize: ::c_int,
__pad2: ::c_int,
pub st_blocks: ::c_long,
pub st_atime: ::time_t,
pub st_atime_nsec: ::c_long,
pub st_mtime: ::time_t,
pub st_mtime_nsec: ::c_long,
pub st_ctime: ::time_t,
pub st_ctime_nsec: ::c_long,
__unused4: ::c_uint,
__unused5: ::c_uint,
}
}
pub const O_DIRECT: ::c_int = 0x40000;
pub const O_DIRECTORY: ::c_int = 0x200000;
pub const O_NOFOLLOW: ::c_int = 0x400000;
pub const O_LARGEFILE: ::c_int = 0x100000;
pub const SIGSTKSZ: ::size_t = 8192;
pub const MINSIGSTKSZ: ::size_t = 2048;
// From NDK's asm/hwcap.h
pub const COMPAT_HWCAP_ISA_I: ::c_ulong = 1 << ('I' - 'A');
pub const COMPAT_HWCAP_ISA_M: ::c_ulong = 1 << ('M' - 'A');
pub const COMPAT_HWCAP_ISA_A: ::c_ulong = 1 << ('A' - 'A');
pub const COMPAT_HWCAP_ISA_F: ::c_ulong = 1 << ('F' - 'A');
pub const COMPAT_HWCAP_ISA_D: ::c_ulong = 1 << ('D' - 'A');
pub const COMPAT_HWCAP_ISA_C: ::c_ulong = 1 << ('C' - 'A');
pub const SYS_io_setup: ::c_long = 0;
pub const SYS_io_destroy: ::c_long = 1;
pub const SYS_io_submit: ::c_long = 2;
pub const SYS_io_cancel: ::c_long = 3;
pub const SYS_io_getevents: ::c_long = 4;
pub const SYS_setxattr: ::c_long = 5;
pub const SYS_lsetxattr: ::c_long = 6;
pub const SYS_fsetxattr: ::c_long = 7;
pub const SYS_getxattr: ::c_long = 8;
pub const SYS_lgetxattr: ::c_long = 9;
pub const SYS_fgetxattr: ::c_long = 10;
pub const SYS_listxattr: ::c_long = 11;
pub const SYS_llistxattr: ::c_long = 12;
pub const SYS_flistxattr: ::c_long = 13;
pub const SYS_removexattr: ::c_long = 14;
pub const SYS_lremovexattr: ::c_long = 15;
pub const SYS_fremovexattr: ::c_long = 16;
pub const SYS_getcwd: ::c_long = 17;
pub const SYS_lookup_dcookie: ::c_long = 18;
pub const SYS_eventfd2: ::c_long = 19;
pub const SYS_epoll_create1: ::c_long = 20;
pub const SYS_epoll_ctl: ::c_long = 21;
pub const SYS_epoll_pwait: ::c_long = 22;
pub const SYS_dup: ::c_long = 23;
pub const SYS_dup3: ::c_long = 24;
pub const SYS_inotify_init1: ::c_long = 26;
pub const SYS_inotify_add_watch: ::c_long = 27;
pub const SYS_inotify_rm_watch: ::c_long = 28;
pub const SYS_ioctl: ::c_long = 29;
pub const SYS_ioprio_set: ::c_long = 30;
pub const SYS_ioprio_get: ::c_long = 31;
pub const SYS_flock: ::c_long = 32;
pub const SYS_mknodat: ::c_long = 33;
pub const SYS_mkdirat: ::c_long = 34;
pub const SYS_unlinkat: ::c_long = 35;
pub const SYS_symlinkat: ::c_long = 36;
pub const SYS_linkat: ::c_long = 37;
pub const SYS_renameat: ::c_long = 38;
pub const SYS_umount2: ::c_long = 39;
pub const SYS_mount: ::c_long = 40;
pub const SYS_pivot_root: ::c_long = 41;
pub const SYS_nfsservctl: ::c_long = 42;
pub const SYS_fallocate: ::c_long = 47;
pub const SYS_faccessat: ::c_long = 48;
pub const SYS_chdir: ::c_long = 49;
pub const SYS_fchdir: ::c_long = 50;
pub const SYS_chroot: ::c_long = 51;
pub const SYS_fchmod: ::c_long = 52;
pub const SYS_fchmodat: ::c_long = 53;
pub const SYS_fchownat: ::c_long = 54;
pub const SYS_fchown: ::c_long = 55;
pub const SYS_openat: ::c_long = 56;
pub const SYS_close: ::c_long = 57;
pub const SYS_vhangup: ::c_long = 58;
pub const SYS_pipe2: ::c_long = 59;
pub const SYS_quotactl: ::c_long = 60;
pub const SYS_getdents64: ::c_long = 61;
pub const SYS_read: ::c_long = 63;
pub const SYS_write: ::c_long = 64;
pub const SYS_readv: ::c_long = 65;
pub const SYS_writev: ::c_long = 66;
pub const SYS_pread64: ::c_long = 67;
pub const SYS_pwrite64: ::c_long = 68;
pub const SYS_preadv: ::c_long = 69;
pub const SYS_pwritev: ::c_long = 70;
pub const SYS_pselect6: ::c_long = 72;
pub const SYS_ppoll: ::c_long = 73;
pub const SYS_signalfd4: ::c_long = 74;
pub const SYS_vmsplice: ::c_long = 75;
pub const SYS_splice: ::c_long = 76;
pub const SYS_tee: ::c_long = 77;
pub const SYS_readlinkat: ::c_long = 78;
pub const SYS_sync: ::c_long = 81;
pub const SYS_fsync: ::c_long = 82;
pub const SYS_fdatasync: ::c_long = 83;
pub const SYS_sync_file_range: ::c_long = 84;
pub const SYS_timerfd_create: ::c_long = 85;
pub const SYS_timerfd_settime: ::c_long = 86;
pub const SYS_timerfd_gettime: ::c_long = 87;
pub const SYS_utimensat: ::c_long = 88;
pub const SYS_acct: ::c_long = 89;
pub const SYS_capget: ::c_long = 90;
pub const SYS_capset: ::c_long = 91;
pub const SYS_personality: ::c_long = 92;
pub const SYS_exit: ::c_long = 93;
pub const SYS_exit_group: ::c_long = 94;
pub const SYS_waitid: ::c_long = 95;
pub const SYS_set_tid_address: ::c_long = 96;
pub const SYS_unshare: ::c_long = 97;
pub const SYS_futex: ::c_long = 98;
pub const SYS_set_robust_list: ::c_long = 99;
pub const SYS_get_robust_list: ::c_long = 100;
pub const SYS_nanosleep: ::c_long = 101;
pub const SYS_getitimer: ::c_long = 102;
pub const SYS_setitimer: ::c_long = 103;
pub const SYS_kexec_load: ::c_long = 104;
pub const SYS_init_module: ::c_long = 105;
pub const SYS_delete_module: ::c_long = 106;
pub const SYS_timer_create: ::c_long = 107;
pub const SYS_timer_gettime: ::c_long = 108;
pub const SYS_timer_getoverrun: ::c_long = 109;
pub const SYS_timer_settime: ::c_long = 110;
pub const SYS_timer_delete: ::c_long = 111;
pub const SYS_clock_settime: ::c_long = 112;
pub const SYS_clock_gettime: ::c_long = 113;
pub const SYS_clock_getres: ::c_long = 114;
pub const SYS_clock_nanosleep: ::c_long = 115;
pub const SYS_syslog: ::c_long = 116;
pub const SYS_ptrace: ::c_long = 117;
pub const SYS_sched_setparam: ::c_long = 118;
pub const SYS_sched_setscheduler: ::c_long = 119;
pub const SYS_sched_getscheduler: ::c_long = 120;
pub const SYS_sched_getparam: ::c_long = 121;
pub const SYS_sched_setaffinity: ::c_long = 122;
pub const SYS_sched_getaffinity: ::c_long = 123;
pub const SYS_sched_yield: ::c_long = 124;
pub const SYS_sched_get_priority_max: ::c_long = 125;
pub const SYS_sched_get_priority_min: ::c_long = 126;
pub const SYS_sched_rr_get_interval: ::c_long = 127;
pub const SYS_restart_syscall: ::c_long = 128;
pub const SYS_kill: ::c_long = 129;
pub const SYS_tkill: ::c_long = 130;
pub const SYS_tgkill: ::c_long = 131;
pub const SYS_sigaltstack: ::c_long = 132;
pub const SYS_rt_sigsuspend: ::c_long = 133;
pub const SYS_rt_sigaction: ::c_long = 134;
pub const SYS_rt_sigprocmask: ::c_long = 135;
pub const SYS_rt_sigpending: ::c_long = 136;
pub const SYS_rt_sigtimedwait: ::c_long = 137;
pub const SYS_rt_sigqueueinfo: ::c_long = 138;
pub const SYS_rt_sigreturn: ::c_long = 139;
pub const SYS_setpriority: ::c_long = 140;
pub const SYS_getpriority: ::c_long = 141;
pub const SYS_reboot: ::c_long = 142;
pub const SYS_setregid: ::c_long = 143;
pub const SYS_setgid: ::c_long = 144;
pub const SYS_setreuid: ::c_long = 145;
pub const SYS_setuid: ::c_long = 146;
pub const SYS_setresuid: ::c_long = 147;
pub const SYS_getresuid: ::c_long = 148;
pub const SYS_setresgid: ::c_long = 149;
pub const SYS_getresgid: ::c_long = 150;
pub const SYS_setfsuid: ::c_long = 151;
pub const SYS_setfsgid: ::c_long = 152;
pub const SYS_times: ::c_long = 153;
pub const SYS_setpgid: ::c_long = 154;
pub const SYS_getpgid: ::c_long = 155;
pub const SYS_getsid: ::c_long = 156;
pub const SYS_setsid: ::c_long = 157;
pub const SYS_getgroups: ::c_long = 158;
pub const SYS_setgroups: ::c_long = 159;
pub const SYS_uname: ::c_long = 160;
pub const SYS_sethostname: ::c_long = 161;
pub const SYS_setdomainname: ::c_long = 162;
pub const SYS_getrlimit: ::c_long = 163;
pub const SYS_setrlimit: ::c_long = 164;
pub const SYS_getrusage: ::c_long = 165;
pub const SYS_umask: ::c_long = 166;
pub const SYS_prctl: ::c_long = 167;
pub const SYS_getcpu: ::c_long = 168;
pub const SYS_gettimeofday: ::c_long = 169;
pub const SYS_settimeofday: ::c_long = 170;
pub const SYS_adjtimex: ::c_long = 171;
pub const SYS_getpid: ::c_long = 172;
pub const SYS_getppid: ::c_long = 173;
pub const SYS_getuid: ::c_long = 174;
pub const SYS_geteuid: ::c_long = 175;
pub const SYS_getgid: ::c_long = 176;
pub const SYS_getegid: ::c_long = 177;
pub const SYS_gettid: ::c_long = 178;
pub const SYS_sysinfo: ::c_long = 179;
pub const SYS_mq_open: ::c_long = 180;
pub const SYS_mq_unlink: ::c_long = 181;
pub const SYS_mq_timedsend: ::c_long = 182;
pub const SYS_mq_timedreceive: ::c_long = 183;
pub const SYS_mq_notify: ::c_long = 184;
pub const SYS_mq_getsetattr: ::c_long = 185;
pub const SYS_msgget: ::c_long = 186;
pub const SYS_msgctl: ::c_long = 187;
pub const SYS_msgrcv: ::c_long = 188;
pub const SYS_msgsnd: ::c_long = 189;
pub const SYS_semget: ::c_long = 190;
pub const SYS_semctl: ::c_long = 191;
pub const SYS_semtimedop: ::c_long = 192;
pub const SYS_semop: ::c_long = 193;
pub const SYS_shmget: ::c_long = 194;
pub const SYS_shmctl: ::c_long = 195;
pub const SYS_shmat: ::c_long = 196;
pub const SYS_shmdt: ::c_long = 197;
pub const SYS_socket: ::c_long = 198;
pub const SYS_socketpair: ::c_long = 199;
pub const SYS_bind: ::c_long = 200;
pub const SYS_listen: ::c_long = 201;
pub const SYS_accept: ::c_long = 202;
pub const SYS_connect: ::c_long = 203;
pub const SYS_getsockname: ::c_long = 204;
pub const SYS_getpeername: ::c_long = 205;
pub const SYS_sendto: ::c_long = 206;
pub const SYS_recvfrom: ::c_long = 207;
pub const SYS_setsockopt: ::c_long = 208;
pub const SYS_getsockopt: ::c_long = 209;
pub const SYS_shutdown: ::c_long = 210;
pub const SYS_sendmsg: ::c_long = 211;
pub const SYS_recvmsg: ::c_long = 212;
pub const SYS_readahead: ::c_long = 213;
pub const SYS_brk: ::c_long = 214;
pub const SYS_munmap: ::c_long = 215;
pub const SYS_mremap: ::c_long = 216;
pub const SYS_add_key: ::c_long = 217;
pub const SYS_request_key: ::c_long = 218;
pub const SYS_keyctl: ::c_long = 219;
pub const SYS_clone: ::c_long = 220;
pub const SYS_execve: ::c_long = 221;
pub const SYS_swapon: ::c_long = 224;
pub const SYS_swapoff: ::c_long = 225;
pub const SYS_mprotect: ::c_long = 226;
pub const SYS_msync: ::c_long = 227;
pub const SYS_mlock: ::c_long = 228;
pub const SYS_munlock: ::c_long = 229;
pub const SYS_mlockall: ::c_long = 230;
pub const SYS_munlockall: ::c_long = 231;
pub const SYS_mincore: ::c_long = 232;
pub const SYS_madvise: ::c_long = 233;
pub const SYS_remap_file_pages: ::c_long = 234;
pub const SYS_mbind: ::c_long = 235;
pub const SYS_get_mempolicy: ::c_long = 236;
pub const SYS_set_mempolicy: ::c_long = 237;
pub const SYS_migrate_pages: ::c_long = 238;
pub const SYS_move_pages: ::c_long = 239;
pub const SYS_rt_tgsigqueueinfo: ::c_long = 240;
pub const SYS_perf_event_open: ::c_long = 241;
pub const SYS_accept4: ::c_long = 242;
pub const SYS_recvmmsg: ::c_long = 243;
pub const SYS_arch_specific_syscall: ::c_long = 244;
pub const SYS_wait4: ::c_long = 260;
pub const SYS_prlimit64: ::c_long = 261;
pub const SYS_fanotify_init: ::c_long = 262;
pub const SYS_fanotify_mark: ::c_long = 263;
pub const SYS_name_to_handle_at: ::c_long = 264;
pub const SYS_open_by_handle_at: ::c_long = 265;
pub const SYS_clock_adjtime: ::c_long = 266;
pub const SYS_syncfs: ::c_long = 267;
pub const SYS_setns: ::c_long = 268;
pub const SYS_sendmmsg: ::c_long = 269;
pub const SYS_process_vm_readv: ::c_long = 270;
pub const SYS_process_vm_writev: ::c_long = 271;
pub const SYS_kcmp: ::c_long = 272;
pub const SYS_finit_module: ::c_long = 273;
pub const SYS_sched_setattr: ::c_long = 274;
pub const SYS_sched_getattr: ::c_long = 275;
pub const SYS_renameat2: ::c_long = 276;
pub const SYS_seccomp: ::c_long = 277;
pub const SYS_getrandom: ::c_long = 278;
pub const SYS_memfd_create: ::c_long = 279;
pub const SYS_bpf: ::c_long = 280;
pub const SYS_execveat: ::c_long = 281;
pub const SYS_userfaultfd: ::c_long = 282;
pub const SYS_membarrier: ::c_long = 283;
pub const SYS_mlock2: ::c_long = 284;
pub const SYS_copy_file_range: ::c_long = 285;
pub const SYS_preadv2: ::c_long = 286;
pub const SYS_pwritev2: ::c_long = 287;
pub const SYS_pkey_mprotect: ::c_long = 288;
pub const SYS_pkey_alloc: ::c_long = 289;
pub const SYS_pkey_free: ::c_long = 290;
pub const SYS_syscalls: ::c_long = 436;
cfg_if! {
if #[cfg(libc_align)] {
mod align;
pub use self::align::*;
}
}

Просмотреть файл

@ -350,6 +350,7 @@ cfg_if! {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("user_fpregs_struct") f.debug_struct("user_fpregs_struct")
.field("cwd", &self.cwd) .field("cwd", &self.cwd)
.field("swd", &self.swd)
.field("ftw", &self.ftw) .field("ftw", &self.ftw)
.field("fop", &self.fop) .field("fop", &self.fop)
.field("rip", &self.rip) .field("rip", &self.rip)
@ -366,6 +367,7 @@ cfg_if! {
impl ::hash::Hash for user_fpregs_struct { impl ::hash::Hash for user_fpregs_struct {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) { fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
self.cwd.hash(state); self.cwd.hash(state);
self.swd.hash(state);
self.ftw.hash(state); self.ftw.hash(state);
self.fop.hash(state); self.fop.hash(state);
self.rip.hash(state); self.rip.hash(state);

Просмотреть файл

@ -2489,6 +2489,8 @@ pub const AF_VSOCK: ::c_int = 40;
pub const PF_NFC: ::c_int = AF_NFC; pub const PF_NFC: ::c_int = AF_NFC;
pub const PF_VSOCK: ::c_int = AF_VSOCK; pub const PF_VSOCK: ::c_int = AF_VSOCK;
pub const SOMAXCONN: ::c_int = 128;
// sys/system_properties.h // sys/system_properties.h
pub const PROP_VALUE_MAX: ::c_int = 92; pub const PROP_VALUE_MAX: ::c_int = 92;
pub const PROP_NAME_MAX: ::c_int = 32; pub const PROP_NAME_MAX: ::c_int = 32;
@ -2496,6 +2498,216 @@ pub const PROP_NAME_MAX: ::c_int = 32;
// sys/prctl.h // sys/prctl.h
pub const PR_SET_VMA: ::c_int = 0x53564d41; pub const PR_SET_VMA: ::c_int = 0x53564d41;
pub const PR_SET_VMA_ANON_NAME: ::c_int = 0; pub const PR_SET_VMA_ANON_NAME: ::c_int = 0;
pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38;
pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39;
pub const PR_GET_SECCOMP: ::c_int = 21;
pub const PR_SET_SECCOMP: ::c_int = 22;
pub const PR_GET_TIMING: ::c_int = 13;
pub const PR_SET_TIMING: ::c_int = 14;
pub const PR_TIMING_STATISTICAL: ::c_int = 0;
pub const PR_TIMING_TIMESTAMP: ::c_int = 1;
// linux/if_addr.h
pub const IFA_UNSPEC: ::c_ushort = 0;
pub const IFA_ADDRESS: ::c_ushort = 1;
pub const IFA_LOCAL: ::c_ushort = 2;
pub const IFA_LABEL: ::c_ushort = 3;
pub const IFA_BROADCAST: ::c_ushort = 4;
pub const IFA_ANYCAST: ::c_ushort = 5;
pub const IFA_CACHEINFO: ::c_ushort = 6;
pub const IFA_MULTICAST: ::c_ushort = 7;
pub const IFA_F_SECONDARY: u32 = 0x01;
pub const IFA_F_TEMPORARY: u32 = 0x01;
pub const IFA_F_NODAD: u32 = 0x02;
pub const IFA_F_OPTIMISTIC: u32 = 0x04;
pub const IFA_F_DADFAILED: u32 = 0x08;
pub const IFA_F_HOMEADDRESS: u32 = 0x10;
pub const IFA_F_DEPRECATED: u32 = 0x20;
pub const IFA_F_TENTATIVE: u32 = 0x40;
pub const IFA_F_PERMANENT: u32 = 0x80;
// linux/if_link.h
pub const IFLA_UNSPEC: ::c_ushort = 0;
pub const IFLA_ADDRESS: ::c_ushort = 1;
pub const IFLA_BROADCAST: ::c_ushort = 2;
pub const IFLA_IFNAME: ::c_ushort = 3;
pub const IFLA_MTU: ::c_ushort = 4;
pub const IFLA_LINK: ::c_ushort = 5;
pub const IFLA_QDISC: ::c_ushort = 6;
pub const IFLA_STATS: ::c_ushort = 7;
pub const IFLA_COST: ::c_ushort = 8;
pub const IFLA_PRIORITY: ::c_ushort = 9;
pub const IFLA_MASTER: ::c_ushort = 10;
pub const IFLA_WIRELESS: ::c_ushort = 11;
pub const IFLA_PROTINFO: ::c_ushort = 12;
pub const IFLA_TXQLEN: ::c_ushort = 13;
pub const IFLA_MAP: ::c_ushort = 14;
pub const IFLA_WEIGHT: ::c_ushort = 15;
pub const IFLA_OPERSTATE: ::c_ushort = 16;
pub const IFLA_LINKMODE: ::c_ushort = 17;
pub const IFLA_LINKINFO: ::c_ushort = 18;
pub const IFLA_NET_NS_PID: ::c_ushort = 19;
pub const IFLA_IFALIAS: ::c_ushort = 20;
pub const IFLA_NUM_VF: ::c_ushort = 21;
pub const IFLA_VFINFO_LIST: ::c_ushort = 22;
pub const IFLA_STATS64: ::c_ushort = 23;
pub const IFLA_VF_PORTS: ::c_ushort = 24;
pub const IFLA_PORT_SELF: ::c_ushort = 25;
pub const IFLA_AF_SPEC: ::c_ushort = 26;
pub const IFLA_GROUP: ::c_ushort = 27;
pub const IFLA_NET_NS_FD: ::c_ushort = 28;
pub const IFLA_EXT_MASK: ::c_ushort = 29;
pub const IFLA_PROMISCUITY: ::c_ushort = 30;
pub const IFLA_NUM_TX_QUEUES: ::c_ushort = 31;
pub const IFLA_NUM_RX_QUEUES: ::c_ushort = 32;
pub const IFLA_CARRIER: ::c_ushort = 33;
pub const IFLA_PHYS_PORT_ID: ::c_ushort = 34;
pub const IFLA_CARRIER_CHANGES: ::c_ushort = 35;
pub const IFLA_PHYS_SWITCH_ID: ::c_ushort = 36;
pub const IFLA_LINK_NETNSID: ::c_ushort = 37;
pub const IFLA_PHYS_PORT_NAME: ::c_ushort = 38;
pub const IFLA_PROTO_DOWN: ::c_ushort = 39;
pub const IFLA_GSO_MAX_SEGS: ::c_ushort = 40;
pub const IFLA_GSO_MAX_SIZE: ::c_ushort = 41;
pub const IFLA_PAD: ::c_ushort = 42;
pub const IFLA_XDP: ::c_ushort = 43;
pub const IFLA_EVENT: ::c_ushort = 44;
pub const IFLA_NEW_NETNSID: ::c_ushort = 45;
pub const IFLA_IF_NETNSID: ::c_ushort = 46;
pub const IFLA_TARGET_NETNSID: ::c_ushort = IFLA_IF_NETNSID;
pub const IFLA_CARRIER_UP_COUNT: ::c_ushort = 47;
pub const IFLA_CARRIER_DOWN_COUNT: ::c_ushort = 48;
pub const IFLA_NEW_IFINDEX: ::c_ushort = 49;
pub const IFLA_MIN_MTU: ::c_ushort = 50;
pub const IFLA_MAX_MTU: ::c_ushort = 51;
pub const IFLA_INFO_UNSPEC: ::c_ushort = 0;
pub const IFLA_INFO_KIND: ::c_ushort = 1;
pub const IFLA_INFO_DATA: ::c_ushort = 2;
pub const IFLA_INFO_XSTATS: ::c_ushort = 3;
pub const IFLA_INFO_SLAVE_KIND: ::c_ushort = 4;
pub const IFLA_INFO_SLAVE_DATA: ::c_ushort = 5;
// linux/rtnetlink.h
pub const TCA_UNSPEC: ::c_ushort = 0;
pub const TCA_KIND: ::c_ushort = 1;
pub const TCA_OPTIONS: ::c_ushort = 2;
pub const TCA_STATS: ::c_ushort = 3;
pub const TCA_XSTATS: ::c_ushort = 4;
pub const TCA_RATE: ::c_ushort = 5;
pub const TCA_FCNT: ::c_ushort = 6;
pub const TCA_STATS2: ::c_ushort = 7;
pub const TCA_STAB: ::c_ushort = 8;
pub const RTM_NEWLINK: u16 = 16;
pub const RTM_DELLINK: u16 = 17;
pub const RTM_GETLINK: u16 = 18;
pub const RTM_SETLINK: u16 = 19;
pub const RTM_NEWADDR: u16 = 20;
pub const RTM_DELADDR: u16 = 21;
pub const RTM_GETADDR: u16 = 22;
pub const RTM_NEWROUTE: u16 = 24;
pub const RTM_DELROUTE: u16 = 25;
pub const RTM_GETROUTE: u16 = 26;
pub const RTM_NEWNEIGH: u16 = 28;
pub const RTM_DELNEIGH: u16 = 29;
pub const RTM_GETNEIGH: u16 = 30;
pub const RTM_NEWRULE: u16 = 32;
pub const RTM_DELRULE: u16 = 33;
pub const RTM_GETRULE: u16 = 34;
pub const RTM_NEWQDISC: u16 = 36;
pub const RTM_DELQDISC: u16 = 37;
pub const RTM_GETQDISC: u16 = 38;
pub const RTM_NEWTCLASS: u16 = 40;
pub const RTM_DELTCLASS: u16 = 41;
pub const RTM_GETTCLASS: u16 = 42;
pub const RTM_NEWTFILTER: u16 = 44;
pub const RTM_DELTFILTER: u16 = 45;
pub const RTM_GETTFILTER: u16 = 46;
pub const RTM_NEWACTION: u16 = 48;
pub const RTM_DELACTION: u16 = 49;
pub const RTM_GETACTION: u16 = 50;
pub const RTM_NEWPREFIX: u16 = 52;
pub const RTM_GETMULTICAST: u16 = 58;
pub const RTM_GETANYCAST: u16 = 62;
pub const RTM_NEWNEIGHTBL: u16 = 64;
pub const RTM_GETNEIGHTBL: u16 = 66;
pub const RTM_SETNEIGHTBL: u16 = 67;
pub const RTM_NEWNDUSEROPT: u16 = 68;
pub const RTM_NEWADDRLABEL: u16 = 72;
pub const RTM_DELADDRLABEL: u16 = 73;
pub const RTM_GETADDRLABEL: u16 = 74;
pub const RTM_GETDCB: u16 = 78;
pub const RTM_SETDCB: u16 = 79;
pub const RTM_NEWNETCONF: u16 = 80;
pub const RTM_GETNETCONF: u16 = 82;
pub const RTM_NEWMDB: u16 = 84;
pub const RTM_DELMDB: u16 = 85;
pub const RTM_GETMDB: u16 = 86;
pub const RTM_NEWNSID: u16 = 88;
pub const RTM_DELNSID: u16 = 89;
pub const RTM_GETNSID: u16 = 90;
pub const RTM_F_NOTIFY: ::c_uint = 0x100;
pub const RTM_F_CLONED: ::c_uint = 0x200;
pub const RTM_F_EQUALIZE: ::c_uint = 0x400;
pub const RTM_F_PREFIX: ::c_uint = 0x800;
pub const RTA_UNSPEC: ::c_ushort = 0;
pub const RTA_DST: ::c_ushort = 1;
pub const RTA_SRC: ::c_ushort = 2;
pub const RTA_IIF: ::c_ushort = 3;
pub const RTA_OIF: ::c_ushort = 4;
pub const RTA_GATEWAY: ::c_ushort = 5;
pub const RTA_PRIORITY: ::c_ushort = 6;
pub const RTA_PREFSRC: ::c_ushort = 7;
pub const RTA_METRICS: ::c_ushort = 8;
pub const RTA_MULTIPATH: ::c_ushort = 9;
pub const RTA_PROTOINFO: ::c_ushort = 10; // No longer used
pub const RTA_FLOW: ::c_ushort = 11;
pub const RTA_CACHEINFO: ::c_ushort = 12;
pub const RTA_SESSION: ::c_ushort = 13; // No longer used
pub const RTA_MP_ALGO: ::c_ushort = 14; // No longer used
pub const RTA_TABLE: ::c_ushort = 15;
pub const RTA_MARK: ::c_ushort = 16;
pub const RTA_MFC_STATS: ::c_ushort = 17;
pub const RTN_UNSPEC: ::c_uchar = 0;
pub const RTN_UNICAST: ::c_uchar = 1;
pub const RTN_LOCAL: ::c_uchar = 2;
pub const RTN_BROADCAST: ::c_uchar = 3;
pub const RTN_ANYCAST: ::c_uchar = 4;
pub const RTN_MULTICAST: ::c_uchar = 5;
pub const RTN_BLACKHOLE: ::c_uchar = 6;
pub const RTN_UNREACHABLE: ::c_uchar = 7;
pub const RTN_PROHIBIT: ::c_uchar = 8;
pub const RTN_THROW: ::c_uchar = 9;
pub const RTN_NAT: ::c_uchar = 10;
pub const RTN_XRESOLVE: ::c_uchar = 11;
pub const RTPROT_UNSPEC: ::c_uchar = 0;
pub const RTPROT_REDIRECT: ::c_uchar = 1;
pub const RTPROT_KERNEL: ::c_uchar = 2;
pub const RTPROT_BOOT: ::c_uchar = 3;
pub const RTPROT_STATIC: ::c_uchar = 4;
pub const RT_SCOPE_UNIVERSE: ::c_uchar = 0;
pub const RT_SCOPE_SITE: ::c_uchar = 200;
pub const RT_SCOPE_LINK: ::c_uchar = 253;
pub const RT_SCOPE_HOST: ::c_uchar = 254;
pub const RT_SCOPE_NOWHERE: ::c_uchar = 255;
pub const RT_TABLE_UNSPEC: ::c_uchar = 0;
pub const RT_TABLE_COMPAT: ::c_uchar = 252;
pub const RT_TABLE_DEFAULT: ::c_uchar = 253;
pub const RT_TABLE_MAIN: ::c_uchar = 254;
pub const RT_TABLE_LOCAL: ::c_uchar = 255;
pub const RTMSG_NEWDEVICE: u32 = 0x11;
pub const RTMSG_DELDEVICE: u32 = 0x12;
pub const RTMSG_NEWROUTE: u32 = 0x21;
pub const RTMSG_DELROUTE: u32 = 0x22;
f! { f! {
pub fn CMSG_NXTHDR(mhdr: *const msghdr, pub fn CMSG_NXTHDR(mhdr: *const msghdr,

Просмотреть файл

@ -1669,6 +1669,8 @@ pub const PRIO_PROCESS: ::c_int = 0;
pub const PRIO_PGRP: ::c_int = 1; pub const PRIO_PGRP: ::c_int = 1;
pub const PRIO_USER: ::c_int = 2; pub const PRIO_USER: ::c_int = 2;
pub const SOMAXCONN: ::c_int = 128;
f! { f! {
pub fn CMSG_NXTHDR(mhdr: *const msghdr, pub fn CMSG_NXTHDR(mhdr: *const msghdr,
cmsg: *const cmsghdr) -> *mut cmsghdr { cmsg: *const cmsghdr) -> *mut cmsghdr {

Просмотреть файл

@ -26,4 +26,26 @@ s! {
// auto-derive traits like Debug // auto-derive traits like Debug
__reserved: [[u64; 32]; 16], __reserved: [[u64; 32]; 16],
} }
#[repr(align(16))]
pub struct user_fpsimd_struct {
pub vregs: [[u64; 2]; 32],
pub fpsr: ::c_uint,
pub fpcr: ::c_uint,
}
#[repr(align(8))]
pub struct clone_args {
pub flags: ::c_ulonglong,
pub pidfd: ::c_ulonglong,
pub child_tid: ::c_ulonglong,
pub parent_tid: ::c_ulonglong,
pub exit_signal: ::c_ulonglong,
pub stack: ::c_ulonglong,
pub stack_size: ::c_ulonglong,
pub tls: ::c_ulonglong,
pub set_tid: ::c_ulonglong,
pub set_tid_size: ::c_ulonglong,
pub cgroup: ::c_ulonglong,
}
} }

Просмотреть файл

@ -573,6 +573,22 @@ pub const HWCAP_PACG: ::c_ulong = 1 << 31;
//pub const HWCAP2_SVESM4: ::c_ulong = 1 << 6; //pub const HWCAP2_SVESM4: ::c_ulong = 1 << 6;
//pub const HWCAP2_FLAGM2: ::c_ulong = 1 << 7; //pub const HWCAP2_FLAGM2: ::c_ulong = 1 << 7;
//pub const HWCAP2_FRINT: ::c_ulong = 1 << 8; //pub const HWCAP2_FRINT: ::c_ulong = 1 << 8;
//pub const HWCAP2_MTE: ::c_ulong = 1 << 18;
// linux/prctl.h
pub const PR_PAC_RESET_KEYS: ::c_int = 54;
pub const PR_SET_TAGGED_ADDR_CTRL: ::c_int = 55;
pub const PR_GET_TAGGED_ADDR_CTRL: ::c_int = 56;
pub const PR_PAC_SET_ENABLED_KEYS: ::c_int = 60;
pub const PR_PAC_GET_ENABLED_KEYS: ::c_int = 61;
pub const PR_TAGGED_ADDR_ENABLE: ::c_ulong = 1;
pub const PR_PAC_APIAKEY: ::c_ulong = 1 << 0;
pub const PR_PAC_APIBKEY: ::c_ulong = 1 << 1;
pub const PR_PAC_APDAKEY: ::c_ulong = 1 << 2;
pub const PR_PAC_APDBKEY: ::c_ulong = 1 << 3;
pub const PR_PAC_APGAKEY: ::c_ulong = 1 << 4;
// Syscall table // Syscall table
pub const SYS_io_setup: ::c_long = 0; pub const SYS_io_setup: ::c_long = 0;

Просмотреть файл

@ -5,3 +5,20 @@ s_no_extra_traits! {
priv_: [f64; 4] priv_: [f64; 4]
} }
} }
s! {
#[repr(align(8))]
pub struct clone_args {
pub flags: ::c_ulonglong,
pub pidfd: ::c_ulonglong,
pub child_tid: ::c_ulonglong,
pub parent_tid: ::c_ulonglong,
pub exit_signal: ::c_ulonglong,
pub stack: ::c_ulonglong,
pub stack_size: ::c_ulonglong,
pub tls: ::c_ulonglong,
pub set_tid: ::c_ulonglong,
pub set_tid_size: ::c_ulonglong,
pub cgroup: ::c_ulonglong,
}
}

Просмотреть файл

@ -626,6 +626,19 @@ pub const PTRACE_PEEKSIGINFO_SHARED: ::c_uint = 1;
pub const PTRACE_SYSEMU: ::c_uint = 31; pub const PTRACE_SYSEMU: ::c_uint = 31;
pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32;
pub const PR_GET_SPECULATION_CTRL: ::c_int = 52;
pub const PR_SET_SPECULATION_CTRL: ::c_int = 53;
pub const PR_SPEC_NOT_AFFECTED: ::c_uint = 0;
pub const PR_SPEC_PRCTL: ::c_uint = 1 << 0;
pub const PR_SPEC_ENABLE: ::c_uint = 1 << 1;
pub const PR_SPEC_DISABLE: ::c_uint = 1 << 2;
pub const PR_SPEC_FORCE_DISABLE: ::c_uint = 1 << 3;
pub const PR_SPEC_DISABLE_NOEXEC: ::c_uint = 1 << 4;
pub const PR_SPEC_STORE_BYPASS: ::c_int = 0;
pub const PR_SPEC_INDIRECT_BRANCH: ::c_int = 1;
// FIXME: perharps for later
//pub const PR_SPEC_L1D_FLUSH: ::c_int = 2;
pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_CURRENT: ::c_int = 0x0001;
pub const MCL_FUTURE: ::c_int = 0x0002; pub const MCL_FUTURE: ::c_int = 0x0002;

Просмотреть файл

@ -1025,6 +1025,8 @@ pub const STATX_ATTR_NODUMP: ::c_int = 0x0040;
pub const STATX_ATTR_ENCRYPTED: ::c_int = 0x0800; pub const STATX_ATTR_ENCRYPTED: ::c_int = 0x0800;
pub const STATX_ATTR_AUTOMOUNT: ::c_int = 0x1000; pub const STATX_ATTR_AUTOMOUNT: ::c_int = 0x1000;
pub const SOMAXCONN: ::c_int = 4096;
//sys/timex.h //sys/timex.h
pub const ADJ_OFFSET: ::c_uint = 0x0001; pub const ADJ_OFFSET: ::c_uint = 0x0001;
pub const ADJ_FREQUENCY: ::c_uint = 0x0002; pub const ADJ_FREQUENCY: ::c_uint = 0x0002;
@ -1289,6 +1291,7 @@ extern "C" {
attr: *mut ::pthread_rwlockattr_t, attr: *mut ::pthread_rwlockattr_t,
val: ::c_int, val: ::c_int,
) -> ::c_int; ) -> ::c_int;
pub fn pthread_sigqueue(thread: ::pthread_t, sig: ::c_int, value: ::sigval) -> ::c_int;
pub fn mallinfo() -> ::mallinfo; pub fn mallinfo() -> ::mallinfo;
pub fn mallinfo2() -> ::mallinfo2; pub fn mallinfo2() -> ::mallinfo2;
pub fn malloc_info(options: ::c_int, stream: *mut ::FILE) -> ::c_int; pub fn malloc_info(options: ::c_int, stream: *mut ::FILE) -> ::c_int;
@ -1324,6 +1327,11 @@ extern "C" {
pub fn malloc_trim(__pad: ::size_t) -> ::c_int; pub fn malloc_trim(__pad: ::size_t) -> ::c_int;
} }
extern "C" {
pub fn gnu_get_libc_release() -> *const ::c_char;
pub fn gnu_get_libc_version() -> *const ::c_char;
}
cfg_if! { cfg_if! {
if #[cfg(any(target_arch = "x86", if #[cfg(any(target_arch = "x86",
target_arch = "arm", target_arch = "arm",

Просмотреть файл

@ -1565,6 +1565,7 @@ pub const MSG_INFO: ::c_int = 12;
pub const MSG_NOERROR: ::c_int = 0o10000; pub const MSG_NOERROR: ::c_int = 0o10000;
pub const MSG_EXCEPT: ::c_int = 0o20000; pub const MSG_EXCEPT: ::c_int = 0o20000;
pub const MSG_ZEROCOPY: ::c_int = 0x4000000;
pub const SHM_R: ::c_int = 0o400; pub const SHM_R: ::c_int = 0o400;
pub const SHM_W: ::c_int = 0o200; pub const SHM_W: ::c_int = 0o200;
@ -1810,6 +1811,7 @@ pub const ITIMER_PROF: ::c_int = 2;
pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC;
pub const TFD_NONBLOCK: ::c_int = O_NONBLOCK; pub const TFD_NONBLOCK: ::c_int = O_NONBLOCK;
pub const TFD_TIMER_ABSTIME: ::c_int = 1; pub const TFD_TIMER_ABSTIME: ::c_int = 1;
pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 2;
pub const _POSIX_VDISABLE: ::cc_t = 0; pub const _POSIX_VDISABLE: ::cc_t = 0;
@ -1841,6 +1843,17 @@ pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000;
pub const IPV6_RTHDR_LOOSE: ::c_int = 0; pub const IPV6_RTHDR_LOOSE: ::c_int = 0;
pub const IPV6_RTHDR_STRICT: ::c_int = 1; pub const IPV6_RTHDR_STRICT: ::c_int = 1;
// SO_MEMINFO offsets
pub const SK_MEMINFO_RMEM_ALLOC: ::c_int = 0;
pub const SK_MEMINFO_RCVBUF: ::c_int = 1;
pub const SK_MEMINFO_WMEM_ALLOC: ::c_int = 2;
pub const SK_MEMINFO_SNDBUF: ::c_int = 3;
pub const SK_MEMINFO_FWD_ALLOC: ::c_int = 4;
pub const SK_MEMINFO_WMEM_QUEUED: ::c_int = 5;
pub const SK_MEMINFO_OPTMEM: ::c_int = 6;
pub const SK_MEMINFO_BACKLOG: ::c_int = 7;
pub const SK_MEMINFO_DROPS: ::c_int = 8;
pub const IUTF8: ::tcflag_t = 0x00004000; pub const IUTF8: ::tcflag_t = 0x00004000;
#[cfg(not(all(target_env = "uclibc", target_arch = "mips")))] #[cfg(not(all(target_env = "uclibc", target_arch = "mips")))]
pub const CMSPAR: ::tcflag_t = 0o10000000000; pub const CMSPAR: ::tcflag_t = 0o10000000000;
@ -3061,6 +3074,7 @@ pub const FUTEX_WAIT_BITSET: ::c_int = 9;
pub const FUTEX_WAKE_BITSET: ::c_int = 10; pub const FUTEX_WAKE_BITSET: ::c_int = 10;
pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11; pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11;
pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12; pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12;
pub const FUTEX_LOCK_PI2: ::c_int = 13;
pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; pub const FUTEX_PRIVATE_FLAG: ::c_int = 128;
pub const FUTEX_CLOCK_REALTIME: ::c_int = 256; pub const FUTEX_CLOCK_REALTIME: ::c_int = 256;

Просмотреть файл

@ -24,4 +24,19 @@ s! {
pub pstate: ::c_ulong, pub pstate: ::c_ulong,
__reserved: [[u64; 32]; 16], __reserved: [[u64; 32]; 16],
} }
#[repr(align(8))]
pub struct clone_args {
pub flags: ::c_ulonglong,
pub pidfd: ::c_ulonglong,
pub child_tid: ::c_ulonglong,
pub parent_tid: ::c_ulonglong,
pub exit_signal: ::c_ulonglong,
pub stack: ::c_ulonglong,
pub stack_size: ::c_ulonglong,
pub tls: ::c_ulonglong,
pub set_tid: ::c_ulonglong,
pub set_tid_size: ::c_ulonglong,
pub cgroup: ::c_ulonglong,
}
} }

Просмотреть файл

@ -458,7 +458,7 @@ pub const O_SYNC: ::c_int = 0x4010;
pub const O_RSYNC: ::c_int = 0x4010; pub const O_RSYNC: ::c_int = 0x4010;
pub const O_DSYNC: ::c_int = 0x10; pub const O_DSYNC: ::c_int = 0x10;
pub const O_ASYNC: ::c_int = 0x1000; pub const O_ASYNC: ::c_int = 0x1000;
pub const O_LARGEFILE: ::c_int = 0; pub const O_LARGEFILE: ::c_int = 0x2000;
pub const EDEADLK: ::c_int = 45; pub const EDEADLK: ::c_int = 45;
pub const ENAMETOOLONG: ::c_int = 78; pub const ENAMETOOLONG: ::c_int = 78;

Просмотреть файл

@ -221,6 +221,7 @@ pub const ENOPROTOOPT: ::c_int = 92;
pub const EPROTONOSUPPORT: ::c_int = 93; pub const EPROTONOSUPPORT: ::c_int = 93;
pub const ESOCKTNOSUPPORT: ::c_int = 94; pub const ESOCKTNOSUPPORT: ::c_int = 94;
pub const EOPNOTSUPP: ::c_int = 95; pub const EOPNOTSUPP: ::c_int = 95;
pub const ENOTSUP: ::c_int = EOPNOTSUPP;
pub const EPFNOSUPPORT: ::c_int = 96; pub const EPFNOSUPPORT: ::c_int = 96;
pub const EAFNOSUPPORT: ::c_int = 97; pub const EAFNOSUPPORT: ::c_int = 97;
pub const ENETDOWN: ::c_int = 100; pub const ENETDOWN: ::c_int = 100;

Просмотреть файл

@ -4,4 +4,22 @@ s_no_extra_traits! {
pub struct max_align_t { pub struct max_align_t {
priv_: [f64; 4] priv_: [f64; 4]
} }
}
s! {
#[repr(align(8))]
pub struct clone_args {
pub flags: ::c_ulonglong,
pub pidfd: ::c_ulonglong,
pub child_tid: ::c_ulonglong,
pub parent_tid: ::c_ulonglong,
pub exit_signal: ::c_ulonglong,
pub stack: ::c_ulonglong,
pub stack_size: ::c_ulonglong,
pub tls: ::c_ulonglong,
pub set_tid: ::c_ulonglong,
pub set_tid_size: ::c_ulonglong,
pub cgroup: ::c_ulonglong,
}
} }

Просмотреть файл

@ -529,6 +529,8 @@ pub const MAP_ANONYMOUS: ::c_int = MAP_ANON;
pub const SOCK_DCCP: ::c_int = 6; pub const SOCK_DCCP: ::c_int = 6;
pub const SOCK_PACKET: ::c_int = 10; pub const SOCK_PACKET: ::c_int = 10;
pub const SOMAXCONN: ::c_int = 128;
#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")]
pub const SIGUNUSED: ::c_int = ::SIGSYS; pub const SIGUNUSED: ::c_int = ::SIGSYS;

Просмотреть файл

@ -235,6 +235,8 @@ pub const PRIO_PROCESS: ::c_int = 0;
pub const PRIO_PGRP: ::c_int = 1; pub const PRIO_PGRP: ::c_int = 1;
pub const PRIO_USER: ::c_int = 2; pub const PRIO_USER: ::c_int = 2;
pub const SOMAXCONN: ::c_int = 128;
pub const ST_RELATIME: ::c_ulong = 4096; pub const ST_RELATIME: ::c_ulong = 4096;
pub const AF_NFC: ::c_int = PF_NFC; pub const AF_NFC: ::c_int = PF_NFC;

Просмотреть файл

@ -759,8 +759,6 @@ pub const PF_IEEE802154: ::c_int = AF_IEEE802154;
pub const PF_CAIF: ::c_int = AF_CAIF; pub const PF_CAIF: ::c_int = AF_CAIF;
pub const PF_ALG: ::c_int = AF_ALG; pub const PF_ALG: ::c_int = AF_ALG;
pub const SOMAXCONN: ::c_int = 128;
pub const MSG_OOB: ::c_int = 1; pub const MSG_OOB: ::c_int = 1;
pub const MSG_PEEK: ::c_int = 2; pub const MSG_PEEK: ::c_int = 2;
pub const MSG_DONTROUTE: ::c_int = 4; pub const MSG_DONTROUTE: ::c_int = 4;
@ -1213,6 +1211,15 @@ pub const PIPE_BUF: usize = 4096;
pub const SI_LOAD_SHIFT: ::c_uint = 16; pub const SI_LOAD_SHIFT: ::c_uint = 16;
// si_code values for SIGBUS signal
pub const BUS_ADRALN: ::c_int = 1;
pub const BUS_ADRERR: ::c_int = 2;
pub const BUS_OBJERR: ::c_int = 3;
// Linux-specific si_code values for SIGBUS signal
pub const BUS_MCEERR_AR: ::c_int = 4;
pub const BUS_MCEERR_AO: ::c_int = 5;
// si_code values for SIGCHLD signal
pub const CLD_EXITED: ::c_int = 1; pub const CLD_EXITED: ::c_int = 1;
pub const CLD_KILLED: ::c_int = 2; pub const CLD_KILLED: ::c_int = 2;
pub const CLD_DUMPED: ::c_int = 3; pub const CLD_DUMPED: ::c_int = 3;
@ -1726,8 +1733,6 @@ extern "C" {
pub fn clearenv() -> ::c_int; pub fn clearenv() -> ::c_int;
pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int)
-> ::c_int; -> ::c_int;
pub fn setreuid(ruid: ::uid_t, euid: ::uid_t) -> ::c_int;
pub fn setregid(rgid: ::gid_t, egid: ::gid_t) -> ::c_int;
pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int;
pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int;
pub fn acct(filename: *const ::c_char) -> ::c_int; pub fn acct(filename: *const ::c_char) -> ::c_int;

16
third_party/rust/libc/src/unix/mod.rs поставляемый
Просмотреть файл

@ -346,13 +346,13 @@ cfg_if! {
} else if #[cfg(target_os = "emscripten")] { } else if #[cfg(target_os = "emscripten")] {
#[link(name = "c")] #[link(name = "c")]
extern {} extern {}
} else if #[cfg(all(target_os = "netbsd", } else if #[cfg(all(target_os = "android", feature = "rustc-dep-of-std"))] {
feature = "rustc-dep-of-std", #[link(name = "c", kind = "static", modifiers = "-bundle",
target_vendor = "rumprun"))] { cfg(target_feature = "crt-static"))]
// Since we don't use -nodefaultlibs on Rumprun, libc is always pulled #[link(name = "m", kind = "static", modifiers = "-bundle",
// in automatically by the linker. We avoid passing it explicitly, as it cfg(target_feature = "crt-static"))]
// causes some versions of binutils to crash with an assertion failure. #[link(name = "m", cfg(not(target_feature = "crt-static")))]
#[link(name = "m")] #[link(name = "c", cfg(not(target_feature = "crt-static")))]
extern {} extern {}
} else if #[cfg(any(target_os = "macos", } else if #[cfg(any(target_os = "macos",
target_os = "ios", target_os = "ios",
@ -901,6 +901,8 @@ extern "C" {
pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int; pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int;
pub fn setsid() -> pid_t; pub fn setsid() -> pid_t;
pub fn setuid(uid: uid_t) -> ::c_int; pub fn setuid(uid: uid_t) -> ::c_int;
pub fn setreuid(ruid: uid_t, euid: uid_t) -> ::c_int;
pub fn setregid(rgid: gid_t, egid: gid_t) -> ::c_int;
#[cfg_attr( #[cfg_attr(
all(target_os = "macos", target_arch = "x86"), all(target_os = "macos", target_arch = "x86"),
link_name = "sleep$UNIX2003" link_name = "sleep$UNIX2003"

Просмотреть файл

@ -83,6 +83,9 @@ pub const MSG_DONTROUTE: ::c_int = 0x4;
pub const MSG_WAITALL: ::c_int = 0x02; pub const MSG_WAITALL: ::c_int = 0x02;
pub const MSG_MORE: ::c_int = 0x10; pub const MSG_MORE: ::c_int = 0x10;
pub const MSG_NOSIGNAL: ::c_int = 0x20; pub const MSG_NOSIGNAL: ::c_int = 0x20;
pub const MSG_TRUNC: ::c_int = 0x04;
pub const MSG_CTRUNC: ::c_int = 0x08;
pub const MSG_EOR: ::c_int = 0x08;
pub const PTHREAD_STACK_MIN: ::size_t = 768; pub const PTHREAD_STACK_MIN: ::size_t = 768;
@ -100,6 +103,8 @@ extern "C" {
pub fn sendmsg(s: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; pub fn sendmsg(s: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t;
#[link_name = "lwip_recvmsg"] #[link_name = "lwip_recvmsg"]
pub fn recvmsg(s: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; pub fn recvmsg(s: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t;
pub fn eventfd(initval: ::c_uint, flags: ::c_int) -> ::c_int;
} }
pub use crate::unix::newlib::generic::{sigset_t, stat}; pub use crate::unix::newlib::generic::{sigset_t, stat};

Просмотреть файл

@ -1796,6 +1796,8 @@ pub const TCP_LINGER2: ::c_int = 0x1c;
pub const UDP_NAT_T_ENDPOINT: ::c_int = 0x0103; pub const UDP_NAT_T_ENDPOINT: ::c_int = 0x0103;
pub const SOMAXCONN: ::c_int = 128;
pub const SOL_SOCKET: ::c_int = 0xffff; pub const SOL_SOCKET: ::c_int = 0xffff;
pub const SO_DEBUG: ::c_int = 0x01; pub const SO_DEBUG: ::c_int = 0x01;
pub const SO_ACCEPTCONN: ::c_int = 0x0002; pub const SO_ACCEPTCONN: ::c_int = 0x0002;

12
third_party/rust/libc/src/windows/mod.rs поставляемый
Просмотреть файл

@ -277,6 +277,16 @@ impl ::Clone for fpos_t {
} }
} }
// Special handling for all print and scan type functions because of https://github.com/rust-lang/libc/issues/2860
#[cfg_attr(
all(windows, target_env = "msvc"),
link(name = "legacy_stdio_definitions")
)]
extern "C" {
pub fn printf(format: *const c_char, ...) -> ::c_int;
pub fn fprintf(stream: *mut FILE, format: *const c_char, ...) -> ::c_int;
}
extern "C" { extern "C" {
pub fn isalnum(c: c_int) -> c_int; pub fn isalnum(c: c_int) -> c_int;
pub fn isalpha(c: c_int) -> c_int; pub fn isalpha(c: c_int) -> c_int;
@ -319,8 +329,6 @@ extern "C" {
pub fn feof(stream: *mut FILE) -> c_int; pub fn feof(stream: *mut FILE) -> c_int;
pub fn ferror(stream: *mut FILE) -> c_int; pub fn ferror(stream: *mut FILE) -> c_int;
pub fn perror(s: *const c_char); pub fn perror(s: *const c_char);
pub fn printf(format: *const c_char, ...) -> ::c_int;
pub fn fprintf(stream: *mut FILE, format: *const c_char, ...) -> ::c_int;
pub fn atoi(s: *const c_char) -> c_int; pub fn atoi(s: *const c_char) -> c_int;
pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double;
pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float; pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float;