summaryrefslogtreecommitdiffstats
path: root/third_party/rust/libc/src/unix/solarish/illumos.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/libc/src/unix/solarish/illumos.rs')
-rw-r--r--third_party/rust/libc/src/unix/solarish/illumos.rs88
1 files changed, 88 insertions, 0 deletions
diff --git a/third_party/rust/libc/src/unix/solarish/illumos.rs b/third_party/rust/libc/src/unix/solarish/illumos.rs
new file mode 100644
index 0000000000..404f013da2
--- /dev/null
+++ b/third_party/rust/libc/src/unix/solarish/illumos.rs
@@ -0,0 +1,88 @@
+s! {
+ pub struct shmid_ds {
+ pub shm_perm: ::ipc_perm,
+ pub shm_segsz: ::size_t,
+ pub shm_amp: *mut ::c_void,
+ pub shm_lkcnt: ::c_ushort,
+ pub shm_lpid: ::pid_t,
+ pub shm_cpid: ::pid_t,
+ pub shm_nattch: ::shmatt_t,
+ pub shm_cnattch: ::c_ulong,
+ pub shm_atime: ::time_t,
+ pub shm_dtime: ::time_t,
+ pub shm_ctime: ::time_t,
+ pub shm_pad4: [i64; 4],
+ }
+
+ pub struct fil_info {
+ pub fi_flags: ::c_int,
+ pub fi_pos: ::c_int,
+ pub fi_name: [::c_char; ::FILNAME_MAX as usize],
+ }
+}
+
+pub const AF_LOCAL: ::c_int = 1; // AF_UNIX
+pub const AF_FILE: ::c_int = 1; // AF_UNIX
+
+pub const EFD_SEMAPHORE: ::c_int = 0x1;
+pub const EFD_NONBLOCK: ::c_int = 0x800;
+pub const EFD_CLOEXEC: ::c_int = 0x80000;
+
+pub const TCP_KEEPIDLE: ::c_int = 34;
+pub const TCP_KEEPCNT: ::c_int = 35;
+pub const TCP_KEEPINTVL: ::c_int = 36;
+pub const TCP_CONGESTION: ::c_int = 37;
+
+// These constants are correct for 64-bit programs or 32-bit programs that are
+// not using large-file mode. If Rust ever supports anything other than 64-bit
+// compilation on illumos, this may require adjustment:
+pub const F_OFD_GETLK: ::c_int = 47;
+pub const F_OFD_SETLK: ::c_int = 48;
+pub const F_OFD_SETLKW: ::c_int = 49;
+pub const F_FLOCK: ::c_int = 53;
+pub const F_FLOCKW: ::c_int = 54;
+
+pub const F_DUPFD_CLOEXEC: ::c_int = 37;
+pub const F_DUP2FD_CLOEXEC: ::c_int = 36;
+
+pub const FIL_ATTACH: ::c_int = 0x1;
+pub const FIL_DETACH: ::c_int = 0x2;
+pub const FIL_LIST: ::c_int = 0x3;
+pub const FILNAME_MAX: ::c_int = 32;
+pub const FILF_PROG: ::c_int = 0x1;
+pub const FILF_AUTO: ::c_int = 0x2;
+pub const FILF_BYPASS: ::c_int = 0x4;
+pub const SOL_FILTER: ::c_int = 0xfffc;
+
+pub const MADV_PURGE: ::c_int = 9;
+
+pub const B1000000: ::speed_t = 24;
+pub const B1152000: ::speed_t = 25;
+pub const B1500000: ::speed_t = 26;
+pub const B2000000: ::speed_t = 27;
+pub const B2500000: ::speed_t = 28;
+pub const B3000000: ::speed_t = 29;
+pub const B3500000: ::speed_t = 30;
+pub const B4000000: ::speed_t = 31;
+
+// sys/systeminfo.h
+pub const SI_ADDRESS_WIDTH: ::c_int = 520;
+
+extern "C" {
+ pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int;
+
+ pub fn mincore(addr: ::caddr_t, len: ::size_t, vec: *mut ::c_char) -> ::c_int;
+
+ pub fn pset_bind_lwp(
+ pset: ::psetid_t,
+ id: ::id_t,
+ pid: ::pid_t,
+ opset: *mut ::psetid_t,
+ ) -> ::c_int;
+ pub fn pset_getloadavg(pset: ::psetid_t, load: *mut ::c_double, num: ::c_int) -> ::c_int;
+
+ pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t;
+ pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t)
+ -> ::ssize_t;
+ pub fn getpagesizes2(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int;
+}