blob: 1a6f7da9cece224f1b6ae9a2c8a1149fe7594603 [file] [log] [blame]
pub type nto_job_t = ::sync_t;
s! {
pub struct syspage_entry_info {
pub entry_off: u16,
pub entry_size: u16,
}
pub struct syspage_array_info {
entry_off: u16,
entry_size: u16,
element_size: u16,
}
pub struct intrspin {
pub value: ::c_uint, // volatile
}
pub struct iov_t {
pub iov_base: *mut ::c_void, // union
pub iov_len: ::size_t,
}
pub struct _itimer {
pub nsec: u64,
pub interval_nsec: u64,
}
pub struct _msg_info64 {
pub nd: u32,
pub srcnd: u32,
pub pid: ::pid_t,
pub tid: i32,
pub chid: i32,
pub scoid: i32,
pub coid: i32,
pub priority: i16,
pub flags: i16,
pub msglen: isize,
pub srcmsglen: isize,
pub dstmsglen: isize,
pub type_id: u32,
reserved: u32,
}
pub struct _cred_info {
pub ruid: ::uid_t,
pub euid: ::uid_t,
pub suid: ::uid_t,
pub rgid: ::gid_t,
pub egid: ::gid_t,
pub sgid: ::gid_t,
pub ngroups: u32,
pub grouplist: [::gid_t; 8],
}
pub struct _client_info {
pub nd: u32,
pub pid: ::pid_t,
pub sid: ::pid_t,
pub flags: u32,
pub cred: ::_cred_info,
}
pub struct _client_able {
pub ability: u32,
pub flags: u32,
pub range_lo: u64,
pub range_hi: u64,
}
pub struct nto_channel_config {
pub event: ::sigevent,
pub num_pulses: ::c_uint,
pub rearm_threshold: ::c_uint,
pub options: ::c_uint,
reserved: [::c_uint; 3],
}
// TODO: The following structures are defined in a header file which doesn't
// appear as part of the default headers found in a standard installation
// of Neutrino 7.1 SDP. Commented out for now.
//pub struct _asyncmsg_put_header {
// pub err: ::c_int,
// pub iov: *mut ::iov_t,
// pub parts: ::c_int,
// pub handle: ::c_uint,
// pub cb: ::Option<
// unsafe extern "C" fn(
// err: ::c_int,
// buf: *mut ::c_void,
// handle: ::c_uint,
// ) -> ::c_int>,
// pub put_hdr_flags: ::c_uint,
//}
//pub struct _asyncmsg_connection_attr {
// pub call_back: ::Option<
// unsafe extern "C" fn(
// err: ::c_int,
// buff: *mut ::c_void,
// handle: ::c_uint,
// ) -> ::c_int>,
// pub buffer_size: ::size_t,
// pub max_num_buffer: ::c_uint,
// pub trigger_num_msg: ::c_uint,
// pub trigger_time: ::_itimer,
// reserve: ::c_uint,
//}
//pub struct _asyncmsg_connection_descriptor {
// pub flags: ::c_uint,
// pub sendq_size: ::c_uint,
// pub sendq_head: ::c_uint,
// pub sendq_tail: ::c_uint,
// pub sendq_free: ::c_uint,
// pub err: ::c_int,
// pub ev: ::sigevent,
// pub num_curmsg: ::c_uint,
// pub ttimer: ::timer_t,
// pub block_con: ::pthread_cond_t,
// pub mu: ::pthread_mutex_t,
// reserved: ::c_uint,
// pub attr: ::_asyncmsg_connection_attr,
// pub reserves: [::c_uint; 3],
// pub sendq: [::_asyncmsg_put_header; 1], // flexarray
//}
pub struct __c_anonymous_struct_ev {
pub event: ::sigevent,
pub coid: ::c_int,
}
pub struct _channel_connect_attr { // union
pub ev: ::__c_anonymous_struct_ev,
}
pub struct _sighandler_info {
pub siginfo: ::siginfo_t,
pub handler: ::Option<unsafe extern "C" fn(value: ::c_int)>,
pub context: *mut ::c_void,
}
pub struct __c_anonymous_struct_time {
pub length: ::c_uint,
pub scale: ::c_uint,
}
pub struct _idle_hook {
pub hook_size: ::c_uint,
pub cmd: ::c_uint,
pub mode: ::c_uint,
pub latency: ::c_uint,
pub next_fire: u64,
pub curr_time: u64,
pub tod_adjust: u64,
pub resp: ::c_uint,
pub time: __c_anonymous_struct_time,
pub trigger: ::sigevent,
pub intrs: *mut ::c_uint,
pub block_stack_size: ::c_uint,
}
pub struct _clockadjust {
pub tick_count: u32,
pub tick_nsec_inc: i32,
}
pub struct qtime_entry {
pub cycles_per_sec: u64,
pub nsec_tod_adjust: u64, // volatile
pub nsec: u64, // volatile
pub nsec_inc: u32,
pub boot_time: u32,
pub adjust: _clockadjust,
pub timer_rate: u32,
pub timer_scale: i32,
pub timer_load: u32,
pub intr: i32,
pub epoch: u32,
pub flags: u32,
pub rr_interval_mul: u32,
pub timer_load_hi: u32,
pub nsec_stable: u64, // volatile
pub timer_load_max: u64,
pub timer_prog_time: u32,
spare: [u32; 7],
}
pub struct _sched_info {
pub priority_min: ::c_int,
pub priority_max: ::c_int,
pub interval: u64,
pub priority_priv: ::c_int,
reserved: [::c_int; 11],
}
pub struct _timer_info {
pub itime: ::_itimer,
pub otime: ::_itimer,
pub flags: u32,
pub tid: i32,
pub notify: i32,
pub clockid: ::clockid_t,
pub overruns: u32,
pub event: ::sigevent, // union
}
pub struct _clockperiod {
pub nsec: u32,
pub fract: i32,
}
}
s_no_extra_traits! {
#[repr(align(8))]
pub struct syspage_entry {
pub size: u16,
pub total_size: u16,
pub type_: u16,
pub num_cpu: u16,
pub system_private: syspage_entry_info,
pub old_asinfo: syspage_entry_info,
pub __mangle_name_to_cause_compilation_errs_meminfo: syspage_entry_info,
pub hwinfo: syspage_entry_info,
pub old_cpuinfo: syspage_entry_info,
pub old_cacheattr: syspage_entry_info,
pub qtime: syspage_entry_info,
pub callout: syspage_entry_info,
pub callin: syspage_entry_info,
pub typed_strings: syspage_entry_info,
pub strings: syspage_entry_info,
pub old_intrinfo: syspage_entry_info,
pub smp: syspage_entry_info,
pub pminfo: syspage_entry_info,
pub old_mdriver: syspage_entry_info,
spare0: [u32; 1],
__reserved: [u8; 160], // anonymous union with architecture dependent structs
pub new_asinfo: syspage_array_info,
pub new_cpuinfo: syspage_array_info,
pub new_cacheattr: syspage_array_info,
pub new_intrinfo: syspage_array_info,
pub new_mdriver: syspage_array_info,
}
}
pub const SYSMGR_PID: u32 = 1;
pub const SYSMGR_CHID: u32 = 1;
pub const SYSMGR_COID: u32 = _NTO_SIDE_CHANNEL;
pub const SYSMGR_HANDLE: u32 = 0;
pub const STATE_DEAD: ::c_int = 0x00;
pub const STATE_RUNNING: ::c_int = 0x01;
pub const STATE_READY: ::c_int = 0x02;
pub const STATE_STOPPED: ::c_int = 0x03;
pub const STATE_SEND: ::c_int = 0x04;
pub const STATE_RECEIVE: ::c_int = 0x05;
pub const STATE_REPLY: ::c_int = 0x06;
pub const STATE_STACK: ::c_int = 0x07;
pub const STATE_WAITTHREAD: ::c_int = 0x08;
pub const STATE_WAITPAGE: ::c_int = 0x09;
pub const STATE_SIGSUSPEND: ::c_int = 0x0a;
pub const STATE_SIGWAITINFO: ::c_int = 0x0b;
pub const STATE_NANOSLEEP: ::c_int = 0x0c;
pub const STATE_MUTEX: ::c_int = 0x0d;
pub const STATE_CONDVAR: ::c_int = 0x0e;
pub const STATE_JOIN: ::c_int = 0x0f;
pub const STATE_INTR: ::c_int = 0x10;
pub const STATE_SEM: ::c_int = 0x11;
pub const STATE_WAITCTX: ::c_int = 0x12;
pub const STATE_NET_SEND: ::c_int = 0x13;
pub const STATE_NET_REPLY: ::c_int = 0x14;
pub const STATE_MAX: ::c_int = 0x18;
pub const _NTO_TIMEOUT_RECEIVE: i32 = 1 << STATE_RECEIVE;
pub const _NTO_TIMEOUT_SEND: i32 = 1 << STATE_SEND;
pub const _NTO_TIMEOUT_REPLY: i32 = 1 << STATE_REPLY;
pub const _NTO_TIMEOUT_SIGSUSPEND: i32 = 1 << STATE_SIGSUSPEND;
pub const _NTO_TIMEOUT_SIGWAITINFO: i32 = 1 << STATE_SIGWAITINFO;
pub const _NTO_TIMEOUT_NANOSLEEP: i32 = 1 << STATE_NANOSLEEP;
pub const _NTO_TIMEOUT_MUTEX: i32 = 1 << STATE_MUTEX;
pub const _NTO_TIMEOUT_CONDVAR: i32 = 1 << STATE_CONDVAR;
pub const _NTO_TIMEOUT_JOIN: i32 = 1 << STATE_JOIN;
pub const _NTO_TIMEOUT_INTR: i32 = 1 << STATE_INTR;
pub const _NTO_TIMEOUT_SEM: i32 = 1 << STATE_SEM;
pub const _NTO_MI_ENDIAN_BIG: u32 = 1;
pub const _NTO_MI_ENDIAN_DIFF: u32 = 2;
pub const _NTO_MI_UNBLOCK_REQ: u32 = 256;
pub const _NTO_MI_NET_CRED_DIRTY: u32 = 512;
pub const _NTO_MI_CONSTRAINED: u32 = 1024;
pub const _NTO_MI_CHROOT: u32 = 2048;
pub const _NTO_MI_BITS_64: u32 = 4096;
pub const _NTO_MI_BITS_DIFF: u32 = 8192;
pub const _NTO_MI_SANDBOX: u32 = 16384;
pub const _NTO_CI_ENDIAN_BIG: u32 = 1;
pub const _NTO_CI_BKGND_PGRP: u32 = 4;
pub const _NTO_CI_ORPHAN_PGRP: u32 = 8;
pub const _NTO_CI_STOPPED: u32 = 128;
pub const _NTO_CI_UNABLE: u32 = 256;
pub const _NTO_CI_TYPE_ID: u32 = 512;
pub const _NTO_CI_CHROOT: u32 = 2048;
pub const _NTO_CI_BITS_64: u32 = 4096;
pub const _NTO_CI_SANDBOX: u32 = 16384;
pub const _NTO_CI_LOADER: u32 = 32768;
pub const _NTO_CI_FULL_GROUPS: u32 = 2147483648;
pub const _NTO_TI_ACTIVE: u32 = 1;
pub const _NTO_TI_ABSOLUTE: u32 = 2;
pub const _NTO_TI_EXPIRED: u32 = 4;
pub const _NTO_TI_TOD_BASED: u32 = 8;
pub const _NTO_TI_TARGET_PROCESS: u32 = 16;
pub const _NTO_TI_REPORT_TOLERANCE: u32 = 32;
pub const _NTO_TI_PRECISE: u32 = 64;
pub const _NTO_TI_TOLERANT: u32 = 128;
pub const _NTO_TI_WAKEUP: u32 = 256;
pub const _NTO_TI_PROCESS_TOLERANT: u32 = 512;
pub const _NTO_TI_HIGH_RESOLUTION: u32 = 1024;
pub const _PULSE_TYPE: u32 = 0;
pub const _PULSE_SUBTYPE: u32 = 0;
pub const _PULSE_CODE_UNBLOCK: i32 = -32;
pub const _PULSE_CODE_DISCONNECT: i32 = -33;
pub const _PULSE_CODE_THREADDEATH: i32 = -34;
pub const _PULSE_CODE_COIDDEATH: i32 = -35;
pub const _PULSE_CODE_NET_ACK: i32 = -36;
pub const _PULSE_CODE_NET_UNBLOCK: i32 = -37;
pub const _PULSE_CODE_NET_DETACH: i32 = -38;
pub const _PULSE_CODE_RESTART: i32 = -39;
pub const _PULSE_CODE_NORESTART: i32 = -40;
pub const _PULSE_CODE_UNBLOCK_RESTART: i32 = -41;
pub const _PULSE_CODE_UNBLOCK_TIMER: i32 = -42;
pub const _PULSE_CODE_MINAVAIL: u32 = 0;
pub const _PULSE_CODE_MAXAVAIL: u32 = 127;
pub const _NTO_HARD_FLAGS_END: u32 = 1;
pub const _NTO_PULSE_IF_UNIQUE: u32 = 4096;
pub const _NTO_PULSE_REPLACE: u32 = 8192;
pub const _NTO_PF_NOCLDSTOP: u32 = 1;
pub const _NTO_PF_LOADING: u32 = 2;
pub const _NTO_PF_TERMING: u32 = 4;
pub const _NTO_PF_ZOMBIE: u32 = 8;
pub const _NTO_PF_NOZOMBIE: u32 = 16;
pub const _NTO_PF_FORKED: u32 = 32;
pub const _NTO_PF_ORPHAN_PGRP: u32 = 64;
pub const _NTO_PF_STOPPED: u32 = 128;
pub const _NTO_PF_DEBUG_STOPPED: u32 = 256;
pub const _NTO_PF_BKGND_PGRP: u32 = 512;
pub const _NTO_PF_NOISYNC: u32 = 1024;
pub const _NTO_PF_CONTINUED: u32 = 2048;
pub const _NTO_PF_CHECK_INTR: u32 = 4096;
pub const _NTO_PF_COREDUMP: u32 = 8192;
pub const _NTO_PF_RING0: u32 = 32768;
pub const _NTO_PF_SLEADER: u32 = 65536;
pub const _NTO_PF_WAITINFO: u32 = 131072;
pub const _NTO_PF_DESTROYALL: u32 = 524288;
pub const _NTO_PF_NOCOREDUMP: u32 = 1048576;
pub const _NTO_PF_WAITDONE: u32 = 4194304;
pub const _NTO_PF_TERM_WAITING: u32 = 8388608;
pub const _NTO_PF_ASLR: u32 = 16777216;
pub const _NTO_PF_EXECED: u32 = 33554432;
pub const _NTO_PF_APP_STOPPED: u32 = 67108864;
pub const _NTO_PF_64BIT: u32 = 134217728;
pub const _NTO_PF_NET: u32 = 268435456;
pub const _NTO_PF_NOLAZYSTACK: u32 = 536870912;
pub const _NTO_PF_NOEXEC_STACK: u32 = 1073741824;
pub const _NTO_PF_LOADER_PERMS: u32 = 2147483648;
pub const _NTO_TF_INTR_PENDING: u32 = 65536;
pub const _NTO_TF_DETACHED: u32 = 131072;
pub const _NTO_TF_SHR_MUTEX: u32 = 262144;
pub const _NTO_TF_SHR_MUTEX_EUID: u32 = 524288;
pub const _NTO_TF_THREADS_HOLD: u32 = 1048576;
pub const _NTO_TF_UNBLOCK_REQ: u32 = 4194304;
pub const _NTO_TF_ALIGN_FAULT: u32 = 16777216;
pub const _NTO_TF_SSTEP: u32 = 33554432;
pub const _NTO_TF_ALLOCED_STACK: u32 = 67108864;
pub const _NTO_TF_NOMULTISIG: u32 = 134217728;
pub const _NTO_TF_LOW_LATENCY: u32 = 268435456;
pub const _NTO_TF_IOPRIV: u32 = 2147483648;
pub const _NTO_TCTL_IO_PRIV: u32 = 1;
pub const _NTO_TCTL_THREADS_HOLD: u32 = 2;
pub const _NTO_TCTL_THREADS_CONT: u32 = 3;
pub const _NTO_TCTL_RUNMASK: u32 = 4;
pub const _NTO_TCTL_ALIGN_FAULT: u32 = 5;
pub const _NTO_TCTL_RUNMASK_GET_AND_SET: u32 = 6;
pub const _NTO_TCTL_PERFCOUNT: u32 = 7;
pub const _NTO_TCTL_ONE_THREAD_HOLD: u32 = 8;
pub const _NTO_TCTL_ONE_THREAD_CONT: u32 = 9;
pub const _NTO_TCTL_RUNMASK_GET_AND_SET_INHERIT: u32 = 10;
pub const _NTO_TCTL_NAME: u32 = 11;
pub const _NTO_TCTL_RCM_GET_AND_SET: u32 = 12;
pub const _NTO_TCTL_SHR_MUTEX: u32 = 13;
pub const _NTO_TCTL_IO: u32 = 14;
pub const _NTO_TCTL_NET_KIF_GET_AND_SET: u32 = 15;
pub const _NTO_TCTL_LOW_LATENCY: u32 = 16;
pub const _NTO_TCTL_ADD_EXIT_EVENT: u32 = 17;
pub const _NTO_TCTL_DEL_EXIT_EVENT: u32 = 18;
pub const _NTO_TCTL_IO_LEVEL: u32 = 19;
pub const _NTO_TCTL_RESERVED: u32 = 2147483648;
pub const _NTO_TCTL_IO_LEVEL_INHERIT: u32 = 1073741824;
pub const _NTO_IO_LEVEL_NONE: u32 = 1;
pub const _NTO_IO_LEVEL_1: u32 = 2;
pub const _NTO_IO_LEVEL_2: u32 = 3;
pub const _NTO_THREAD_NAME_MAX: u32 = 100;
pub const _NTO_CHF_FIXED_PRIORITY: u32 = 1;
pub const _NTO_CHF_UNBLOCK: u32 = 2;
pub const _NTO_CHF_THREAD_DEATH: u32 = 4;
pub const _NTO_CHF_DISCONNECT: u32 = 8;
pub const _NTO_CHF_NET_MSG: u32 = 16;
pub const _NTO_CHF_SENDER_LEN: u32 = 32;
pub const _NTO_CHF_COID_DISCONNECT: u32 = 64;
pub const _NTO_CHF_REPLY_LEN: u32 = 128;
pub const _NTO_CHF_PULSE_POOL: u32 = 256;
pub const _NTO_CHF_ASYNC_NONBLOCK: u32 = 512;
pub const _NTO_CHF_ASYNC: u32 = 1024;
pub const _NTO_CHF_GLOBAL: u32 = 2048;
pub const _NTO_CHF_PRIVATE: u32 = 4096;
pub const _NTO_CHF_MSG_PAUSING: u32 = 8192;
pub const _NTO_CHF_INHERIT_RUNMASK: u32 = 16384;
pub const _NTO_CHF_UNBLOCK_TIMER: u32 = 32768;
pub const _NTO_CHO_CUSTOM_EVENT: u32 = 1;
pub const _NTO_COF_CLOEXEC: u32 = 1;
pub const _NTO_COF_DEAD: u32 = 2;
pub const _NTO_COF_NOSHARE: u32 = 64;
pub const _NTO_COF_NETCON: u32 = 128;
pub const _NTO_COF_NONBLOCK: u32 = 256;
pub const _NTO_COF_ASYNC: u32 = 512;
pub const _NTO_COF_GLOBAL: u32 = 1024;
pub const _NTO_COF_NOEVENT: u32 = 2048;
pub const _NTO_COF_INSECURE: u32 = 4096;
pub const _NTO_COF_REG_EVENTS: u32 = 8192;
pub const _NTO_COF_UNREG_EVENTS: u32 = 16384;
pub const _NTO_COF_MASK: u32 = 65535;
pub const _NTO_SIDE_CHANNEL: u32 = 1073741824;
pub const _NTO_CONNECTION_SCOID: u32 = 65536;
pub const _NTO_GLOBAL_CHANNEL: u32 = 1073741824;
pub const _NTO_TIMEOUT_MASK: u32 = (1 << STATE_MAX) - 1;
pub const _NTO_TIMEOUT_ACTIVE: u32 = 1 << STATE_MAX;
pub const _NTO_TIMEOUT_IMMEDIATE: u32 = 1 << (STATE_MAX + 1);
pub const _NTO_IC_LATENCY: u32 = 0;
pub const _NTO_INTR_FLAGS_END: u32 = 1;
pub const _NTO_INTR_FLAGS_NO_UNMASK: u32 = 2;
pub const _NTO_INTR_FLAGS_PROCESS: u32 = 4;
pub const _NTO_INTR_FLAGS_TRK_MSK: u32 = 8;
pub const _NTO_INTR_FLAGS_ARRAY: u32 = 16;
pub const _NTO_INTR_FLAGS_EXCLUSIVE: u32 = 32;
pub const _NTO_INTR_FLAGS_FPU: u32 = 64;
pub const _NTO_INTR_CLASS_EXTERNAL: u32 = 0;
pub const _NTO_INTR_CLASS_SYNTHETIC: u32 = 2147418112;
pub const _NTO_INTR_SPARE: u32 = 2147483647;
pub const _NTO_HOOK_IDLE: u32 = 2147418113;
pub const _NTO_HOOK_OVERDRIVE: u32 = 2147418114;
pub const _NTO_HOOK_LAST: u32 = 2147418114;
pub const _NTO_HOOK_IDLE2_FLAG: u32 = 32768;
pub const _NTO_IH_CMD_SLEEP_SETUP: u32 = 1;
pub const _NTO_IH_CMD_SLEEP_BLOCK: u32 = 2;
pub const _NTO_IH_CMD_SLEEP_WAKEUP: u32 = 4;
pub const _NTO_IH_CMD_SLEEP_ONLINE: u32 = 8;
pub const _NTO_IH_RESP_NEEDS_BLOCK: u32 = 1;
pub const _NTO_IH_RESP_NEEDS_WAKEUP: u32 = 2;
pub const _NTO_IH_RESP_NEEDS_ONLINE: u32 = 4;
pub const _NTO_IH_RESP_SYNC_TIME: u32 = 16;
pub const _NTO_IH_RESP_SYNC_TLB: u32 = 32;
pub const _NTO_IH_RESP_SUGGEST_OFFLINE: u32 = 256;
pub const _NTO_IH_RESP_SLEEP_MODE_REACHED: u32 = 512;
pub const _NTO_IH_RESP_DELIVER_INTRS: u32 = 1024;
pub const _NTO_READIOV_SEND: u32 = 0;
pub const _NTO_READIOV_REPLY: u32 = 1;
pub const _NTO_KEYDATA_VTID: u32 = 2147483648;
pub const _NTO_KEYDATA_PATHSIGN: u32 = 32768;
pub const _NTO_KEYDATA_OP_MASK: u32 = 255;
pub const _NTO_KEYDATA_VERIFY: u32 = 0;
pub const _NTO_KEYDATA_CALCULATE: u32 = 1;
pub const _NTO_KEYDATA_CALCULATE_REUSE: u32 = 2;
pub const _NTO_KEYDATA_PATHSIGN_VERIFY: u32 = 32768;
pub const _NTO_KEYDATA_PATHSIGN_CALCULATE: u32 = 32769;
pub const _NTO_KEYDATA_PATHSIGN_CALCULATE_REUSE: u32 = 32770;
pub const _NTO_SCTL_SETPRIOCEILING: u32 = 1;
pub const _NTO_SCTL_GETPRIOCEILING: u32 = 2;
pub const _NTO_SCTL_SETEVENT: u32 = 3;
pub const _NTO_SCTL_MUTEX_WAKEUP: u32 = 4;
pub const _NTO_SCTL_MUTEX_CONSISTENT: u32 = 5;
pub const _NTO_SCTL_SEM_VALUE: u32 = 6;
pub const _NTO_CLIENTINFO_GETGROUPS: u32 = 1;
pub const _NTO_CLIENTINFO_GETTYPEID: u32 = 2;
extern "C" {
pub fn ChannelCreate(__flags: ::c_uint) -> ::c_int;
pub fn ChannelCreate_r(__flags: ::c_uint) -> ::c_int;
pub fn ChannelCreatePulsePool(
__flags: ::c_uint,
__config: *const nto_channel_config,
) -> ::c_int;
pub fn ChannelCreateExt(
__flags: ::c_uint,
__mode: ::mode_t,
__bufsize: usize,
__maxnumbuf: ::c_uint,
__ev: *const ::sigevent,
__cred: *mut _cred_info,
) -> ::c_int;
pub fn ChannelDestroy(__chid: ::c_int) -> ::c_int;
pub fn ChannelDestroy_r(__chid: ::c_int) -> ::c_int;
pub fn ConnectAttach(
__nd: u32,
__pid: ::pid_t,
__chid: ::c_int,
__index: ::c_uint,
__flags: ::c_int,
) -> ::c_int;
pub fn ConnectAttach_r(
__nd: u32,
__pid: ::pid_t,
__chid: ::c_int,
__index: ::c_uint,
__flags: ::c_int,
) -> ::c_int;
// TODO: The following function uses a structure defined in a header file
// which doesn't appear as part of the default headers found in a
// standard installation of Neutrino 7.1 SDP. Commented out for now.
//pub fn ConnectAttachExt(
// __nd: u32,
// __pid: ::pid_t,
// __chid: ::c_int,
// __index: ::c_uint,
// __flags: ::c_int,
// __cd: *mut _asyncmsg_connection_descriptor,
//) -> ::c_int;
pub fn ConnectDetach(__coid: ::c_int) -> ::c_int;
pub fn ConnectDetach_r(__coid: ::c_int) -> ::c_int;
pub fn ConnectServerInfo(__pid: ::pid_t, __coid: ::c_int, __info: *mut _msg_info64) -> ::c_int;
pub fn ConnectServerInfo_r(
__pid: ::pid_t,
__coid: ::c_int,
__info: *mut _msg_info64,
) -> ::c_int;
pub fn ConnectClientInfoExtraArgs(
__scoid: ::c_int,
__info_pp: *mut _client_info,
__ngroups: ::c_int,
__abilities: *mut _client_able,
__nable: ::c_int,
__type_id: *mut ::c_uint,
) -> ::c_int;
pub fn ConnectClientInfoExtraArgs_r(
__scoid: ::c_int,
__info_pp: *mut _client_info,
__ngroups: ::c_int,
__abilities: *mut _client_able,
__nable: ::c_int,
__type_id: *mut ::c_uint,
) -> ::c_int;
pub fn ConnectClientInfo(
__scoid: ::c_int,
__info: *mut _client_info,
__ngroups: ::c_int,
) -> ::c_int;
pub fn ConnectClientInfo_r(
__scoid: ::c_int,
__info: *mut _client_info,
__ngroups: ::c_int,
) -> ::c_int;
pub fn ConnectClientInfoExt(
__scoid: ::c_int,
__info_pp: *mut *mut _client_info,
flags: ::c_int,
) -> ::c_int;
pub fn ClientInfoExtFree(__info_pp: *mut *mut _client_info) -> ::c_int;
pub fn ConnectClientInfoAble(
__scoid: ::c_int,
__info_pp: *mut *mut _client_info,
flags: ::c_int,
abilities: *mut _client_able,
nable: ::c_int,
) -> ::c_int;
pub fn ConnectFlags(
__pid: ::pid_t,
__coid: ::c_int,
__mask: ::c_uint,
__bits: ::c_uint,
) -> ::c_int;
pub fn ConnectFlags_r(
__pid: ::pid_t,
__coid: ::c_int,
__mask: ::c_uint,
__bits: ::c_uint,
) -> ::c_int;
pub fn ChannelConnectAttr(
__id: ::c_uint,
__old_attr: *mut _channel_connect_attr,
__new_attr: *mut _channel_connect_attr,
__flags: ::c_uint,
) -> ::c_int;
pub fn MsgSend(
__coid: ::c_int,
__smsg: *const ::c_void,
__sbytes: usize,
__rmsg: *mut ::c_void,
__rbytes: usize,
) -> ::c_long;
pub fn MsgSend_r(
__coid: ::c_int,
__smsg: *const ::c_void,
__sbytes: usize,
__rmsg: *mut ::c_void,
__rbytes: usize,
) -> ::c_long;
pub fn MsgSendnc(
__coid: ::c_int,
__smsg: *const ::c_void,
__sbytes: usize,
__rmsg: *mut ::c_void,
__rbytes: usize,
) -> ::c_long;
pub fn MsgSendnc_r(
__coid: ::c_int,
__smsg: *const ::c_void,
__sbytes: usize,
__rmsg: *mut ::c_void,
__rbytes: usize,
) -> ::c_long;
pub fn MsgSendsv(
__coid: ::c_int,
__smsg: *const ::c_void,
__sbytes: usize,
__riov: *const ::iovec,
__rparts: usize,
) -> ::c_long;
pub fn MsgSendsv_r(
__coid: ::c_int,
__smsg: *const ::c_void,
__sbytes: usize,
__riov: *const ::iovec,
__rparts: usize,
) -> ::c_long;
pub fn MsgSendsvnc(
__coid: ::c_int,
__smsg: *const ::c_void,
__sbytes: usize,
__riov: *const ::iovec,
__rparts: usize,
) -> ::c_long;
pub fn MsgSendsvnc_r(
__coid: ::c_int,
__smsg: *const ::c_void,
__sbytes: usize,
__riov: *const ::iovec,
__rparts: usize,
) -> ::c_long;
pub fn MsgSendvs(
__coid: ::c_int,
__siov: *const ::iovec,
__sparts: usize,
__rmsg: *mut ::c_void,
__rbytes: usize,
) -> ::c_long;
pub fn MsgSendvs_r(
__coid: ::c_int,
__siov: *const ::iovec,
__sparts: usize,
__rmsg: *mut ::c_void,
__rbytes: usize,
) -> ::c_long;
pub fn MsgSendvsnc(
__coid: ::c_int,
__siov: *const ::iovec,
__sparts: usize,
__rmsg: *mut ::c_void,
__rbytes: usize,
) -> ::c_long;
pub fn MsgSendvsnc_r(
__coid: ::c_int,
__siov: *const ::iovec,
__sparts: usize,
__rmsg: *mut ::c_void,
__rbytes: usize,
) -> ::c_long;
pub fn MsgSendv(
__coid: ::c_int,
__siov: *const ::iovec,
__sparts: usize,
__riov: *const ::iovec,
__rparts: usize,
) -> ::c_long;
pub fn MsgSendv_r(
__coid: ::c_int,
__siov: *const ::iovec,
__sparts: usize,
__riov: *const ::iovec,
__rparts: usize,
) -> ::c_long;
pub fn MsgSendvnc(
__coid: ::c_int,
__siov: *const ::iovec,
__sparts: usize,
__riov: *const ::iovec,
__rparts: usize,
) -> ::c_long;
pub fn MsgSendvnc_r(
__coid: ::c_int,
__siov: *const ::iovec,
__sparts: usize,
__riov: *const ::iovec,
__rparts: usize,
) -> ::c_long;
pub fn MsgReceive(
__chid: ::c_int,
__msg: *mut ::c_void,
__bytes: usize,
__info: *mut _msg_info64,
) -> ::c_int;
pub fn MsgReceive_r(
__chid: ::c_int,
__msg: *mut ::c_void,
__bytes: usize,
__info: *mut _msg_info64,
) -> ::c_int;
pub fn MsgReceivev(
__chid: ::c_int,
__iov: *const ::iovec,
__parts: usize,
__info: *mut _msg_info64,
) -> ::c_int;
pub fn MsgReceivev_r(
__chid: ::c_int,
__iov: *const ::iovec,
__parts: usize,
__info: *mut _msg_info64,
) -> ::c_int;
pub fn MsgReceivePulse(
__chid: ::c_int,
__pulse: *mut ::c_void,
__bytes: usize,
__info: *mut _msg_info64,
) -> ::c_int;
pub fn MsgReceivePulse_r(
__chid: ::c_int,
__pulse: *mut ::c_void,
__bytes: usize,
__info: *mut _msg_info64,
) -> ::c_int;
pub fn MsgReceivePulsev(
__chid: ::c_int,
__iov: *const ::iovec,
__parts: usize,
__info: *mut _msg_info64,
) -> ::c_int;
pub fn MsgReceivePulsev_r(
__chid: ::c_int,
__iov: *const ::iovec,
__parts: usize,
__info: *mut _msg_info64,
) -> ::c_int;
pub fn MsgReply(
__rcvid: ::c_int,
__status: ::c_long,
__msg: *const ::c_void,
__bytes: usize,
) -> ::c_int;
pub fn MsgReply_r(
__rcvid: ::c_int,
__status: ::c_long,
__msg: *const ::c_void,
__bytes: usize,
) -> ::c_int;
pub fn MsgReplyv(
__rcvid: ::c_int,
__status: ::c_long,
__iov: *const ::iovec,
__parts: usize,
) -> ::c_int;
pub fn MsgReplyv_r(
__rcvid: ::c_int,
__status: ::c_long,
__iov: *const ::iovec,
__parts: usize,
) -> ::c_int;
pub fn MsgReadiov(
__rcvid: ::c_int,
__iov: *const ::iovec,
__parts: usize,
__offset: usize,
__flags: ::c_int,
) -> isize;
pub fn MsgReadiov_r(
__rcvid: ::c_int,
__iov: *const ::iovec,
__parts: usize,
__offset: usize,
__flags: ::c_int,
) -> isize;
pub fn MsgRead(
__rcvid: ::c_int,
__msg: *mut ::c_void,
__bytes: usize,
__offset: usize,
) -> isize;
pub fn MsgRead_r(
__rcvid: ::c_int,
__msg: *mut ::c_void,
__bytes: usize,
__offset: usize,
) -> isize;
pub fn MsgReadv(
__rcvid: ::c_int,
__iov: *const ::iovec,
__parts: usize,
__offset: usize,
) -> isize;
pub fn MsgReadv_r(
__rcvid: ::c_int,
__iov: *const ::iovec,
__parts: usize,
__offset: usize,
) -> isize;
pub fn MsgWrite(
__rcvid: ::c_int,
__msg: *const ::c_void,
__bytes: usize,
__offset: usize,
) -> isize;
pub fn MsgWrite_r(
__rcvid: ::c_int,
__msg: *const ::c_void,
__bytes: usize,
__offset: usize,
) -> isize;
pub fn MsgWritev(
__rcvid: ::c_int,
__iov: *const ::iovec,
__parts: usize,
__offset: usize,
) -> isize;
pub fn MsgWritev_r(
__rcvid: ::c_int,
__iov: *const ::iovec,
__parts: usize,
__offset: usize,
) -> isize;
pub fn MsgSendPulse(
__coid: ::c_int,
__priority: ::c_int,
__code: ::c_int,
__value: ::c_int,
) -> ::c_int;
pub fn MsgSendPulse_r(
__coid: ::c_int,
__priority: ::c_int,
__code: ::c_int,
__value: ::c_int,
) -> ::c_int;
pub fn MsgSendPulsePtr(
__coid: ::c_int,
__priority: ::c_int,
__code: ::c_int,
__value: *mut ::c_void,
) -> ::c_int;
pub fn MsgSendPulsePtr_r(
__coid: ::c_int,
__priority: ::c_int,
__code: ::c_int,
__value: *mut ::c_void,
) -> ::c_int;
pub fn MsgDeliverEvent(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int;
pub fn MsgDeliverEvent_r(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int;
pub fn MsgVerifyEvent(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int;
pub fn MsgVerifyEvent_r(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int;
pub fn MsgRegisterEvent(__event: *mut ::sigevent, __coid: ::c_int) -> ::c_int;
pub fn MsgRegisterEvent_r(__event: *mut ::sigevent, __coid: ::c_int) -> ::c_int;
pub fn MsgUnregisterEvent(__event: *const ::sigevent) -> ::c_int;
pub fn MsgUnregisterEvent_r(__event: *const ::sigevent) -> ::c_int;
pub fn MsgInfo(__rcvid: ::c_int, __info: *mut _msg_info64) -> ::c_int;
pub fn MsgInfo_r(__rcvid: ::c_int, __info: *mut _msg_info64) -> ::c_int;
pub fn MsgKeyData(
__rcvid: ::c_int,
__oper: ::c_int,
__key: u32,
__newkey: *mut u32,
__iov: *const ::iovec,
__parts: ::c_int,
) -> ::c_int;
pub fn MsgKeyData_r(
__rcvid: ::c_int,
__oper: ::c_int,
__key: u32,
__newkey: *mut u32,
__iov: *const ::iovec,
__parts: ::c_int,
) -> ::c_int;
pub fn MsgError(__rcvid: ::c_int, __err: ::c_int) -> ::c_int;
pub fn MsgError_r(__rcvid: ::c_int, __err: ::c_int) -> ::c_int;
pub fn MsgCurrent(__rcvid: ::c_int) -> ::c_int;
pub fn MsgCurrent_r(__rcvid: ::c_int) -> ::c_int;
pub fn MsgSendAsyncGbl(
__coid: ::c_int,
__smsg: *const ::c_void,
__sbytes: usize,
__msg_prio: ::c_uint,
) -> ::c_int;
pub fn MsgSendAsync(__coid: ::c_int) -> ::c_int;
pub fn MsgReceiveAsyncGbl(
__chid: ::c_int,
__rmsg: *mut ::c_void,
__rbytes: usize,
__info: *mut _msg_info64,
__coid: ::c_int,
) -> ::c_int;
pub fn MsgReceiveAsync(__chid: ::c_int, __iov: *const ::iovec, __parts: ::c_uint) -> ::c_int;
pub fn MsgPause(__rcvid: ::c_int, __cookie: ::c_uint) -> ::c_int;
pub fn MsgPause_r(__rcvid: ::c_int, __cookie: ::c_uint) -> ::c_int;
pub fn SignalKill(
__nd: u32,
__pid: ::pid_t,
__tid: ::c_int,
__signo: ::c_int,
__code: ::c_int,
__value: ::c_int,
) -> ::c_int;
pub fn SignalKill_r(
__nd: u32,
__pid: ::pid_t,
__tid: ::c_int,
__signo: ::c_int,
__code: ::c_int,
__value: ::c_int,
) -> ::c_int;
pub fn SignalKillSigval(
__nd: u32,
__pid: ::pid_t,
__tid: ::c_int,
__signo: ::c_int,
__code: ::c_int,
__value: *const ::sigval,
) -> ::c_int;
pub fn SignalKillSigval_r(
__nd: u32,
__pid: ::pid_t,
__tid: ::c_int,
__signo: ::c_int,
__code: ::c_int,
__value: *const ::sigval,
) -> ::c_int;
pub fn SignalReturn(__info: *mut _sighandler_info) -> ::c_int;
pub fn SignalFault(__sigcode: ::c_uint, __regs: *mut ::c_void, __refaddr: usize) -> ::c_int;
pub fn SignalAction(
__pid: ::pid_t,
__sigstub: unsafe extern "C" fn(),
__signo: ::c_int,
__act: *const ::sigaction,
__oact: *mut ::sigaction,
) -> ::c_int;
pub fn SignalAction_r(
__pid: ::pid_t,
__sigstub: unsafe extern "C" fn(),
__signo: ::c_int,
__act: *const ::sigaction,
__oact: *mut ::sigaction,
) -> ::c_int;
pub fn SignalProcmask(
__pid: ::pid_t,
__tid: ::c_int,
__how: ::c_int,
__set: *const ::sigset_t,
__oldset: *mut ::sigset_t,
) -> ::c_int;
pub fn SignalProcmask_r(
__pid: ::pid_t,
__tid: ::c_int,
__how: ::c_int,
__set: *const ::sigset_t,
__oldset: *mut ::sigset_t,
) -> ::c_int;
pub fn SignalSuspend(__set: *const ::sigset_t) -> ::c_int;
pub fn SignalSuspend_r(__set: *const ::sigset_t) -> ::c_int;
pub fn SignalWaitinfo(__set: *const ::sigset_t, __info: *mut ::siginfo_t) -> ::c_int;
pub fn SignalWaitinfo_r(__set: *const ::sigset_t, __info: *mut ::siginfo_t) -> ::c_int;
pub fn SignalWaitinfoMask(
__set: *const ::sigset_t,
__info: *mut ::siginfo_t,
__mask: *const ::sigset_t,
) -> ::c_int;
pub fn SignalWaitinfoMask_r(
__set: *const ::sigset_t,
__info: *mut ::siginfo_t,
__mask: *const ::sigset_t,
) -> ::c_int;
pub fn ThreadCreate(
__pid: ::pid_t,
__func: unsafe extern "C" fn(__arg: *mut ::c_void) -> *mut ::c_void,
__arg: *mut ::c_void,
__attr: *const ::_thread_attr,
) -> ::c_int;
pub fn ThreadCreate_r(
__pid: ::pid_t,
__func: unsafe extern "C" fn(__arg: *mut ::c_void) -> *mut ::c_void,
__arg: *mut ::c_void,
__attr: *const ::_thread_attr,
) -> ::c_int;
pub fn ThreadDestroy(__tid: ::c_int, __priority: ::c_int, __status: *mut ::c_void) -> ::c_int;
pub fn ThreadDestroy_r(__tid: ::c_int, __priority: ::c_int, __status: *mut ::c_void)
-> ::c_int;
pub fn ThreadDetach(__tid: ::c_int) -> ::c_int;
pub fn ThreadDetach_r(__tid: ::c_int) -> ::c_int;
pub fn ThreadJoin(__tid: ::c_int, __status: *mut *mut ::c_void) -> ::c_int;
pub fn ThreadJoin_r(__tid: ::c_int, __status: *mut *mut ::c_void) -> ::c_int;
pub fn ThreadCancel(__tid: ::c_int, __canstub: unsafe extern "C" fn()) -> ::c_int;
pub fn ThreadCancel_r(__tid: ::c_int, __canstub: unsafe extern "C" fn()) -> ::c_int;
pub fn ThreadCtl(__cmd: ::c_int, __data: *mut ::c_void) -> ::c_int;
pub fn ThreadCtl_r(__cmd: ::c_int, __data: *mut ::c_void) -> ::c_int;
pub fn ThreadCtlExt(
__pid: ::pid_t,
__tid: ::c_int,
__cmd: ::c_int,
__data: *mut ::c_void,
) -> ::c_int;
pub fn ThreadCtlExt_r(
__pid: ::pid_t,
__tid: ::c_int,
__cmd: ::c_int,
__data: *mut ::c_void,
) -> ::c_int;
pub fn InterruptHookTrace(
__handler: ::Option<unsafe extern "C" fn(arg1: ::c_int) -> *const ::sigevent>,
__flags: ::c_uint,
) -> ::c_int;
pub fn InterruptHookIdle(
__handler: ::Option<unsafe extern "C" fn(arg1: *mut u64, arg2: *mut qtime_entry)>,
__flags: ::c_uint,
) -> ::c_int;
pub fn InterruptHookIdle2(
__handler: ::Option<
unsafe extern "C" fn(arg1: ::c_uint, arg2: *mut syspage_entry, arg3: *mut _idle_hook),
>,
__flags: ::c_uint,
) -> ::c_int;
pub fn InterruptHookOverdriveEvent(__event: *const ::sigevent, __flags: ::c_uint) -> ::c_int;
pub fn InterruptAttachEvent(
__intr: ::c_int,
__event: *const ::sigevent,
__flags: ::c_uint,
) -> ::c_int;
pub fn InterruptAttachEvent_r(
__intr: ::c_int,
__event: *const ::sigevent,
__flags: ::c_uint,
) -> ::c_int;
pub fn InterruptAttach(
__intr: ::c_int,
__handler: ::Option<
unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const ::sigevent,
>,
__area: *const ::c_void,
__size: ::c_int,
__flags: ::c_uint,
) -> ::c_int;
pub fn InterruptAttach_r(
__intr: ::c_int,
__handler: ::Option<
unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const ::sigevent,
>,
__area: *const ::c_void,
__size: ::c_int,
__flags: ::c_uint,
) -> ::c_int;
pub fn InterruptAttachArray(
__intr: ::c_int,
__handler: ::Option<
unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const *const ::sigevent,
>,
__area: *const ::c_void,
__size: ::c_int,
__flags: ::c_uint,
) -> ::c_int;
pub fn InterruptAttachArray_r(
__intr: ::c_int,
__handler: ::Option<
unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const *const ::sigevent,
>,
__area: *const ::c_void,
__size: ::c_int,
__flags: ::c_uint,
) -> ::c_int;
pub fn InterruptDetach(__id: ::c_int) -> ::c_int;
pub fn InterruptDetach_r(__id: ::c_int) -> ::c_int;
pub fn InterruptWait(__flags: ::c_int, __timeout: *const u64) -> ::c_int;
pub fn InterruptWait_r(__flags: ::c_int, __timeout: *const u64) -> ::c_int;
pub fn InterruptCharacteristic(
__type: ::c_int,
__id: ::c_int,
__new: *mut ::c_uint,
__old: *mut ::c_uint,
) -> ::c_int;
pub fn InterruptCharacteristic_r(
__type: ::c_int,
__id: ::c_int,
__new: *mut ::c_uint,
__old: *mut ::c_uint,
) -> ::c_int;
pub fn SchedGet(__pid: ::pid_t, __tid: ::c_int, __param: *mut ::sched_param) -> ::c_int;
pub fn SchedGet_r(__pid: ::pid_t, __tid: ::c_int, __param: *mut ::sched_param) -> ::c_int;
pub fn SchedGetCpuNum() -> ::c_uint;
pub fn SchedSet(
__pid: ::pid_t,
__tid: ::c_int,
__algorithm: ::c_int,
__param: *const ::sched_param,
) -> ::c_int;
pub fn SchedSet_r(
__pid: ::pid_t,
__tid: ::c_int,
__algorithm: ::c_int,
__param: *const ::sched_param,
) -> ::c_int;
pub fn SchedInfo(__pid: ::pid_t, __algorithm: ::c_int, __info: *mut ::_sched_info) -> ::c_int;
pub fn SchedInfo_r(__pid: ::pid_t, __algorithm: ::c_int, __info: *mut ::_sched_info)
-> ::c_int;
pub fn SchedYield() -> ::c_int;
pub fn SchedYield_r() -> ::c_int;
pub fn SchedCtl(__cmd: ::c_int, __data: *mut ::c_void, __length: usize) -> ::c_int;
pub fn SchedCtl_r(__cmd: ::c_int, __data: *mut ::c_void, __length: usize) -> ::c_int;
pub fn SchedJobCreate(__job: *mut nto_job_t) -> ::c_int;
pub fn SchedJobCreate_r(__job: *mut nto_job_t) -> ::c_int;
pub fn SchedJobDestroy(__job: *mut nto_job_t) -> ::c_int;
pub fn SchedJobDestroy_r(__job: *mut nto_job_t) -> ::c_int;
pub fn SchedWaypoint(
__job: *mut nto_job_t,
__new: *const i64,
__max: *const i64,
__old: *mut i64,
) -> ::c_int;
pub fn SchedWaypoint_r(
__job: *mut nto_job_t,
__new: *const i64,
__max: *const i64,
__old: *mut i64,
) -> ::c_int;
pub fn TimerCreate(__id: ::clockid_t, __notify: *const ::sigevent) -> ::c_int;
pub fn TimerCreate_r(__id: ::clockid_t, __notify: *const ::sigevent) -> ::c_int;
pub fn TimerDestroy(__id: ::timer_t) -> ::c_int;
pub fn TimerDestroy_r(__id: ::timer_t) -> ::c_int;
pub fn TimerSettime(
__id: ::timer_t,
__flags: ::c_int,
__itime: *const ::_itimer,
__oitime: *mut ::_itimer,
) -> ::c_int;
pub fn TimerSettime_r(
__id: ::timer_t,
__flags: ::c_int,
__itime: *const ::_itimer,
__oitime: *mut ::_itimer,
) -> ::c_int;
pub fn TimerInfo(
__pid: ::pid_t,
__id: ::timer_t,
__flags: ::c_int,
__info: *mut ::_timer_info,
) -> ::c_int;
pub fn TimerInfo_r(
__pid: ::pid_t,
__id: ::timer_t,
__flags: ::c_int,
__info: *mut ::_timer_info,
) -> ::c_int;
pub fn TimerAlarm(
__id: ::clockid_t,
__itime: *const ::_itimer,
__otime: *mut ::_itimer,
) -> ::c_int;
pub fn TimerAlarm_r(
__id: ::clockid_t,
__itime: *const ::_itimer,
__otime: *mut ::_itimer,
) -> ::c_int;
pub fn TimerTimeout(
__id: ::clockid_t,
__flags: ::c_int,
__notify: *const ::sigevent,
__ntime: *const u64,
__otime: *mut u64,
) -> ::c_int;
pub fn TimerTimeout_r(
__id: ::clockid_t,
__flags: ::c_int,
__notify: *const ::sigevent,
__ntime: *const u64,
__otime: *mut u64,
) -> ::c_int;
pub fn SyncTypeCreate(
__type: ::c_uint,
__sync: *mut ::sync_t,
__attr: *const ::_sync_attr,
) -> ::c_int;
pub fn SyncTypeCreate_r(
__type: ::c_uint,
__sync: *mut ::sync_t,
__attr: *const ::_sync_attr,
) -> ::c_int;
pub fn SyncDestroy(__sync: *mut ::sync_t) -> ::c_int;
pub fn SyncDestroy_r(__sync: *mut ::sync_t) -> ::c_int;
pub fn SyncCtl(__cmd: ::c_int, __sync: *mut ::sync_t, __data: *mut ::c_void) -> ::c_int;
pub fn SyncCtl_r(__cmd: ::c_int, __sync: *mut ::sync_t, __data: *mut ::c_void) -> ::c_int;
pub fn SyncMutexEvent(__sync: *mut ::sync_t, event: *const ::sigevent) -> ::c_int;
pub fn SyncMutexEvent_r(__sync: *mut ::sync_t, event: *const ::sigevent) -> ::c_int;
pub fn SyncMutexLock(__sync: *mut ::sync_t) -> ::c_int;
pub fn SyncMutexLock_r(__sync: *mut ::sync_t) -> ::c_int;
pub fn SyncMutexUnlock(__sync: *mut ::sync_t) -> ::c_int;
pub fn SyncMutexUnlock_r(__sync: *mut ::sync_t) -> ::c_int;
pub fn SyncMutexRevive(__sync: *mut ::sync_t) -> ::c_int;
pub fn SyncMutexRevive_r(__sync: *mut ::sync_t) -> ::c_int;
pub fn SyncCondvarWait(__sync: *mut ::sync_t, __mutex: *mut ::sync_t) -> ::c_int;
pub fn SyncCondvarWait_r(__sync: *mut ::sync_t, __mutex: *mut ::sync_t) -> ::c_int;
pub fn SyncCondvarSignal(__sync: *mut ::sync_t, __all: ::c_int) -> ::c_int;
pub fn SyncCondvarSignal_r(__sync: *mut ::sync_t, __all: ::c_int) -> ::c_int;
pub fn SyncSemPost(__sync: *mut ::sync_t) -> ::c_int;
pub fn SyncSemPost_r(__sync: *mut ::sync_t) -> ::c_int;
pub fn SyncSemWait(__sync: *mut ::sync_t, __tryto: ::c_int) -> ::c_int;
pub fn SyncSemWait_r(__sync: *mut ::sync_t, __tryto: ::c_int) -> ::c_int;
pub fn ClockTime(__id: ::clockid_t, _new: *const u64, __old: *mut u64) -> ::c_int;
pub fn ClockTime_r(__id: ::clockid_t, _new: *const u64, __old: *mut u64) -> ::c_int;
pub fn ClockAdjust(
__id: ::clockid_t,
_new: *const ::_clockadjust,
__old: *mut ::_clockadjust,
) -> ::c_int;
pub fn ClockAdjust_r(
__id: ::clockid_t,
_new: *const ::_clockadjust,
__old: *mut ::_clockadjust,
) -> ::c_int;
pub fn ClockPeriod(
__id: ::clockid_t,
_new: *const ::_clockperiod,
__old: *mut ::_clockperiod,
__reserved: ::c_int,
) -> ::c_int;
pub fn ClockPeriod_r(
__id: ::clockid_t,
_new: *const ::_clockperiod,
__old: *mut ::_clockperiod,
__reserved: ::c_int,
) -> ::c_int;
pub fn ClockId(__pid: ::pid_t, __tid: ::c_int) -> ::c_int;
pub fn ClockId_r(__pid: ::pid_t, __tid: ::c_int) -> ::c_int;
//
//TODO: The following commented out functions are implemented in assembly.
// We can implmement them either via a C stub or rust's inline assembly.
//
//pub fn InterruptEnable();
//pub fn InterruptDisable();
pub fn InterruptMask(__intr: ::c_int, __id: ::c_int) -> ::c_int;
pub fn InterruptUnmask(__intr: ::c_int, __id: ::c_int) -> ::c_int;
//pub fn InterruptLock(__spin: *mut ::intrspin);
//pub fn InterruptUnlock(__spin: *mut ::intrspin);
//pub fn InterruptStatus() -> ::c_uint;
}