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( 47 addr: *const ::c_void, 48 len: ::size_t, 49 vec: *mut ::c_char, 50 ) -> ::c_int; 51 door_call(d: ::c_int, params: *const door_arg_t) -> ::c_int52 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, )53 pub fn door_return( 54 data_ptr: *const ::c_char, 55 data_size: ::size_t, 56 desc_ptr: *const door_desc_t, 57 num_desc: ::c_uint, 58 ); 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_int59 pub fn door_create( 60 server_procedure: extern "C" fn( 61 cookie: *const ::c_void, 62 argp: *const ::c_char, 63 arg_size: ::size_t, 64 dp: *const door_desc_t, 65 n_desc: ::c_uint, 66 ), 67 cookie: *const ::c_void, 68 attributes: door_attr_t, 69 ) -> ::c_int; 70 fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int71 pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; 72 pthread_getattr_np( thread: ::pthread_t, attr: *mut ::pthread_attr_t, ) -> ::c_int73 pub fn pthread_getattr_np( 74 thread: ::pthread_t, 75 attr: *mut ::pthread_attr_t, 76 ) -> ::c_int; 77 } 78 79 s_no_extra_traits! { 80 #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] 81 pub union door_desc_t__d_data { 82 pub d_desc: door_desc_t__d_data__d_desc, 83 d_resv: [::c_int; 5], /* Check out /usr/include/sys/door.h */ 84 } 85 86 #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] 87 pub struct door_desc_t { 88 pub d_attributes: door_attr_t, 89 pub d_data: door_desc_t__d_data, 90 } 91 92 #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] 93 pub struct door_arg_t { 94 pub data_ptr: *const ::c_char, 95 pub data_size: ::size_t, 96 pub desc_ptr: *const door_desc_t, 97 pub dec_num: ::c_uint, 98 pub rbuf: *const ::c_char, 99 pub rsize: ::size_t, 100 } 101 } 102