#[cfg(unix)] pub use funcs::posix88::net::*;
#[cfg(unix)] pub use funcs::posix01::stat_::*;
#[cfg(unix)] pub use funcs::posix01::unistd::*;
+#[cfg(unix)] pub use funcs::posix01::resource::*;
#[cfg(windows)] pub use funcs::extra::kernel32::*;
pub type pthread_t = c_ulong;
#[cfg(target_os = "nacl")]
pub type pthread_t = *mut c_void;
+ pub type rlim_t = u64;
#[repr(C)]
#[derive(Copy)] pub struct glob_t {
#[derive(Copy)] pub enum timezone {}
pub type sighandler_t = size_t;
+
+ #[repr(C)]
+ #[derive(Copy)]
+ pub struct rlimit {
+ pub rlim_cur: rlim_t,
+ pub rlim_max: rlim_t,
+ }
+ }
+
+ pub mod bsd43 {
+ use types::os::common::posix01::timeval;
+ use types::os::arch::c95::c_long;
+ // This is also specified in POSIX 2001, but only has two fields. All implementors
+ // implement BSD 4.3 version.
+ #[repr(C)]
+ #[derive(Copy)]
+ pub struct rusage {
+ pub ru_utime: timeval,
+ pub ru_stime: timeval,
+ pub ru_maxrss: c_long,
+ pub ru_ixrss: c_long,
+ pub ru_idrss: c_long,
+ pub ru_isrss: c_long,
+ pub ru_minflt: c_long,
+ pub ru_majflt: c_long,
+ pub ru_nswap: c_long,
+ pub ru_inblock: c_long,
+ pub ru_oublock: c_long,
+ pub ru_msgsnd: c_long,
+ pub ru_msgrcv: c_long,
+ pub ru_nsignals: c_long,
+ pub ru_nvcsw: c_long,
+ pub ru_nivcsw: c_long
+ }
}
+
pub mod bsd44 {
use types::common::c95::{c_void};
use types::os::arch::c95::{c_char, c_int, c_uint};
use types::os::arch::c99::{uintptr_t};
pub type pthread_t = uintptr_t;
+ pub type rlim_t = i64;
#[repr(C)]
#[derive(Copy)] pub struct glob_t {
#[derive(Copy)] pub enum timezone {}
pub type sighandler_t = size_t;
+
+ #[repr(C)]
+ #[derive(Copy)]
+ pub struct rlimit {
+ pub rlim_cur: rlim_t,
+ pub rlim_max: rlim_t,
+ }
+ }
+
+ pub mod bsd43 {
+ use types::os::common::posix01::timeval;
+ use types::os::arch::c95::c_long;
+ #[repr(C)]
+ #[derive(Copy)]
+ pub struct rusage {
+ pub ru_utime: timeval,
+ pub ru_stime: timeval,
+ pub ru_maxrss: c_long,
+ pub ru_ixrss: c_long,
+ pub ru_idrss: c_long,
+ pub ru_isrss: c_long,
+ pub ru_minflt: c_long,
+ pub ru_majflt: c_long,
+ pub ru_nswap: c_long,
+ pub ru_inblock: c_long,
+ pub ru_oublock: c_long,
+ pub ru_msgsnd: c_long,
+ pub ru_msgrcv: c_long,
+ pub ru_nsignals: c_long,
+ pub ru_nvcsw: c_long,
+ pub ru_nivcsw: c_long
+ }
}
+
pub mod bsd44 {
use types::common::c95::{c_void};
use types::os::arch::c95::{c_char, c_int, c_uint};
use types::os::arch::c99::{uintptr_t};
pub type pthread_t = uintptr_t;
+ pub type rlim_t = i64;
#[repr(C)]
#[derive(Copy)] pub struct glob_t {
#[derive(Copy)] pub enum timezone {}
pub type sighandler_t = size_t;
+
+ #[repr(C)]
+ #[derive(Copy)]
+ pub struct rlimit {
+ pub rlim_cur: rlim_t,
+ pub rlim_max: rlim_t,
+ }
}
+
+ pub mod bsd43 {
+ use types::os::common::posix01::timeval;
+ use types::os::arch::c95::c_long;
+ #[repr(C)]
+ #[derive(Copy)]
+ pub struct rusage {
+ pub ru_utime: timeval,
+ pub ru_stime: timeval,
+ pub ru_maxrss: c_long,
+ pub ru_ixrss: c_long,
+ pub ru_idrss: c_long,
+ pub ru_isrss: c_long,
+ pub ru_minflt: c_long,
+ pub ru_majflt: c_long,
+ pub ru_nswap: c_long,
+ pub ru_inblock: c_long,
+ pub ru_oublock: c_long,
+ pub ru_msgsnd: c_long,
+ pub ru_msgrcv: c_long,
+ pub ru_nsignals: c_long,
+ pub ru_nvcsw: c_long,
+ pub ru_nivcsw: c_long
+ }
+ }
+
pub mod bsd44 {
use types::common::c95::{c_void};
use types::os::arch::c95::{c_char, c_int, c_uint};
use types::os::arch::c99::{uintptr_t};
pub type pthread_t = uintptr_t;
+ pub type rlim_t = u64;
#[cfg(target_os = "bitrig")]
#[repr(C)]
#[derive(Copy)] pub enum timezone {}
pub type sighandler_t = size_t;
+
+ #[repr(C)]
+ #[derive(Copy)]
+ pub struct rlimit {
+ pub rlim_cur: rlim_t,
+ pub rlim_max: rlim_t,
+ }
+ }
+
+ pub mod bsd43 {
+ use types::os::common::posix01::timeval;
+ use types::os::arch::c95::c_long;
+ #[repr(C)]
+ #[derive(Copy)]
+ pub struct rusage {
+ pub ru_utime: timeval,
+ pub ru_stime: timeval,
+ pub ru_maxrss: c_long,
+ pub ru_ixrss: c_long,
+ pub ru_idrss: c_long,
+ pub ru_isrss: c_long,
+ pub ru_minflt: c_long,
+ pub ru_majflt: c_long,
+ pub ru_nswap: c_long,
+ pub ru_inblock: c_long,
+ pub ru_oublock: c_long,
+ pub ru_msgsnd: c_long,
+ pub ru_msgrcv: c_long,
+ pub ru_nsignals: c_long,
+ pub ru_nvcsw: c_long,
+ pub ru_nivcsw: c_long
+ }
}
+
pub mod bsd44 {
use types::common::c95::{c_void};
use types::os::arch::c95::{c_char, c_int, c_uint};
use types::os::arch::c99::{uintptr_t};
pub type pthread_t = uintptr_t;
+ pub type rlim_t = u64;
#[repr(C)]
#[derive(Copy)] pub struct glob_t {
#[derive(Copy)] pub enum timezone {}
pub type sighandler_t = size_t;
+
+ #[repr(C)]
+ #[derive(Copy)]
+ pub struct rlimit {
+ pub rlim_cur: rlim_t,
+ pub rlim_max: rlim_t,
+ }
+ }
+
+ pub mod bsd43 {
+ use types::os::common::posix01::timeval;
+ use types::os::arch::c95::c_long;
+ #[repr(C)]
+ #[derive(Copy)]
+ pub struct rusage {
+ pub ru_utime: timeval,
+ pub ru_stime: timeval,
+ pub ru_maxrss: c_long,
+ pub ru_ixrss: c_long,
+ pub ru_idrss: c_long,
+ pub ru_isrss: c_long,
+ pub ru_minflt: c_long,
+ pub ru_majflt: c_long,
+ pub ru_nswap: c_long,
+ pub ru_inblock: c_long,
+ pub ru_oublock: c_long,
+ pub ru_msgsnd: c_long,
+ pub ru_msgrcv: c_long,
+ pub ru_nsignals: c_long,
+ pub ru_nvcsw: c_long,
+ pub ru_nivcsw: c_long
+ }
}
pub mod bsd44 {
#[cfg(not(target_os = "nacl"))]
pub mod posix01 {
use types::os::arch::c95::{c_int, size_t};
+ use types::os::common::posix01::rlim_t;
pub const F_DUPFD : c_int = 0;
pub const F_GETFD : c_int = 1;
pub const CLOCK_REALTIME: c_int = 0;
pub const CLOCK_MONOTONIC: c_int = 1;
+
+ pub const RLIMIT_CPU: c_int = 0;
+ pub const RLIMIT_FSIZE: c_int = 1;
+ pub const RLIMIT_DATA: c_int = 2;
+ pub const RLIMIT_STACK: c_int = 3;
+ pub const RLIMIT_CORE: c_int = 4;
+ pub const RLIMIT_RSS: c_int = 5;
+ pub const RLIMIT_NOFILE: c_int = 7;
+ pub const RLIMIT_AS: c_int = 9;
+ pub const RLIMIT_NPROC: c_int = 6;
+ pub const RLIMIT_MEMLOCK: c_int = 8;
+ pub const RLIMIT_LOCKS: c_int = 10;
+ pub const RLIMIT_SIGPENDING: c_int = 11;
+ pub const RLIMIT_MSGQUEUE: c_int = 12;
+ pub const RLIMIT_NICE: c_int = 13;
+ pub const RLIMIT_RTPRIO: c_int = 14;
+ pub const RLIMIT_RTTIME: c_int = 15;
+ pub const RLIMIT_NLIMITS: c_int = 16;
+ pub const RLIM_INFINITY: rlim_t = 0xffff_ffff_ffff_ffff;
+ pub const RLIM_SAVED_MAX: rlim_t = RLIM_INFINITY;
+ pub const RLIM_SAVED_CUR: rlim_t = RLIM_INFINITY;
+
+ pub const RUSAGE_SELF: c_int = 0;
+ pub const RUSAGE_CHILDREN: c_int = -1;
+ pub const RUSAGE_THREAD: c_int = 1;
}
#[cfg(target_os = "nacl")]
pub mod posix01 {
use types::os::arch::c95::{c_int, size_t};
+ use types::os::common::posix01::rlim_t;
pub const F_DUPFD : c_int = 0;
pub const F_GETFD : c_int = 1;
pub const CLOCK_REALTIME: c_int = 0;
pub const CLOCK_MONOTONIC: c_int = 1;
+
+ pub const RLIMIT_CPU: c_int = 0;
+ pub const RLIMIT_FSIZE: c_int = 1;
+ pub const RLIMIT_DATA: c_int = 2;
+ pub const RLIMIT_STACK: c_int = 3;
+ pub const RLIMIT_CORE: c_int = 4;
+ pub const RLIMIT_RSS: c_int = 5;
+ pub const RLIMIT_NOFILE: c_int = 7;
+ pub const RLIMIT_AS: c_int = 9;
+ pub const RLIMIT_NPROC: c_int = 6;
+ pub const RLIMIT_MEMLOCK: c_int = 8;
+ pub const RLIMIT_LOCKS: c_int = 10;
+ pub const RLIMIT_SIGPENDING: c_int = 11;
+ pub const RLIMIT_MSGQUEUE: c_int = 12;
+ pub const RLIMIT_NICE: c_int = 13;
+ pub const RLIMIT_RTPRIO: c_int = 14;
+ pub const RLIMIT_RTTIME: c_int = 15;
+ pub const RLIMIT_NLIMITS: c_int = 16;
+
+ pub const RLIM_INFINITY: rlim_t = 0xffff_ffff_ffff_ffff;
+ pub const RLIM_SAVED_MAX: rlim_t = RLIM_INFINITY;
+ pub const RLIM_SAVED_CUR: rlim_t = RLIM_INFINITY;
+
+ pub const RUSAGE_SELF: c_int = 0;
+ pub const RUSAGE_CHILDREN: c_int = -1;
+ pub const RUSAGE_THREAD: c_int = 1;
}
pub mod posix08 {
}
}
pub mod posix01 {
use types::os::arch::c95::{c_int, size_t};
+ use types::os::common::posix01::rlim_t;
pub const F_DUPFD : c_int = 0;
pub const F_GETFD : c_int = 1;
pub const CLOCK_REALTIME: c_int = 0;
pub const CLOCK_MONOTONIC: c_int = 4;
+
+ pub const RLIMIT_CPU: c_int = 0;
+ pub const RLIMIT_FSIZE: c_int = 1;
+ pub const RLIMIT_DATA: c_int = 2;
+ pub const RLIMIT_STACK: c_int = 3;
+ pub const RLIMIT_CORE: c_int = 4;
+ pub const RLIMIT_RSS: c_int = 5;
+ pub const RLIMIT_MEMLOCK: c_int = 6;
+ pub const RLIMIT_NPROC: c_int = 7;
+ pub const RLIMIT_NOFILE: c_int = 8;
+ pub const RLIMIT_SBSIZE: c_int = 9;
+ pub const RLIMIT_VMEM: c_int = 10;
+ pub const RLIMIT_AS: c_int = RLIMIT_VMEM;
+ pub const RLIMIT_NPTS: c_int = 11;
+ pub const RLIMIT_SWAP: c_int = 12;
+ pub const RLIMIT_KQUEUES: c_int = 13;
+
+ pub const RLIM_NLIMITS: rlim_t = 14;
+ pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff;
+
+ pub const RUSAGE_SELF: c_int = 0;
+ pub const RUSAGE_CHILDREN: c_int = -1;
+ pub const RUSAGE_THREAD: c_int = 1;
}
pub mod posix08 {
}
}
pub mod posix01 {
use types::os::arch::c95::{c_int, size_t};
+ use types::os::common::posix01::rlim_t;
pub const F_DUPFD : c_int = 0;
pub const F_GETFD : c_int = 1;
pub const CLOCK_REALTIME : c_int = 0;
pub const CLOCK_MONOTONIC : c_int = 3;
+
+ pub const RLIMIT_CPU: c_int = 0;
+ pub const RLIMIT_FSIZE: c_int = 1;
+ pub const RLIMIT_DATA: c_int = 2;
+ pub const RLIMIT_STACK: c_int = 3;
+ pub const RLIMIT_CORE: c_int = 4;
+ pub const RLIMIT_RSS: c_int = 5;
+ pub const RLIMIT_MEMLOCK: c_int = 6;
+ pub const RLIMIT_NPROC: c_int = 7;
+ pub const RLIMIT_NOFILE: c_int = 8;
+ pub const RLIM_NLIMITS: c_int = 9;
+
+ pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff;
+ pub const RLIM_SAVED_MAX: rlim_t = RLIM_INFINITY;
+ pub const RLIM_SAVED_CUR: rlim_t = RLIM_INFINITY;
+
+ pub const RUSAGE_SELF: c_int = 0;
+ pub const RUSAGE_CHILDREN: c_int = -1;
+ pub const RUSAGE_THREAD: c_int = 1;
}
pub mod posix08 {
}
}
pub mod posix01 {
use types::os::arch::c95::{c_int, size_t};
+ use types::os::common::posix01::rlim_t;
pub const F_DUPFD : c_int = 0;
pub const F_GETFD : c_int = 1;
pub const PTHREAD_CREATE_JOINABLE: c_int = 1;
pub const PTHREAD_CREATE_DETACHED: c_int = 2;
pub const PTHREAD_STACK_MIN: size_t = 8192;
+
+ pub const RLIMIT_CPU: c_int = 0;
+ pub const RLIMIT_FSIZE: c_int = 1;
+ pub const RLIMIT_DATA: c_int = 2;
+ pub const RLIMIT_STACK: c_int = 3;
+ pub const RLIMIT_CORE: c_int = 4;
+ pub const RLIMIT_AS: c_int = 5;
+ pub const RLIMIT_MEMLOCK: c_int = 6;
+ pub const RLIMIT_NPROC: c_int = 7;
+ pub const RLIMIT_NOFILE: c_int = 8;
+ pub const RLIM_NLIMITS: c_int = 9;
+ pub const _RLIMIT_POSIX_FLAG: c_int = 0x1000;
+
+ pub const RLIM_INFINITY: rlim_t = 0xffff_ffff_ffff_ffff;
+
+ pub const RUSAGE_SELF: c_int = 0;
+ pub const RUSAGE_CHILDREN: c_int = -1;
+ pub const RUSAGE_THREAD: c_int = 1;
}
pub mod posix08 {
}
-> c_int;
}
}
+
+ pub mod resource {
+ use types::os::arch::c95::c_int;
+ use types::os::common::posix01::rlimit;
+ use types::os::common::bsd43::rusage;
+ extern {
+ pub fn getrlimit(resource: c_int, rlim: *mut rlimit) -> c_int;
+ pub fn setrlimit(resource: c_int, rlim: *const rlimit) -> c_int;
+ pub fn getrusage(resource: c_int, usage: *mut rusage) -> c_int;
+
+ }
+ }
}
#[cfg(target_os = "windows")]