@@ -35,6 +35,9 @@ pub type mqd_t = *mut ::c_void;
35
35
pub type id_t = :: c_int ;
36
36
pub type idtype_t = :: c_uint ;
37
37
38
+ pub type door_attr_t = :: c_uint ;
39
+ pub type door_id_t = :: c_ulonglong ;
40
+
38
41
#[ cfg_attr( feature = "extra_traits" , derive( Debug ) ) ]
39
42
pub enum timezone { }
40
43
impl :: Copy for timezone { }
@@ -338,6 +341,11 @@ s! {
338
341
pub portev_object: :: uintptr_t,
339
342
pub portev_user: * mut :: c_void,
340
343
}
344
+
345
+ pub struct door_desc_t__d_data__d_desc {
346
+ pub d_descriptor: :: c_int,
347
+ pub d_id: :: door_id_t
348
+ }
341
349
}
342
350
343
351
s_no_extra_traits ! {
@@ -401,6 +409,25 @@ s_no_extra_traits! {
401
409
pub sigev_notify_attributes: * const :: pthread_attr_t,
402
410
__sigev_pad2: :: c_int,
403
411
}
412
+
413
+ pub union door_desc_t__d_data {
414
+ pub d_desc: door_desc_t__d_data__d_desc,
415
+ d_resv: [ :: c_int; 5 ] , /* Check out /usr/include/sys/door.h */
416
+ }
417
+
418
+ pub struct door_desc_t {
419
+ pub d_attributes: door_attr_t,
420
+ pub d_data: door_desc_t__d_data,
421
+ }
422
+
423
+ pub struct door_arg_t {
424
+ pub data_ptr: * const :: c_char,
425
+ pub data_size: :: size_t,
426
+ pub desc_ptr: * const door_desc_t,
427
+ pub dec_num: :: c_uint,
428
+ pub rbuf: * const :: c_char,
429
+ pub rsize: :: size_t,
430
+ }
404
431
}
405
432
406
433
cfg_if ! {
@@ -1835,6 +1862,14 @@ f! {
1835
1862
}
1836
1863
}
1837
1864
1865
+ pub type door_server_proc_t = extern fn (
1866
+ cookie : * const :: c_void ,
1867
+ argp : * const :: c_char ,
1868
+ arg_size : :: size_t ,
1869
+ dp : * const door_desc_t ,
1870
+ n_desc : :: c_uint
1871
+ ) ;
1872
+
1838
1873
extern {
1839
1874
pub fn getrlimit ( resource : :: c_int , rlim : * mut :: rlimit ) -> :: c_int ;
1840
1875
pub fn setrlimit ( resource : :: c_int , rlim : * const :: rlimit ) -> :: c_int ;
@@ -2108,6 +2143,10 @@ extern {
2108
2143
pub fn dup3 ( src : :: c_int , dst : :: c_int , flags : :: c_int ) -> :: c_int ;
2109
2144
pub fn uname ( buf : * mut :: utsname ) -> :: c_int ;
2110
2145
pub fn pipe2 ( fds : * mut :: c_int , flags : :: c_int ) -> :: c_int ;
2146
+ pub fn door_call ( d : :: c_int , params : * const door_arg_t ) -> :: c_int ;
2147
+ pub fn door_return ( data_ptr : * const :: c_char , data_size : :: size_t , desc_ptr : * const door_desc_t , num_desc : :: c_uint ) ;
2148
+ pub fn door_create ( server_procedure : door_server_proc_t , cookie : * const :: c_void , attributes : door_attr_t ) -> :: c_int ;
2149
+ pub fn fattach ( fildes : :: c_int , path : * const :: c_char ) -> :: c_int ;
2111
2150
}
2112
2151
2113
2152
mod compat;
0 commit comments