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 extern "C" { fexecve( fd: ::c_int, argv: *const *const ::c_char, envp: *const *const ::c_char, ) -> ::c_int36 pub fn fexecve( 37 fd: ::c_int, 38 argv: *const *const ::c_char, 39 envp: *const *const ::c_char, 40 ) -> ::c_int; 41 mincore( addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char, ) -> ::c_int42 pub fn mincore( 43 addr: *const ::c_void, 44 len: ::size_t, 45 vec: *mut ::c_char, 46 ) -> ::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 } 69 70 s_no_extra_traits! { 71 #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] 72 pub union door_desc_t__d_data { 73 pub d_desc: door_desc_t__d_data__d_desc, 74 d_resv: [::c_int; 5], /* Check out /usr/include/sys/door.h */ 75 } 76 77 #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] 78 pub struct door_desc_t { 79 pub d_attributes: door_attr_t, 80 pub d_data: door_desc_t__d_data, 81 } 82 83 #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] 84 pub struct door_arg_t { 85 pub data_ptr: *const ::c_char, 86 pub data_size: ::size_t, 87 pub desc_ptr: *const door_desc_t, 88 pub dec_num: ::c_uint, 89 pub rbuf: *const ::c_char, 90 pub rsize: ::size_t, 91 } 92 } 93