зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
88058d9bfe
Коммит
ecf2d6f3c8
|
@ -2936,9 +2936,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
|
|||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.126"
|
||||
version = "0.2.132"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
|
||||
checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"
|
||||
|
||||
[[package]]
|
||||
name = "libdbus-sys"
|
||||
|
|
|
@ -398,6 +398,11 @@ who = "Mike Hommey <mh+mozilla@glandium.org>"
|
|||
criteria = "safe-to-deploy"
|
||||
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]]
|
||||
who = "Aria Beingessner <a.beingessner@gmail.com>"
|
||||
criteria = "safe-to-deploy"
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -72,6 +72,10 @@ after a certain period. The steps are:
|
|||
If you're using it, please comment on #XXX").
|
||||
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
|
||||
|
||||
Now that you've done the amazing job of landing your new API or your new
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
[package]
|
||||
name = "libc"
|
||||
version = "0.2.126"
|
||||
version = "0.2.132"
|
||||
authors = ["The Rust Project Developers"]
|
||||
build = "build.rs"
|
||||
exclude = [
|
||||
|
|
|
@ -35,13 +35,16 @@ libc = "0.2"
|
|||
This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`.
|
||||
|
||||
* `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`.
|
||||
|
||||
## 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:
|
||||
|
||||
| Feature | Version |
|
||||
|
@ -53,6 +56,7 @@ newer Rust features are only available on newer Rust toolchains:
|
|||
| `core::ffi::c_void` | 1.30.0 |
|
||||
| `repr(packed(N))` | 1.33.0 |
|
||||
| `cfg(target_vendor)` | 1.33.0 |
|
||||
| `const-extern-fn` | 1.62.0 |
|
||||
|
||||
## Platform support
|
||||
|
||||
|
|
|
@ -97,12 +97,19 @@ fn main() {
|
|||
println!("cargo:rustc-cfg=libc_thread_local");
|
||||
}
|
||||
|
||||
// Rust >= 1.62.0 allows to use `const_extern_fn` for "Rust" and "C".
|
||||
if rustc_minor_ver >= 62 {
|
||||
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")
|
||||
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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn rustc_minor_nightly() -> Option<(u32, bool)> {
|
||||
|
|
|
@ -877,6 +877,11 @@ s! {
|
|||
pub c_ispeed: ::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! {
|
||||
|
@ -1788,6 +1793,9 @@ pub const IPV6_MULTICAST_LOOP: ::c_int = 19;
|
|||
pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20;
|
||||
pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21;
|
||||
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_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_RELRO: u32 = 0x6474e552;
|
||||
|
||||
// Ethernet protocol IDs.
|
||||
pub const ETH_P_IP: ::c_int = 0x0800;
|
||||
|
||||
pub const SFD_CLOEXEC: ::c_int = 0x080000;
|
||||
|
||||
pub const NCCS: usize = 32;
|
||||
|
|
|
@ -13,7 +13,9 @@
|
|||
improper_ctypes,
|
||||
// This lint is renamed but we run CI for old stable rustc so should be here.
|
||||
redundant_semicolon,
|
||||
redundant_semicolons
|
||||
redundant_semicolons,
|
||||
unused_macros,
|
||||
unused_macro_rules,
|
||||
)]
|
||||
#![cfg_attr(libc_deny_warnings, deny(warnings))]
|
||||
// Attributes needed when building as part of the standard library
|
||||
|
@ -24,11 +26,7 @@
|
|||
#![deny(missing_copy_implementations, safe_packed_borrows)]
|
||||
#![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",
|
||||
feature(native_link_modifiers, native_link_modifiers_bundle)
|
||||
)]
|
||||
#![cfg_attr(libc_const_extern_fn, feature(const_extern_fn))]
|
||||
#![cfg_attr(libc_const_extern_fn_unstable, feature(const_extern_fn))]
|
||||
|
||||
#[macro_use]
|
||||
mod macros;
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
///
|
||||
/// This allows you to conveniently provide a long list #[cfg]'d blocks of code
|
||||
/// without having to rewrite each clause multiple times.
|
||||
#[allow(unused_macros)]
|
||||
macro_rules! cfg_if {
|
||||
// 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 {
|
||||
($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($(
|
||||
s!(it: $(#[$attr])* pub $t $i { $($field)* });
|
||||
|
@ -87,7 +85,6 @@ macro_rules! s {
|
|||
);
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
macro_rules! s_no_extra_traits {
|
||||
($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($(
|
||||
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 {
|
||||
($($(#[$attr:meta])* pub enum $i:ident { $($field:tt)* })*) => ($(
|
||||
__item! {
|
||||
|
@ -138,7 +134,6 @@ macro_rules! e {
|
|||
)*);
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
macro_rules! s_paren {
|
||||
($($(#[$attr:meta])* pub struct $i:ident ( $($field:tt)* ); )* ) => ($(
|
||||
__item! {
|
||||
|
@ -182,7 +177,6 @@ macro_rules! s_paren {
|
|||
// 'f!' block
|
||||
cfg_if! {
|
||||
if #[cfg(libc_const_extern_fn)] {
|
||||
#[allow(unused_macros)]
|
||||
macro_rules! f {
|
||||
($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
|
||||
$($arg:ident: $argty:ty),*
|
||||
|
@ -198,7 +192,6 @@ cfg_if! {
|
|||
)*)
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
macro_rules! safe_f {
|
||||
($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
|
||||
$($arg:ident: $argty:ty),*
|
||||
|
@ -214,7 +207,6 @@ cfg_if! {
|
|||
)*)
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
macro_rules! const_fn {
|
||||
($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident(
|
||||
$($arg:ident: $argty:ty),*
|
||||
|
@ -231,7 +223,6 @@ cfg_if! {
|
|||
}
|
||||
|
||||
} else {
|
||||
#[allow(unused_macros)]
|
||||
macro_rules! f {
|
||||
($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
|
||||
$($arg:ident: $argty:ty),*
|
||||
|
@ -247,7 +238,6 @@ cfg_if! {
|
|||
)*)
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
macro_rules! safe_f {
|
||||
($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
|
||||
$($arg:ident: $argty:ty),*
|
||||
|
@ -263,7 +253,6 @@ cfg_if! {
|
|||
)*)
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
macro_rules! const_fn {
|
||||
($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident(
|
||||
$($arg:ident: $argty:ty),*
|
||||
|
@ -281,14 +270,12 @@ cfg_if! {
|
|||
}
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
macro_rules! __item {
|
||||
($i:item) => {
|
||||
$i
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
macro_rules! align_const {
|
||||
($($(#[$attr:meta])*
|
||||
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
|
||||
#[allow(unused_macros)]
|
||||
macro_rules! deprecated_mach {
|
||||
(pub const $id:ident: $ty:ty = $expr:expr;) => {
|
||||
#[deprecated(
|
||||
|
@ -342,7 +328,6 @@ macro_rules! deprecated_mach {
|
|||
}
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
#[cfg(not(libc_ptr_addr_of))]
|
||||
macro_rules! ptr_addr_of {
|
||||
($place:expr) => {
|
||||
|
@ -350,7 +335,6 @@ macro_rules! ptr_addr_of {
|
|||
};
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
#[cfg(libc_ptr_addr_of)]
|
||||
macro_rules! ptr_addr_of {
|
||||
($place:expr) => {
|
||||
|
|
|
@ -15,6 +15,7 @@ s! {
|
|||
pub uc_link: *mut ::ucontext_t,
|
||||
pub uc_mcsize: usize,
|
||||
pub uc_mcontext: mcontext_t,
|
||||
__mcontext_data: __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 thread_flavor_t = natural_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 mach_vm_address_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_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 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 task_t = ::mach_port_t;
|
||||
pub type task_inspect_t = ::mach_port_t;
|
||||
|
||||
pub type sysdir_search_path_enumeration_state = ::c_uint;
|
||||
|
||||
|
@ -672,6 +678,13 @@ s! {
|
|||
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
|
||||
|
||||
pub struct sa_endpoints_t {
|
||||
|
@ -1038,7 +1051,8 @@ s_no_extra_traits! {
|
|||
pub f_fstypename: [::c_char; 16],
|
||||
pub f_mntonname: [::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 {
|
||||
|
@ -3466,6 +3480,7 @@ pub const pseudo_AF_RTIP: ::c_int = 22;
|
|||
pub const AF_IPX: ::c_int = 23;
|
||||
pub const AF_SIP: ::c_int = 24;
|
||||
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_E164: ::c_int = AF_ISDN;
|
||||
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_RTIP: ::c_int = pseudo_AF_RTIP;
|
||||
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_KEY: ::c_int = pseudo_AF_KEY;
|
||||
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_BLOCK_SOURCE: ::c_int = 72;
|
||||
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_NOOPT: ::c_int = 8;
|
||||
|
@ -4672,6 +4689,16 @@ cfg_if! {
|
|||
const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::<u32>() - 1;
|
||||
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 =
|
||||
(::mem::size_of::<thread_extended_policy_data_t>() / ::mem::size_of::<integer_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>())
|
||||
as mach_msg_type_number_t;
|
||||
} 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_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = 4;
|
||||
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_outCnt: *mut mach_msg_type_number_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 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;
|
||||
|
@ -5480,6 +5505,19 @@ extern "C" {
|
|||
task_info_out: task_info_t,
|
||||
task_info_count: *mut mach_msg_type_number_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(
|
||||
host_priv: host_t,
|
||||
flavor: host_flavor_t,
|
||||
|
@ -5508,12 +5546,23 @@ cfg_if! {
|
|||
if #[cfg(target_os = "macos")] {
|
||||
extern "C" {
|
||||
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(
|
||||
haystack: *const ::c_void,
|
||||
haystacklen: ::size_t,
|
||||
needle: *const ::c_void,
|
||||
needlelen: ::size_t,
|
||||
) -> *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 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))]
|
||||
pub enum sem {}
|
||||
impl ::Copy for sem {}
|
||||
|
@ -336,6 +347,50 @@ s! {
|
|||
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 msr: ::c_int,
|
||||
pub data: u64,
|
||||
|
@ -1613,6 +1668,20 @@ extern "C" {
|
|||
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! {
|
||||
if #[cfg(libc_thread_local)] {
|
||||
mod errno;
|
||||
|
|
|
@ -44,10 +44,6 @@ pub type fhandle_t = fhandle;
|
|||
pub type au_id_t = ::uid_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))]
|
||||
#[repr(u32)]
|
||||
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_ALLOW_SEALING: ::c_uint = 0x00000002;
|
||||
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_NOWAIT: ::c_int = 1;
|
||||
|
@ -3772,21 +3781,21 @@ f! {
|
|||
}
|
||||
|
||||
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);
|
||||
cpuset.__bits[idx] |= 1 << offset;
|
||||
()
|
||||
}
|
||||
|
||||
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);
|
||||
cpuset.__bits[idx] &= !(1 << offset);
|
||||
()
|
||||
}
|
||||
|
||||
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);
|
||||
0 != cpuset.__bits[idx] & (1 << offset)
|
||||
}
|
||||
|
@ -3794,9 +3803,9 @@ f! {
|
|||
pub fn CPU_COUNT(cpuset: &cpuset_t) -> ::c_int {
|
||||
let mut s: u32 = 0;
|
||||
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 as ::c_int
|
||||
|
@ -3839,6 +3848,8 @@ cfg_if! {
|
|||
}
|
||||
|
||||
extern "C" {
|
||||
#[cfg_attr(doc, doc(alias = "__errno_location"))]
|
||||
#[cfg_attr(doc, doc(alias = "errno"))]
|
||||
pub fn __error() -> *mut ::c_int;
|
||||
|
||||
pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int;
|
||||
|
@ -4272,71 +4283,39 @@ extern "C" {
|
|||
|
||||
#[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_dpcpu_setcpu(kd: *mut kvm_t, cpu: ::c_uint) -> ::c_int;
|
||||
pub fn kvm_getargv(kd: *mut kvm_t, p: *const kinfo_proc, nchr: ::c_int) -> *mut *mut ::c_char;
|
||||
pub fn kvm_getcptime(kd: *mut kvm_t, cp_time: *mut ::c_long) -> ::c_int;
|
||||
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_dpcpu_setcpu(kd: *mut ::kvm_t, cpu: ::c_uint) -> ::c_int;
|
||||
pub fn kvm_getargv(kd: *mut ::kvm_t, p: *const kinfo_proc, nchr: ::c_int)
|
||||
-> *mut *mut ::c_char;
|
||||
pub fn kvm_getcptime(kd: *mut ::kvm_t, cp_time: *mut ::c_long) -> ::c_int;
|
||||
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_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_getswapinfo(
|
||||
kd: *mut kvm_t,
|
||||
kd: *mut ::kvm_t,
|
||||
info: *mut kvm_swap,
|
||||
maxswap: ::c_int,
|
||||
flags: ::c_int,
|
||||
) -> ::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_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_native(kd: *mut ::kvm_t) -> ::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_read_zpcpu(
|
||||
kd: *mut kvm_t,
|
||||
kd: *mut ::kvm_t,
|
||||
base: ::c_ulong,
|
||||
buf: *mut ::c_void,
|
||||
size: ::size_t,
|
||||
cpu: ::c_int,
|
||||
) -> ::ssize_t;
|
||||
pub fn kvm_read2(
|
||||
kd: *mut kvm_t,
|
||||
kd: *mut ::kvm_t,
|
||||
addr: kvaddr_t,
|
||||
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;
|
||||
}
|
||||
|
||||
#[link(name = "util")]
|
||||
|
@ -4486,10 +4465,10 @@ extern "C" {
|
|||
|
||||
#[link(name = "devstat")]
|
||||
extern "C" {
|
||||
pub fn devstat_getnumdevs(kd: *mut kvm_t) -> ::c_int;
|
||||
pub fn devstat_getgeneration(kd: *mut kvm_t) -> ::c_long;
|
||||
pub fn devstat_getversion(kd: *mut kvm_t) -> ::c_int;
|
||||
pub fn devstat_checkversion(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_getversion(kd: *mut ::kvm_t) -> ::c_int;
|
||||
pub fn devstat_checkversion(kd: *mut ::kvm_t) -> ::c_int;
|
||||
pub fn devstat_selectdevs(
|
||||
dev_select: *mut *mut device_selection,
|
||||
num_selected: *mut ::c_int,
|
||||
|
|
|
@ -35,6 +35,10 @@ pub type Elf64_Xword = u64;
|
|||
|
||||
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! {
|
||||
if #[cfg(target_pointer_width = "64")] {
|
||||
type Elf_Addr = Elf64_Addr;
|
||||
|
@ -1790,6 +1794,44 @@ extern "C" {
|
|||
) -> ::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! {
|
||||
if #[cfg(target_os = "freebsd")] {
|
||||
mod freebsd;
|
||||
|
|
|
@ -449,6 +449,12 @@ pub const TCP_MAXSEG: ::c_int = 2;
|
|||
|
||||
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_KILLED: ::c_int = 2;
|
||||
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_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;
|
||||
|
||||
#[link(name = "util")]
|
||||
|
|
|
@ -487,6 +487,134 @@ s! {
|
|||
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 kve_start: u64,
|
||||
pub kve_end: u64,
|
||||
|
@ -1440,10 +1568,7 @@ pub const IPPROTO_VRRP: ::c_int = 112;
|
|||
/// Common Address Resolution Protocol
|
||||
pub const IPPROTO_CARP: ::c_int = 112;
|
||||
/// L2TPv3
|
||||
// TEMP: Disabled for now; this constant was added to NetBSD on 2017-02-16,
|
||||
// but isn't yet supported by the NetBSD rumprun kernel image used for
|
||||
// libc testing.
|
||||
//pub const IPPROTO_L2TP: ::c_int = 115;
|
||||
pub const IPPROTO_L2TP: ::c_int = 115;
|
||||
/// SCTP
|
||||
pub const IPPROTO_SCTP: ::c_int = 132;
|
||||
/// PFSYNC
|
||||
|
@ -2103,9 +2228,18 @@ pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20;
|
|||
pub const POSIX_SPAWN_RETURNERROR: ::c_int = 0x40;
|
||||
|
||||
// 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_SETTABLE: ::c_ulong = 0xffff0000;
|
||||
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
|
||||
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 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 _ALIGN(p: usize) -> usize {
|
||||
(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_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 _ALIGN(p: usize) -> usize {
|
||||
(p + _ALIGNBYTES) & !_ALIGNBYTES
|
||||
|
|
|
@ -52,6 +52,9 @@ pub type Elf64_Xword = u64;
|
|||
pub type ENTRY = entry;
|
||||
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))]
|
||||
pub enum 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_UN: ::c_int = 0x08;
|
||||
|
||||
pub const MINSIGSTKSZ: ::size_t = 8192;
|
||||
pub const SIGSTKSZ: ::size_t = 16384;
|
||||
|
||||
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_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 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 SOMAXCONN: ::c_int = 32;
|
||||
|
||||
pub const NI_MAXHOST: ::size_t = 1025;
|
||||
|
||||
pub const WNOHANG: ::c_int = 0x01;
|
||||
|
@ -1234,6 +1243,12 @@ pub const WEXITED: ::c_int = 0x08;
|
|||
pub const WSTOPPED: ::c_int = 0x10;
|
||||
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_KILLED: ::c_int = 61;
|
||||
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_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 CMSG_ALIGN(len: usize) -> usize {
|
||||
len + ::mem::size_of::<usize>() - 1 & !(::mem::size_of::<usize>() - 1)
|
||||
|
@ -1768,8 +1790,6 @@ extern "C" {
|
|||
pub fn endgrent();
|
||||
pub fn getgrent() -> *mut ::group;
|
||||
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 pthread_atfork(
|
||||
prepare: ::Option<unsafe extern "C" fn()>,
|
||||
|
@ -1884,6 +1904,74 @@ extern "C" {
|
|||
|
||||
pub fn brk(addr: *mut ::c_void) -> ::c_int;
|
||||
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")]
|
||||
|
|
|
@ -346,6 +346,9 @@ cfg_if! {
|
|||
} else if #[cfg(target_arch = "aarch64")] {
|
||||
mod aarch64;
|
||||
pub use self::aarch64::*;
|
||||
} else if #[cfg(target_arch = "riscv64")] {
|
||||
mod riscv64;
|
||||
pub use self::riscv64::*;
|
||||
} else {
|
||||
// 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 {
|
||||
f.debug_struct("user_fpregs_struct")
|
||||
.field("cwd", &self.cwd)
|
||||
.field("swd", &self.swd)
|
||||
.field("ftw", &self.ftw)
|
||||
.field("fop", &self.fop)
|
||||
.field("rip", &self.rip)
|
||||
|
@ -366,6 +367,7 @@ cfg_if! {
|
|||
impl ::hash::Hash for user_fpregs_struct {
|
||||
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
|
||||
self.cwd.hash(state);
|
||||
self.swd.hash(state);
|
||||
self.ftw.hash(state);
|
||||
self.fop.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_VSOCK: ::c_int = AF_VSOCK;
|
||||
|
||||
pub const SOMAXCONN: ::c_int = 128;
|
||||
|
||||
// sys/system_properties.h
|
||||
pub const PROP_VALUE_MAX: ::c_int = 92;
|
||||
pub const PROP_NAME_MAX: ::c_int = 32;
|
||||
|
@ -2496,6 +2498,216 @@ pub const PROP_NAME_MAX: ::c_int = 32;
|
|||
// sys/prctl.h
|
||||
pub const PR_SET_VMA: ::c_int = 0x53564d41;
|
||||
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! {
|
||||
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_USER: ::c_int = 2;
|
||||
|
||||
pub const SOMAXCONN: ::c_int = 128;
|
||||
|
||||
f! {
|
||||
pub fn CMSG_NXTHDR(mhdr: *const msghdr,
|
||||
cmsg: *const cmsghdr) -> *mut cmsghdr {
|
||||
|
|
|
@ -26,4 +26,26 @@ s! {
|
|||
// auto-derive traits like Debug
|
||||
__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_FLAGM2: ::c_ulong = 1 << 7;
|
||||
//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
|
||||
pub const SYS_io_setup: ::c_long = 0;
|
||||
|
|
|
@ -5,3 +5,20 @@ s_no_extra_traits! {
|
|||
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_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_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_AUTOMOUNT: ::c_int = 0x1000;
|
||||
|
||||
pub const SOMAXCONN: ::c_int = 4096;
|
||||
|
||||
//sys/timex.h
|
||||
pub const ADJ_OFFSET: ::c_uint = 0x0001;
|
||||
pub const ADJ_FREQUENCY: ::c_uint = 0x0002;
|
||||
|
@ -1289,6 +1291,7 @@ extern "C" {
|
|||
attr: *mut ::pthread_rwlockattr_t,
|
||||
val: ::c_int,
|
||||
) -> ::c_int;
|
||||
pub fn pthread_sigqueue(thread: ::pthread_t, sig: ::c_int, value: ::sigval) -> ::c_int;
|
||||
pub fn mallinfo() -> ::mallinfo;
|
||||
pub fn mallinfo2() -> ::mallinfo2;
|
||||
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;
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
pub fn gnu_get_libc_release() -> *const ::c_char;
|
||||
pub fn gnu_get_libc_version() -> *const ::c_char;
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(any(target_arch = "x86",
|
||||
target_arch = "arm",
|
||||
|
|
|
@ -1565,6 +1565,7 @@ pub const MSG_INFO: ::c_int = 12;
|
|||
|
||||
pub const MSG_NOERROR: ::c_int = 0o10000;
|
||||
pub const MSG_EXCEPT: ::c_int = 0o20000;
|
||||
pub const MSG_ZEROCOPY: ::c_int = 0x4000000;
|
||||
|
||||
pub const SHM_R: ::c_int = 0o400;
|
||||
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_NONBLOCK: ::c_int = O_NONBLOCK;
|
||||
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;
|
||||
|
||||
|
@ -1841,6 +1843,17 @@ pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000;
|
|||
pub const IPV6_RTHDR_LOOSE: ::c_int = 0;
|
||||
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;
|
||||
#[cfg(not(all(target_env = "uclibc", target_arch = "mips")))]
|
||||
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_WAIT_REQUEUE_PI: ::c_int = 11;
|
||||
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_CLOCK_REALTIME: ::c_int = 256;
|
||||
|
|
|
@ -24,4 +24,19 @@ s! {
|
|||
pub pstate: ::c_ulong,
|
||||
__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_DSYNC: ::c_int = 0x10;
|
||||
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 ENAMETOOLONG: ::c_int = 78;
|
||||
|
|
|
@ -221,6 +221,7 @@ pub const ENOPROTOOPT: ::c_int = 92;
|
|||
pub const EPROTONOSUPPORT: ::c_int = 93;
|
||||
pub const ESOCKTNOSUPPORT: ::c_int = 94;
|
||||
pub const EOPNOTSUPP: ::c_int = 95;
|
||||
pub const ENOTSUP: ::c_int = EOPNOTSUPP;
|
||||
pub const EPFNOSUPPORT: ::c_int = 96;
|
||||
pub const EAFNOSUPPORT: ::c_int = 97;
|
||||
pub const ENETDOWN: ::c_int = 100;
|
||||
|
|
|
@ -4,4 +4,22 @@ s_no_extra_traits! {
|
|||
pub struct max_align_t {
|
||||
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_PACKET: ::c_int = 10;
|
||||
|
||||
pub const SOMAXCONN: ::c_int = 128;
|
||||
|
||||
#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")]
|
||||
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_USER: ::c_int = 2;
|
||||
|
||||
pub const SOMAXCONN: ::c_int = 128;
|
||||
|
||||
pub const ST_RELATIME: ::c_ulong = 4096;
|
||||
|
||||
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_ALG: ::c_int = AF_ALG;
|
||||
|
||||
pub const SOMAXCONN: ::c_int = 128;
|
||||
|
||||
pub const MSG_OOB: ::c_int = 1;
|
||||
pub const MSG_PEEK: ::c_int = 2;
|
||||
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;
|
||||
|
||||
// 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_KILLED: ::c_int = 2;
|
||||
pub const CLD_DUMPED: ::c_int = 3;
|
||||
|
@ -1726,8 +1733,6 @@ extern "C" {
|
|||
pub fn clearenv() -> ::c_int;
|
||||
pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::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 getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int;
|
||||
pub fn acct(filename: *const ::c_char) -> ::c_int;
|
||||
|
|
|
@ -346,13 +346,13 @@ cfg_if! {
|
|||
} else if #[cfg(target_os = "emscripten")] {
|
||||
#[link(name = "c")]
|
||||
extern {}
|
||||
} else if #[cfg(all(target_os = "netbsd",
|
||||
feature = "rustc-dep-of-std",
|
||||
target_vendor = "rumprun"))] {
|
||||
// Since we don't use -nodefaultlibs on Rumprun, libc is always pulled
|
||||
// in automatically by the linker. We avoid passing it explicitly, as it
|
||||
// causes some versions of binutils to crash with an assertion failure.
|
||||
#[link(name = "m")]
|
||||
} else if #[cfg(all(target_os = "android", feature = "rustc-dep-of-std"))] {
|
||||
#[link(name = "c", kind = "static", modifiers = "-bundle",
|
||||
cfg(target_feature = "crt-static"))]
|
||||
#[link(name = "m", kind = "static", modifiers = "-bundle",
|
||||
cfg(target_feature = "crt-static"))]
|
||||
#[link(name = "m", cfg(not(target_feature = "crt-static")))]
|
||||
#[link(name = "c", cfg(not(target_feature = "crt-static")))]
|
||||
extern {}
|
||||
} else if #[cfg(any(target_os = "macos",
|
||||
target_os = "ios",
|
||||
|
@ -901,6 +901,8 @@ extern "C" {
|
|||
pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int;
|
||||
pub fn setsid() -> pid_t;
|
||||
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(
|
||||
all(target_os = "macos", target_arch = "x86"),
|
||||
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_MORE: ::c_int = 0x10;
|
||||
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;
|
||||
|
||||
|
@ -100,6 +103,8 @@ extern "C" {
|
|||
pub fn sendmsg(s: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t;
|
||||
#[link_name = "lwip_recvmsg"]
|
||||
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};
|
||||
|
|
|
@ -1796,6 +1796,8 @@ pub const TCP_LINGER2: ::c_int = 0x1c;
|
|||
|
||||
pub const UDP_NAT_T_ENDPOINT: ::c_int = 0x0103;
|
||||
|
||||
pub const SOMAXCONN: ::c_int = 128;
|
||||
|
||||
pub const SOL_SOCKET: ::c_int = 0xffff;
|
||||
pub const SO_DEBUG: ::c_int = 0x01;
|
||||
pub const SO_ACCEPTCONN: ::c_int = 0x0002;
|
||||
|
|
|
@ -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" {
|
||||
pub fn isalnum(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 ferror(stream: *mut FILE) -> c_int;
|
||||
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 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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче