1 pub type door_attr_t = ::c_uint; 2 pub type door_id_t = ::c_ulonglong; 3 4 s! { 5 pub struct shmid_ds { 6 pub shm_perm: ::ipc_perm, 7 pub shm_segsz: ::size_t, 8 pub shm_flags: ::uintptr_t, 9 pub shm_lkcnt: ::c_ushort, 10 pub shm_lpid: ::pid_t, 11 pub shm_cpid: ::pid_t, 12 pub shm_nattch: ::shmatt_t, 13 pub shm_cnattch: ::c_ulong, 14 pub shm_atime: ::time_t, 15 pub shm_dtime: ::time_t, 16 pub shm_ctime: ::time_t, 17 pub shm_amp: *mut ::c_void, 18 pub shm_gransize: u64, 19 pub shm_allocated: u64, 20 pub shm_pad4: [i64; 1], 21 } 22 23 pub struct door_desc_t__d_data__d_desc { 24 pub d_descriptor: ::c_int, 25 pub d_id: ::door_id_t 26 } 27 } 28 29 pub const PORT_SOURCE_POSTWAIT: ::c_int = 8; 30 pub const PORT_SOURCE_SIGNAL: ::c_int = 9; 31 32 pub const AF_LOCAL: ::c_int = 0; 33 pub const AF_FILE: ::c_int = 0; 34 35 pub const TCP_KEEPIDLE: ::c_int = 0x1d; 36 pub const TCP_KEEPCNT: ::c_int = 0x1e; 37 pub const TCP_KEEPINTVL: ::c_int = 0x1f; 38 39 extern "C" { fexecve( fd: ::c_int, argv: *const *const ::c_char, envp: *const *const ::c_char, ) -> ::c_int40 pub fn fexecve( 41 fd: ::c_int, 42 argv: *const *const ::c_char, 43 envp: *const *const ::c_char, 44 ) -> ::c_int; 45 mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int46 pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; 47 door_call(d: ::c_int, params: *const door_arg_t) -> ::c_int48 pub fn door_call(d: ::c_int, params: *const door_arg_t) -> ::c_int; door_return( data_ptr: *const ::c_char, data_size: ::size_t, desc_ptr: *const door_desc_t, num_desc: ::c_uint, )49 pub fn door_return( 50 data_ptr: *const ::c_char, 51 data_size: ::size_t, 52 desc_ptr: *const door_desc_t, 53 num_desc: ::c_uint, 54 ); door_create( server_procedure: extern "C" fn( cookie: *const ::c_void, argp: *const ::c_char, arg_size: ::size_t, dp: *const door_desc_t, n_desc: ::c_uint, ), cookie: *const ::c_void, attributes: door_attr_t, ) -> ::c_int55 pub fn door_create( 56 server_procedure: extern "C" fn( 57 cookie: *const ::c_void, 58 argp: *const ::c_char, 59 arg_size: ::size_t, 60 dp: *const door_desc_t, 61 n_desc: ::c_uint, 62 ), 63 cookie: *const ::c_void, 64 attributes: door_attr_t, 65 ) -> ::c_int; 66 fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int67 pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; 68 pthread_getattr_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int69 pub fn pthread_getattr_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; 70 } 71 72 s_no_extra_traits! { 73 #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] 74 pub union door_desc_t__d_data { 75 pub d_desc: door_desc_t__d_data__d_desc, 76 d_resv: [::c_int; 5], /* Check out /usr/include/sys/door.h */ 77 } 78 79 #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] 80 pub struct door_desc_t { 81 pub d_attributes: door_attr_t, 82 pub d_data: door_desc_t__d_data, 83 } 84 85 #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] 86 pub struct door_arg_t { 87 pub data_ptr: *const ::c_char, 88 pub data_size: ::size_t, 89 pub desc_ptr: *const door_desc_t, 90 pub dec_num: ::c_uint, 91 pub rbuf: *const ::c_char, 92 pub rsize: ::size_t, 93 } 94 } 95