aboutsummaryrefslogtreecommitdiff
path: root/vendor/libc/src/unix/haiku
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/libc/src/unix/haiku')
-rw-r--r--vendor/libc/src/unix/haiku/b32.rs20
-rw-r--r--vendor/libc/src/unix/haiku/b64.rs20
-rw-r--r--vendor/libc/src/unix/haiku/mod.rs2105
-rw-r--r--vendor/libc/src/unix/haiku/native.rs1488
-rw-r--r--vendor/libc/src/unix/haiku/x86_64.rs264
5 files changed, 0 insertions, 3897 deletions
diff --git a/vendor/libc/src/unix/haiku/b32.rs b/vendor/libc/src/unix/haiku/b32.rs
deleted file mode 100644
index 073ae9d..0000000
--- a/vendor/libc/src/unix/haiku/b32.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-pub type c_long = i32;
-pub type c_ulong = u32;
-pub type time_t = i32;
-
-pub type Elf_Addr = ::Elf32_Addr;
-pub type Elf_Half = ::Elf32_Half;
-pub type Elf_Phdr = ::Elf32_Phdr;
-
-s! {
- pub struct Elf32_Phdr {
- pub p_type: ::Elf32_Word,
- pub p_offset: ::Elf32_Off,
- pub p_vaddr: ::Elf32_Addr,
- pub p_paddr: ::Elf32_Addr,
- pub p_filesz: ::Elf32_Word,
- pub p_memsz: ::Elf32_Word,
- pub p_flags: ::Elf32_Word,
- pub p_align: ::Elf32_Word,
- }
-}
diff --git a/vendor/libc/src/unix/haiku/b64.rs b/vendor/libc/src/unix/haiku/b64.rs
deleted file mode 100644
index 4569180..0000000
--- a/vendor/libc/src/unix/haiku/b64.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-pub type c_ulong = u64;
-pub type c_long = i64;
-pub type time_t = i64;
-
-pub type Elf_Addr = ::Elf64_Addr;
-pub type Elf_Half = ::Elf64_Half;
-pub type Elf_Phdr = ::Elf64_Phdr;
-
-s! {
- pub struct Elf64_Phdr {
- pub p_type: ::Elf64_Word,
- pub p_flags: ::Elf64_Word,
- pub p_offset: ::Elf64_Off,
- pub p_vaddr: ::Elf64_Addr,
- pub p_paddr: ::Elf64_Addr,
- pub p_filesz: ::Elf64_Xword,
- pub p_memsz: ::Elf64_Xword,
- pub p_align: ::Elf64_Xword,
- }
-}
diff --git a/vendor/libc/src/unix/haiku/mod.rs b/vendor/libc/src/unix/haiku/mod.rs
deleted file mode 100644
index e7b0f34..0000000
--- a/vendor/libc/src/unix/haiku/mod.rs
+++ /dev/null
@@ -1,2105 +0,0 @@
-pub type rlim_t = ::uintptr_t;
-pub type sa_family_t = u8;
-pub type pthread_key_t = ::c_int;
-pub type nfds_t = ::c_ulong;
-pub type tcflag_t = ::c_uint;
-pub type speed_t = ::c_uchar;
-pub type c_char = i8;
-pub type clock_t = i32;
-pub type clockid_t = i32;
-pub type suseconds_t = i32;
-pub type wchar_t = i32;
-pub type off_t = i64;
-pub type ino_t = i64;
-pub type blkcnt_t = i64;
-pub type blksize_t = i32;
-pub type dev_t = i32;
-pub type mode_t = u32;
-pub type nlink_t = i32;
-pub type useconds_t = u32;
-pub type socklen_t = u32;
-pub type pthread_t = ::uintptr_t;
-pub type pthread_condattr_t = ::uintptr_t;
-pub type pthread_mutexattr_t = ::uintptr_t;
-pub type pthread_rwlockattr_t = ::uintptr_t;
-pub type sigset_t = u64;
-pub type fsblkcnt_t = i64;
-pub type fsfilcnt_t = i64;
-pub type pthread_attr_t = *mut ::c_void;
-pub type nl_item = ::c_int;
-pub type id_t = i32;
-pub type idtype_t = ::c_int;
-pub type fd_mask = u32;
-pub type regoff_t = ::c_int;
-pub type key_t = i32;
-pub type msgqnum_t = u32;
-pub type msglen_t = u32;
-
-pub type Elf32_Addr = u32;
-pub type Elf32_Half = u16;
-pub type Elf32_Off = u32;
-pub type Elf32_Sword = i32;
-pub type Elf32_Word = u32;
-
-pub type Elf64_Addr = u64;
-pub type Elf64_Half = u16;
-pub type Elf64_Off = u64;
-pub type Elf64_Sword = i32;
-pub type Elf64_Sxword = i64;
-pub type Elf64_Word = u32;
-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;
-
-pub type StringList = _stringlist;
-
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
-pub enum timezone {}
-impl ::Copy for timezone {}
-impl ::Clone for timezone {
- fn clone(&self) -> timezone {
- *self
- }
-}
-
-impl siginfo_t {
- pub unsafe fn si_addr(&self) -> *mut ::c_void {
- self.si_addr
- }
-
- pub unsafe fn si_pid(&self) -> ::pid_t {
- self.si_pid
- }
-
- pub unsafe fn si_uid(&self) -> ::uid_t {
- self.si_uid
- }
-
- pub unsafe fn si_status(&self) -> ::c_int {
- self.si_status
- }
-}
-
-s! {
- pub struct in_addr {
- pub s_addr: ::in_addr_t,
- }
-
- pub struct ip_mreq {
- pub imr_multiaddr: in_addr,
- pub imr_interface: in_addr,
- }
-
- pub struct sockaddr {
- pub sa_len: u8,
- pub sa_family: sa_family_t,
- pub sa_data: [u8; 30],
- }
-
- pub struct sockaddr_in {
- pub sin_len: u8,
- pub sin_family: sa_family_t,
- pub sin_port: ::in_port_t,
- pub sin_addr: ::in_addr,
- pub sin_zero: [i8; 24],
- }
-
- pub struct sockaddr_in6 {
- pub sin6_len: u8,
- pub sin6_family: u8,
- pub sin6_port: u16,
- pub sin6_flowinfo: u32,
- pub sin6_addr: ::in6_addr,
- pub sin6_scope_id: u32,
- }
-
- pub struct addrinfo {
- pub ai_flags: ::c_int,
- pub ai_family: ::c_int,
- pub ai_socktype: ::c_int,
- pub ai_protocol: ::c_int,
- pub ai_addrlen: socklen_t,
- pub ai_canonname: *mut c_char,
- pub ai_addr: *mut ::sockaddr,
- pub ai_next: *mut addrinfo,
- }
-
- pub struct ifaddrs {
- pub ifa_next: *mut ifaddrs,
- pub ifa_name: *const ::c_char,
- pub ifa_flags: ::c_uint,
- pub ifa_addr: *mut ::sockaddr,
- pub ifa_netmask: *mut ::sockaddr,
- pub ifa_dstaddr: *mut ::sockaddr,
- pub ifa_data: *mut ::c_void,
- }
-
- pub struct fd_set {
- // size for 1024 bits, and a fd_mask with size u32
- fds_bits: [fd_mask; 32],
- }
-
- pub struct tm {
- pub tm_sec: ::c_int,
- pub tm_min: ::c_int,
- pub tm_hour: ::c_int,
- pub tm_mday: ::c_int,
- pub tm_mon: ::c_int,
- pub tm_year: ::c_int,
- pub tm_wday: ::c_int,
- pub tm_yday: ::c_int,
- pub tm_isdst: ::c_int,
- pub tm_gmtoff: ::c_int,
- pub tm_zone: *mut ::c_char,
- }
-
- pub struct utsname {
- pub sysname: [::c_char; 32],
- pub nodename: [::c_char; 32],
- pub release: [::c_char; 32],
- pub version: [::c_char; 32],
- pub machine: [::c_char; 32],
- }
-
- pub struct lconv {
- pub decimal_point: *mut ::c_char,
- pub thousands_sep: *mut ::c_char,
- pub grouping: *mut ::c_char,
- pub int_curr_symbol: *mut ::c_char,
- pub currency_symbol: *mut ::c_char,
- pub mon_decimal_point: *mut ::c_char,
- pub mon_thousands_sep: *mut ::c_char,
- pub mon_grouping: *mut ::c_char,
- pub positive_sign: *mut ::c_char,
- pub negative_sign: *mut ::c_char,
- pub int_frac_digits: ::c_char,
- pub frac_digits: ::c_char,
- pub p_cs_precedes: ::c_char,
- pub p_sep_by_space: ::c_char,
- pub n_cs_precedes: ::c_char,
- pub n_sep_by_space: ::c_char,
- pub p_sign_posn: ::c_char,
- pub n_sign_posn: ::c_char,
- pub int_p_cs_precedes: ::c_char,
- pub int_p_sep_by_space: ::c_char,
- pub int_n_cs_precedes: ::c_char,
- pub int_n_sep_by_space: ::c_char,
- pub int_p_sign_posn: ::c_char,
- pub int_n_sign_posn: ::c_char,
- }
-
- pub struct msghdr {
- pub msg_name: *mut ::c_void,
- pub msg_namelen: socklen_t,
- pub msg_iov: *mut ::iovec,
- pub msg_iovlen: ::c_int,
- pub msg_control: *mut ::c_void,
- pub msg_controllen: socklen_t,
- pub msg_flags: ::c_int,
- }
-
- pub struct cmsghdr {
- pub cmsg_len: ::socklen_t,
- pub cmsg_level: ::c_int,
- pub cmsg_type: ::c_int,
- }
-
- pub struct Dl_info {
- pub dli_fname: *const ::c_char,
- pub dli_fbase: *mut ::c_void,
- pub dli_sname: *const ::c_char,
- pub dli_saddr: *mut ::c_void,
- }
-
- pub struct termios {
- pub c_iflag: ::tcflag_t,
- pub c_oflag: ::tcflag_t,
- pub c_cflag: ::tcflag_t,
- pub c_lflag: ::tcflag_t,
- pub c_line: ::c_char,
- pub c_ispeed: ::speed_t,
- pub c_ospeed: ::speed_t,
- pub c_cc: [::cc_t; ::NCCS],
- }
-
- pub struct flock {
- pub l_type: ::c_short,
- pub l_whence: ::c_short,
- pub l_start: ::off_t,
- pub l_len: ::off_t,
- pub l_pid: ::pid_t,
- }
-
- pub struct stat {
- pub st_dev: dev_t,
- pub st_ino: ino_t,
- pub st_mode: mode_t,
- pub st_nlink: nlink_t,
- pub st_uid: ::uid_t,
- pub st_gid: ::gid_t,
- pub st_size: off_t,
- pub st_rdev: dev_t,
- pub st_blksize: blksize_t,
- 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,
- pub st_crtime: time_t,
- pub st_crtime_nsec: c_long,
- pub st_type: u32,
- pub st_blocks: blkcnt_t,
- }
-
- pub struct glob_t {
- pub gl_pathc: ::size_t,
- __unused1: ::size_t,
- pub gl_offs: ::size_t,
- __unused2: ::size_t,
- pub gl_pathv: *mut *mut c_char,
-
- __unused3: *mut ::c_void,
- __unused4: *mut ::c_void,
- __unused5: *mut ::c_void,
- __unused6: *mut ::c_void,
- __unused7: *mut ::c_void,
- __unused8: *mut ::c_void,
- }
-
- pub struct pthread_mutex_t {
- flags: u32,
- lock: i32,
- unused: i32,
- owner: i32,
- owner_count: i32,
- }
-
- pub struct pthread_cond_t {
- flags: u32,
- unused: i32,
- mutex: *mut ::c_void,
- waiter_count: i32,
- lock: i32,
- }
-
- pub struct pthread_rwlock_t {
- flags: u32,
- owner: i32,
- lock_sem: i32, // this is actually a union
- lock_count: i32,
- reader_count: i32,
- writer_count: i32,
- waiters: [*mut ::c_void; 2],
- }
-
- pub struct pthread_spinlock_t {
- lock: u32,
- }
-
- pub struct passwd {
- pub pw_name: *mut ::c_char,
- pub pw_passwd: *mut ::c_char,
- pub pw_uid: ::uid_t,
- pub pw_gid: ::gid_t,
- pub pw_dir: *mut ::c_char,
- pub pw_shell: *mut ::c_char,
- pub pw_gecos: *mut ::c_char,
- }
-
- pub struct statvfs {
- pub f_bsize: ::c_ulong,
- pub f_frsize: ::c_ulong,
- pub f_blocks: ::fsblkcnt_t,
- pub f_bfree: ::fsblkcnt_t,
- pub f_bavail: ::fsblkcnt_t,
- pub f_files: ::fsfilcnt_t,
- pub f_ffree: ::fsfilcnt_t,
- pub f_favail: ::fsfilcnt_t,
- pub f_fsid: ::c_ulong,
- pub f_flag: ::c_ulong,
- pub f_namemax: ::c_ulong,
- }
-
- pub struct stack_t {
- pub ss_sp: *mut ::c_void,
- pub ss_size: ::size_t,
- pub ss_flags: ::c_int,
- }
-
- pub struct siginfo_t {
- pub si_signo: ::c_int,
- pub si_code: ::c_int,
- pub si_errno: ::c_int,
- pub si_pid: ::pid_t,
- pub si_uid: ::uid_t,
- pub si_addr: *mut ::c_void,
- pub si_status: ::c_int,
- pub si_band: c_long,
- pub sigval: *mut ::c_void,
- }
-
- pub struct sigaction {
- pub sa_sigaction: ::sighandler_t, //actually a union with sa_handler
- pub sa_mask: ::sigset_t,
- pub sa_flags: ::c_int,
- sa_userdata: *mut ::c_void,
- }
-
- pub struct sem_t {
- pub type_: i32,
- pub named_sem_id: i32, // actually a union with unnamed_sem (i32)
- pub padding: [i32; 2],
- }
-
- pub struct ucred {
- pub pid: ::pid_t,
- pub uid: ::uid_t,
- pub gid: ::gid_t,
- }
-
- pub struct sockaddr_dl {
- pub sdl_len: u8,
- pub sdl_family: u8,
- pub sdl_e_type: u16,
- pub sdl_index: u32,
- pub sdl_type: u8,
- pub sdl_nlen: u8,
- pub sdl_alen: u8,
- pub sdl_slen: u8,
- pub sdl_data: [u8; 46],
- }
-
- pub struct spwd {
- pub sp_namp: *mut ::c_char,
- pub sp_pwdp: *mut ::c_char,
- pub sp_lstchg: ::c_int,
- pub sp_min: ::c_int,
- pub sp_max: ::c_int,
- pub sp_warn: ::c_int,
- pub sp_inact: ::c_int,
- pub sp_expire: ::c_int,
- pub sp_flag: ::c_int,
- }
-
- pub struct regex_t {
- __buffer: *mut ::c_void,
- __allocated: ::size_t,
- __used: ::size_t,
- __syntax: ::c_ulong,
- __fastmap: *mut ::c_char,
- __translate: *mut ::c_char,
- __re_nsub: ::size_t,
- __bitfield: u8,
- }
-
- pub struct regmatch_t {
- pub rm_so: regoff_t,
- pub rm_eo: regoff_t,
- }
-
- pub struct msqid_ds {
- pub msg_perm: ::ipc_perm,
- pub msg_qnum: ::msgqnum_t,
- pub msg_qbytes: ::msglen_t,
- pub msg_lspid: ::pid_t,
- pub msg_lrpid: ::pid_t,
- pub msg_stime: ::time_t,
- pub msg_rtime: ::time_t,
- pub msg_ctime: ::time_t,
- }
-
- pub struct ipc_perm {
- pub key: ::key_t,
- pub uid: ::uid_t,
- pub gid: ::gid_t,
- pub cuid: ::uid_t,
- pub cgid: ::gid_t,
- pub mode: ::mode_t,
- }
-
- pub struct sembuf {
- pub sem_num: ::c_ushort,
- pub sem_op: ::c_short,
- pub sem_flg: ::c_short,
- }
-
- pub struct entry {
- pub key: *mut ::c_char,
- pub data: *mut ::c_void,
- }
-
- pub struct option {
- pub name: *const ::c_char,
- pub has_arg: ::c_int,
- pub flag: *mut ::c_int,
- pub val: ::c_int,
- }
-
- pub struct _stringlist {
- pub sl_str: *mut *mut ::c_char,
- pub sl_max: ::size_t,
- pub sl_cur: ::size_t,
- }
-
- pub struct dl_phdr_info {
- pub dlpi_addr: ::Elf_Addr,
- pub dlpi_name: *const ::c_char,
- pub dlpi_phdr: *const ::Elf_Phdr,
- pub dlpi_phnum: ::Elf_Half,
- }
-}
-
-s_no_extra_traits! {
- pub struct sockaddr_un {
- pub sun_len: u8,
- pub sun_family: sa_family_t,
- pub sun_path: [::c_char; 126]
- }
- pub struct sockaddr_storage {
- pub ss_len: u8,
- pub ss_family: sa_family_t,
- __ss_pad1: [u8; 6],
- __ss_pad2: u64,
- __ss_pad3: [u8; 112],
- }
- pub struct dirent {
- pub d_dev: dev_t,
- pub d_pdev: dev_t,
- pub d_ino: ino_t,
- pub d_pino: i64,
- pub d_reclen: ::c_ushort,
- pub d_name: [::c_char; 1024], // Max length is _POSIX_PATH_MAX
- }
-
- pub struct sigevent {
- pub sigev_notify: ::c_int,
- pub sigev_signo: ::c_int,
- pub sigev_value: ::sigval,
- __unused1: *mut ::c_void, // actually a function pointer
- pub sigev_notify_attributes: *mut ::pthread_attr_t,
- }
-
- pub struct utmpx {
- pub ut_type: ::c_short,
- pub ut_tv: ::timeval,
- pub ut_id: [::c_char; 8],
- pub ut_pid: ::pid_t,
- pub ut_user: [::c_char; 32],
- pub ut_line: [::c_char; 16],
- pub ut_host: [::c_char; 128],
- __ut_reserved: [::c_char; 64],
- }
-}
-
-cfg_if! {
- if #[cfg(feature = "extra_traits")] {
- impl PartialEq for utmpx {
- fn eq(&self, other: &utmpx) -> bool {
- self.ut_type == other.ut_type
- && self.ut_tv == other.ut_tv
- && self.ut_id == other.ut_id
- && self.ut_pid == other.ut_pid
- && self.ut_user == other.ut_user
- && self.ut_line == other.ut_line
- && self.ut_host.iter().zip(other.ut_host.iter()).all(|(a,b)| a == b)
- && self.__ut_reserved == other.__ut_reserved
- }
- }
-
- impl Eq for utmpx {}
-
- impl ::fmt::Debug for utmpx {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- f.debug_struct("utmpx")
- .field("ut_type", &self.ut_type)
- .field("ut_tv", &self.ut_tv)
- .field("ut_id", &self.ut_id)
- .field("ut_pid", &self.ut_pid)
- .field("ut_user", &self.ut_user)
- .field("ut_line", &self.ut_line)
- .field("ut_host", &self.ut_host)
- .field("__ut_reserved", &self.__ut_reserved)
- .finish()
- }
- }
-
- impl ::hash::Hash for utmpx {
- fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
- self.ut_type.hash(state);
- self.ut_tv.hash(state);
- self.ut_id.hash(state);
- self.ut_pid.hash(state);
- self.ut_user.hash(state);
- self.ut_line.hash(state);
- self.ut_host.hash(state);
- self.__ut_reserved.hash(state);
- }
- }
- impl PartialEq for sockaddr_un {
- fn eq(&self, other: &sockaddr_un) -> bool {
- self.sun_len == other.sun_len
- && self.sun_family == other.sun_family
- && self
- .sun_path
- .iter()
- .zip(other.sun_path.iter())
- .all(|(a,b)| a == b)
- }
- }
- impl Eq for sockaddr_un {}
- impl ::fmt::Debug for sockaddr_un {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- f.debug_struct("sockaddr_un")
- .field("sun_len", &self.sun_len)
- .field("sun_family", &self.sun_family)
- // FIXME: .field("sun_path", &self.sun_path)
- .finish()
- }
- }
- impl ::hash::Hash for sockaddr_un {
- fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
- self.sun_len.hash(state);
- self.sun_family.hash(state);
- self.sun_path.hash(state);
- }
- }
-
- impl PartialEq for sockaddr_storage {
- fn eq(&self, other: &sockaddr_storage) -> bool {
- self.ss_len == other.ss_len
- && self.ss_family == other.ss_family
- && self
- .__ss_pad1
- .iter()
- .zip(other.__ss_pad1.iter())
- .all(|(a, b)| a == b)
- && self.__ss_pad2 == other.__ss_pad2
- && self
- .__ss_pad3
- .iter()
- .zip(other.__ss_pad3.iter())
- .all(|(a, b)| a == b)
- }
- }
- impl Eq for sockaddr_storage {}
- impl ::fmt::Debug for sockaddr_storage {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- f.debug_struct("sockaddr_storage")
- .field("ss_len", &self.ss_len)
- .field("ss_family", &self.ss_family)
- .field("__ss_pad1", &self.__ss_pad1)
- .field("__ss_pad2", &self.__ss_pad2)
- // FIXME: .field("__ss_pad3", &self.__ss_pad3)
- .finish()
- }
- }
- impl ::hash::Hash for sockaddr_storage {
- fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
- self.ss_len.hash(state);
- self.ss_family.hash(state);
- self.__ss_pad1.hash(state);
- self.__ss_pad2.hash(state);
- self.__ss_pad3.hash(state);
- }
- }
-
- impl PartialEq for dirent {
- fn eq(&self, other: &dirent) -> bool {
- self.d_dev == other.d_dev
- && self.d_pdev == other.d_pdev
- && self.d_ino == other.d_ino
- && self.d_pino == other.d_pino
- && self.d_reclen == other.d_reclen
- && self
- .d_name
- .iter()
- .zip(other.d_name.iter())
- .all(|(a,b)| a == b)
- }
- }
- impl Eq for dirent {}
- impl ::fmt::Debug for dirent {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- f.debug_struct("dirent")
- .field("d_dev", &self.d_dev)
- .field("d_pdev", &self.d_pdev)
- .field("d_ino", &self.d_ino)
- .field("d_pino", &self.d_pino)
- .field("d_reclen", &self.d_reclen)
- // FIXME: .field("d_name", &self.d_name)
- .finish()
- }
- }
- impl ::hash::Hash for dirent {
- fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
- self.d_dev.hash(state);
- self.d_pdev.hash(state);
- self.d_ino.hash(state);
- self.d_pino.hash(state);
- self.d_reclen.hash(state);
- self.d_name.hash(state);
- }
- }
-
- impl PartialEq for sigevent {
- fn eq(&self, other: &sigevent) -> bool {
- self.sigev_notify == other.sigev_notify
- && self.sigev_signo == other.sigev_signo
- && self.sigev_value == other.sigev_value
- && self.sigev_notify_attributes
- == other.sigev_notify_attributes
- }
- }
- impl Eq for sigevent {}
- impl ::fmt::Debug for sigevent {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- f.debug_struct("sigevent")
- .field("sigev_notify", &self.sigev_notify)
- .field("sigev_signo", &self.sigev_signo)
- .field("sigev_value", &self.sigev_value)
- .field("sigev_notify_attributes",
- &self.sigev_notify_attributes)
- .finish()
- }
- }
- impl ::hash::Hash for sigevent {
- fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
- self.sigev_notify.hash(state);
- self.sigev_signo.hash(state);
- self.sigev_value.hash(state);
- self.sigev_notify_attributes.hash(state);
- }
- }
- }
-}
-
-pub const EXIT_FAILURE: ::c_int = 1;
-pub const EXIT_SUCCESS: ::c_int = 0;
-pub const RAND_MAX: ::c_int = 2147483647;
-pub const EOF: ::c_int = -1;
-pub const SEEK_SET: ::c_int = 0;
-pub const SEEK_CUR: ::c_int = 1;
-pub const SEEK_END: ::c_int = 2;
-pub const L_SET: ::c_int = SEEK_SET;
-pub const L_INCR: ::c_int = SEEK_CUR;
-pub const L_XTND: ::c_int = SEEK_END;
-pub const _IOFBF: ::c_int = 0;
-pub const _IONBF: ::c_int = 2;
-pub const _IOLBF: ::c_int = 1;
-
-pub const F_DUPFD: ::c_int = 0x0001;
-pub const F_GETFD: ::c_int = 0x0002;
-pub const F_SETFD: ::c_int = 0x0004;
-pub const F_GETFL: ::c_int = 0x0008;
-pub const F_SETFL: ::c_int = 0x0010;
-pub const F_GETLK: ::c_int = 0x0020;
-pub const F_SETLK: ::c_int = 0x0080;
-pub const F_SETLKW: ::c_int = 0x0100;
-pub const F_DUPFD_CLOEXEC: ::c_int = 0x0200;
-
-pub const F_RDLCK: ::c_int = 0x0040;
-pub const F_UNLCK: ::c_int = 0x0200;
-pub const F_WRLCK: ::c_int = 0x0400;
-
-pub const AT_FDCWD: ::c_int = -1;
-pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x01;
-pub const AT_SYMLINK_FOLLOW: ::c_int = 0x02;
-pub const AT_REMOVEDIR: ::c_int = 0x04;
-pub const AT_EACCESS: ::c_int = 0x08;
-
-pub const POLLIN: ::c_short = 0x0001;
-pub const POLLOUT: ::c_short = 0x0002;
-pub const POLLRDNORM: ::c_short = POLLIN;
-pub const POLLWRNORM: ::c_short = POLLOUT;
-pub const POLLRDBAND: ::c_short = 0x0008;
-pub const POLLWRBAND: ::c_short = 0x0010;
-pub const POLLPRI: ::c_short = 0x0020;
-pub const POLLERR: ::c_short = 0x0004;
-pub const POLLHUP: ::c_short = 0x0080;
-pub const POLLNVAL: ::c_short = 0x1000;
-
-pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0;
-pub const PTHREAD_CREATE_DETACHED: ::c_int = 1;
-
-pub const CLOCK_REALTIME: ::c_int = -1;
-pub const CLOCK_MONOTONIC: ::c_int = 0;
-pub const CLOCK_PROCESS_CPUTIME_ID: ::c_int = -2;
-pub const CLOCK_THREAD_CPUTIME_ID: ::c_int = -3;
-
-pub const RLIMIT_CORE: ::c_int = 0;
-pub const RLIMIT_CPU: ::c_int = 1;
-pub const RLIMIT_DATA: ::c_int = 2;
-pub const RLIMIT_FSIZE: ::c_int = 3;
-pub const RLIMIT_NOFILE: ::c_int = 4;
-pub const RLIMIT_STACK: ::c_int = 5;
-pub const RLIMIT_AS: ::c_int = 6;
-pub const RLIM_INFINITY: ::rlim_t = 0xffffffff;
-// Haiku specific
-pub const RLIMIT_NOVMON: ::c_int = 7;
-#[deprecated(since = "0.2.64", note = "Not stable across OS versions")]
-pub const RLIM_NLIMITS: ::c_int = 8;
-
-pub const RUSAGE_SELF: ::c_int = 0;
-
-pub const RTLD_LAZY: ::c_int = 0;
-
-pub const NCCS: usize = 11;
-
-pub const O_RDONLY: ::c_int = 0x0000;
-pub const O_WRONLY: ::c_int = 0x0001;
-pub const O_RDWR: ::c_int = 0x0002;
-pub const O_ACCMODE: ::c_int = 0x0003;
-
-pub const O_EXCL: ::c_int = 0x0100;
-pub const O_CREAT: ::c_int = 0x0200;
-pub const O_TRUNC: ::c_int = 0x0400;
-pub const O_NOCTTY: ::c_int = 0x1000;
-pub const O_NOTRAVERSE: ::c_int = 0x2000;
-
-pub const O_CLOEXEC: ::c_int = 0x00000040;
-pub const O_NONBLOCK: ::c_int = 0x00000080;
-pub const O_APPEND: ::c_int = 0x00000800;
-pub const O_SYNC: ::c_int = 0x00010000;
-pub const O_RSYNC: ::c_int = 0x00020000;
-pub const O_DSYNC: ::c_int = 0x00040000;
-pub const O_NOFOLLOW: ::c_int = 0x00080000;
-pub const O_NOCACHE: ::c_int = 0x00100000;
-pub const O_DIRECTORY: ::c_int = 0x00200000;
-
-pub const S_IFIFO: ::mode_t = 4096;
-pub const S_IFCHR: ::mode_t = 8192;
-pub const S_IFBLK: ::mode_t = 24576;
-pub const S_IFDIR: ::mode_t = 16384;
-pub const S_IFREG: ::mode_t = 32768;
-pub const S_IFLNK: ::mode_t = 40960;
-pub const S_IFSOCK: ::mode_t = 49152;
-pub const S_IFMT: ::mode_t = 61440;
-
-pub const S_IRWXU: ::mode_t = 0o00700;
-pub const S_IRUSR: ::mode_t = 0o00400;
-pub const S_IWUSR: ::mode_t = 0o00200;
-pub const S_IXUSR: ::mode_t = 0o00100;
-pub const S_IRWXG: ::mode_t = 0o00070;
-pub const S_IRGRP: ::mode_t = 0o00040;
-pub const S_IWGRP: ::mode_t = 0o00020;
-pub const S_IXGRP: ::mode_t = 0o00010;
-pub const S_IRWXO: ::mode_t = 0o00007;
-pub const S_IROTH: ::mode_t = 0o00004;
-pub const S_IWOTH: ::mode_t = 0o00002;
-pub const S_IXOTH: ::mode_t = 0o00001;
-
-pub const F_OK: ::c_int = 0;
-pub const R_OK: ::c_int = 4;
-pub const W_OK: ::c_int = 2;
-pub const X_OK: ::c_int = 1;
-pub const STDIN_FILENO: ::c_int = 0;
-pub const STDOUT_FILENO: ::c_int = 1;
-pub const STDERR_FILENO: ::c_int = 2;
-
-pub const SIGHUP: ::c_int = 1;
-pub const SIGINT: ::c_int = 2;
-pub const SIGQUIT: ::c_int = 3;
-pub const SIGILL: ::c_int = 4;
-pub const SIGCHLD: ::c_int = 5;
-pub const SIGABRT: ::c_int = 6;
-pub const SIGPIPE: ::c_int = 7;
-pub const SIGFPE: ::c_int = 8;
-pub const SIGKILL: ::c_int = 9;
-pub const SIGSTOP: ::c_int = 10;
-pub const SIGSEGV: ::c_int = 11;
-pub const SIGCONT: ::c_int = 12;
-pub const SIGTSTP: ::c_int = 13;
-pub const SIGALRM: ::c_int = 14;
-pub const SIGTERM: ::c_int = 15;
-pub const SIGTTIN: ::c_int = 16;
-pub const SIGTTOU: ::c_int = 17;
-pub const SIGUSR1: ::c_int = 18;
-pub const SIGUSR2: ::c_int = 19;
-pub const SIGWINCH: ::c_int = 20;
-pub const SIGKILLTHR: ::c_int = 21;
-pub const SIGTRAP: ::c_int = 22;
-pub const SIGPOLL: ::c_int = 23;
-pub const SIGPROF: ::c_int = 24;
-pub const SIGSYS: ::c_int = 25;
-pub const SIGURG: ::c_int = 26;
-pub const SIGVTALRM: ::c_int = 27;
-pub const SIGXCPU: ::c_int = 28;
-pub const SIGXFSZ: ::c_int = 29;
-pub const SIGBUS: ::c_int = 30;
-
-pub const SIG_BLOCK: ::c_int = 1;
-pub const SIG_UNBLOCK: ::c_int = 2;
-pub const SIG_SETMASK: ::c_int = 3;
-
-pub const SIGEV_NONE: ::c_int = 0;
-pub const SIGEV_SIGNAL: ::c_int = 1;
-pub const SIGEV_THREAD: ::c_int = 2;
-
-pub const EAI_AGAIN: ::c_int = 2;
-pub const EAI_BADFLAGS: ::c_int = 3;
-pub const EAI_FAIL: ::c_int = 4;
-pub const EAI_FAMILY: ::c_int = 5;
-pub const EAI_MEMORY: ::c_int = 6;
-pub const EAI_NODATA: ::c_int = 7;
-pub const EAI_NONAME: ::c_int = 8;
-pub const EAI_SERVICE: ::c_int = 9;
-pub const EAI_SOCKTYPE: ::c_int = 10;
-pub const EAI_SYSTEM: ::c_int = 11;
-pub const EAI_OVERFLOW: ::c_int = 14;
-
-pub const PROT_NONE: ::c_int = 0;
-pub const PROT_READ: ::c_int = 1;
-pub const PROT_WRITE: ::c_int = 2;
-pub const PROT_EXEC: ::c_int = 4;
-
-pub const LC_ALL: ::c_int = 0;
-pub const LC_COLLATE: ::c_int = 1;
-pub const LC_CTYPE: ::c_int = 2;
-pub const LC_MONETARY: ::c_int = 3;
-pub const LC_NUMERIC: ::c_int = 4;
-pub const LC_TIME: ::c_int = 5;
-pub const LC_MESSAGES: ::c_int = 6;
-
-// FIXME: Haiku does not have MAP_FILE, but library/std/os.rs requires it
-pub const MAP_FILE: ::c_int = 0x00;
-pub const MAP_SHARED: ::c_int = 0x01;
-pub const MAP_PRIVATE: ::c_int = 0x02;
-pub const MAP_FIXED: ::c_int = 0x04;
-pub const MAP_ANONYMOUS: ::c_int = 0x08;
-pub const MAP_NORESERVE: ::c_int = 0x10;
-pub const MAP_ANON: ::c_int = MAP_ANONYMOUS;
-
-pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void;
-
-pub const MS_ASYNC: ::c_int = 0x01;
-pub const MS_INVALIDATE: ::c_int = 0x04;
-pub const MS_SYNC: ::c_int = 0x02;
-
-pub const E2BIG: ::c_int = -2147454975;
-pub const ECHILD: ::c_int = -2147454974;
-pub const EDEADLK: ::c_int = -2147454973;
-pub const EFBIG: ::c_int = -2147454972;
-pub const EMLINK: ::c_int = -2147454971;
-pub const ENFILE: ::c_int = -2147454970;
-pub const ENODEV: ::c_int = -2147454969;
-pub const ENOLCK: ::c_int = -2147454968;
-pub const ENOSYS: ::c_int = -2147454967;
-pub const ENOTTY: ::c_int = -2147454966;
-pub const ENXIO: ::c_int = -2147454965;
-pub const ESPIPE: ::c_int = -2147454964;
-pub const ESRCH: ::c_int = -2147454963;
-pub const EFPOS: ::c_int = -2147454962;
-pub const ESIGPARM: ::c_int = -2147454961;
-pub const EDOM: ::c_int = -2147454960;
-pub const ERANGE: ::c_int = -2147454959;
-pub const EPROTOTYPE: ::c_int = -2147454958;
-pub const EPROTONOSUPPORT: ::c_int = -2147454957;
-pub const EPFNOSUPPORT: ::c_int = -2147454956;
-pub const EAFNOSUPPORT: ::c_int = -2147454955;
-pub const EADDRINUSE: ::c_int = -2147454954;
-pub const EADDRNOTAVAIL: ::c_int = -2147454953;
-pub const ENETDOWN: ::c_int = -2147454952;
-pub const ENETUNREACH: ::c_int = -2147454951;
-pub const ENETRESET: ::c_int = -2147454950;
-pub const ECONNABORTED: ::c_int = -2147454949;
-pub const ECONNRESET: ::c_int = -2147454948;
-pub const EISCONN: ::c_int = -2147454947;
-pub const ENOTCONN: ::c_int = -2147454946;
-pub const ESHUTDOWN: ::c_int = -2147454945;
-pub const ECONNREFUSED: ::c_int = -2147454944;
-pub const EHOSTUNREACH: ::c_int = -2147454943;
-pub const ENOPROTOOPT: ::c_int = -2147454942;
-pub const ENOBUFS: ::c_int = -2147454941;
-pub const EINPROGRESS: ::c_int = -2147454940;
-pub const EALREADY: ::c_int = -2147454939;
-pub const EILSEQ: ::c_int = -2147454938;
-pub const ENOMSG: ::c_int = -2147454937;
-pub const ESTALE: ::c_int = -2147454936;
-pub const EOVERFLOW: ::c_int = -2147454935;
-pub const EMSGSIZE: ::c_int = -2147454934;
-pub const EOPNOTSUPP: ::c_int = -2147454933;
-pub const ENOTSOCK: ::c_int = -2147454932;
-pub const EHOSTDOWN: ::c_int = -2147454931;
-pub const EBADMSG: ::c_int = -2147454930;
-pub const ECANCELED: ::c_int = -2147454929;
-pub const EDESTADDRREQ: ::c_int = -2147454928;
-pub const EDQUOT: ::c_int = -2147454927;
-pub const EIDRM: ::c_int = -2147454926;
-pub const EMULTIHOP: ::c_int = -2147454925;
-pub const ENODATA: ::c_int = -2147454924;
-pub const ENOLINK: ::c_int = -2147454923;
-pub const ENOSR: ::c_int = -2147454922;
-pub const ENOSTR: ::c_int = -2147454921;
-pub const ENOTSUP: ::c_int = -2147454920;
-pub const EPROTO: ::c_int = -2147454919;
-pub const ETIME: ::c_int = -2147454918;
-pub const ETXTBSY: ::c_int = -2147454917;
-pub const ENOATTR: ::c_int = -2147454916;
-
-// INT_MIN
-pub const ENOMEM: ::c_int = -2147483648;
-
-// POSIX errors that can be mapped to BeOS error codes
-pub const EACCES: ::c_int = -2147483646;
-pub const EINTR: ::c_int = -2147483638;
-pub const EIO: ::c_int = -2147483647;
-pub const EBUSY: ::c_int = -2147483634;
-pub const EFAULT: ::c_int = -2147478783;
-pub const ETIMEDOUT: ::c_int = -2147483639;
-pub const EAGAIN: ::c_int = -2147483637;
-pub const EWOULDBLOCK: ::c_int = -2147483637;
-pub const EBADF: ::c_int = -2147459072;
-pub const EEXIST: ::c_int = -2147459070;
-pub const EINVAL: ::c_int = -2147483643;
-pub const ENAMETOOLONG: ::c_int = -2147459068;
-pub const ENOENT: ::c_int = -2147459069;
-pub const EPERM: ::c_int = -2147483633;
-pub const ENOTDIR: ::c_int = -2147459067;
-pub const EISDIR: ::c_int = -2147459063;
-pub const ENOTEMPTY: ::c_int = -2147459066;
-pub const ENOSPC: ::c_int = -2147459065;
-pub const EROFS: ::c_int = -2147459064;
-pub const EMFILE: ::c_int = -2147459062;
-pub const EXDEV: ::c_int = -2147459061;
-pub const ELOOP: ::c_int = -2147459060;
-pub const ENOEXEC: ::c_int = -2147478782;
-pub const EPIPE: ::c_int = -2147459059;
-
-pub const IPPROTO_RAW: ::c_int = 255;
-
-// These are prefixed with POSIX_ on Haiku
-pub const MADV_NORMAL: ::c_int = 1;
-pub const MADV_SEQUENTIAL: ::c_int = 2;
-pub const MADV_RANDOM: ::c_int = 3;
-pub const MADV_WILLNEED: ::c_int = 4;
-pub const MADV_DONTNEED: ::c_int = 5;
-pub const MADV_FREE: ::c_int = 6;
-
-// https://github.com/haiku/haiku/blob/HEAD/headers/posix/net/if.h#L80
-pub const IFF_UP: ::c_int = 0x0001;
-pub const IFF_BROADCAST: ::c_int = 0x0002; // valid broadcast address
-pub const IFF_LOOPBACK: ::c_int = 0x0008;
-pub const IFF_POINTOPOINT: ::c_int = 0x0010; // point-to-point link
-pub const IFF_NOARP: ::c_int = 0x0040; // no address resolution
-pub const IFF_AUTOUP: ::c_int = 0x0080; // auto dial
-pub const IFF_PROMISC: ::c_int = 0x0100; // receive all packets
-pub const IFF_ALLMULTI: ::c_int = 0x0200; // receive all multicast packets
-pub const IFF_SIMPLEX: ::c_int = 0x0800; // doesn't receive own transmissions
-pub const IFF_LINK: ::c_int = 0x1000; // has link
-pub const IFF_AUTO_CONFIGURED: ::c_int = 0x2000;
-pub const IFF_CONFIGURING: ::c_int = 0x4000;
-pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast
-
-pub const AF_UNSPEC: ::c_int = 0;
-pub const AF_INET: ::c_int = 1;
-pub const AF_APPLETALK: ::c_int = 2;
-pub const AF_ROUTE: ::c_int = 3;
-pub const AF_LINK: ::c_int = 4;
-pub const AF_INET6: ::c_int = 5;
-pub const AF_DLI: ::c_int = 6;
-pub const AF_IPX: ::c_int = 7;
-pub const AF_NOTIFY: ::c_int = 8;
-pub const AF_LOCAL: ::c_int = 9;
-pub const AF_UNIX: ::c_int = AF_LOCAL;
-pub const AF_BLUETOOTH: ::c_int = 10;
-
-pub const PF_UNSPEC: ::c_int = AF_UNSPEC;
-pub const PF_INET: ::c_int = AF_INET;
-pub const PF_ROUTE: ::c_int = AF_ROUTE;
-pub const PF_LINK: ::c_int = AF_LINK;
-pub const PF_INET6: ::c_int = AF_INET6;
-pub const PF_LOCAL: ::c_int = AF_LOCAL;
-pub const PF_UNIX: ::c_int = AF_UNIX;
-pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH;
-
-pub const IP_OPTIONS: ::c_int = 1;
-pub const IP_HDRINCL: ::c_int = 2;
-pub const IP_TOS: ::c_int = 3;
-pub const IP_TTL: ::c_int = 4;
-pub const IP_RECVOPTS: ::c_int = 5;
-pub const IP_RECVRETOPTS: ::c_int = 6;
-pub const IP_RECVDSTADDR: ::c_int = 7;
-pub const IP_RETOPTS: ::c_int = 8;
-pub const IP_MULTICAST_IF: ::c_int = 9;
-pub const IP_MULTICAST_TTL: ::c_int = 10;
-pub const IP_MULTICAST_LOOP: ::c_int = 11;
-pub const IP_ADD_MEMBERSHIP: ::c_int = 12;
-pub const IP_DROP_MEMBERSHIP: ::c_int = 13;
-pub const IP_BLOCK_SOURCE: ::c_int = 14;
-pub const IP_UNBLOCK_SOURCE: ::c_int = 15;
-pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 16;
-pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 17;
-
-pub const TCP_NODELAY: ::c_int = 0x01;
-pub const TCP_MAXSEG: ::c_int = 0x02;
-pub const TCP_NOPUSH: ::c_int = 0x04;
-pub const TCP_NOOPT: ::c_int = 0x08;
-
-pub const IF_NAMESIZE: ::size_t = 32;
-pub const IFNAMSIZ: ::size_t = IF_NAMESIZE;
-
-pub const IPV6_MULTICAST_IF: ::c_int = 24;
-pub const IPV6_MULTICAST_HOPS: ::c_int = 25;
-pub const IPV6_MULTICAST_LOOP: ::c_int = 26;
-pub const IPV6_UNICAST_HOPS: ::c_int = 27;
-pub const IPV6_JOIN_GROUP: ::c_int = 28;
-pub const IPV6_LEAVE_GROUP: ::c_int = 29;
-pub const IPV6_V6ONLY: ::c_int = 30;
-pub const IPV6_PKTINFO: ::c_int = 31;
-pub const IPV6_RECVPKTINFO: ::c_int = 32;
-pub const IPV6_HOPLIMIT: ::c_int = 33;
-pub const IPV6_RECVHOPLIMIT: ::c_int = 34;
-pub const IPV6_HOPOPTS: ::c_int = 35;
-pub const IPV6_DSTOPTS: ::c_int = 36;
-pub const IPV6_RTHDR: ::c_int = 37;
-
-pub const MSG_OOB: ::c_int = 0x0001;
-pub const MSG_PEEK: ::c_int = 0x0002;
-pub const MSG_DONTROUTE: ::c_int = 0x0004;
-pub const MSG_EOR: ::c_int = 0x0008;
-pub const MSG_TRUNC: ::c_int = 0x0010;
-pub const MSG_CTRUNC: ::c_int = 0x0020;
-pub const MSG_WAITALL: ::c_int = 0x0040;
-pub const MSG_DONTWAIT: ::c_int = 0x0080;
-pub const MSG_BCAST: ::c_int = 0x0100;
-pub const MSG_MCAST: ::c_int = 0x0200;
-pub const MSG_EOF: ::c_int = 0x0400;
-pub const MSG_NOSIGNAL: ::c_int = 0x0800;
-
-pub const SHUT_RD: ::c_int = 0;
-pub const SHUT_WR: ::c_int = 1;
-pub const SHUT_RDWR: ::c_int = 2;
-
-pub const LOCK_SH: ::c_int = 0x01;
-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;
-pub const PATH_MAX: ::c_int = 1024;
-
-pub const SA_NOCLDSTOP: ::c_int = 0x01;
-pub const SA_NOCLDWAIT: ::c_int = 0x02;
-pub const SA_RESETHAND: ::c_int = 0x04;
-pub const SA_NODEFER: ::c_int = 0x08;
-pub const SA_RESTART: ::c_int = 0x10;
-pub const SA_ONSTACK: ::c_int = 0x20;
-pub const SA_SIGINFO: ::c_int = 0x40;
-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;
-pub const RTLD_NOW: ::c_int = 0x1;
-pub const RTLD_GLOBAL: ::c_int = 0x2;
-pub const RTLD_DEFAULT: *mut ::c_void = 0isize as *mut ::c_void;
-
-pub const BUFSIZ: ::c_uint = 8192;
-pub const FILENAME_MAX: ::c_uint = 256;
-pub const FOPEN_MAX: ::c_uint = 128;
-pub const L_tmpnam: ::c_uint = 512;
-pub const TMP_MAX: ::c_uint = 32768;
-
-pub const _PC_CHOWN_RESTRICTED: ::c_int = 1;
-pub const _PC_MAX_CANON: ::c_int = 2;
-pub const _PC_MAX_INPUT: ::c_int = 3;
-pub const _PC_NAME_MAX: ::c_int = 4;
-pub const _PC_NO_TRUNC: ::c_int = 5;
-pub const _PC_PATH_MAX: ::c_int = 6;
-pub const _PC_PIPE_BUF: ::c_int = 7;
-pub const _PC_VDISABLE: ::c_int = 8;
-pub const _PC_LINK_MAX: ::c_int = 25;
-pub const _PC_SYNC_IO: ::c_int = 26;
-pub const _PC_ASYNC_IO: ::c_int = 27;
-pub const _PC_PRIO_IO: ::c_int = 28;
-pub const _PC_SOCK_MAXBUF: ::c_int = 29;
-pub const _PC_FILESIZEBITS: ::c_int = 30;
-pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 31;
-pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 32;
-pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 33;
-pub const _PC_REC_XFER_ALIGN: ::c_int = 34;
-pub const _PC_ALLOC_SIZE_MIN: ::c_int = 35;
-pub const _PC_SYMLINK_MAX: ::c_int = 36;
-pub const _PC_2_SYMLINKS: ::c_int = 37;
-pub const _PC_XATTR_EXISTS: ::c_int = 38;
-pub const _PC_XATTR_ENABLED: ::c_int = 39;
-
-pub const FIONBIO: ::c_ulong = 0xbe000000;
-pub const FIONREAD: ::c_ulong = 0xbe000001;
-pub const FIOSEEKDATA: ::c_ulong = 0xbe000002;
-pub const FIOSEEKHOLE: ::c_ulong = 0xbe000003;
-
-pub const _SC_ARG_MAX: ::c_int = 15;
-pub const _SC_CHILD_MAX: ::c_int = 16;
-pub const _SC_CLK_TCK: ::c_int = 17;
-pub const _SC_JOB_CONTROL: ::c_int = 18;
-pub const _SC_NGROUPS_MAX: ::c_int = 19;
-pub const _SC_OPEN_MAX: ::c_int = 20;
-pub const _SC_SAVED_IDS: ::c_int = 21;
-pub const _SC_STREAM_MAX: ::c_int = 22;
-pub const _SC_TZNAME_MAX: ::c_int = 23;
-pub const _SC_VERSION: ::c_int = 24;
-pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 25;
-pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 26;
-pub const _SC_PAGESIZE: ::c_int = 27;
-pub const _SC_PAGE_SIZE: ::c_int = 27;
-pub const _SC_SEM_NSEMS_MAX: ::c_int = 28;
-pub const _SC_SEM_VALUE_MAX: ::c_int = 29;
-pub const _SC_SEMAPHORES: ::c_int = 30;
-pub const _SC_THREADS: ::c_int = 31;
-pub const _SC_IOV_MAX: ::c_int = 32;
-pub const _SC_UIO_MAXIOV: ::c_int = 32;
-pub const _SC_NPROCESSORS_CONF: ::c_int = 34;
-pub const _SC_NPROCESSORS_ONLN: ::c_int = 35;
-pub const _SC_ATEXIT_MAX: ::c_int = 37;
-pub const _SC_PASS_MAX: ::c_int = 39;
-pub const _SC_PHYS_PAGES: ::c_int = 40;
-pub const _SC_AVPHYS_PAGES: ::c_int = 41;
-pub const _SC_PIPE: ::c_int = 42;
-pub const _SC_SELECT: ::c_int = 43;
-pub const _SC_POLL: ::c_int = 44;
-pub const _SC_MAPPED_FILES: ::c_int = 45;
-pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 46;
-pub const _SC_THREAD_STACK_MIN: ::c_int = 47;
-pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 48;
-pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 49;
-pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 50;
-pub const _SC_REALTIME_SIGNALS: ::c_int = 51;
-pub const _SC_MEMORY_PROTECTION: ::c_int = 52;
-pub const _SC_SIGQUEUE_MAX: ::c_int = 53;
-pub const _SC_RTSIG_MAX: ::c_int = 54;
-pub const _SC_MONOTONIC_CLOCK: ::c_int = 55;
-pub const _SC_DELAYTIMER_MAX: ::c_int = 56;
-pub const _SC_TIMER_MAX: ::c_int = 57;
-pub const _SC_TIMERS: ::c_int = 58;
-pub const _SC_CPUTIME: ::c_int = 59;
-pub const _SC_THREAD_CPUTIME: ::c_int = 60;
-pub const _SC_HOST_NAME_MAX: ::c_int = 61;
-pub const _SC_REGEXP: ::c_int = 62;
-pub const _SC_SYMLOOP_MAX: ::c_int = 63;
-pub const _SC_SHELL: ::c_int = 64;
-pub const _SC_TTY_NAME_MAX: ::c_int = 65;
-
-pub const PTHREAD_STACK_MIN: ::size_t = 8192;
-
-pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t {
- flags: 0,
- lock: 0,
- unused: -42,
- owner: -1,
- owner_count: 0,
-};
-pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t {
- flags: 0,
- unused: -42,
- mutex: 0 as *mut _,
- waiter_count: 0,
- lock: 0,
-};
-pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
- flags: 0,
- owner: -1,
- lock_sem: 0,
- lock_count: 0,
- reader_count: 0,
- writer_count: 0,
- waiters: [0 as *mut _; 2],
-};
-
-pub const PTHREAD_MUTEX_DEFAULT: ::c_int = 0;
-pub const PTHREAD_MUTEX_NORMAL: ::c_int = 1;
-pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2;
-pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 3;
-
-pub const FIOCLEX: c_ulong = 0; // FIXME: does not exist on Haiku!
-
-pub const RUSAGE_CHILDREN: ::c_int = -1;
-
-pub const SOCK_STREAM: ::c_int = 1;
-pub const SOCK_DGRAM: ::c_int = 2;
-pub const SOCK_RAW: ::c_int = 3;
-pub const SOCK_SEQPACKET: ::c_int = 5;
-
-pub const SOL_SOCKET: ::c_int = -1;
-pub const SO_ACCEPTCONN: ::c_int = 0x00000001;
-pub const SO_BROADCAST: ::c_int = 0x00000002;
-pub const SO_DEBUG: ::c_int = 0x00000004;
-pub const SO_DONTROUTE: ::c_int = 0x00000008;
-pub const SO_KEEPALIVE: ::c_int = 0x00000010;
-pub const SO_OOBINLINE: ::c_int = 0x00000020;
-pub const SO_REUSEADDR: ::c_int = 0x00000040;
-pub const SO_REUSEPORT: ::c_int = 0x00000080;
-pub const SO_USELOOPBACK: ::c_int = 0x00000100;
-pub const SO_LINGER: ::c_int = 0x00000200;
-pub const SO_SNDBUF: ::c_int = 0x40000001;
-pub const SO_SNDLOWAT: ::c_int = 0x40000002;
-pub const SO_SNDTIMEO: ::c_int = 0x40000003;
-pub const SO_RCVBUF: ::c_int = 0x40000004;
-pub const SO_RCVLOWAT: ::c_int = 0x40000005;
-pub const SO_RCVTIMEO: ::c_int = 0x40000006;
-pub const SO_ERROR: ::c_int = 0x40000007;
-pub const SO_TYPE: ::c_int = 0x40000008;
-pub const SO_NONBLOCK: ::c_int = 0x40000009;
-pub const SO_BINDTODEVICE: ::c_int = 0x4000000a;
-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;
-pub const WUNTRACED: ::c_int = 0x02;
-pub const WCONTINUED: ::c_int = 0x04;
-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;
-pub const CLD_TRAPPED: ::c_int = 63;
-pub const CLD_STOPPED: ::c_int = 64;
-pub const CLD_CONTINUED: ::c_int = 65;
-
-pub const P_ALL: idtype_t = 0;
-pub const P_PID: idtype_t = 1;
-pub const P_PGID: idtype_t = 2;
-
-pub const UTIME_OMIT: c_long = 1000000001;
-pub const UTIME_NOW: c_long = 1000000000;
-
-pub const VINTR: usize = 0;
-pub const VQUIT: usize = 1;
-pub const VERASE: usize = 2;
-pub const VKILL: usize = 3;
-pub const VEOF: usize = 4;
-pub const VEOL: usize = 5;
-pub const VMIN: usize = 4;
-pub const VTIME: usize = 5;
-pub const VEOL2: usize = 6;
-pub const VSWTCH: usize = 7;
-pub const VSTART: usize = 8;
-pub const VSTOP: usize = 9;
-pub const VSUSP: usize = 10;
-
-pub const IGNBRK: ::tcflag_t = 0x01;
-pub const BRKINT: ::tcflag_t = 0x02;
-pub const IGNPAR: ::tcflag_t = 0x04;
-pub const PARMRK: ::tcflag_t = 0x08;
-pub const INPCK: ::tcflag_t = 0x10;
-pub const ISTRIP: ::tcflag_t = 0x20;
-pub const INLCR: ::tcflag_t = 0x40;
-pub const IGNCR: ::tcflag_t = 0x80;
-pub const ICRNL: ::tcflag_t = 0x100;
-pub const IUCLC: ::tcflag_t = 0x200;
-pub const IXON: ::tcflag_t = 0x400;
-pub const IXANY: ::tcflag_t = 0x800;
-pub const IXOFF: ::tcflag_t = 0x1000;
-
-pub const OPOST: ::tcflag_t = 0x00000001;
-pub const OLCUC: ::tcflag_t = 0x00000002;
-pub const ONLCR: ::tcflag_t = 0x00000004;
-pub const OCRNL: ::tcflag_t = 0x00000008;
-pub const ONOCR: ::tcflag_t = 0x00000010;
-pub const ONLRET: ::tcflag_t = 0x00000020;
-pub const OFILL: ::tcflag_t = 0x00000040;
-pub const OFDEL: ::tcflag_t = 0x00000080;
-pub const NLDLY: ::tcflag_t = 0x00000100;
-pub const NL0: ::tcflag_t = 0x00000000;
-pub const NL1: ::tcflag_t = 0x00000100;
-pub const CRDLY: ::tcflag_t = 0x00000600;
-pub const CR0: ::tcflag_t = 0x00000000;
-pub const CR1: ::tcflag_t = 0x00000200;
-pub const CR2: ::tcflag_t = 0x00000400;
-pub const CR3: ::tcflag_t = 0x00000600;
-pub const TABDLY: ::tcflag_t = 0x00001800;
-pub const TAB0: ::tcflag_t = 0x00000000;
-pub const TAB1: ::tcflag_t = 0x00000800;
-pub const TAB2: ::tcflag_t = 0x00001000;
-pub const TAB3: ::tcflag_t = 0x00001800;
-pub const BSDLY: ::tcflag_t = 0x00002000;
-pub const BS0: ::tcflag_t = 0x00000000;
-pub const BS1: ::tcflag_t = 0x00002000;
-pub const VTDLY: ::tcflag_t = 0x00004000;
-pub const VT0: ::tcflag_t = 0x00000000;
-pub const VT1: ::tcflag_t = 0x00004000;
-pub const FFDLY: ::tcflag_t = 0x00008000;
-pub const FF0: ::tcflag_t = 0x00000000;
-pub const FF1: ::tcflag_t = 0x00008000;
-
-pub const CSIZE: ::tcflag_t = 0x00000020;
-pub const CS5: ::tcflag_t = 0x00000000;
-pub const CS6: ::tcflag_t = 0x00000000;
-pub const CS7: ::tcflag_t = 0x00000000;
-pub const CS8: ::tcflag_t = 0x00000020;
-pub const CSTOPB: ::tcflag_t = 0x00000040;
-pub const CREAD: ::tcflag_t = 0x00000080;
-pub const PARENB: ::tcflag_t = 0x00000100;
-pub const PARODD: ::tcflag_t = 0x00000200;
-pub const HUPCL: ::tcflag_t = 0x00000400;
-pub const CLOCAL: ::tcflag_t = 0x00000800;
-pub const XLOBLK: ::tcflag_t = 0x00001000;
-pub const CTSFLOW: ::tcflag_t = 0x00002000;
-pub const RTSFLOW: ::tcflag_t = 0x00004000;
-pub const CRTSCTS: ::tcflag_t = RTSFLOW | CTSFLOW;
-
-pub const ISIG: ::tcflag_t = 0x00000001;
-pub const ICANON: ::tcflag_t = 0x00000002;
-pub const XCASE: ::tcflag_t = 0x00000004;
-pub const ECHO: ::tcflag_t = 0x00000008;
-pub const ECHOE: ::tcflag_t = 0x00000010;
-pub const ECHOK: ::tcflag_t = 0x00000020;
-pub const ECHONL: ::tcflag_t = 0x00000040;
-pub const NOFLSH: ::tcflag_t = 0x00000080;
-pub const TOSTOP: ::tcflag_t = 0x00000100;
-pub const IEXTEN: ::tcflag_t = 0x00000200;
-pub const ECHOCTL: ::tcflag_t = 0x00000400;
-pub const ECHOPRT: ::tcflag_t = 0x00000800;
-pub const ECHOKE: ::tcflag_t = 0x00001000;
-pub const FLUSHO: ::tcflag_t = 0x00002000;
-pub const PENDIN: ::tcflag_t = 0x00004000;
-
-pub const TCGB_CTS: ::c_int = 0x01;
-pub const TCGB_DSR: ::c_int = 0x02;
-pub const TCGB_RI: ::c_int = 0x04;
-pub const TCGB_DCD: ::c_int = 0x08;
-pub const TIOCM_CTS: ::c_int = TCGB_CTS;
-pub const TIOCM_CD: ::c_int = TCGB_DCD;
-pub const TIOCM_CAR: ::c_int = TIOCM_CD;
-pub const TIOCM_RI: ::c_int = TCGB_RI;
-pub const TIOCM_DSR: ::c_int = TCGB_DSR;
-pub const TIOCM_DTR: ::c_int = 0x10;
-pub const TIOCM_RTS: ::c_int = 0x20;
-
-pub const B0: speed_t = 0x00;
-pub const B50: speed_t = 0x01;
-pub const B75: speed_t = 0x02;
-pub const B110: speed_t = 0x03;
-pub const B134: speed_t = 0x04;
-pub const B150: speed_t = 0x05;
-pub const B200: speed_t = 0x06;
-pub const B300: speed_t = 0x07;
-pub const B600: speed_t = 0x08;
-pub const B1200: speed_t = 0x09;
-pub const B1800: speed_t = 0x0A;
-pub const B2400: speed_t = 0x0B;
-pub const B4800: speed_t = 0x0C;
-pub const B9600: speed_t = 0x0D;
-pub const B19200: speed_t = 0x0E;
-pub const B38400: speed_t = 0x0F;
-pub const B57600: speed_t = 0x10;
-pub const B115200: speed_t = 0x11;
-pub const B230400: speed_t = 0x12;
-pub const B31250: speed_t = 0x13;
-
-pub const TCSANOW: ::c_int = 0x01;
-pub const TCSADRAIN: ::c_int = 0x02;
-pub const TCSAFLUSH: ::c_int = 0x04;
-
-pub const TCOOFF: ::c_int = 0x01;
-pub const TCOON: ::c_int = 0x02;
-pub const TCIOFF: ::c_int = 0x04;
-pub const TCION: ::c_int = 0x08;
-
-pub const TCIFLUSH: ::c_int = 0x01;
-pub const TCOFLUSH: ::c_int = 0x02;
-pub const TCIOFLUSH: ::c_int = 0x03;
-
-pub const TCGETA: ::c_ulong = 0x8000;
-pub const TCSETA: ::c_ulong = TCGETA + 1;
-pub const TCSETAF: ::c_ulong = TCGETA + 2;
-pub const TCSETAW: ::c_ulong = TCGETA + 3;
-pub const TCWAITEVENT: ::c_ulong = TCGETA + 4;
-pub const TCSBRK: ::c_ulong = TCGETA + 5;
-pub const TCFLSH: ::c_ulong = TCGETA + 6;
-pub const TCXONC: ::c_ulong = TCGETA + 7;
-pub const TCQUERYCONNECTED: ::c_ulong = TCGETA + 8;
-pub const TCGETBITS: ::c_ulong = TCGETA + 9;
-pub const TCSETDTR: ::c_ulong = TCGETA + 10;
-pub const TCSETRTS: ::c_ulong = TCGETA + 11;
-pub const TIOCGWINSZ: ::c_ulong = TCGETA + 12;
-pub const TIOCSWINSZ: ::c_ulong = TCGETA + 13;
-pub const TCVTIME: ::c_ulong = TCGETA + 14;
-pub const TIOCGPGRP: ::c_ulong = TCGETA + 15;
-pub const TIOCSPGRP: ::c_ulong = TCGETA + 16;
-pub const TIOCSCTTY: ::c_ulong = TCGETA + 17;
-pub const TIOCMGET: ::c_ulong = TCGETA + 18;
-pub const TIOCMSET: ::c_ulong = TCGETA + 19;
-pub const TIOCSBRK: ::c_ulong = TCGETA + 20;
-pub const TIOCCBRK: ::c_ulong = TCGETA + 21;
-pub const TIOCMBIS: ::c_ulong = TCGETA + 22;
-pub const TIOCMBIC: ::c_ulong = TCGETA + 23;
-
-pub const PRIO_PROCESS: ::c_int = 0;
-pub const PRIO_PGRP: ::c_int = 1;
-pub const PRIO_USER: ::c_int = 2;
-
-// utmpx entry types
-pub const EMPTY: ::c_short = 0;
-pub const BOOT_TIME: ::c_short = 1;
-pub const OLD_TIME: ::c_short = 2;
-pub const NEW_TIME: ::c_short = 3;
-pub const USER_PROCESS: ::c_short = 4;
-pub const INIT_PROCESS: ::c_short = 5;
-pub const LOGIN_PROCESS: ::c_short = 6;
-pub const DEAD_PROCESS: ::c_short = 7;
-
-pub const LOG_PID: ::c_int = 1 << 12;
-pub const LOG_CONS: ::c_int = 2 << 12;
-pub const LOG_ODELAY: ::c_int = 4 << 12;
-pub const LOG_NDELAY: ::c_int = 8 << 12;
-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)
- }
-}
-
-f! {
- pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr {
- if (*mhdr).msg_controllen as usize >= ::mem::size_of::<cmsghdr>() {
- (*mhdr).msg_control as *mut cmsghdr
- } else {
- 0 as *mut cmsghdr
- }
- }
-
- pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar {
- (cmsg as *mut ::c_uchar)
- .offset(CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize)
- }
-
- pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint {
- (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::<cmsghdr>()))
- as ::c_uint
- }
-
- pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint {
- CMSG_ALIGN(::mem::size_of::<cmsghdr>()) as ::c_uint + length
- }
-
- pub fn CMSG_NXTHDR(mhdr: *const msghdr,
- cmsg: *const cmsghdr) -> *mut cmsghdr {
- if cmsg.is_null() {
- return ::CMSG_FIRSTHDR(mhdr);
- };
- let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)
- + CMSG_ALIGN(::mem::size_of::<::cmsghdr>());
- let max = (*mhdr).msg_control as usize
- + (*mhdr).msg_controllen as usize;
- if next > max {
- 0 as *mut ::cmsghdr
- } else {
- (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize))
- as *mut ::cmsghdr
- }
- }
-
- pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () {
- let fd = fd as usize;
- let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8;
- (*set).fds_bits[fd / size] &= !(1 << (fd % size));
- return
- }
-
- pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool {
- let fd = fd as usize;
- let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8;
- return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0
- }
-
- pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () {
- let fd = fd as usize;
- let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8;
- (*set).fds_bits[fd / size] |= 1 << (fd % size);
- return
- }
-
- pub fn FD_ZERO(set: *mut fd_set) -> () {
- for slot in (*set).fds_bits.iter_mut() {
- *slot = 0;
- }
- }
-}
-
-safe_f! {
- pub {const} fn WIFEXITED(status: ::c_int) -> bool {
- (status & !0xff) == 0
- }
-
- pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int {
- status & 0xff
- }
-
- pub {const} fn WIFSIGNALED(status: ::c_int) -> bool {
- ((status >> 8) & 0xff) != 0
- }
-
- pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int {
- (status >> 8) & 0xff
- }
-
- pub {const} fn WIFSTOPPED(status: ::c_int) -> bool {
- ((status >> 16) & 0xff) != 0
- }
-
- pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int {
- (status >> 16) & 0xff
- }
-
- // actually WIFCORED, but this is used everywhere else
- pub {const} fn WCOREDUMP(status: ::c_int) -> bool {
- (status & 0x10000) != 0
- }
-
- pub {const} fn WIFCONTINUED(status: ::c_int) -> bool {
- (status & 0x20000) != 0
- }
-}
-
-extern "C" {
- pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int;
- pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int;
- pub fn getpriority(which: ::c_int, who: id_t) -> ::c_int;
- pub fn setpriority(which: ::c_int, who: id_t, priority: ::c_int) -> ::c_int;
-
- pub fn endusershell();
- pub fn getpass(prompt: *const ::c_char) -> *mut ::c_char;
- pub fn getusershell() -> *mut ::c_char;
- pub fn issetugid() -> ::c_int;
- pub fn setusershell();
-
- pub fn utimensat(
- fd: ::c_int,
- path: *const ::c_char,
- times: *const ::timespec,
- flag: ::c_int,
- ) -> ::c_int;
- pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int;
- pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int;
- pub fn _errnop() -> *mut ::c_int;
-
- pub fn abs(i: ::c_int) -> ::c_int;
- pub fn labs(i: ::c_long) -> ::c_long;
- pub fn rand() -> ::c_int;
- pub fn srand(seed: ::c_uint);
- pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int;
- pub fn freeifaddrs(ifa: *mut ::ifaddrs);
- pub fn ppoll(
- fds: *mut ::pollfd,
- numfds: ::nfds_t,
- timeout: *const ::timespec,
- sigMask: *const sigset_t,
- ) -> ::c_int;
-
- pub fn getspent() -> *mut spwd;
- pub fn getspent_r(
- pwd: *mut spwd,
- buf: *mut ::c_char,
- bufferSize: ::size_t,
- res: *mut *mut spwd,
- ) -> ::c_int;
- pub fn setspent();
- pub fn endspent();
- pub fn getspnam(name: *const ::c_char) -> *mut spwd;
- pub fn getspnam_r(
- name: *const ::c_char,
- spwd: *mut spwd,
- buffer: *mut ::c_char,
- bufferSize: ::size_t,
- res: *mut *mut spwd,
- ) -> ::c_int;
- pub fn sgetspent(line: *const ::c_char) -> *mut spwd;
- pub fn sgetspent_r(
- line: *const ::c_char,
- spwd: *mut spwd,
- buffer: *mut ::c_char,
- bufferSize: ::size_t,
- res: *mut *mut spwd,
- ) -> ::c_int;
- pub fn fgetspent(file: *mut ::FILE) -> *mut spwd;
- pub fn fgetspent_r(
- file: *mut ::FILE,
- spwd: *mut spwd,
- buffer: *mut ::c_char,
- bufferSize: ::size_t,
- res: *mut *mut spwd,
- ) -> ::c_int;
- pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int;
- pub fn mknodat(
- dirfd: ::c_int,
- pathname: *const ::c_char,
- mode: ::mode_t,
- dev: dev_t,
- ) -> ::c_int;
- pub fn sem_destroy(sem: *mut sem_t) -> ::c_int;
- pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int;
-
- pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int;
- pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int;
- pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int;
- pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int;
- pub fn pthread_create(
- thread: *mut ::pthread_t,
- attr: *const ::pthread_attr_t,
- f: extern "C" fn(*mut ::c_void) -> *mut ::c_void,
- value: *mut ::c_void,
- ) -> ::c_int;
- pub fn pthread_attr_getguardsize(
- attr: *const ::pthread_attr_t,
- guardsize: *mut ::size_t,
- ) -> ::c_int;
- pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int;
- pub fn pthread_attr_getstack(
- attr: *const ::pthread_attr_t,
- stackaddr: *mut *mut ::c_void,
- stacksize: *mut ::size_t,
- ) -> ::c_int;
- pub fn pthread_condattr_getclock(
- attr: *const pthread_condattr_t,
- clock_id: *mut clockid_t,
- ) -> ::c_int;
- pub fn pthread_condattr_setclock(
- attr: *mut pthread_condattr_t,
- clock_id: ::clockid_t,
- ) -> ::c_int;
- pub fn valloc(numBytes: ::size_t) -> *mut ::c_void;
- pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t;
- pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void;
- pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int;
- pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int;
- pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int;
- pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
- pub fn dirfd(dirp: *mut ::DIR) -> ::c_int;
- pub fn getnameinfo(
- sa: *const ::sockaddr,
- salen: ::socklen_t,
- host: *mut ::c_char,
- hostlen: ::socklen_t,
- serv: *mut ::c_char,
- servlen: ::socklen_t,
- flags: ::c_int,
- ) -> ::c_int;
- pub fn pthread_mutex_timedlock(
- lock: *mut pthread_mutex_t,
- abstime: *const ::timespec,
- ) -> ::c_int;
- pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int;
- pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int;
- pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int;
- pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int;
- pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int;
- pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int)
- -> ::c_int;
-
- pub fn glob(
- pattern: *const ::c_char,
- flags: ::c_int,
- errfunc: ::Option<extern "C" fn(epath: *const ::c_char, errno: ::c_int) -> ::c_int>,
- pglob: *mut ::glob_t,
- ) -> ::c_int;
- pub fn globfree(pglob: *mut ::glob_t);
- pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int;
- pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int;
- pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advice: ::c_int) -> ::c_int;
- pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int;
-
- pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int;
- pub fn shm_unlink(name: *const ::c_char) -> ::c_int;
-
- pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long);
-
- pub fn telldir(dirp: *mut ::DIR) -> ::c_long;
- pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int;
-
- pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int;
-
- pub fn recvfrom(
- socket: ::c_int,
- buf: *mut ::c_void,
- len: ::size_t,
- flags: ::c_int,
- addr: *mut ::sockaddr,
- addrlen: *mut ::socklen_t,
- ) -> ::ssize_t;
- pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int;
- pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char;
-
- pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int;
-
- pub fn writev(fd: ::c_int, iov: *const ::iovec, count: ::c_int) -> ::ssize_t;
- pub fn readv(fd: ::c_int, iov: *const ::iovec, count: ::c_int) -> ::ssize_t;
-
- pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t;
- pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t;
- pub fn execvpe(
- file: *const ::c_char,
- argv: *const *const ::c_char,
- environment: *const *const ::c_char,
- ) -> ::c_int;
- pub fn getgrgid_r(
- gid: ::gid_t,
- grp: *mut ::group,
- buf: *mut ::c_char,
- buflen: ::size_t,
- result: *mut *mut ::group,
- ) -> ::c_int;
- pub fn getgrouplist(
- user: *const ::c_char,
- basegroup: ::gid_t,
- grouplist: *mut ::gid_t,
- groupcount: *mut ::c_int,
- ) -> ::c_int;
- pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int;
- pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int;
- pub fn sem_close(sem: *mut sem_t) -> ::c_int;
- pub fn getdtablesize() -> ::c_int;
- pub fn getgrnam_r(
- name: *const ::c_char,
- grp: *mut ::group,
- buf: *mut ::c_char,
- buflen: ::size_t,
- result: *mut *mut ::group,
- ) -> ::c_int;
- pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int;
- pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t;
- pub fn getgrnam(name: *const ::c_char) -> *mut ::group;
- pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int;
- pub fn sem_unlink(name: *const ::c_char) -> ::c_int;
- pub fn getpwnam_r(
- name: *const ::c_char,
- pwd: *mut passwd,
- buf: *mut ::c_char,
- buflen: ::size_t,
- result: *mut *mut passwd,
- ) -> ::c_int;
- pub fn getpwuid_r(
- uid: ::uid_t,
- pwd: *mut passwd,
- buf: *mut ::c_char,
- buflen: ::size_t,
- result: *mut *mut passwd,
- ) -> ::c_int;
- pub fn getpwent() -> *mut passwd;
- pub fn setpwent();
- pub fn endpwent();
- pub fn endgrent();
- pub fn getgrent() -> *mut ::group;
- pub fn setgrent();
- pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int;
- pub fn pthread_atfork(
- prepare: ::Option<unsafe extern "C" fn()>,
- parent: ::Option<unsafe extern "C" fn()>,
- child: ::Option<unsafe extern "C" fn()>,
- ) -> ::c_int;
- pub fn getgrgid(gid: ::gid_t) -> *mut ::group;
- pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE;
- pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int;
- pub fn uname(buf: *mut ::utsname) -> ::c_int;
- pub fn getutxent() -> *mut utmpx;
- pub fn getutxid(ut: *const utmpx) -> *mut utmpx;
- pub fn getutxline(ut: *const utmpx) -> *mut utmpx;
- pub fn pututxline(ut: *const utmpx) -> *mut utmpx;
- pub fn setutxent();
- pub fn endutxent();
- pub fn faccessat(
- dirfd: ::c_int,
- pathname: *const ::c_char,
- mode: ::c_int,
- flags: ::c_int,
- ) -> ::c_int;
-
- pub fn sigtimedwait(
- set: *const sigset_t,
- info: *mut siginfo_t,
- timeout: *const ::timespec,
- ) -> ::c_int;
- pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int;
-
- pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int;
- pub fn setitimer(
- which: ::c_int,
- new_value: *const ::itimerval,
- old_value: *mut ::itimerval,
- ) -> ::c_int;
-
- pub fn regcomp(preg: *mut regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int;
-
- pub fn regexec(
- preg: *const regex_t,
- input: *const ::c_char,
- nmatch: ::size_t,
- pmatch: *mut regmatch_t,
- eflags: ::c_int,
- ) -> ::c_int;
-
- pub fn regerror(
- errcode: ::c_int,
- preg: *const regex_t,
- errbuf: *mut ::c_char,
- errbuf_size: ::size_t,
- ) -> ::size_t;
-
- pub fn regfree(preg: *mut regex_t);
-
- pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int;
- pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int;
- pub fn msgrcv(
- msqid: ::c_int,
- msgp: *mut ::c_void,
- msgsz: ::size_t,
- msgtype: ::c_long,
- msgflg: ::c_int,
- ) -> ::ssize_t;
- pub fn msgsnd(
- msqid: ::c_int,
- msgp: *const ::c_void,
- msgsz: ::size_t,
- msgflg: ::c_int,
- ) -> ::c_int;
- pub fn semget(key: ::key_t, nsems: ::c_int, semflg: ::c_int) -> ::c_int;
- pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int;
- pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int;
- pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t;
-
- pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void;
-
- pub fn lsearch(
- key: *const ::c_void,
- base: *mut ::c_void,
- nelp: *mut ::size_t,
- width: ::size_t,
- compar: ::Option<unsafe extern "C" fn(*const ::c_void, *const ::c_void) -> ::c_int>,
- ) -> *mut ::c_void;
- pub fn lfind(
- key: *const ::c_void,
- base: *const ::c_void,
- nelp: *mut ::size_t,
- width: ::size_t,
- compar: ::Option<unsafe extern "C" fn(*const ::c_void, *const ::c_void) -> ::c_int>,
- ) -> *mut ::c_void;
- pub fn hcreate(nelt: ::size_t) -> ::c_int;
- pub fn hdestroy();
- pub fn hsearch(entry: ::ENTRY, action: ::ACTION) -> *mut ::ENTRY;
-
- pub fn drand48() -> ::c_double;
- pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double;
- pub fn lrand48() -> ::c_long;
- pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long;
- pub fn mrand48() -> ::c_long;
- pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long;
- pub fn srand48(seed: ::c_long);
- pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort;
- pub fn lcong48(p: *mut ::c_ushort);
-
- pub fn clearenv() -> ::c_int;
- pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char;
-
- pub fn sync();
- pub fn getpagesize() -> ::c_int;
-
- 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;
- pub fn getopt_long(
- argc: ::c_int,
- argv: *const *mut c_char,
- optstring: *const c_char,
- longopts: *const option,
- longindex: *mut ::c_int,
- ) -> ::c_int;
- pub fn strcasecmp_l(
- string1: *const ::c_char,
- string2: *const ::c_char,
- locale: ::locale_t,
- ) -> ::c_int;
- pub fn strncasecmp_l(
- string1: *const ::c_char,
- string2: *const ::c_char,
- length: ::size_t,
- locale: ::locale_t,
- ) -> ::c_int;
-}
-
-#[link(name = "bsd")]
-extern "C" {
- pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int;
- pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int;
- pub fn forkpty(
- amaster: *mut ::c_int,
- name: *mut ::c_char,
- termp: *mut termios,
- winp: *mut ::winsize,
- ) -> ::pid_t;
- pub fn openpty(
- amaster: *mut ::c_int,
- aslave: *mut ::c_int,
- name: *mut ::c_char,
- termp: *mut termios,
- winp: *mut ::winsize,
- ) -> ::c_int;
- pub fn strsep(string: *mut *mut ::c_char, delimiters: *const ::c_char) -> *mut ::c_char;
- pub fn explicit_bzero(buf: *mut ::c_void, len: ::size_t);
- pub fn login_tty(_fd: ::c_int) -> ::c_int;
-
- pub fn sl_init() -> *mut StringList;
- pub fn sl_add(sl: *mut StringList, n: *mut ::c_char) -> ::c_int;
- pub fn sl_free(sl: *mut StringList, i: ::c_int);
- pub fn sl_find(sl: *mut StringList, n: *mut ::c_char) -> *mut ::c_char;
-
- pub fn getprogname() -> *const ::c_char;
- pub fn setprogname(progname: *const ::c_char);
- pub fn dl_iterate_phdr(
- callback: ::Option<
- unsafe extern "C" fn(
- info: *mut dl_phdr_info,
- size: usize,
- data: *mut ::c_void,
- ) -> ::c_int,
- >,
- data: *mut ::c_void,
- ) -> ::c_int;
-}
-
-#[link(name = "gnu")]
-extern "C" {
- pub fn memmem(
- source: *const ::c_void,
- sourceLength: ::size_t,
- search: *const ::c_void,
- searchLength: ::size_t,
- ) -> *mut ::c_void;
-
- pub fn pthread_getattr_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int;
- pub fn pthread_getname_np(
- thread: ::pthread_t,
- buffer: *mut ::c_char,
- length: ::size_t,
- ) -> ::c_int;
- pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int;
-}
-
-cfg_if! {
- if #[cfg(target_pointer_width = "64")] {
- mod b64;
- pub use self::b64::*;
- } else {
- mod b32;
- pub use self::b32::*;
- }
-}
-
-cfg_if! {
- if #[cfg(target_arch = "x86")] {
- // TODO
- // mod x86;
- // pub use self::x86::*;
- } else if #[cfg(target_arch = "x86_64")] {
- mod x86_64;
- pub use self::x86_64::*;
- } else if #[cfg(target_arch = "aarch64")] {
- // TODO
- // mod aarch64;
- // pub use self::aarch64::*;
- }
-}
-
-mod native;
-pub use self::native::*;
diff --git a/vendor/libc/src/unix/haiku/native.rs b/vendor/libc/src/unix/haiku/native.rs
deleted file mode 100644
index 62d6392..0000000
--- a/vendor/libc/src/unix/haiku/native.rs
+++ /dev/null
@@ -1,1488 +0,0 @@
-// This module contains bindings to the native Haiku API. The Haiku API
-// originates from BeOS, and it was the original way to perform low level
-// system and IO operations. The POSIX API was in that era was like a
-// compatibility layer. In current Haiku development, both the POSIX API and
-// the Haiku API are considered to be co-equal status. However, they are not
-// integrated like they are on other UNIX platforms, which means that for many
-// low level concepts there are two versions, like processes (POSIX) and
-// teams (Haiku), or pthreads and native threads.
-//
-// Both the POSIX API and the Haiku API live in libroot.so, the library that is
-// linked to any binary by default.
-//
-// This file follows the Haiku API for Haiku R1 beta 2. It is organized by the
-// C/C++ header files in which the concepts can be found, while adhering to the
-// style guide for this crate.
-
-// Helper macro to generate u32 constants. The Haiku API uses (non-standard)
-// multi-character constants (like 'UPDA' or 'MSGM') to represent 32 bit
-// integer constants.
-
-macro_rules! haiku_constant {
- ($a:tt, $b:tt, $c:tt, $d:tt) => {
- (($a as u32) << 24) + (($b as u32) << 16) + (($c as u32) << 8) + ($d as u32)
- };
-}
-
-// support/SupportDefs.h
-pub type status_t = i32;
-pub type bigtime_t = i64;
-pub type nanotime_t = i64;
-pub type type_code = u32;
-pub type perform_code = u32;
-
-// kernel/OS.h
-pub type area_id = i32;
-pub type port_id = i32;
-pub type sem_id = i32;
-pub type team_id = i32;
-pub type thread_id = i32;
-
-pub type thread_func = extern "C" fn(*mut ::c_void) -> status_t;
-
-// kernel/image.h
-pub type image_id = i32;
-
-e! {
- // kernel/OS.h
- pub enum thread_state {
- B_THREAD_RUNNING = 1,
- B_THREAD_READY,
- B_THREAD_RECEIVING,
- B_THREAD_ASLEEP,
- B_THREAD_SUSPENDED,
- B_THREAD_WAITING
- }
-
- // kernel/image.h
- pub enum image_type {
- B_APP_IMAGE = 1,
- B_LIBRARY_IMAGE,
- B_ADD_ON_IMAGE,
- B_SYSTEM_IMAGE
- }
-
- // kernel/scheduler.h
-
- pub enum be_task_flags {
- B_DEFAULT_MEDIA_PRIORITY = 0x000,
- B_OFFLINE_PROCESSING = 0x001,
- B_STATUS_RENDERING = 0x002,
- B_USER_INPUT_HANDLING = 0x004,
- B_LIVE_VIDEO_MANIPULATION = 0x008,
- B_VIDEO_PLAYBACK = 0x010,
- B_VIDEO_RECORDING = 0x020,
- B_LIVE_AUDIO_MANIPULATION = 0x040,
- B_AUDIO_PLAYBACK = 0x080,
- B_AUDIO_RECORDING = 0x100,
- B_LIVE_3D_RENDERING = 0x200,
- B_NUMBER_CRUNCHING = 0x400,
- B_MIDI_PROCESSING = 0x800,
- }
-
- pub enum schduler_mode {
- SCHEDULER_MODE_LOW_LATENCY,
- SCHEDULER_MODE_POWER_SAVING,
- }
-
- // FindDirectory.h
- pub enum path_base_directory {
- B_FIND_PATH_INSTALLATION_LOCATION_DIRECTORY,
- B_FIND_PATH_ADD_ONS_DIRECTORY,
- B_FIND_PATH_APPS_DIRECTORY,
- B_FIND_PATH_BIN_DIRECTORY,
- B_FIND_PATH_BOOT_DIRECTORY,
- B_FIND_PATH_CACHE_DIRECTORY,
- B_FIND_PATH_DATA_DIRECTORY,
- B_FIND_PATH_DEVELOP_DIRECTORY,
- B_FIND_PATH_DEVELOP_LIB_DIRECTORY,
- B_FIND_PATH_DOCUMENTATION_DIRECTORY,
- B_FIND_PATH_ETC_DIRECTORY,
- B_FIND_PATH_FONTS_DIRECTORY,
- B_FIND_PATH_HEADERS_DIRECTORY,
- B_FIND_PATH_LIB_DIRECTORY,
- B_FIND_PATH_LOG_DIRECTORY,
- B_FIND_PATH_MEDIA_NODES_DIRECTORY,
- B_FIND_PATH_PACKAGES_DIRECTORY,
- B_FIND_PATH_PREFERENCES_DIRECTORY,
- B_FIND_PATH_SERVERS_DIRECTORY,
- B_FIND_PATH_SETTINGS_DIRECTORY,
- B_FIND_PATH_SOUNDS_DIRECTORY,
- B_FIND_PATH_SPOOL_DIRECTORY,
- B_FIND_PATH_TRANSLATORS_DIRECTORY,
- B_FIND_PATH_VAR_DIRECTORY,
- B_FIND_PATH_IMAGE_PATH = 1000,
- B_FIND_PATH_PACKAGE_PATH,
- }
-
- pub enum directory_which {
- B_DESKTOP_DIRECTORY = 0,
- B_TRASH_DIRECTORY,
- B_SYSTEM_DIRECTORY = 1000,
- B_SYSTEM_ADDONS_DIRECTORY = 1002,
- B_SYSTEM_BOOT_DIRECTORY,
- B_SYSTEM_FONTS_DIRECTORY,
- B_SYSTEM_LIB_DIRECTORY,
- B_SYSTEM_SERVERS_DIRECTORY,
- B_SYSTEM_APPS_DIRECTORY,
- B_SYSTEM_BIN_DIRECTORY,
- B_SYSTEM_DOCUMENTATION_DIRECTORY = 1010,
- B_SYSTEM_PREFERENCES_DIRECTORY,
- B_SYSTEM_TRANSLATORS_DIRECTORY,
- B_SYSTEM_MEDIA_NODES_DIRECTORY,
- B_SYSTEM_SOUNDS_DIRECTORY,
- B_SYSTEM_DATA_DIRECTORY,
- B_SYSTEM_DEVELOP_DIRECTORY,
- B_SYSTEM_PACKAGES_DIRECTORY,
- B_SYSTEM_HEADERS_DIRECTORY,
- B_SYSTEM_ETC_DIRECTORY = 2008,
- B_SYSTEM_SETTINGS_DIRECTORY = 2010,
- B_SYSTEM_LOG_DIRECTORY = 2012,
- B_SYSTEM_SPOOL_DIRECTORY,
- B_SYSTEM_TEMP_DIRECTORY,
- B_SYSTEM_VAR_DIRECTORY,
- B_SYSTEM_CACHE_DIRECTORY = 2020,
- B_SYSTEM_NONPACKAGED_DIRECTORY = 2023,
- B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY,
- B_SYSTEM_NONPACKAGED_TRANSLATORS_DIRECTORY,
- B_SYSTEM_NONPACKAGED_MEDIA_NODES_DIRECTORY,
- B_SYSTEM_NONPACKAGED_BIN_DIRECTORY,
- B_SYSTEM_NONPACKAGED_DATA_DIRECTORY,
- B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY,
- B_SYSTEM_NONPACKAGED_SOUNDS_DIRECTORY,
- B_SYSTEM_NONPACKAGED_DOCUMENTATION_DIRECTORY,
- B_SYSTEM_NONPACKAGED_LIB_DIRECTORY,
- B_SYSTEM_NONPACKAGED_HEADERS_DIRECTORY,
- B_SYSTEM_NONPACKAGED_DEVELOP_DIRECTORY,
- B_USER_DIRECTORY = 3000,
- B_USER_CONFIG_DIRECTORY,
- B_USER_ADDONS_DIRECTORY,
- B_USER_BOOT_DIRECTORY,
- B_USER_FONTS_DIRECTORY,
- B_USER_LIB_DIRECTORY,
- B_USER_SETTINGS_DIRECTORY,
- B_USER_DESKBAR_DIRECTORY,
- B_USER_PRINTERS_DIRECTORY,
- B_USER_TRANSLATORS_DIRECTORY,
- B_USER_MEDIA_NODES_DIRECTORY,
- B_USER_SOUNDS_DIRECTORY,
- B_USER_DATA_DIRECTORY,
- B_USER_CACHE_DIRECTORY,
- B_USER_PACKAGES_DIRECTORY,
- B_USER_HEADERS_DIRECTORY,
- B_USER_NONPACKAGED_DIRECTORY,
- B_USER_NONPACKAGED_ADDONS_DIRECTORY,
- B_USER_NONPACKAGED_TRANSLATORS_DIRECTORY,
- B_USER_NONPACKAGED_MEDIA_NODES_DIRECTORY,
- B_USER_NONPACKAGED_BIN_DIRECTORY,
- B_USER_NONPACKAGED_DATA_DIRECTORY,
- B_USER_NONPACKAGED_FONTS_DIRECTORY,
- B_USER_NONPACKAGED_SOUNDS_DIRECTORY,
- B_USER_NONPACKAGED_DOCUMENTATION_DIRECTORY,
- B_USER_NONPACKAGED_LIB_DIRECTORY,
- B_USER_NONPACKAGED_HEADERS_DIRECTORY,
- B_USER_NONPACKAGED_DEVELOP_DIRECTORY,
- B_USER_DEVELOP_DIRECTORY,
- B_USER_DOCUMENTATION_DIRECTORY,
- B_USER_SERVERS_DIRECTORY,
- B_USER_APPS_DIRECTORY,
- B_USER_BIN_DIRECTORY,
- B_USER_PREFERENCES_DIRECTORY,
- B_USER_ETC_DIRECTORY,
- B_USER_LOG_DIRECTORY,
- B_USER_SPOOL_DIRECTORY,
- B_USER_VAR_DIRECTORY,
- B_APPS_DIRECTORY = 4000,
- B_PREFERENCES_DIRECTORY,
- B_UTILITIES_DIRECTORY,
- B_PACKAGE_LINKS_DIRECTORY,
- }
-
- // kernel/OS.h
-
- pub enum topology_level_type {
- B_TOPOLOGY_UNKNOWN,
- B_TOPOLOGY_ROOT,
- B_TOPOLOGY_SMT,
- B_TOPOLOGY_CORE,
- B_TOPOLOGY_PACKAGE,
- }
-
- pub enum cpu_platform {
- B_CPU_UNKNOWN,
- B_CPU_x86,
- B_CPU_x86_64,
- B_CPU_PPC,
- B_CPU_PPC_64,
- B_CPU_M68K,
- B_CPU_ARM,
- B_CPU_ARM_64,
- B_CPU_ALPHA,
- B_CPU_MIPS,
- B_CPU_SH,
- B_CPU_SPARC,
- B_CPU_RISC_V
- }
-
- pub enum cpu_vendor {
- B_CPU_VENDOR_UNKNOWN,
- B_CPU_VENDOR_AMD,
- B_CPU_VENDOR_CYRIX,
- B_CPU_VENDOR_IDT,
- B_CPU_VENDOR_INTEL,
- B_CPU_VENDOR_NATIONAL_SEMICONDUCTOR,
- B_CPU_VENDOR_RISE,
- B_CPU_VENDOR_TRANSMETA,
- B_CPU_VENDOR_VIA,
- B_CPU_VENDOR_IBM,
- B_CPU_VENDOR_MOTOROLA,
- B_CPU_VENDOR_NEC,
- B_CPU_VENDOR_HYGON,
- B_CPU_VENDOR_SUN,
- B_CPU_VENDOR_FUJITSU
- }
-}
-
-s! {
- // kernel/OS.h
- pub struct area_info {
- pub area: area_id,
- pub name: [::c_char; B_OS_NAME_LENGTH],
- pub size: usize,
- pub lock: u32,
- pub protection: u32,
- pub team: team_id,
- pub ram_size: u32,
- pub copy_count: u32,
- pub in_count: u32,
- pub out_count: u32,
- pub address: *mut ::c_void
- }
-
- pub struct port_info {
- pub port: port_id,
- pub team: team_id,
- pub name: [::c_char; B_OS_NAME_LENGTH],
- pub capacity: i32,
- pub queue_count: i32,
- pub total_count: i32,
- }
-
- pub struct port_message_info {
- pub size: ::size_t,
- pub sender: ::uid_t,
- pub sender_group: ::gid_t,
- pub sender_team: ::team_id
- }
-
- pub struct team_info {
- pub team: team_id,
- pub thread_count: i32,
- pub image_count: i32,
- pub area_count: i32,
- pub debugger_nub_thread: thread_id,
- pub debugger_nub_port: port_id,
- pub argc: i32,
- pub args: [::c_char; 64],
- pub uid: ::uid_t,
- pub gid: ::gid_t
- }
-
- pub struct sem_info {
- pub sem: sem_id,
- pub team: team_id,
- pub name: [::c_char; B_OS_NAME_LENGTH],
- pub count: i32,
- pub latest_holder: thread_id
- }
-
- pub struct team_usage_info {
- pub user_time: bigtime_t,
- pub kernel_time: bigtime_t
- }
-
- pub struct thread_info {
- pub thread: thread_id,
- pub team: team_id,
- pub name: [::c_char; B_OS_NAME_LENGTH],
- pub state: thread_state,
- pub priority: i32,
- pub sem: sem_id,
- pub user_time: bigtime_t,
- pub kernel_time: bigtime_t,
- pub stack_base: *mut ::c_void,
- pub stack_end: *mut ::c_void
- }
-
- pub struct cpu_info {
- pub active_time: bigtime_t,
- pub enabled: bool,
- pub current_frequency: u64
- }
-
- pub struct system_info {
- pub boot_time: bigtime_t,
- pub cpu_count: u32,
- pub max_pages: u64,
- pub used_pages: u64,
- pub cached_pages: u64,
- pub block_cache_pages: u64,
- pub ignored_pages: u64,
- pub needed_memory: u64,
- pub free_memory: u64,
- pub max_swap_pages: u64,
- pub free_swap_pages: u64,
- pub page_faults: u32,
- pub max_sems: u32,
- pub used_sems: u32,
- pub max_ports: u32,
- pub used_ports: u32,
- pub max_threads: u32,
- pub used_threads: u32,
- pub max_teams: u32,
- pub used_teams: u32,
- pub kernel_name: [::c_char; B_FILE_NAME_LENGTH],
- pub kernel_build_date: [::c_char; B_OS_NAME_LENGTH],
- pub kernel_build_time: [::c_char; B_OS_NAME_LENGTH],
- pub kernel_version: i64,
- pub abi: u32
- }
-
- pub struct object_wait_info {
- pub object: i32,
- pub type_: u16,
- pub events: u16
- }
-
- pub struct cpu_topology_root_info {
- pub platform: cpu_platform,
- }
-
- pub struct cpu_topology_package_info {
- pub vendor: cpu_vendor,
- pub cache_line_size: u32,
- }
-
- pub struct cpu_topology_core_info {
- pub model: u32,
- pub default_frequency: u64,
- }
- // kernel/fs_attr.h
- pub struct attr_info {
- pub type_: u32,
- pub size: ::off_t
- }
-
- // kernel/fs_index.h
- pub struct index_info {
- pub type_: u32,
- pub size: ::off_t,
- pub modification_time: ::time_t,
- pub creation_time: ::time_t,
- pub uid: ::uid_t,
- pub gid: ::gid_t
- }
-
- //kernel/fs_info.h
- pub struct fs_info {
- pub dev: ::dev_t,
- pub root: ::ino_t,
- pub flags: u32,
- pub block_size: ::off_t,
- pub io_size: ::off_t,
- pub total_blocks: ::off_t,
- pub free_blocks: ::off_t,
- pub total_nodes: ::off_t,
- pub free_nodes: ::off_t,
- pub device_name: [::c_char; 128],
- pub volume_name: [::c_char; B_FILE_NAME_LENGTH],
- pub fsh_name: [::c_char; B_OS_NAME_LENGTH]
- }
-
- // kernel/image.h
- pub struct image_info {
- pub id: image_id,
- pub image_type: ::c_int,
- pub sequence: i32,
- pub init_order: i32,
- pub init_routine: extern "C" fn(),
- pub term_routine: extern "C" fn(),
- pub device: ::dev_t,
- pub node: ::ino_t,
- pub name: [::c_char; ::PATH_MAX as usize],
- pub text: *mut ::c_void,
- pub data: *mut ::c_void,
- pub text_size: i32,
- pub data_size: i32,
- pub api_version: i32,
- pub abi: i32
- }
-
- pub struct __c_anonymous_eax_0 {
- pub max_eax: u32,
- pub vendor_id: [::c_char; 12],
- }
-
- pub struct __c_anonymous_eax_1 {
- pub stepping: u32,
- pub model: u32,
- pub family: u32,
- pub tpe: u32,
- __reserved_0: u32,
- pub extended_model: u32,
- pub extended_family: u32,
- __reserved_1: u32,
- pub brand_index: u32,
- pub clflush: u32,
- pub logical_cpus: u32,
- pub apic_id: u32,
- pub features: u32,
- pub extended_features: u32,
- }
-
- pub struct __c_anonymous_eax_2 {
- pub call_num: u8,
- pub cache_descriptors: [u8; 15],
- }
-
- pub struct __c_anonymous_eax_3 {
- __reserved: [u32; 2],
- pub serial_number_high: u32,
- pub serial_number_low: u32,
- }
-
- pub struct __c_anonymous_regs {
- pub eax: u32,
- pub ebx: u32,
- pub edx: u32,
- pub ecx: u32,
- }
-}
-
-s_no_extra_traits! {
- #[cfg(libc_union)]
- pub union cpuid_info {
- pub eax_0: __c_anonymous_eax_0,
- pub eax_1: __c_anonymous_eax_1,
- pub eax_2: __c_anonymous_eax_2,
- pub eax_3: __c_anonymous_eax_3,
- pub as_chars: [::c_char; 16],
- pub regs: __c_anonymous_regs,
- }
-
- #[cfg(libc_union)]
- pub union __c_anonymous_cpu_topology_info_data {
- pub root: cpu_topology_root_info,
- pub package: cpu_topology_package_info,
- pub core: cpu_topology_core_info,
- }
-
- pub struct cpu_topology_node_info {
- pub id: u32,
- pub type_: topology_level_type,
- pub level: u32,
- #[cfg(libc_union)]
- pub data: __c_anonymous_cpu_topology_info_data,
- #[cfg(not(libc_union))]
- pub data: cpu_topology_core_info,
- }
-}
-
-cfg_if! {
- if #[cfg(feature = "extra_traits")] {
- #[cfg(libc_union)]
- impl PartialEq for cpuid_info {
- fn eq(&self, other: &cpuid_info) -> bool {
- unsafe {
- self.eax_0 == other.eax_0
- || self.eax_1 == other.eax_1
- || self.eax_2 == other.eax_2
- || self.eax_3 == other.eax_3
- || self.as_chars == other.as_chars
- || self.regs == other.regs
- }
- }
- }
- #[cfg(libc_union)]
- impl Eq for cpuid_info {}
- #[cfg(libc_union)]
- impl ::fmt::Debug for cpuid_info {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- unsafe {
- f.debug_struct("cpuid_info")
- .field("eax_0", &self.eax_0)
- .field("eax_1", &self.eax_1)
- .field("eax_2", &self.eax_2)
- .field("eax_3", &self.eax_3)
- .field("as_chars", &self.as_chars)
- .field("regs", &self.regs)
- .finish()
- }
- }
- }
-
- #[cfg(libc_union)]
- impl PartialEq for __c_anonymous_cpu_topology_info_data {
- fn eq(&self, other: &__c_anonymous_cpu_topology_info_data) -> bool {
- unsafe {
- self.root == other.root
- || self.package == other.package
- || self.core == other.core
- }
- }
- }
- #[cfg(libc_union)]
- impl Eq for __c_anonymous_cpu_topology_info_data {}
- #[cfg(libc_union)]
- impl ::fmt::Debug for __c_anonymous_cpu_topology_info_data {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- unsafe {
- f.debug_struct("__c_anonymous_cpu_topology_info_data")
- .field("root", &self.root)
- .field("package", &self.package)
- .field("core", &self.core)
- .finish()
- }
- }
- }
-
- impl PartialEq for cpu_topology_node_info {
- fn eq(&self, other: &cpu_topology_node_info) -> bool {
- self.id == other.id
- && self.type_ == other.type_
- && self.level == other.level
- }
- }
-
- impl Eq for cpu_topology_node_info {}
- impl ::fmt::Debug for cpu_topology_node_info {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- f.debug_struct("cpu_topology_node_info")
- .field("id", &self.id)
- .field("type", &self.type_)
- .field("level", &self.level)
- .finish()
- }
- }
- }
-}
-
-// kernel/OS.h
-pub const B_OS_NAME_LENGTH: usize = 32;
-pub const B_PAGE_SIZE: usize = 4096;
-pub const B_INFINITE_TIMEOUT: usize = 9223372036854775807;
-
-pub const B_RELATIVE_TIMEOUT: u32 = 0x8;
-pub const B_ABSOLUTE_TIMEOUT: u32 = 0x10;
-pub const B_TIMEOUT_REAL_TIME_BASE: u32 = 0x40;
-pub const B_ABSOLUTE_REAL_TIME_TIMEOUT: u32 = B_ABSOLUTE_TIMEOUT | B_TIMEOUT_REAL_TIME_BASE;
-
-pub const B_NO_LOCK: u32 = 0;
-pub const B_LAZY_LOCK: u32 = 1;
-pub const B_FULL_LOCK: u32 = 2;
-pub const B_CONTIGUOUS: u32 = 3;
-pub const B_LOMEM: u32 = 4;
-pub const B_32_BIT_FULL_LOCK: u32 = 5;
-pub const B_32_BIT_CONTIGUOUS: u32 = 6;
-
-pub const B_ANY_ADDRESS: u32 = 0;
-pub const B_EXACT_ADDRESS: u32 = 1;
-pub const B_BASE_ADDRESS: u32 = 2;
-pub const B_CLONE_ADDRESS: u32 = 3;
-pub const B_ANY_KERNEL_ADDRESS: u32 = 4;
-pub const B_RANDOMIZED_ANY_ADDRESS: u32 = 6;
-pub const B_RANDOMIZED_BASE_ADDRESS: u32 = 7;
-
-pub const B_READ_AREA: u32 = 1 << 0;
-pub const B_WRITE_AREA: u32 = 1 << 1;
-pub const B_EXECUTE_AREA: u32 = 1 << 2;
-pub const B_STACK_AREA: u32 = 1 << 3;
-pub const B_CLONEABLE_AREA: u32 = 1 << 8;
-
-pub const B_CAN_INTERRUPT: u32 = 0x01;
-pub const B_CHECK_PERMISSION: u32 = 0x04;
-pub const B_KILL_CAN_INTERRUPT: u32 = 0x20;
-pub const B_DO_NOT_RESCHEDULE: u32 = 0x02;
-pub const B_RELEASE_ALL: u32 = 0x08;
-pub const B_RELEASE_IF_WAITING_ONLY: u32 = 0x10;
-
-pub const B_CURRENT_TEAM: team_id = 0;
-pub const B_SYSTEM_TEAM: team_id = 1;
-
-pub const B_TEAM_USAGE_SELF: i32 = 0;
-pub const B_TEAM_USAGE_CHILDREN: i32 = -1;
-
-pub const B_IDLE_PRIORITY: i32 = 0;
-pub const B_LOWEST_ACTIVE_PRIORITY: i32 = 1;
-pub const B_LOW_PRIORITY: i32 = 5;
-pub const B_NORMAL_PRIORITY: i32 = 10;
-pub const B_DISPLAY_PRIORITY: i32 = 15;
-pub const B_URGENT_DISPLAY_PRIORITY: i32 = 20;
-pub const B_REAL_TIME_DISPLAY_PRIORITY: i32 = 100;
-pub const B_URGENT_PRIORITY: i32 = 110;
-pub const B_REAL_TIME_PRIORITY: i32 = 120;
-
-pub const B_SYSTEM_TIMEBASE: i32 = 0;
-pub const B_FIRST_REAL_TIME_PRIORITY: i32 = B_REAL_TIME_DISPLAY_PRIORITY;
-
-pub const B_ONE_SHOT_ABSOLUTE_ALARM: u32 = 1;
-pub const B_ONE_SHOT_RELATIVE_ALARM: u32 = 2;
-pub const B_PERIODIC_ALARM: u32 = 3;
-
-pub const B_OBJECT_TYPE_FD: u16 = 0;
-pub const B_OBJECT_TYPE_SEMAPHORE: u16 = 1;
-pub const B_OBJECT_TYPE_PORT: u16 = 2;
-pub const B_OBJECT_TYPE_THREAD: u16 = 3;
-
-pub const B_EVENT_READ: u16 = 0x0001;
-pub const B_EVENT_WRITE: u16 = 0x0002;
-pub const B_EVENT_ERROR: u16 = 0x0004;
-pub const B_EVENT_PRIORITY_READ: u16 = 0x0008;
-pub const B_EVENT_PRIORITY_WRITE: u16 = 0x0010;
-pub const B_EVENT_HIGH_PRIORITY_READ: u16 = 0x0020;
-pub const B_EVENT_HIGH_PRIORITY_WRITE: u16 = 0x0040;
-pub const B_EVENT_DISCONNECTED: u16 = 0x0080;
-pub const B_EVENT_ACQUIRE_SEMAPHORE: u16 = 0x0001;
-pub const B_EVENT_INVALID: u16 = 0x1000;
-
-// kernel/fs_info.h
-pub const B_FS_IS_READONLY: u32 = 0x00000001;
-pub const B_FS_IS_REMOVABLE: u32 = 0x00000002;
-pub const B_FS_IS_PERSISTENT: u32 = 0x00000004;
-pub const B_FS_IS_SHARED: u32 = 0x00000008;
-pub const B_FS_HAS_MIME: u32 = 0x00010000;
-pub const B_FS_HAS_ATTR: u32 = 0x00020000;
-pub const B_FS_HAS_QUERY: u32 = 0x00040000;
-pub const B_FS_HAS_SELF_HEALING_LINKS: u32 = 0x00080000;
-pub const B_FS_HAS_ALIASES: u32 = 0x00100000;
-pub const B_FS_SUPPORTS_NODE_MONITORING: u32 = 0x00200000;
-pub const B_FS_SUPPORTS_MONITOR_CHILDREN: u32 = 0x00400000;
-
-// kernel/fs_query.h
-pub const B_LIVE_QUERY: u32 = 0x00000001;
-pub const B_QUERY_NON_INDEXED: u32 = 0x00000002;
-
-// kernel/fs_volume.h
-pub const B_MOUNT_READ_ONLY: u32 = 1;
-pub const B_MOUNT_VIRTUAL_DEVICE: u32 = 2;
-pub const B_FORCE_UNMOUNT: u32 = 1;
-
-// kernel/image.h
-pub const B_FLUSH_DCACHE: u32 = 0x0001;
-pub const B_FLUSH_ICACHE: u32 = 0x0004;
-pub const B_INVALIDATE_DCACHE: u32 = 0x0002;
-pub const B_INVALIDATE_ICACHE: u32 = 0x0008;
-
-pub const B_SYMBOL_TYPE_DATA: i32 = 0x1;
-pub const B_SYMBOL_TYPE_TEXT: i32 = 0x2;
-pub const B_SYMBOL_TYPE_ANY: i32 = 0x5;
-
-// storage/StorageDefs.h
-pub const B_DEV_NAME_LENGTH: usize = 128;
-pub const B_FILE_NAME_LENGTH: usize = ::FILENAME_MAX as usize;
-pub const B_PATH_NAME_LENGTH: usize = ::PATH_MAX as usize;
-pub const B_ATTR_NAME_LENGTH: usize = B_FILE_NAME_LENGTH - 1;
-pub const B_MIME_TYPE_LENGTH: usize = B_ATTR_NAME_LENGTH - 15;
-pub const B_MAX_SYMLINKS: usize = 16;
-
-// Haiku open modes in BFile are passed as u32
-pub const B_READ_ONLY: u32 = ::O_RDONLY as u32;
-pub const B_WRITE_ONLY: u32 = ::O_WRONLY as u32;
-pub const B_READ_WRITE: u32 = ::O_RDWR as u32;
-
-pub const B_FAIL_IF_EXISTS: u32 = ::O_EXCL as u32;
-pub const B_CREATE_FILE: u32 = ::O_CREAT as u32;
-pub const B_ERASE_FILE: u32 = ::O_TRUNC as u32;
-pub const B_OPEN_AT_END: u32 = ::O_APPEND as u32;
-
-pub const B_FILE_NODE: u32 = 0x01;
-pub const B_SYMLINK_NODE: u32 = 0x02;
-pub const B_DIRECTORY_NODE: u32 = 0x04;
-pub const B_ANY_NODE: u32 = 0x07;
-
-// support/Errors.h
-pub const B_GENERAL_ERROR_BASE: status_t = core::i32::MIN;
-pub const B_OS_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x1000;
-pub const B_APP_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x2000;
-pub const B_INTERFACE_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x3000;
-pub const B_MEDIA_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x4000;
-pub const B_TRANSLATION_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x4800;
-pub const B_MIDI_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x5000;
-pub const B_STORAGE_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x6000;
-pub const B_POSIX_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x7000;
-pub const B_MAIL_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x8000;
-pub const B_PRINT_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x9000;
-pub const B_DEVICE_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0xa000;
-pub const B_ERRORS_END: status_t = B_GENERAL_ERROR_BASE + 0xffff;
-
-// General errors
-pub const B_NO_MEMORY: status_t = B_GENERAL_ERROR_BASE + 0;
-pub const B_IO_ERROR: status_t = B_GENERAL_ERROR_BASE + 1;
-pub const B_PERMISSION_DENIED: status_t = B_GENERAL_ERROR_BASE + 2;
-pub const B_BAD_INDEX: status_t = B_GENERAL_ERROR_BASE + 3;
-pub const B_BAD_TYPE: status_t = B_GENERAL_ERROR_BASE + 4;
-pub const B_BAD_VALUE: status_t = B_GENERAL_ERROR_BASE + 5;
-pub const B_MISMATCHED_VALUES: status_t = B_GENERAL_ERROR_BASE + 6;
-pub const B_NAME_NOT_FOUND: status_t = B_GENERAL_ERROR_BASE + 7;
-pub const B_NAME_IN_USE: status_t = B_GENERAL_ERROR_BASE + 8;
-pub const B_TIMED_OUT: status_t = B_GENERAL_ERROR_BASE + 9;
-pub const B_INTERRUPTED: status_t = B_GENERAL_ERROR_BASE + 10;
-pub const B_WOULD_BLOCK: status_t = B_GENERAL_ERROR_BASE + 11;
-pub const B_CANCELED: status_t = B_GENERAL_ERROR_BASE + 12;
-pub const B_NO_INIT: status_t = B_GENERAL_ERROR_BASE + 13;
-pub const B_NOT_INITIALIZED: status_t = B_GENERAL_ERROR_BASE + 13;
-pub const B_BUSY: status_t = B_GENERAL_ERROR_BASE + 14;
-pub const B_NOT_ALLOWED: status_t = B_GENERAL_ERROR_BASE + 15;
-pub const B_BAD_DATA: status_t = B_GENERAL_ERROR_BASE + 16;
-pub const B_DONT_DO_THAT: status_t = B_GENERAL_ERROR_BASE + 17;
-
-pub const B_ERROR: status_t = -1;
-pub const B_OK: status_t = 0;
-pub const B_NO_ERROR: status_t = 0;
-
-// Kernel kit errors
-pub const B_BAD_SEM_ID: status_t = B_OS_ERROR_BASE + 0;
-pub const B_NO_MORE_SEMS: status_t = B_OS_ERROR_BASE + 1;
-
-pub const B_BAD_THREAD_ID: status_t = B_OS_ERROR_BASE + 0x100;
-pub const B_NO_MORE_THREADS: status_t = B_OS_ERROR_BASE + 0x101;
-pub const B_BAD_THREAD_STATE: status_t = B_OS_ERROR_BASE + 0x102;
-pub const B_BAD_TEAM_ID: status_t = B_OS_ERROR_BASE + 0x103;
-pub const B_NO_MORE_TEAMS: status_t = B_OS_ERROR_BASE + 0x104;
-
-pub const B_BAD_PORT_ID: status_t = B_OS_ERROR_BASE + 0x200;
-pub const B_NO_MORE_PORTS: status_t = B_OS_ERROR_BASE + 0x201;
-
-pub const B_BAD_IMAGE_ID: status_t = B_OS_ERROR_BASE + 0x300;
-pub const B_BAD_ADDRESS: status_t = B_OS_ERROR_BASE + 0x301;
-pub const B_NOT_AN_EXECUTABLE: status_t = B_OS_ERROR_BASE + 0x302;
-pub const B_MISSING_LIBRARY: status_t = B_OS_ERROR_BASE + 0x303;
-pub const B_MISSING_SYMBOL: status_t = B_OS_ERROR_BASE + 0x304;
-pub const B_UNKNOWN_EXECUTABLE: status_t = B_OS_ERROR_BASE + 0x305;
-pub const B_LEGACY_EXECUTABLE: status_t = B_OS_ERROR_BASE + 0x306;
-
-pub const B_DEBUGGER_ALREADY_INSTALLED: status_t = B_OS_ERROR_BASE + 0x400;
-
-// Application kit errors
-pub const B_BAD_REPLY: status_t = B_APP_ERROR_BASE + 0;
-pub const B_DUPLICATE_REPLY: status_t = B_APP_ERROR_BASE + 1;
-pub const B_MESSAGE_TO_SELF: status_t = B_APP_ERROR_BASE + 2;
-pub const B_BAD_HANDLER: status_t = B_APP_ERROR_BASE + 3;
-pub const B_ALREADY_RUNNING: status_t = B_APP_ERROR_BASE + 4;
-pub const B_LAUNCH_FAILED: status_t = B_APP_ERROR_BASE + 5;
-pub const B_AMBIGUOUS_APP_LAUNCH: status_t = B_APP_ERROR_BASE + 6;
-pub const B_UNKNOWN_MIME_TYPE: status_t = B_APP_ERROR_BASE + 7;
-pub const B_BAD_SCRIPT_SYNTAX: status_t = B_APP_ERROR_BASE + 8;
-pub const B_LAUNCH_FAILED_NO_RESOLVE_LINK: status_t = B_APP_ERROR_BASE + 9;
-pub const B_LAUNCH_FAILED_EXECUTABLE: status_t = B_APP_ERROR_BASE + 10;
-pub const B_LAUNCH_FAILED_APP_NOT_FOUND: status_t = B_APP_ERROR_BASE + 11;
-pub const B_LAUNCH_FAILED_APP_IN_TRASH: status_t = B_APP_ERROR_BASE + 12;
-pub const B_LAUNCH_FAILED_NO_PREFERRED_APP: status_t = B_APP_ERROR_BASE + 13;
-pub const B_LAUNCH_FAILED_FILES_APP_NOT_FOUND: status_t = B_APP_ERROR_BASE + 14;
-pub const B_BAD_MIME_SNIFFER_RULE: status_t = B_APP_ERROR_BASE + 15;
-pub const B_NOT_A_MESSAGE: status_t = B_APP_ERROR_BASE + 16;
-pub const B_SHUTDOWN_CANCELLED: status_t = B_APP_ERROR_BASE + 17;
-pub const B_SHUTTING_DOWN: status_t = B_APP_ERROR_BASE + 18;
-
-// Storage kit errors
-pub const B_FILE_ERROR: status_t = B_STORAGE_ERROR_BASE + 0;
-pub const B_FILE_EXISTS: status_t = B_STORAGE_ERROR_BASE + 2;
-pub const B_ENTRY_NOT_FOUND: status_t = B_STORAGE_ERROR_BASE + 3;
-pub const B_NAME_TOO_LONG: status_t = B_STORAGE_ERROR_BASE + 4;
-pub const B_NOT_A_DIRECTORY: status_t = B_STORAGE_ERROR_BASE + 5;
-pub const B_DIRECTORY_NOT_EMPTY: status_t = B_STORAGE_ERROR_BASE + 6;
-pub const B_DEVICE_FULL: status_t = B_STORAGE_ERROR_BASE + 7;
-pub const B_READ_ONLY_DEVICE: status_t = B_STORAGE_ERROR_BASE + 8;
-pub const B_IS_A_DIRECTORY: status_t = B_STORAGE_ERROR_BASE + 9;
-pub const B_NO_MORE_FDS: status_t = B_STORAGE_ERROR_BASE + 10;
-pub const B_CROSS_DEVICE_LINK: status_t = B_STORAGE_ERROR_BASE + 11;
-pub const B_LINK_LIMIT: status_t = B_STORAGE_ERROR_BASE + 12;
-pub const B_BUSTED_PIPE: status_t = B_STORAGE_ERROR_BASE + 13;
-pub const B_UNSUPPORTED: status_t = B_STORAGE_ERROR_BASE + 14;
-pub const B_PARTITION_TOO_SMALL: status_t = B_STORAGE_ERROR_BASE + 15;
-pub const B_PARTIAL_READ: status_t = B_STORAGE_ERROR_BASE + 16;
-pub const B_PARTIAL_WRITE: status_t = B_STORAGE_ERROR_BASE + 17;
-
-// Mapped posix errors
-pub const B_BUFFER_OVERFLOW: status_t = ::EOVERFLOW;
-pub const B_TOO_MANY_ARGS: status_t = ::E2BIG;
-pub const B_FILE_TOO_LARGE: status_t = ::EFBIG;
-pub const B_RESULT_NOT_REPRESENTABLE: status_t = ::ERANGE;
-pub const B_DEVICE_NOT_FOUND: status_t = ::ENODEV;
-pub const B_NOT_SUPPORTED: status_t = ::EOPNOTSUPP;
-
-// Media kit errors
-pub const B_STREAM_NOT_FOUND: status_t = B_MEDIA_ERROR_BASE + 0;
-pub const B_SERVER_NOT_FOUND: status_t = B_MEDIA_ERROR_BASE + 1;
-pub const B_RESOURCE_NOT_FOUND: status_t = B_MEDIA_ERROR_BASE + 2;
-pub const B_RESOURCE_UNAVAILABLE: status_t = B_MEDIA_ERROR_BASE + 3;
-pub const B_BAD_SUBSCRIBER: status_t = B_MEDIA_ERROR_BASE + 4;
-pub const B_SUBSCRIBER_NOT_ENTERED: status_t = B_MEDIA_ERROR_BASE + 5;
-pub const B_BUFFER_NOT_AVAILABLE: status_t = B_MEDIA_ERROR_BASE + 6;
-pub const B_LAST_BUFFER_ERROR: status_t = B_MEDIA_ERROR_BASE + 7;
-
-pub const B_MEDIA_SYSTEM_FAILURE: status_t = B_MEDIA_ERROR_BASE + 100;
-pub const B_MEDIA_BAD_NODE: status_t = B_MEDIA_ERROR_BASE + 101;
-pub const B_MEDIA_NODE_BUSY: status_t = B_MEDIA_ERROR_BASE + 102;
-pub const B_MEDIA_BAD_FORMAT: status_t = B_MEDIA_ERROR_BASE + 103;
-pub const B_MEDIA_BAD_BUFFER: status_t = B_MEDIA_ERROR_BASE + 104;
-pub const B_MEDIA_TOO_MANY_NODES: status_t = B_MEDIA_ERROR_BASE + 105;
-pub const B_MEDIA_TOO_MANY_BUFFERS: status_t = B_MEDIA_ERROR_BASE + 106;
-pub const B_MEDIA_NODE_ALREADY_EXISTS: status_t = B_MEDIA_ERROR_BASE + 107;
-pub const B_MEDIA_BUFFER_ALREADY_EXISTS: status_t = B_MEDIA_ERROR_BASE + 108;
-pub const B_MEDIA_CANNOT_SEEK: status_t = B_MEDIA_ERROR_BASE + 109;
-pub const B_MEDIA_CANNOT_CHANGE_RUN_MODE: status_t = B_MEDIA_ERROR_BASE + 110;
-pub const B_MEDIA_APP_ALREADY_REGISTERED: status_t = B_MEDIA_ERROR_BASE + 111;
-pub const B_MEDIA_APP_NOT_REGISTERED: status_t = B_MEDIA_ERROR_BASE + 112;
-pub const B_MEDIA_CANNOT_RECLAIM_BUFFERS: status_t = B_MEDIA_ERROR_BASE + 113;
-pub const B_MEDIA_BUFFERS_NOT_RECLAIMED: status_t = B_MEDIA_ERROR_BASE + 114;
-pub const B_MEDIA_TIME_SOURCE_STOPPED: status_t = B_MEDIA_ERROR_BASE + 115;
-pub const B_MEDIA_TIME_SOURCE_BUSY: status_t = B_MEDIA_ERROR_BASE + 116;
-pub const B_MEDIA_BAD_SOURCE: status_t = B_MEDIA_ERROR_BASE + 117;
-pub const B_MEDIA_BAD_DESTINATION: status_t = B_MEDIA_ERROR_BASE + 118;
-pub const B_MEDIA_ALREADY_CONNECTED: status_t = B_MEDIA_ERROR_BASE + 119;
-pub const B_MEDIA_NOT_CONNECTED: status_t = B_MEDIA_ERROR_BASE + 120;
-pub const B_MEDIA_BAD_CLIP_FORMAT: status_t = B_MEDIA_ERROR_BASE + 121;
-pub const B_MEDIA_ADDON_FAILED: status_t = B_MEDIA_ERROR_BASE + 122;
-pub const B_MEDIA_ADDON_DISABLED: status_t = B_MEDIA_ERROR_BASE + 123;
-pub const B_MEDIA_CHANGE_IN_PROGRESS: status_t = B_MEDIA_ERROR_BASE + 124;
-pub const B_MEDIA_STALE_CHANGE_COUNT: status_t = B_MEDIA_ERROR_BASE + 125;
-pub const B_MEDIA_ADDON_RESTRICTED: status_t = B_MEDIA_ERROR_BASE + 126;
-pub const B_MEDIA_NO_HANDLER: status_t = B_MEDIA_ERROR_BASE + 127;
-pub const B_MEDIA_DUPLICATE_FORMAT: status_t = B_MEDIA_ERROR_BASE + 128;
-pub const B_MEDIA_REALTIME_DISABLED: status_t = B_MEDIA_ERROR_BASE + 129;
-pub const B_MEDIA_REALTIME_UNAVAILABLE: status_t = B_MEDIA_ERROR_BASE + 130;
-
-// Mail kit errors
-pub const B_MAIL_NO_DAEMON: status_t = B_MAIL_ERROR_BASE + 0;
-pub const B_MAIL_UNKNOWN_USER: status_t = B_MAIL_ERROR_BASE + 1;
-pub const B_MAIL_WRONG_PASSWORD: status_t = B_MAIL_ERROR_BASE + 2;
-pub const B_MAIL_UNKNOWN_HOST: status_t = B_MAIL_ERROR_BASE + 3;
-pub const B_MAIL_ACCESS_ERROR: status_t = B_MAIL_ERROR_BASE + 4;
-pub const B_MAIL_UNKNOWN_FIELD: status_t = B_MAIL_ERROR_BASE + 5;
-pub const B_MAIL_NO_RECIPIENT: status_t = B_MAIL_ERROR_BASE + 6;
-pub const B_MAIL_INVALID_MAIL: status_t = B_MAIL_ERROR_BASE + 7;
-
-// Print kit errors
-pub const B_NO_PRINT_SERVER: status_t = B_PRINT_ERROR_BASE + 0;
-
-// Device kit errors
-pub const B_DEV_INVALID_IOCTL: status_t = B_DEVICE_ERROR_BASE + 0;
-pub const B_DEV_NO_MEMORY: status_t = B_DEVICE_ERROR_BASE + 1;
-pub const B_DEV_BAD_DRIVE_NUM: status_t = B_DEVICE_ERROR_BASE + 2;
-pub const B_DEV_NO_MEDIA: status_t = B_DEVICE_ERROR_BASE + 3;
-pub const B_DEV_UNREADABLE: status_t = B_DEVICE_ERROR_BASE + 4;
-pub const B_DEV_FORMAT_ERROR: status_t = B_DEVICE_ERROR_BASE + 5;
-pub const B_DEV_TIMEOUT: status_t = B_DEVICE_ERROR_BASE + 6;
-pub const B_DEV_RECALIBRATE_ERROR: status_t = B_DEVICE_ERROR_BASE + 7;
-pub const B_DEV_SEEK_ERROR: status_t = B_DEVICE_ERROR_BASE + 8;
-pub const B_DEV_ID_ERROR: status_t = B_DEVICE_ERROR_BASE + 9;
-pub const B_DEV_READ_ERROR: status_t = B_DEVICE_ERROR_BASE + 10;
-pub const B_DEV_WRITE_ERROR: status_t = B_DEVICE_ERROR_BASE + 11;
-pub const B_DEV_NOT_READY: status_t = B_DEVICE_ERROR_BASE + 12;
-pub const B_DEV_MEDIA_CHANGED: status_t = B_DEVICE_ERROR_BASE + 13;
-pub const B_DEV_MEDIA_CHANGE_REQUESTED: status_t = B_DEVICE_ERROR_BASE + 14;
-pub const B_DEV_RESOURCE_CONFLICT: status_t = B_DEVICE_ERROR_BASE + 15;
-pub const B_DEV_CONFIGURATION_ERROR: status_t = B_DEVICE_ERROR_BASE + 16;
-pub const B_DEV_DISABLED_BY_USER: status_t = B_DEVICE_ERROR_BASE + 17;
-pub const B_DEV_DOOR_OPEN: status_t = B_DEVICE_ERROR_BASE + 18;
-
-pub const B_DEV_INVALID_PIPE: status_t = B_DEVICE_ERROR_BASE + 19;
-pub const B_DEV_CRC_ERROR: status_t = B_DEVICE_ERROR_BASE + 20;
-pub const B_DEV_STALLED: status_t = B_DEVICE_ERROR_BASE + 21;
-pub const B_DEV_BAD_PID: status_t = B_DEVICE_ERROR_BASE + 22;
-pub const B_DEV_UNEXPECTED_PID: status_t = B_DEVICE_ERROR_BASE + 23;
-pub const B_DEV_DATA_OVERRUN: status_t = B_DEVICE_ERROR_BASE + 24;
-pub const B_DEV_DATA_UNDERRUN: status_t = B_DEVICE_ERROR_BASE + 25;
-pub const B_DEV_FIFO_OVERRUN: status_t = B_DEVICE_ERROR_BASE + 26;
-pub const B_DEV_FIFO_UNDERRUN: status_t = B_DEVICE_ERROR_BASE + 27;
-pub const B_DEV_PENDING: status_t = B_DEVICE_ERROR_BASE + 28;
-pub const B_DEV_MULTIPLE_ERRORS: status_t = B_DEVICE_ERROR_BASE + 29;
-pub const B_DEV_TOO_LATE: status_t = B_DEVICE_ERROR_BASE + 30;
-
-// translation kit errors
-pub const B_TRANSLATION_BASE_ERROR: status_t = B_TRANSLATION_ERROR_BASE + 0;
-pub const B_NO_TRANSLATOR: status_t = B_TRANSLATION_ERROR_BASE + 1;
-pub const B_ILLEGAL_DATA: status_t = B_TRANSLATION_ERROR_BASE + 2;
-
-// support/TypeConstants.h
-pub const B_AFFINE_TRANSFORM_TYPE: u32 = haiku_constant!('A', 'M', 'T', 'X');
-pub const B_ALIGNMENT_TYPE: u32 = haiku_constant!('A', 'L', 'G', 'N');
-pub const B_ANY_TYPE: u32 = haiku_constant!('A', 'N', 'Y', 'T');
-pub const B_ATOM_TYPE: u32 = haiku_constant!('A', 'T', 'O', 'M');
-pub const B_ATOMREF_TYPE: u32 = haiku_constant!('A', 'T', 'M', 'R');
-pub const B_BOOL_TYPE: u32 = haiku_constant!('B', 'O', 'O', 'L');
-pub const B_CHAR_TYPE: u32 = haiku_constant!('C', 'H', 'A', 'R');
-pub const B_COLOR_8_BIT_TYPE: u32 = haiku_constant!('C', 'L', 'R', 'B');
-pub const B_DOUBLE_TYPE: u32 = haiku_constant!('D', 'B', 'L', 'E');
-pub const B_FLOAT_TYPE: u32 = haiku_constant!('F', 'L', 'O', 'T');
-pub const B_GRAYSCALE_8_BIT_TYPE: u32 = haiku_constant!('G', 'R', 'Y', 'B');
-pub const B_INT16_TYPE: u32 = haiku_constant!('S', 'H', 'R', 'T');
-pub const B_INT32_TYPE: u32 = haiku_constant!('L', 'O', 'N', 'G');
-pub const B_INT64_TYPE: u32 = haiku_constant!('L', 'L', 'N', 'G');
-pub const B_INT8_TYPE: u32 = haiku_constant!('B', 'Y', 'T', 'E');
-pub const B_LARGE_ICON_TYPE: u32 = haiku_constant!('I', 'C', 'O', 'N');
-pub const B_MEDIA_PARAMETER_GROUP_TYPE: u32 = haiku_constant!('B', 'M', 'C', 'G');
-pub const B_MEDIA_PARAMETER_TYPE: u32 = haiku_constant!('B', 'M', 'C', 'T');
-pub const B_MEDIA_PARAMETER_WEB_TYPE: u32 = haiku_constant!('B', 'M', 'C', 'W');
-pub const B_MESSAGE_TYPE: u32 = haiku_constant!('M', 'S', 'G', 'G');
-pub const B_MESSENGER_TYPE: u32 = haiku_constant!('M', 'S', 'N', 'G');
-pub const B_MIME_TYPE: u32 = haiku_constant!('M', 'I', 'M', 'E');
-pub const B_MINI_ICON_TYPE: u32 = haiku_constant!('M', 'I', 'C', 'N');
-pub const B_MONOCHROME_1_BIT_TYPE: u32 = haiku_constant!('M', 'N', 'O', 'B');
-pub const B_OBJECT_TYPE: u32 = haiku_constant!('O', 'P', 'T', 'R');
-pub const B_OFF_T_TYPE: u32 = haiku_constant!('O', 'F', 'F', 'T');
-pub const B_PATTERN_TYPE: u32 = haiku_constant!('P', 'A', 'T', 'N');
-pub const B_POINTER_TYPE: u32 = haiku_constant!('P', 'N', 'T', 'R');
-pub const B_POINT_TYPE: u32 = haiku_constant!('B', 'P', 'N', 'T');
-pub const B_PROPERTY_INFO_TYPE: u32 = haiku_constant!('S', 'C', 'T', 'D');
-pub const B_RAW_TYPE: u32 = haiku_constant!('R', 'A', 'W', 'T');
-pub const B_RECT_TYPE: u32 = haiku_constant!('R', 'E', 'C', 'T');
-pub const B_REF_TYPE: u32 = haiku_constant!('R', 'R', 'E', 'F');
-pub const B_RGB_32_BIT_TYPE: u32 = haiku_constant!('R', 'G', 'B', 'B');
-pub const B_RGB_COLOR_TYPE: u32 = haiku_constant!('R', 'G', 'B', 'C');
-pub const B_SIZE_TYPE: u32 = haiku_constant!('S', 'I', 'Z', 'E');
-pub const B_SIZE_T_TYPE: u32 = haiku_constant!('S', 'I', 'Z', 'T');
-pub const B_SSIZE_T_TYPE: u32 = haiku_constant!('S', 'S', 'Z', 'T');
-pub const B_STRING_TYPE: u32 = haiku_constant!('C', 'S', 'T', 'R');
-pub const B_STRING_LIST_TYPE: u32 = haiku_constant!('S', 'T', 'R', 'L');
-pub const B_TIME_TYPE: u32 = haiku_constant!('T', 'I', 'M', 'E');
-pub const B_UINT16_TYPE: u32 = haiku_constant!('U', 'S', 'H', 'T');
-pub const B_UINT32_TYPE: u32 = haiku_constant!('U', 'L', 'N', 'G');
-pub const B_UINT64_TYPE: u32 = haiku_constant!('U', 'L', 'L', 'G');
-pub const B_UINT8_TYPE: u32 = haiku_constant!('U', 'B', 'Y', 'T');
-pub const B_VECTOR_ICON_TYPE: u32 = haiku_constant!('V', 'I', 'C', 'N');
-pub const B_XATTR_TYPE: u32 = haiku_constant!('X', 'A', 'T', 'R');
-pub const B_NETWORK_ADDRESS_TYPE: u32 = haiku_constant!('N', 'W', 'A', 'D');
-pub const B_MIME_STRING_TYPE: u32 = haiku_constant!('M', 'I', 'M', 'S');
-pub const B_ASCII_TYPE: u32 = haiku_constant!('T', 'E', 'X', 'T');
-
-extern "C" {
- // kernel/OS.h
- pub fn create_area(
- name: *const ::c_char,
- startAddress: *mut *mut ::c_void,
- addressSpec: u32,
- size: usize,
- lock: u32,
- protection: u32,
- ) -> area_id;
- pub fn clone_area(
- name: *const ::c_char,
- destAddress: *mut *mut ::c_void,
- addressSpec: u32,
- protection: u32,
- source: area_id,
- ) -> area_id;
- pub fn find_area(name: *const ::c_char) -> area_id;
- pub fn area_for(address: *mut ::c_void) -> area_id;
- pub fn delete_area(id: area_id) -> status_t;
- pub fn resize_area(id: area_id, newSize: usize) -> status_t;
- pub fn set_area_protection(id: area_id, newProtection: u32) -> status_t;
- pub fn _get_area_info(id: area_id, areaInfo: *mut area_info, size: usize) -> status_t;
- pub fn _get_next_area_info(
- team: team_id,
- cookie: *mut isize,
- areaInfo: *mut area_info,
- size: usize,
- ) -> status_t;
-
- pub fn create_port(capacity: i32, name: *const ::c_char) -> port_id;
- pub fn find_port(name: *const ::c_char) -> port_id;
- pub fn read_port(
- port: port_id,
- code: *mut i32,
- buffer: *mut ::c_void,
- bufferSize: ::size_t,
- ) -> ::ssize_t;
- pub fn read_port_etc(
- port: port_id,
- code: *mut i32,
- buffer: *mut ::c_void,
- bufferSize: ::size_t,
- flags: u32,
- timeout: bigtime_t,
- ) -> ::ssize_t;
- pub fn write_port(
- port: port_id,
- code: i32,
- buffer: *const ::c_void,
- bufferSize: ::size_t,
- ) -> status_t;
- pub fn write_port_etc(
- port: port_id,
- code: i32,
- buffer: *const ::c_void,
- bufferSize: ::size_t,
- flags: u32,
- timeout: bigtime_t,
- ) -> status_t;
- pub fn close_port(port: port_id) -> status_t;
- pub fn delete_port(port: port_id) -> status_t;
- pub fn port_buffer_size(port: port_id) -> ::ssize_t;
- pub fn port_buffer_size_etc(port: port_id, flags: u32, timeout: bigtime_t) -> ::ssize_t;
- pub fn port_count(port: port_id) -> ::ssize_t;
- pub fn set_port_owner(port: port_id, team: team_id) -> status_t;
-
- pub fn _get_port_info(port: port_id, buf: *mut port_info, portInfoSize: ::size_t) -> status_t;
- pub fn _get_next_port_info(
- port: port_id,
- cookie: *mut i32,
- portInfo: *mut port_info,
- portInfoSize: ::size_t,
- ) -> status_t;
- pub fn _get_port_message_info_etc(
- port: port_id,
- info: *mut port_message_info,
- infoSize: ::size_t,
- flags: u32,
- timeout: bigtime_t,
- ) -> status_t;
-
- pub fn create_sem(count: i32, name: *const ::c_char) -> sem_id;
- pub fn delete_sem(id: sem_id) -> status_t;
- pub fn acquire_sem(id: sem_id) -> status_t;
- pub fn acquire_sem_etc(id: sem_id, count: i32, flags: u32, timeout: bigtime_t) -> status_t;
- pub fn release_sem(id: sem_id) -> status_t;
- pub fn release_sem_etc(id: sem_id, count: i32, flags: u32) -> status_t;
- pub fn switch_sem(semToBeReleased: sem_id, id: sem_id) -> status_t;
- pub fn switch_sem_etc(
- semToBeReleased: sem_id,
- id: sem_id,
- count: i32,
- flags: u32,
- timeout: bigtime_t,
- ) -> status_t;
- pub fn get_sem_count(id: sem_id, threadCount: *mut i32) -> status_t;
- pub fn set_sem_owner(id: sem_id, team: team_id) -> status_t;
- pub fn _get_sem_info(id: sem_id, info: *mut sem_info, infoSize: ::size_t) -> status_t;
- pub fn _get_next_sem_info(
- team: team_id,
- cookie: *mut i32,
- info: *mut sem_info,
- infoSize: ::size_t,
- ) -> status_t;
-
- pub fn kill_team(team: team_id) -> status_t;
- pub fn _get_team_info(team: team_id, info: *mut team_info, size: ::size_t) -> status_t;
- pub fn _get_next_team_info(cookie: *mut i32, info: *mut team_info, size: ::size_t) -> status_t;
-
- pub fn spawn_thread(
- func: thread_func,
- name: *const ::c_char,
- priority: i32,
- data: *mut ::c_void,
- ) -> thread_id;
- pub fn kill_thread(thread: thread_id) -> status_t;
- pub fn resume_thread(thread: thread_id) -> status_t;
- pub fn suspend_thread(thread: thread_id) -> status_t;
-
- pub fn rename_thread(thread: thread_id, newName: *const ::c_char) -> status_t;
- pub fn set_thread_priority(thread: thread_id, newPriority: i32) -> status_t;
- pub fn suggest_thread_priority(
- what: u32,
- period: i32,
- jitter: ::bigtime_t,
- length: ::bigtime_t,
- ) -> i32;
- pub fn estimate_max_scheduling_latency(th: ::thread_id) -> ::bigtime_t;
- pub fn exit_thread(status: status_t);
- pub fn wait_for_thread(thread: thread_id, returnValue: *mut status_t) -> status_t;
- pub fn on_exit_thread(callback: extern "C" fn(*mut ::c_void), data: *mut ::c_void) -> status_t;
-
- pub fn find_thread(name: *const ::c_char) -> thread_id;
-
- pub fn get_scheduler_mode() -> i32;
- pub fn set_scheduler_mode(mode: i32) -> status_t;
-
- pub fn send_data(
- thread: thread_id,
- code: i32,
- buffer: *const ::c_void,
- bufferSize: ::size_t,
- ) -> status_t;
- pub fn receive_data(sender: *mut thread_id, buffer: *mut ::c_void, bufferSize: ::size_t)
- -> i32;
- pub fn has_data(thread: thread_id) -> bool;
-
- pub fn snooze(amount: bigtime_t) -> status_t;
- pub fn snooze_etc(amount: bigtime_t, timeBase: ::c_int, flags: u32) -> status_t;
- pub fn snooze_until(time: bigtime_t, timeBase: ::c_int) -> status_t;
-
- pub fn _get_thread_info(id: thread_id, info: *mut thread_info, size: ::size_t) -> status_t;
- pub fn _get_next_thread_info(
- team: team_id,
- cookie: *mut i32,
- info: *mut thread_info,
- size: ::size_t,
- ) -> status_t;
-
- pub fn get_pthread_thread_id(thread: ::pthread_t) -> thread_id;
-
- pub fn _get_team_usage_info(
- team: team_id,
- who: i32,
- info: *mut team_usage_info,
- size: ::size_t,
- ) -> status_t;
-
- pub fn real_time_clock() -> ::c_ulong;
- pub fn set_real_time_clock(secsSinceJan1st1970: ::c_ulong);
- pub fn real_time_clock_usecs() -> bigtime_t;
- pub fn system_time() -> bigtime_t;
- pub fn system_time_nsecs() -> nanotime_t;
- // set_timezone() is deprecated and a no-op
-
- pub fn set_alarm(when: bigtime_t, flags: u32) -> bigtime_t;
- pub fn debugger(message: *const ::c_char);
- pub fn disable_debugger(state: ::c_int) -> ::c_int;
-
- pub fn get_system_info(info: *mut system_info) -> status_t;
- pub fn _get_cpu_info_etc(
- firstCPU: u32,
- cpuCount: u32,
- info: *mut cpu_info,
- size: ::size_t,
- ) -> status_t;
- pub fn get_cpu_topology_info(
- topologyInfos: *mut cpu_topology_node_info,
- topologyInfoCount: *mut u32,
- ) -> status_t;
- pub fn is_computer_on() -> i32;
- pub fn is_computer_on_fire() -> ::c_double;
- pub fn send_signal(threadID: thread_id, signal: ::c_uint) -> ::c_int;
- pub fn set_signal_stack(base: *mut ::c_void, size: ::size_t);
-
- pub fn wait_for_objects(infos: *mut object_wait_info, numInfos: ::c_int) -> ::ssize_t;
- pub fn wait_for_objects_etc(
- infos: *mut object_wait_info,
- numInfos: ::c_int,
- flags: u32,
- timeout: bigtime_t,
- ) -> ::ssize_t;
-
- // kernel/fs_attr.h
- pub fn fs_read_attr(
- fd: ::c_int,
- attribute: *const ::c_char,
- type_: u32,
- pos: ::off_t,
- buffer: *mut ::c_void,
- readBytes: ::size_t,
- ) -> ::ssize_t;
- pub fn fs_write_attr(
- fd: ::c_int,
- attribute: *const ::c_char,
- type_: u32,
- pos: ::off_t,
- buffer: *const ::c_void,
- writeBytes: ::size_t,
- ) -> ::ssize_t;
- pub fn fs_remove_attr(fd: ::c_int, attribute: *const ::c_char) -> ::c_int;
- pub fn fs_stat_attr(
- fd: ::c_int,
- attribute: *const ::c_char,
- attrInfo: *mut attr_info,
- ) -> ::c_int;
-
- pub fn fs_open_attr(
- path: *const ::c_char,
- attribute: *const ::c_char,
- type_: u32,
- openMode: ::c_int,
- ) -> ::c_int;
- pub fn fs_fopen_attr(
- fd: ::c_int,
- attribute: *const ::c_char,
- type_: u32,
- openMode: ::c_int,
- ) -> ::c_int;
- pub fn fs_close_attr(fd: ::c_int) -> ::c_int;
-
- pub fn fs_open_attr_dir(path: *const ::c_char) -> *mut ::DIR;
- pub fn fs_lopen_attr_dir(path: *const ::c_char) -> *mut ::DIR;
- pub fn fs_fopen_attr_dir(fd: ::c_int) -> *mut ::DIR;
- pub fn fs_close_attr_dir(dir: *mut ::DIR) -> ::c_int;
- pub fn fs_read_attr_dir(dir: *mut ::DIR) -> *mut ::dirent;
- pub fn fs_rewind_attr_dir(dir: *mut ::DIR);
-
- // kernel/fs_image.h
- pub fn fs_create_index(
- device: ::dev_t,
- name: *const ::c_char,
- type_: u32,
- flags: u32,
- ) -> ::c_int;
- pub fn fs_remove_index(device: ::dev_t, name: *const ::c_char) -> ::c_int;
- pub fn fs_stat_index(
- device: ::dev_t,
- name: *const ::c_char,
- indexInfo: *mut index_info,
- ) -> ::c_int;
-
- pub fn fs_open_index_dir(device: ::dev_t) -> *mut ::DIR;
- pub fn fs_close_index_dir(indexDirectory: *mut ::DIR) -> ::c_int;
- pub fn fs_read_index_dir(indexDirectory: *mut ::DIR) -> *mut ::dirent;
- pub fn fs_rewind_index_dir(indexDirectory: *mut ::DIR);
-
- // kernel/fs_info.h
- pub fn dev_for_path(path: *const ::c_char) -> ::dev_t;
- pub fn next_dev(pos: *mut i32) -> ::dev_t;
- pub fn fs_stat_dev(dev: ::dev_t, info: *mut fs_info) -> ::c_int;
-
- // kernel/fs_query.h
- pub fn fs_open_query(device: ::dev_t, query: *const ::c_char, flags: u32) -> *mut ::DIR;
- pub fn fs_open_live_query(
- device: ::dev_t,
- query: *const ::c_char,
- flags: u32,
- port: port_id,
- token: i32,
- ) -> *mut ::DIR;
- pub fn fs_close_query(d: *mut ::DIR) -> ::c_int;
- pub fn fs_read_query(d: *mut ::DIR) -> *mut ::dirent;
- pub fn get_path_for_dirent(dent: *mut ::dirent, buf: *mut ::c_char, len: ::size_t) -> status_t;
-
- // kernel/fs_volume.h
- pub fn fs_mount_volume(
- where_: *const ::c_char,
- device: *const ::c_char,
- filesystem: *const ::c_char,
- flags: u32,
- parameters: *const ::c_char,
- ) -> ::dev_t;
- pub fn fs_unmount_volume(path: *const ::c_char, flags: u32) -> status_t;
-
- // kernel/image.h
- pub fn load_image(
- argc: i32,
- argv: *mut *const ::c_char,
- environ: *mut *const ::c_char,
- ) -> thread_id;
- pub fn load_add_on(path: *const ::c_char) -> image_id;
- pub fn unload_add_on(image: image_id) -> status_t;
- pub fn get_image_symbol(
- image: image_id,
- name: *const ::c_char,
- symbolType: i32,
- symbolLocation: *mut *mut ::c_void,
- ) -> status_t;
- pub fn get_nth_image_symbol(
- image: image_id,
- n: i32,
- nameBuffer: *mut ::c_char,
- nameLength: *mut i32,
- symbolType: *mut i32,
- symbolLocation: *mut *mut ::c_void,
- ) -> status_t;
- pub fn clear_caches(address: *mut ::c_void, length: ::size_t, flags: u32);
- pub fn _get_image_info(image: image_id, info: *mut image_info, size: ::size_t) -> status_t;
- pub fn _get_next_image_info(
- team: team_id,
- cookie: *mut i32,
- info: *mut image_info,
- size: ::size_t,
- ) -> status_t;
- pub fn find_path(
- codePointer: *const ::c_void,
- baseDirectory: path_base_directory,
- subPath: *const ::c_char,
- pathBuffer: *mut ::c_char,
- bufferSize: usize,
- ) -> status_t;
- pub fn find_path_etc(
- codePointer: *const ::c_void,
- dependency: *const ::c_char,
- architecture: *const ::c_char,
- baseDirectory: path_base_directory,
- subPath: *const ::c_char,
- flags: u32,
- pathBuffer: *mut ::c_char,
- bufferSize: ::size_t,
- ) -> status_t;
- pub fn find_path_for_path(
- path: *const ::c_char,
- baseDirectory: path_base_directory,
- subPath: *const ::c_char,
- pathBuffer: *mut ::c_char,
- bufferSize: ::size_t,
- ) -> status_t;
- pub fn find_path_for_path_etc(
- path: *const ::c_char,
- dependency: *const ::c_char,
- architectur: *const ::c_char,
- baseDirectory: path_base_directory,
- subPath: *const ::c_char,
- flags: u32,
- pathBuffer: *mut ::c_char,
- bufferSize: ::size_t,
- ) -> status_t;
- pub fn find_paths(
- baseDirectory: path_base_directory,
- subPath: *const ::c_char,
- _paths: *mut *mut *mut ::c_char,
- pathCount: *mut ::size_t,
- ) -> status_t;
- pub fn find_paths_etc(
- architecture: *const ::c_char,
- baseDirectory: path_base_directory,
- subPath: *const ::c_char,
- flags: u32,
- _paths: *mut *mut *mut ::c_char,
- pathCount: *mut ::size_t,
- ) -> status_t;
- pub fn find_directory(
- which: directory_which,
- volume: ::dev_t,
- createIt: bool,
- pathString: *mut ::c_char,
- length: i32,
- ) -> status_t;
-}
-
-cfg_if! {
- if #[cfg(libc_union)] {
- extern "C" {
- pub fn get_cpuid(info: *mut cpuid_info, eaxRegister: u32, cpuNum: u32) -> status_t;
- }
- }
-}
-
-// The following functions are defined as macros in C/C++
-#[inline]
-pub unsafe fn get_cpu_info(firstCPU: u32, cpuCount: u32, info: *mut cpu_info) -> status_t {
- _get_cpu_info_etc(
- firstCPU,
- cpuCount,
- info,
- core::mem::size_of::<cpu_info>() as ::size_t,
- )
-}
-
-#[inline]
-pub unsafe fn get_area_info(id: area_id, info: *mut area_info) -> status_t {
- _get_area_info(id, info, core::mem::size_of::<area_info>() as usize)
-}
-
-#[inline]
-pub unsafe fn get_next_area_info(
- team: team_id,
- cookie: *mut isize,
- info: *mut area_info,
-) -> status_t {
- _get_next_area_info(
- team,
- cookie,
- info,
- core::mem::size_of::<area_info>() as usize,
- )
-}
-
-#[inline]
-pub unsafe fn get_port_info(port: port_id, buf: *mut port_info) -> status_t {
- _get_port_info(port, buf, core::mem::size_of::<port_info>() as ::size_t)
-}
-
-#[inline]
-pub unsafe fn get_next_port_info(
- port: port_id,
- cookie: *mut i32,
- portInfo: *mut port_info,
-) -> status_t {
- _get_next_port_info(
- port,
- cookie,
- portInfo,
- core::mem::size_of::<port_info>() as ::size_t,
- )
-}
-
-#[inline]
-pub unsafe fn get_port_message_info_etc(
- port: port_id,
- info: *mut port_message_info,
- flags: u32,
- timeout: bigtime_t,
-) -> status_t {
- _get_port_message_info_etc(
- port,
- info,
- core::mem::size_of::<port_message_info>() as ::size_t,
- flags,
- timeout,
- )
-}
-
-#[inline]
-pub unsafe fn get_sem_info(id: sem_id, info: *mut sem_info) -> status_t {
- _get_sem_info(id, info, core::mem::size_of::<sem_info>() as ::size_t)
-}
-
-#[inline]
-pub unsafe fn get_next_sem_info(team: team_id, cookie: *mut i32, info: *mut sem_info) -> status_t {
- _get_next_sem_info(
- team,
- cookie,
- info,
- core::mem::size_of::<sem_info>() as ::size_t,
- )
-}
-
-#[inline]
-pub unsafe fn get_team_info(team: team_id, info: *mut team_info) -> status_t {
- _get_team_info(team, info, core::mem::size_of::<team_info>() as ::size_t)
-}
-
-#[inline]
-pub unsafe fn get_next_team_info(cookie: *mut i32, info: *mut team_info) -> status_t {
- _get_next_team_info(cookie, info, core::mem::size_of::<team_info>() as ::size_t)
-}
-
-#[inline]
-pub unsafe fn get_team_usage_info(team: team_id, who: i32, info: *mut team_usage_info) -> status_t {
- _get_team_usage_info(
- team,
- who,
- info,
- core::mem::size_of::<team_usage_info>() as ::size_t,
- )
-}
-
-#[inline]
-pub unsafe fn get_thread_info(id: thread_id, info: *mut thread_info) -> status_t {
- _get_thread_info(id, info, core::mem::size_of::<thread_info>() as ::size_t)
-}
-
-#[inline]
-pub unsafe fn get_next_thread_info(
- team: team_id,
- cookie: *mut i32,
- info: *mut thread_info,
-) -> status_t {
- _get_next_thread_info(
- team,
- cookie,
- info,
- core::mem::size_of::<thread_info>() as ::size_t,
- )
-}
-
-// kernel/image.h
-#[inline]
-pub unsafe fn get_image_info(image: image_id, info: *mut image_info) -> status_t {
- _get_image_info(image, info, core::mem::size_of::<image_info>() as ::size_t)
-}
-
-#[inline]
-pub unsafe fn get_next_image_info(
- team: team_id,
- cookie: *mut i32,
- info: *mut image_info,
-) -> status_t {
- _get_next_image_info(
- team,
- cookie,
- info,
- core::mem::size_of::<image_info>() as ::size_t,
- )
-}
diff --git a/vendor/libc/src/unix/haiku/x86_64.rs b/vendor/libc/src/unix/haiku/x86_64.rs
deleted file mode 100644
index 1b0462f..0000000
--- a/vendor/libc/src/unix/haiku/x86_64.rs
+++ /dev/null
@@ -1,264 +0,0 @@
-s_no_extra_traits! {
- pub struct fpu_state {
- pub control: ::c_ushort,
- pub status: ::c_ushort,
- pub tag: ::c_ushort,
- pub opcode: ::c_ushort,
- pub rip: ::c_ulong,
- pub rdp: ::c_ulong,
- pub mxcsr: ::c_uint,
- pub mscsr_mask: ::c_uint,
- pub _fpreg: [[::c_uchar; 8]; 16],
- pub _xmm: [[::c_uchar; 16]; 16],
- pub _reserved_416_511: [::c_uchar; 96],
- }
-
- pub struct xstate_hdr {
- pub bv: ::c_ulong,
- pub xcomp_bv: ::c_ulong,
- pub _reserved: [::c_uchar; 48],
- }
-
- pub struct savefpu {
- pub fp_fxsave: fpu_state,
- pub fp_xstate: xstate_hdr,
- pub _fp_ymm: [[::c_uchar; 16]; 16],
- }
-
- pub struct mcontext_t {
- pub rax: ::c_ulong,
- pub rbx: ::c_ulong,
- pub rcx: ::c_ulong,
- pub rdx: ::c_ulong,
- pub rdi: ::c_ulong,
- pub rsi: ::c_ulong,
- pub rbp: ::c_ulong,
- pub r8: ::c_ulong,
- pub r9: ::c_ulong,
- pub r10: ::c_ulong,
- pub r11: ::c_ulong,
- pub r12: ::c_ulong,
- pub r13: ::c_ulong,
- pub r14: ::c_ulong,
- pub r15: ::c_ulong,
- pub rsp: ::c_ulong,
- pub rip: ::c_ulong,
- pub rflags: ::c_ulong,
- pub fpu: savefpu,
- }
-
- pub struct ucontext_t {
- pub uc_link: *mut ucontext_t,
- pub uc_sigmask: ::sigset_t,
- pub uc_stack: ::stack_t,
- pub uc_mcontext: mcontext_t,
- }
-}
-
-cfg_if! {
- if #[cfg(feature = "extra_traits")] {
- impl PartialEq for fpu_state {
- fn eq(&self, other: &fpu_state) -> bool {
- self.control == other.control
- && self.status == other.status
- && self.tag == other.tag
- && self.opcode == other.opcode
- && self.rip == other.rip
- && self.rdp == other.rdp
- && self.mxcsr == other.mxcsr
- && self.mscsr_mask == other.mscsr_mask
- && self._fpreg.iter().zip(other._fpreg.iter()).all(|(a, b)| a == b)
- && self._xmm.iter().zip(other._xmm.iter()).all(|(a, b)| a == b)
- && self._reserved_416_511.
- iter().
- zip(other._reserved_416_511.iter()).
- all(|(a, b)| a == b)
- }
- }
- impl Eq for fpu_state {}
- impl ::fmt::Debug for fpu_state {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- f.debug_struct("fpu_state")
- .field("control", &self.control)
- .field("status", &self.status)
- .field("tag", &self.tag)
- .field("opcode", &self.opcode)
- .field("rip", &self.rip)
- .field("rdp", &self.rdp)
- .field("mxcsr", &self.mxcsr)
- .field("mscsr_mask", &self.mscsr_mask)
- // FIXME: .field("_fpreg", &self._fpreg)
- // FIXME: .field("_xmm", &self._xmm)
- // FIXME: .field("_reserved_416_511", &self._reserved_416_511)
- .finish()
- }
- }
- impl ::hash::Hash for fpu_state {
- fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
- self.control.hash(state);
- self.status.hash(state);
- self.tag.hash(state);
- self.opcode.hash(state);
- self.rip.hash(state);
- self.rdp.hash(state);
- self.mxcsr.hash(state);
- self.mscsr_mask.hash(state);
- self._fpreg.hash(state);
- self._xmm.hash(state);
- self._reserved_416_511.hash(state);
- }
- }
-
- impl PartialEq for xstate_hdr {
- fn eq(&self, other: &xstate_hdr) -> bool {
- self.bv == other.bv
- && self.xcomp_bv == other.xcomp_bv
- && self._reserved.iter().zip(other._reserved.iter()).all(|(a, b)| a == b)
- }
- }
- impl Eq for xstate_hdr {}
- impl ::fmt::Debug for xstate_hdr {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- f.debug_struct("xstate_hdr")
- .field("bv", &self.bv)
- .field("xcomp_bv", &self.xcomp_bv)
- // FIXME: .field("_reserved", &field._reserved)
- .finish()
- }
- }
- impl ::hash::Hash for xstate_hdr {
- fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
- self.bv.hash(state);
- self.xcomp_bv.hash(state);
- self._reserved.hash(state);
- }
- }
-
- impl PartialEq for savefpu {
- fn eq(&self, other: &savefpu) -> bool {
- self.fp_fxsave == other.fp_fxsave
- && self.fp_xstate == other.fp_xstate
- && self._fp_ymm.iter().zip(other._fp_ymm.iter()).all(|(a, b)| a == b)
- }
- }
- impl Eq for savefpu {}
- impl ::fmt::Debug for savefpu {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- f.debug_struct("savefpu")
- .field("fp_fxsave", &self.fp_fxsave)
- .field("fp_xstate", &self.fp_xstate)
- // FIXME: .field("_fp_ymm", &field._fp_ymm)
- .finish()
- }
- }
- impl ::hash::Hash for savefpu {
- fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
- self.fp_fxsave.hash(state);
- self.fp_xstate.hash(state);
- self._fp_ymm.hash(state);
- }
- }
-
- impl PartialEq for mcontext_t {
- fn eq(&self, other: &mcontext_t) -> bool {
- self.rax == other.rax
- && self.rbx == other.rbx
- && self.rbx == other.rbx
- && self.rcx == other.rcx
- && self.rdx == other.rdx
- && self.rdi == other.rdi
- && self.rsi == other.rsi
- && self.r8 == other.r8
- && self.r9 == other.r9
- && self.r10 == other.r10
- && self.r11 == other.r11
- && self.r12 == other.r12
- && self.r13 == other.r13
- && self.r14 == other.r14
- && self.r15 == other.r15
- && self.rsp == other.rsp
- && self.rip == other.rip
- && self.rflags == other.rflags
- && self.fpu == other.fpu
- }
- }
- impl Eq for mcontext_t {}
- impl ::fmt::Debug for mcontext_t {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- f.debug_struct("mcontext_t")
- .field("rax", &self.rax)
- .field("rbx", &self.rbx)
- .field("rcx", &self.rcx)
- .field("rdx", &self.rdx)
- .field("rdi", &self.rdi)
- .field("rsi", &self.rsi)
- .field("rbp", &self.rbp)
- .field("r8", &self.r8)
- .field("r9", &self.r9)
- .field("r10", &self.r10)
- .field("r11", &self.r11)
- .field("r12", &self.r12)
- .field("r13", &self.r13)
- .field("r14", &self.r14)
- .field("r15", &self.r15)
- .field("rsp", &self.rsp)
- .field("rip", &self.rip)
- .field("rflags", &self.rflags)
- .field("fpu", &self.fpu)
- .finish()
-
- }
- }
- impl ::hash::Hash for mcontext_t {
- fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
- self.rax.hash(state);
- self.rbx.hash(state);
- self.rcx.hash(state);
- self.rdx.hash(state);
- self.rdi.hash(state);
- self.rsi.hash(state);
- self.rbp.hash(state);
- self.r8.hash(state);
- self.r9.hash(state);
- self.r10.hash(state);
- self.r11.hash(state);
- self.r12.hash(state);
- self.r13.hash(state);
- self.r14.hash(state);
- self.r15.hash(state);
- self.rsp.hash(state);
- self.rip.hash(state);
- self.rflags.hash(state);
- self.fpu.hash(state);
- }
- }
-
- impl PartialEq for ucontext_t {
- fn eq(&self, other: &ucontext_t) -> bool {
- self.uc_link == other.uc_link
- && self.uc_sigmask == other.uc_sigmask
- && self.uc_stack == other.uc_stack
- && self.uc_mcontext == other.uc_mcontext
- }
- }
- impl Eq for ucontext_t {}
- impl ::fmt::Debug for ucontext_t {
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
- f.debug_struct("ucontext_t")
- .field("uc_link", &self.uc_link)
- .field("uc_sigmask", &self.uc_sigmask)
- .field("uc_stack", &self.uc_stack)
- .field("uc_mcontext", &self.uc_mcontext)
- .finish()
- }
- }
- impl ::hash::Hash for ucontext_t {
- fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
- self.uc_link.hash(state);
- self.uc_sigmask.hash(state);
- self.uc_stack.hash(state);
- self.uc_mcontext.hash(state);
- }
- }
- }
-}