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