1use super::const_iovec;
2use super::event::sd_event;
3use super::id128::sd_id128_t;
4use super::{c_char, c_int, c_uint, c_void, gid_t, pid_t, size_t, uid_t};
5
6mod protocol;
7pub mod vtable;
8pub use self::protocol::*;
9pub use self::vtable::sd_bus_vtable;
10
11#[allow(non_camel_case_types)]
12pub enum sd_bus {}
13#[allow(non_camel_case_types)]
14pub enum sd_bus_message {}
15#[allow(non_camel_case_types)]
16pub enum sd_bus_slot {}
17#[allow(non_camel_case_types)]
18pub enum sd_bus_creds {}
19#[allow(non_camel_case_types)]
20pub enum sd_bus_track {}
21
22#[allow(non_camel_case_types)]
23pub type sd_bus_message_handler_t = Option<
24 unsafe extern "C" fn(
25 m: *mut sd_bus_message,
26 userdata: *mut c_void,
27 ret_error: *mut sd_bus_error,
28 ) -> c_int,
29>;
30#[allow(non_camel_case_types)]
31pub type sd_bus_property_get_t = Option<
32 unsafe extern "C" fn(
33 bus: *mut sd_bus,
34 path: *const c_char,
35 interface: *const c_char,
36 property: *const c_char,
37 reply: *mut sd_bus_message,
38 userdata: *mut c_void,
39 ret_error: *mut sd_bus_error,
40 ) -> c_int,
41>;
42#[allow(non_camel_case_types)]
43pub type sd_bus_property_set_t = Option<
44 unsafe extern "C" fn(
45 bus: *mut sd_bus,
46 path: *const c_char,
47 interface: *const c_char,
48 property: *const c_char,
49 value: *mut sd_bus_message,
50 userdata: *mut c_void,
51 ret_error: *mut sd_bus_error,
52 ) -> c_int,
53>;
54#[allow(non_camel_case_types)]
55pub type sd_bus_object_find_t = Option<
56 unsafe extern "C" fn(
57 bus: *mut sd_bus,
58 path: *const c_char,
59 interface: *const c_char,
60 userdata: *mut c_void,
61 ret_found: *mut *mut c_void,
62 ret_error: *mut sd_bus_error,
63 ) -> c_int,
64>;
65#[allow(non_camel_case_types)]
66pub type sd_bus_node_enumerator_t = Option<
67 unsafe extern "C" fn(
68 bus: *mut sd_bus,
69 prefix: *const c_char,
70 userdata: *mut c_void,
71 ret_nodes: *mut *mut *mut c_char,
72 ret_error: *mut sd_bus_error,
73 ) -> c_int,
74>;
75#[allow(non_camel_case_types)]
76pub type sd_bus_track_handler_t =
77 Option<unsafe extern "C" fn(track: *mut sd_bus_track, userdata: *mut c_void) -> c_int>;
78
79#[allow(non_camel_case_types)]
80type sd_destroy_t = Option<unsafe extern "C" fn(userdata: *mut c_void)>;
81
82#[allow(non_camel_case_types)]
83pub type sd_bus_destroy_t = sd_destroy_t;
84
85#[repr(C)]
86pub struct sd_bus_error {
87 pub name: *const c_char,
88 pub message: *const c_char,
89 pub need_free: c_int,
90}
91
92#[repr(C)]
93pub struct sd_bus_error_map {
94 pub name: *const c_char,
95 pub code: c_int,
96}
97
98extern "C" {
99 pub fn sd_bus_default(ret: *mut *mut sd_bus) -> c_int;
101 pub fn sd_bus_default_user(ret: *mut *mut sd_bus) -> c_int;
102 pub fn sd_bus_default_system(ret: *mut *mut sd_bus) -> c_int;
103
104 pub fn sd_bus_open(ret: *mut *mut sd_bus) -> c_int;
105 pub fn sd_bus_open_user(ret: *mut *mut sd_bus) -> c_int;
106 pub fn sd_bus_open_system(ret: *mut *mut sd_bus) -> c_int;
107 pub fn sd_bus_open_system_remote(ret: *mut *mut sd_bus, host: *const c_char) -> c_int;
108 pub fn sd_bus_open_system_machine(ret: *mut *mut sd_bus, host: *const c_char) -> c_int;
109
110 pub fn sd_bus_new(ret: *mut *mut sd_bus) -> c_int;
111
112 pub fn sd_bus_set_address(bus: *mut sd_bus, address: *const c_char) -> c_int;
113 pub fn sd_bus_set_fd(bus: *mut sd_bus, input_fd: c_int, output_fd: c_int) -> c_int;
114 pub fn sd_bus_set_exec(
115 bus: *mut sd_bus,
116 path: *const c_char,
117 argv: *const *mut c_char,
118 ) -> c_int;
119 pub fn sd_bus_get_address(bus: *mut sd_bus, address: *mut *const c_char) -> c_int;
120 pub fn sd_bus_set_bus_client(bus: *mut sd_bus, b: c_int) -> c_int;
121 pub fn sd_bus_is_bus_client(bus: *mut sd_bus) -> c_int;
122 pub fn sd_bus_set_server(bus: *mut sd_bus, b: c_int, bus_id: sd_id128_t) -> c_int;
123 pub fn sd_bus_is_server(bus: *mut sd_bus) -> c_int;
124 pub fn sd_bus_set_anonymous(bus: *mut sd_bus, b: c_int) -> c_int;
125 pub fn sd_bus_is_anonymous(bus: *mut sd_bus) -> c_int;
126 pub fn sd_bus_set_trusted(bus: *mut sd_bus, b: c_int) -> c_int;
127 pub fn sd_bus_is_trusted(bus: *mut sd_bus) -> c_int;
128 pub fn sd_bus_set_monitor(bus: *mut sd_bus, b: c_int) -> c_int;
129 pub fn sd_bus_is_monitor(bus: *mut sd_bus) -> c_int;
130 pub fn sd_bus_set_description(bus: *mut sd_bus, description: *const c_char) -> c_int;
131 pub fn sd_bus_get_description(bus: *mut sd_bus, description: *mut *const c_char) -> c_int;
132 pub fn sd_bus_negotiate_creds(bus: *mut sd_bus, b: c_int, creds_mask: u64) -> c_int;
133 pub fn sd_bus_negotiate_timestamp(bus: *mut sd_bus, b: c_int) -> c_int;
134 pub fn sd_bus_negotiate_fds(bus: *mut sd_bus, b: c_int) -> c_int;
135 pub fn sd_bus_can_send(bus: *mut sd_bus, typ: c_char) -> c_int;
136 pub fn sd_bus_get_creds_mask(bus: *mut sd_bus, creds_mask: *mut u64) -> c_int;
137 pub fn sd_bus_set_allow_interactive_authorization(bus: *mut sd_bus, b: c_int) -> c_int;
138 pub fn sd_bus_get_allow_interactive_authorization(bus: *mut sd_bus) -> c_int;
139 pub fn sd_bus_set_exit_on_disconnect(bus: *mut sd_bus, b: c_int) -> c_int;
140 pub fn sd_bus_get_exit_on_disconnect(bus: *mut sd_bus) -> c_int;
141 pub fn sd_bus_set_close_on_exit(bus: *mut sd_bus, b: c_int) -> c_int;
142 pub fn sd_bus_get_close_on_exit(bus: *mut sd_bus) -> c_int;
143 pub fn sd_bus_set_watch_bind(bus: *mut sd_bus, b: c_int) -> c_int;
144 pub fn sd_bus_get_watch_bind(bus: *mut sd_bus) -> c_int;
145 pub fn sd_bus_set_connected_signal(bus: *mut sd_bus, b: c_int) -> c_int;
146 pub fn sd_bus_get_connected_signal(bus: *mut sd_bus) -> c_int;
147 pub fn sd_bus_set_sender(bus: *mut sd_bus, sender: *const c_char) -> c_int;
148 pub fn sd_bus_get_sender(bus: *mut sd_bus, ret: *mut *const c_char) -> c_int;
149
150 pub fn sd_bus_start(ret: *mut sd_bus) -> c_int;
151
152 pub fn sd_bus_try_close(bus: *mut sd_bus) -> c_int;
153 pub fn sd_bus_close(bus: *mut sd_bus);
154
155 pub fn sd_bus_ref(bus: *mut sd_bus) -> *mut sd_bus;
156 pub fn sd_bus_unref(bus: *mut sd_bus) -> *mut sd_bus;
157 pub fn sd_bus_close_unref(bus: *mut sd_bus) -> *mut sd_bus;
158 pub fn sd_bus_flush_close_unref(bus: *mut sd_bus) -> *mut sd_bus;
159
160 pub fn sd_bus_default_flush_close();
161
162 pub fn sd_bus_is_open(bus: *mut sd_bus) -> c_int;
163 pub fn sd_bus_is_ready(bus: *mut sd_bus) -> c_int;
164
165 pub fn sd_bus_get_bus_id(bus: *mut sd_bus, id: *mut sd_id128_t) -> c_int;
166 pub fn sd_bus_get_scope(bus: *mut sd_bus, scope: *mut *const c_char) -> c_int;
167 pub fn sd_bus_get_tid(bus: *mut sd_bus, tid: *mut pid_t) -> c_int;
168 pub fn sd_bus_get_owner_creds(
169 bus: *mut sd_bus,
170 creds_mask: u64,
171 ret: *mut *mut sd_bus_creds,
172 ) -> c_int;
173
174 pub fn sd_bus_send(bus: *mut sd_bus, m: *mut sd_bus_message, cookie: *mut u64) -> c_int;
175 pub fn sd_bus_send_to(
176 bus: *mut sd_bus,
177 m: *mut sd_bus_message,
178 destination: *const c_char,
179 cookie: *mut u64,
180 ) -> c_int;
181 pub fn sd_bus_call(
182 bus: *mut sd_bus,
183 m: *mut sd_bus_message,
184 usec: u64,
185 ret_error: *mut sd_bus_error,
186 reply: *mut *mut sd_bus_message,
187 ) -> c_int;
188 pub fn sd_bus_call_async(
189 bus: *mut sd_bus,
190 slot: *mut *mut sd_bus_slot,
191 m: *mut sd_bus_message,
192 callback: sd_bus_message_handler_t,
193 userdata: *mut c_void,
194 usec: u64,
195 ) -> c_int;
196
197 pub fn sd_bus_get_fd(bus: *mut sd_bus) -> c_int;
198 pub fn sd_bus_get_events(bus: *mut sd_bus) -> c_int;
199 pub fn sd_bus_get_timeout(bus: *mut sd_bus, timeout_usec: *mut u64) -> c_int;
200 pub fn sd_bus_process(bus: *mut sd_bus, r: *mut *mut sd_bus_message) -> c_int;
201 pub fn sd_bus_process_priority(
202 bus: *mut sd_bus,
203 max_priority: i64,
204 r: *mut *mut sd_bus_message,
205 ) -> c_int;
206 pub fn sd_bus_wait(bus: *mut sd_bus, timeout_usec: u64) -> c_int;
207 pub fn sd_bus_flush(bus: *mut sd_bus) -> c_int;
208
209 pub fn sd_bus_get_current_slot(bus: *mut sd_bus) -> *mut sd_bus_slot;
210 pub fn sd_bus_get_current_message(bus: *mut sd_bus) -> *mut sd_bus_message;
211 pub fn sd_bus_get_current_handler(bus: *mut sd_bus) -> sd_bus_message_handler_t;
212 pub fn sd_bus_get_current_userdata(bus: *mut sd_bus) -> *mut c_void;
213
214 pub fn sd_bus_attach_event(bus: *mut sd_bus, e: *mut sd_event, priority: c_int) -> c_int;
215 pub fn sd_bus_detach_event(bus: *mut sd_bus) -> c_int;
216 pub fn sd_bus_get_event(bus: *mut sd_bus) -> *mut sd_event;
217
218 pub fn sd_bus_get_n_queued_read(bus: *mut sd_bus, ret: *mut u64) -> c_int;
219 pub fn sd_bus_get_n_queued_write(bus: *mut sd_bus, ret: *mut u64) -> c_int;
220
221 pub fn sd_bus_set_method_call_timeout(bus: *mut sd_bus, usec: u64) -> c_int;
222 pub fn sd_bus_get_method_call_timeout(bus: *mut sd_bus, ret: *mut u64) -> c_int;
223
224 pub fn sd_bus_add_filter(
225 bus: *mut sd_bus,
226 slot: *mut *mut sd_bus_slot,
227 callback: sd_bus_message_handler_t,
228 userdata: *mut c_void,
229 ) -> c_int;
230 pub fn sd_bus_add_match(
231 bus: *mut sd_bus,
232 slot: *mut *mut sd_bus_slot,
233 match_: *const c_char,
234 callback: sd_bus_message_handler_t,
235 userdata: *mut c_void,
236 ) -> c_int;
237 pub fn sd_bus_add_object(
238 bus: *mut sd_bus,
239 slot: *mut *mut sd_bus_slot,
240 path: *const c_char,
241 callback: sd_bus_message_handler_t,
242 userdata: *mut c_void,
243 ) -> c_int;
244 pub fn sd_bus_add_fallback(
245 bus: *mut sd_bus,
246 slot: *mut *mut sd_bus_slot,
247 prefix: *const c_char,
248 callback: sd_bus_message_handler_t,
249 userdata: *mut c_void,
250 ) -> c_int;
251 pub fn sd_bus_add_object_vtable(
252 bus: *mut sd_bus,
253 slot: *mut *mut sd_bus_slot,
254 path: *const c_char,
255 interface: *const c_char,
256 vtable: *const sd_bus_vtable,
257 userdata: *mut c_void,
258 ) -> c_int;
259 pub fn sd_bus_add_fallback_vtable(
260 bus: *mut sd_bus,
261 slot: *mut *mut sd_bus_slot,
262 prefix: *const c_char,
263 interface: *const c_char,
264 vtable: *const sd_bus_vtable,
265 find: sd_bus_object_find_t,
266 userdata: *mut c_void,
267 ) -> c_int;
268 pub fn sd_bus_add_node_enumerator(
269 bus: *mut sd_bus,
270 slot: *mut *mut sd_bus_slot,
271 path: *const c_char,
272 callback: sd_bus_node_enumerator_t,
273 userdata: *mut c_void,
274 ) -> c_int;
275 pub fn sd_bus_add_object_manager(
276 bus: *mut sd_bus,
277 slot: *mut *mut sd_bus_slot,
278 path: *const c_char,
279 ) -> c_int;
280
281 pub fn sd_bus_slot_ref(slot: *mut sd_bus_slot) -> *mut sd_bus_slot;
284 pub fn sd_bus_slot_unref(slot: *mut sd_bus_slot) -> *mut sd_bus_slot;
285
286 pub fn sd_bus_slot_get_bus(slot: *mut sd_bus_slot) -> *mut sd_bus;
287 pub fn sd_bus_slot_get_userdata(slot: *mut sd_bus_slot) -> *mut c_void;
288 pub fn sd_bus_slot_set_userdata(slot: *mut sd_bus_slot, userdata: *mut c_void) -> *mut c_void;
289 pub fn sd_bus_slot_set_description(slot: *mut sd_bus_slot, description: *const c_char)
290 -> c_int;
291 pub fn sd_bus_slot_get_description(
292 slot: *mut sd_bus_slot,
293 description: *mut *const c_char,
294 ) -> c_int;
295 pub fn sd_bus_slot_get_floating(slot: *mut sd_bus_slot) -> c_int;
296 pub fn sd_bus_slot_set_floating(slot: *mut sd_bus_slot, b: c_int) -> c_int;
297 pub fn sd_bus_slot_set_destroy_callback(
299 slot: *mut sd_bus_slot,
300 callback: sd_bus_destroy_t,
301 ) -> c_int;
302 pub fn sd_bus_slot_get_destroy_callback(
304 slot: *mut sd_bus_slot,
305 callback: *mut sd_bus_destroy_t,
306 ) -> c_int;
307
308 pub fn sd_bus_slot_get_current_message(slot: *mut sd_bus_slot) -> *mut sd_bus_message;
309 pub fn sd_bus_slot_get_current_handler(bus: *mut sd_bus_slot) -> sd_bus_message_handler_t;
310 pub fn sd_bus_slot_get_current_userdata(slot: *mut sd_bus_slot) -> *mut c_void;
311
312 pub fn sd_bus_message_new(bus: *mut sd_bus, m: *mut *mut sd_bus_message, typ: u8) -> c_int;
315 pub fn sd_bus_message_new_signal(
316 bus: *mut sd_bus,
317 m: *mut *mut sd_bus_message,
318 path: *const c_char,
319 interface: *const c_char,
320 member: *const c_char,
321 ) -> c_int;
322 pub fn sd_bus_message_new_method_call(
323 bus: *mut sd_bus,
324 m: *mut *mut sd_bus_message,
325 destination: *const c_char,
326 path: *const c_char,
327 interface: *const c_char,
328 member: *const c_char,
329 ) -> c_int;
330 pub fn sd_bus_message_new_method_return(
331 call: *mut sd_bus_message,
332 m: *mut *mut sd_bus_message,
333 ) -> c_int;
334 pub fn sd_bus_message_new_method_error(
335 call: *mut sd_bus_message,
336 m: *mut *mut sd_bus_message,
337 e: *const sd_bus_error,
338 ) -> c_int;
339 pub fn sd_bus_message_new_method_errorf(
340 call: *mut sd_bus_message,
341 m: *mut *mut sd_bus_message,
342 name: *const c_char,
343 format: *const c_char,
344 ...
345 ) -> c_int;
346 pub fn sd_bus_message_new_method_errno(
347 call: *mut sd_bus_message,
348 m: *mut *mut sd_bus_message,
349 error: c_int,
350 e: *const sd_bus_error,
351 ) -> c_int;
352 pub fn sd_bus_message_new_method_errnof(
353 call: *mut sd_bus_message,
354 m: *mut *mut sd_bus_message,
355 error: c_int,
356 format: *const c_char,
357 ...
358 ) -> c_int;
359
360 pub fn sd_bus_message_ref(m: *mut sd_bus_message) -> *mut sd_bus_message;
361 pub fn sd_bus_message_unref(m: *mut sd_bus_message) -> *mut sd_bus_message;
362
363 pub fn sd_bus_message_seal(m: *mut sd_bus_message, cookie: u64, timeout_usec: u64) -> c_int;
364
365 pub fn sd_bus_message_get_type(m: *mut sd_bus_message, typ: *mut u8) -> c_int;
366 pub fn sd_bus_message_get_cookie(m: *mut sd_bus_message, cookie: *mut u64) -> c_int;
367 pub fn sd_bus_message_get_reply_cookie(m: *mut sd_bus_message, cookie: *mut u64) -> c_int;
368 pub fn sd_bus_message_get_priority(m: *mut sd_bus_message, priority: *mut i64) -> c_int;
369
370 pub fn sd_bus_message_get_expect_reply(m: *mut sd_bus_message) -> c_int;
371 pub fn sd_bus_message_get_auto_start(m: *mut sd_bus_message) -> c_int;
372 pub fn sd_bus_message_get_allow_interactive_authorization(m: *mut sd_bus_message) -> c_int;
373
374 pub fn sd_bus_message_get_signature(m: *mut sd_bus_message, complete: c_int) -> *const c_char;
375 pub fn sd_bus_message_get_path(m: *mut sd_bus_message) -> *const c_char;
376 pub fn sd_bus_message_get_interface(m: *mut sd_bus_message) -> *const c_char;
377 pub fn sd_bus_message_get_member(m: *mut sd_bus_message) -> *const c_char;
378 pub fn sd_bus_message_get_destination(m: *mut sd_bus_message) -> *const c_char;
379 pub fn sd_bus_message_get_sender(m: *mut sd_bus_message) -> *const c_char;
380 pub fn sd_bus_message_get_error(m: *mut sd_bus_message) -> *const sd_bus_error;
381 pub fn sd_bus_message_get_errno(m: *mut sd_bus_message) -> c_int;
382
383 pub fn sd_bus_message_get_monotonic_usec(m: *mut sd_bus_message, usec: *mut u64) -> c_int;
384 pub fn sd_bus_message_get_realtime_usec(m: *mut sd_bus_message, usec: *mut u64) -> c_int;
385 pub fn sd_bus_message_get_seqnum(m: *mut sd_bus_message, seqnum: *mut u64) -> c_int;
386
387 pub fn sd_bus_message_get_bus(m: *mut sd_bus_message) -> *mut sd_bus;
388 pub fn sd_bus_message_get_creds(m: *mut sd_bus_message) -> *mut sd_bus_creds;
390
391 pub fn sd_bus_message_is_signal(
392 m: *mut sd_bus_message,
393 interface: *const c_char,
394 member: *const c_char,
395 ) -> c_int;
396 pub fn sd_bus_message_is_method_call(
397 m: *mut sd_bus_message,
398 interface: *const c_char,
399 member: *const c_char,
400 ) -> c_int;
401 pub fn sd_bus_message_is_method_error(m: *mut sd_bus_message, name: *const c_char) -> c_int;
402 pub fn sd_bus_message_is_empty(m: *mut sd_bus_message) -> c_int;
403 pub fn sd_bus_message_has_signature(m: *mut sd_bus_message, signature: *const c_char) -> c_int;
404
405 pub fn sd_bus_message_set_expect_reply(m: *mut sd_bus_message, b: c_int) -> c_int;
406 pub fn sd_bus_message_set_auto_start(m: *mut sd_bus_message, b: c_int) -> c_int;
407 pub fn sd_bus_message_set_allow_interactive_authorization(
408 m: *mut sd_bus_message,
409 b: c_int,
410 ) -> c_int;
411
412 pub fn sd_bus_message_set_destination(
413 m: *mut sd_bus_message,
414 destination: *const c_char,
415 ) -> c_int;
416 pub fn sd_bus_message_set_sender(m: *mut sd_bus_message, sender: *const c_char) -> c_int;
417 pub fn sd_bus_message_set_priority(m: *mut sd_bus_message, priority: i64) -> c_int;
418
419 pub fn sd_bus_message_append(m: *mut sd_bus_message, types: *const c_char, ...) -> c_int;
420 pub fn sd_bus_message_append_basic(
423 m: *mut sd_bus_message,
424 typ: c_char,
425 p: *const c_void,
426 ) -> c_int;
427 pub fn sd_bus_message_append_array(
428 m: *mut sd_bus_message,
429 typ: c_char,
430 ptr: *const c_void,
431 size: size_t,
432 ) -> c_int;
433 pub fn sd_bus_message_append_array_space(
434 m: *mut sd_bus_message,
435 typ: c_char,
436 size: size_t,
437 ptr: *mut *mut c_void,
438 ) -> c_int;
439 pub fn sd_bus_message_append_array_iovec(
440 m: *mut sd_bus_message,
441 typ: c_char,
442 iov: *const const_iovec,
443 n: c_uint,
444 ) -> c_int;
445 pub fn sd_bus_message_append_array_memfd(
446 m: *mut sd_bus_message,
447 typ: c_char,
448 memfd: c_int,
449 offset: u64,
450 size: u64,
451 ) -> c_int;
452 pub fn sd_bus_message_append_string_space(
453 m: *mut sd_bus_message,
454 size: size_t,
455 s: *mut *mut c_char,
456 ) -> c_int;
457 pub fn sd_bus_message_append_string_iovec(
458 m: *mut sd_bus_message,
459 iov: *const const_iovec,
460 n: c_uint,
461 ) -> c_int;
462 pub fn sd_bus_message_append_string_memfd(
463 m: *mut sd_bus_message,
464 memfd: c_int,
465 offset: u64,
466 size: u64,
467 ) -> c_int;
468 pub fn sd_bus_message_append_strv(m: *mut sd_bus_message, l: *mut *mut c_char) -> c_int;
469 pub fn sd_bus_message_open_container(
470 m: *mut sd_bus_message,
471 typ: c_char,
472 contents: *const c_char,
473 ) -> c_int;
474 pub fn sd_bus_message_close_container(m: *mut sd_bus_message) -> c_int;
475 pub fn sd_bus_message_copy(
476 m: *mut sd_bus_message,
477 source: *mut sd_bus_message,
478 all: c_int,
479 ) -> c_int;
480
481 pub fn sd_bus_message_read(m: *mut sd_bus_message, types: *const c_char, ...) -> c_int;
482 pub fn sd_bus_message_read_basic(m: *mut sd_bus_message, typ: c_char, p: *mut c_void) -> c_int;
484 pub fn sd_bus_message_read_array(
485 m: *mut sd_bus_message,
486 typ: c_char,
487 ptr: *mut *const c_void,
488 size: *mut size_t,
489 ) -> c_int;
490 pub fn sd_bus_message_read_strv(m: *mut sd_bus_message, l: *mut *mut *mut c_char) -> c_int;
492 pub fn sd_bus_message_skip(m: *mut sd_bus_message, types: *const c_char) -> c_int;
493 pub fn sd_bus_message_enter_container(
494 m: *mut sd_bus_message,
495 typ: c_char,
496 contents: *const c_char,
497 ) -> c_int;
498 pub fn sd_bus_message_exit_container(m: *mut sd_bus_message) -> c_int;
499 pub fn sd_bus_message_peek_type(
500 m: *mut sd_bus_message,
501 typ: *mut c_char,
502 contents: *mut *const c_char,
503 ) -> c_int;
504 pub fn sd_bus_message_verify_type(
505 m: *mut sd_bus_message,
506 typ: c_char,
507 contents: *const c_char,
508 ) -> c_int;
509 pub fn sd_bus_message_at_end(m: *mut sd_bus_message, complete: c_int) -> c_int;
510 pub fn sd_bus_message_rewind(m: *mut sd_bus_message, complete: c_int) -> c_int;
511
512 pub fn sd_bus_get_unique_name(bus: *mut sd_bus, unique: *mut *const c_char) -> c_int;
515 pub fn sd_bus_request_name(bus: *mut sd_bus, name: *const c_char, flags: u64) -> c_int;
516 pub fn sd_bus_request_name_async(
517 bus: *mut sd_bus,
518 ret_slot: *mut *mut sd_bus_slot,
519 name: *const c_char,
520 flags: u64,
521 callback: sd_bus_message_handler_t,
522 userdata: *mut c_void,
523 ) -> c_int;
524 pub fn sd_bus_release_name(bus: *mut sd_bus, name: *const c_char) -> c_int;
525 pub fn sd_bus_release_name_async(
526 bus: *mut sd_bus,
527 ret_slot: *mut *mut sd_bus_slot,
528 name: *const c_char,
529 callback: sd_bus_message_handler_t,
530 userdata: *mut c_void,
531 ) -> c_int;
532 pub fn sd_bus_list_names(
534 bus: *mut sd_bus,
535 acquired: *mut *mut *mut c_char,
536 activatable: *mut *mut *mut c_char,
537 ) -> c_int;
538 pub fn sd_bus_get_name_creds(
540 bus: *mut sd_bus,
541 name: *const c_char,
542 mask: u64,
543 creds: *mut *mut sd_bus_creds,
544 ) -> c_int;
545 pub fn sd_bus_get_name_machine_id(
546 bus: *mut sd_bus,
547 name: *const c_char,
548 machine: *mut sd_id128_t,
549 ) -> c_int;
550
551 pub fn sd_bus_call_method(
554 bus: *mut sd_bus,
555 destination: *const c_char,
556 path: *const c_char,
557 interface: *const c_char,
558 member: *const c_char,
559 ret_error: *mut sd_bus_error,
560 reply: *mut *mut sd_bus_message,
561 types: *const c_char,
562 ...
563 ) -> c_int;
564 pub fn sd_bus_call_method_async(
565 bus: *mut sd_bus,
566 slot: *mut *mut sd_bus_slot,
567 destination: *const c_char,
568 path: *const c_char,
569 interface: *const c_char,
570 member: *const c_char,
571 callback: sd_bus_message_handler_t,
572 userdata: *mut c_void,
573 types: *const c_char,
574 ...
575 ) -> c_int;
576 pub fn sd_bus_get_property(
577 bus: *mut sd_bus,
578 destination: *const c_char,
579 path: *const c_char,
580 interface: *const c_char,
581 member: *const c_char,
582 ret_error: *mut sd_bus_error,
583 reply: *mut *mut sd_bus_message,
584 typ: *const c_char,
585 ) -> c_int;
586 pub fn sd_bus_get_property_trivial(
587 bus: *mut sd_bus,
588 destination: *const c_char,
589 path: *const c_char,
590 interface: *const c_char,
591 member: *const c_char,
592 ret_error: *mut sd_bus_error,
593 typ: c_char,
594 ret_ptr: *mut c_void,
595 ) -> c_int;
596 pub fn sd_bus_get_property_string(
598 bus: *mut sd_bus,
599 destination: *const c_char,
600 path: *const c_char,
601 interface: *const c_char,
602 member: *const c_char,
603 ret_error: *mut sd_bus_error,
604 ret: *mut *mut c_char,
605 ) -> c_int;
606 pub fn sd_bus_get_property_strv(
608 bus: *mut sd_bus,
609 destination: *const c_char,
610 path: *const c_char,
611 interface: *const c_char,
612 member: *const c_char,
613 ret_error: *mut sd_bus_error,
614 ret: *mut *mut *mut c_char,
615 ) -> c_int;
616 pub fn sd_bus_set_property(
617 bus: *mut sd_bus,
618 destination: *const c_char,
619 path: *const c_char,
620 interface: *const c_char,
621 member: *const c_char,
622 ret_error: *mut sd_bus_error,
623 typ: *const c_char,
624 ...
625 ) -> c_int;
626
627 pub fn sd_bus_reply_method_return(
628 call: *mut sd_bus_message,
629 types: *const c_char,
630 ...
631 ) -> c_int;
632 pub fn sd_bus_reply_method_error(call: *mut sd_bus_message, e: *const sd_bus_error) -> c_int;
633 pub fn sd_bus_reply_method_errorf(
634 call: *mut sd_bus_message,
635 name: *const c_char,
636 format: *const c_char,
637 ...
638 ) -> c_int;
639 pub fn sd_bus_reply_method_errno(
640 call: *mut sd_bus_message,
641 error: c_int,
642 e: *const sd_bus_error,
643 ) -> c_int;
644 pub fn sd_bus_reply_method_errnof(
645 call: *mut sd_bus_message,
646 error: c_int,
647 format: *const c_char,
648 ...
649 ) -> c_int;
650
651 pub fn sd_bus_emit_signal(
652 bus: *mut sd_bus,
653 path: *const c_char,
654 interface: *const c_char,
655 member: *const c_char,
656 types: *const c_char,
657 ...
658 ) -> c_int;
659
660 pub fn sd_bus_emit_properties_changed_strv(
661 bus: *mut sd_bus,
662 path: *const c_char,
663 interface: *const c_char,
664 names: *mut *mut c_char,
665 ) -> c_int;
666 pub fn sd_bus_emit_properties_changed(
667 bus: *mut sd_bus,
668 path: *const c_char,
669 interface: *const c_char,
670 name: *const c_char,
671 ...
672 ) -> c_int;
673
674 pub fn sd_bus_emit_object_added(bus: *mut sd_bus, path: *const c_char) -> c_int;
675 pub fn sd_bus_emit_object_removed(bus: *mut sd_bus, path: *const c_char) -> c_int;
676 pub fn sd_bus_emit_interfaces_added_strv(
677 bus: *mut sd_bus,
678 path: *const c_char,
679 interfaces: *mut *mut c_char,
680 ) -> c_int;
681 pub fn sd_bus_emit_interfaces_added(
682 bus: *mut sd_bus,
683 path: *const c_char,
684 interface: *const c_char,
685 ...
686 ) -> c_int;
687 pub fn sd_bus_emit_interfaces_removed_strv(
688 bus: *mut sd_bus,
689 path: *const c_char,
690 interfaces: *mut *mut c_char,
691 ) -> c_int;
692 pub fn sd_bus_emit_interfaces_removed(
693 bus: *mut sd_bus,
694 path: *const c_char,
695 interface: *const c_char,
696 ...
697 ) -> c_int;
698
699 pub fn sd_bus_query_sender_creds(
700 call: *mut sd_bus_message,
701 mask: u64,
702 creds: *mut *mut sd_bus_creds,
703 ) -> c_int;
704 pub fn sd_bus_query_sender_privilege(call: *mut sd_bus_message, capability: c_int) -> c_int;
705
706 pub fn sd_bus_creds_new_from_pid(
709 ret: *mut *mut sd_bus_creds,
710 pid: pid_t,
711 creds_mask: u64,
712 ) -> c_int;
713 pub fn sd_bus_creds_ref(c: *mut sd_bus_creds) -> *mut sd_bus_creds;
714 pub fn sd_bus_creds_unref(c: *mut sd_bus_creds) -> *mut sd_bus_creds;
715 pub fn sd_bus_creds_get_mask(c: *const sd_bus_creds) -> u64;
716 pub fn sd_bus_creds_get_augmented_mask(c: *const sd_bus_creds) -> u64;
717
718 pub fn sd_bus_creds_get_pid(c: *mut sd_bus_creds, pid: *mut pid_t) -> c_int;
719 pub fn sd_bus_creds_get_ppid(c: *mut sd_bus_creds, ppid: *mut pid_t) -> c_int;
720 pub fn sd_bus_creds_get_tid(c: *mut sd_bus_creds, tid: *mut pid_t) -> c_int;
721 pub fn sd_bus_creds_get_uid(c: *mut sd_bus_creds, uid: *mut uid_t) -> c_int;
722 pub fn sd_bus_creds_get_euid(c: *mut sd_bus_creds, euid: *mut uid_t) -> c_int;
723 pub fn sd_bus_creds_get_suid(c: *mut sd_bus_creds, suid: *mut uid_t) -> c_int;
724 pub fn sd_bus_creds_get_fsuid(c: *mut sd_bus_creds, fsuid: *mut uid_t) -> c_int;
725 pub fn sd_bus_creds_get_gid(c: *mut sd_bus_creds, gid: *mut gid_t) -> c_int;
726 pub fn sd_bus_creds_get_egid(c: *mut sd_bus_creds, egid: *mut gid_t) -> c_int;
727 pub fn sd_bus_creds_get_sgid(c: *mut sd_bus_creds, sgid: *mut gid_t) -> c_int;
728 pub fn sd_bus_creds_get_fsgid(c: *mut sd_bus_creds, fsgid: *mut gid_t) -> c_int;
729 pub fn sd_bus_creds_get_supplementary_gids(
730 c: *mut sd_bus_creds,
731 gids: *const *mut gid_t,
732 ) -> c_int;
733 pub fn sd_bus_creds_get_comm(c: *mut sd_bus_creds, comm: *mut *const c_char) -> c_int;
734 pub fn sd_bus_creds_get_tid_comm(c: *mut sd_bus_creds, comm: *mut *const c_char) -> c_int;
735 pub fn sd_bus_creds_get_exe(c: *mut sd_bus_creds, exe: *mut *const c_char) -> c_int;
736 pub fn sd_bus_creds_get_cmdline(c: *mut sd_bus_creds, cmdline: *mut *mut *mut c_char) -> c_int;
737 pub fn sd_bus_creds_get_cgroup(c: *mut sd_bus_creds, cgroup: *mut *const c_char) -> c_int;
738 pub fn sd_bus_creds_get_unit(c: *mut sd_bus_creds, unit: *mut *const c_char) -> c_int;
739 pub fn sd_bus_creds_get_slice(c: *mut sd_bus_creds, slice: *mut *const c_char) -> c_int;
740 pub fn sd_bus_creds_get_user_unit(c: *mut sd_bus_creds, unit: *mut *const c_char) -> c_int;
741 pub fn sd_bus_creds_get_user_slice(c: *mut sd_bus_creds, slice: *mut *const c_char) -> c_int;
742 pub fn sd_bus_creds_get_session(c: *mut sd_bus_creds, session: *mut *const c_char) -> c_int;
743 pub fn sd_bus_creds_get_owner_uid(c: *mut sd_bus_creds, uid: *mut uid_t) -> c_int;
744 pub fn sd_bus_creds_has_effective_cap(c: *mut sd_bus_creds, capability: c_int) -> c_int;
745 pub fn sd_bus_creds_has_permitted_cap(c: *mut sd_bus_creds, capability: c_int) -> c_int;
746 pub fn sd_bus_creds_has_inheritable_cap(c: *mut sd_bus_creds, capability: c_int) -> c_int;
747 pub fn sd_bus_creds_has_bounding_cap(c: *mut sd_bus_creds, capability: c_int) -> c_int;
748 pub fn sd_bus_creds_get_selinux_context(
749 c: *mut sd_bus_creds,
750 context: *mut *const c_char,
751 ) -> c_int;
752 pub fn sd_bus_creds_get_audit_session_id(c: *mut sd_bus_creds, sessionid: *mut u32) -> c_int;
753 pub fn sd_bus_creds_get_audit_login_uid(c: *mut sd_bus_creds, loginuid: *mut uid_t) -> c_int;
754 pub fn sd_bus_creds_get_tty(c: *mut sd_bus_creds, tty: *mut *const c_char) -> c_int;
755 pub fn sd_bus_creds_get_unique_name(c: *mut sd_bus_creds, name: *mut *const c_char) -> c_int;
756 pub fn sd_bus_creds_get_well_known_names(
757 c: *mut sd_bus_creds,
758 names: *mut *mut *mut c_char,
759 ) -> c_int;
760 pub fn sd_bus_creds_get_description(c: *mut sd_bus_creds, name: *mut *const c_char) -> c_int;
761
762 pub fn sd_bus_error_free(e: *mut sd_bus_error);
765 pub fn sd_bus_error_set(
766 e: *mut sd_bus_error,
767 name: *const c_char,
768 message: *const c_char,
769 ) -> c_int;
770 pub fn sd_bus_error_setf(
771 e: *mut sd_bus_error,
772 name: *const c_char,
773 format: *const c_char,
774 ...
775 ) -> c_int;
776 pub fn sd_bus_error_set_const(
777 e: *mut sd_bus_error,
778 name: *const c_char,
779 message: *const c_char,
780 ) -> c_int;
781 pub fn sd_bus_error_set_errno(e: *mut sd_bus_error, error: c_int) -> c_int;
782 pub fn sd_bus_error_set_errnof(
783 e: *mut sd_bus_error,
784 error: c_int,
785 format: *const c_char,
786 ...
787 ) -> c_int;
788
789 pub fn sd_bus_error_get_errno(e: *const sd_bus_error) -> c_int;
790 pub fn sd_bus_error_copy(dest: *mut sd_bus_error, e: *const sd_bus_error) -> c_int;
791 pub fn sd_bus_error_is_set(e: *const sd_bus_error) -> c_int;
792 pub fn sd_bus_error_has_name(e: *const sd_bus_error, name: *const c_char) -> c_int;
793
794 pub fn sd_bus_error_add_map(map: *const sd_bus_error_map) -> c_int;
795
796 pub fn sd_bus_path_encode(
799 prefix: *const c_char,
800 external_id: *const c_char,
801 ret_path: *mut *mut c_char,
802 ) -> c_int;
803 pub fn sd_bus_path_encode_many(
804 out: *mut *mut c_char,
805 path_template: *const c_char,
806 ...
807 ) -> c_int;
808 pub fn sd_bus_path_decode(
809 path: *const c_char,
810 prefix: *const c_char,
811 ret_external_id: *mut *mut c_char,
812 ) -> c_int;
813 pub fn sd_bus_path_decode_many(path: *const c_char, path_template: *const c_char, ...)
814 -> c_int;
815
816 pub fn sd_bus_track_new(
819 bus: *mut sd_bus,
820 track: *mut *mut sd_bus_track,
821 handler: sd_bus_track_handler_t,
822 userdata: *mut c_void,
823 ) -> c_int;
824 pub fn sd_bus_track_ref(track: *mut sd_bus_track) -> *mut sd_bus_track;
825 pub fn sd_bus_track_unref(track: *mut sd_bus_track) -> *mut sd_bus_track;
826
827 pub fn sd_bus_track_get_bus(track: *mut sd_bus_track) -> *mut sd_bus;
828 pub fn sd_bus_track_get_userdata(track: *mut sd_bus_track) -> *mut c_void;
829 pub fn sd_bus_track_set_userdata(
830 track: *mut sd_bus_track,
831 userdata: *mut c_void,
832 ) -> *mut c_void;
833
834 pub fn sd_bus_track_add_sender(track: *mut sd_bus_track, m: *mut sd_bus_message) -> c_int;
835 pub fn sd_bus_track_remove_sender(track: *mut sd_bus_track, m: *mut sd_bus_message) -> c_int;
836 pub fn sd_bus_track_add_name(track: *mut sd_bus_track, name: *const c_char) -> c_int;
837 pub fn sd_bus_track_remove_name(track: *mut sd_bus_track, name: *const c_char) -> c_int;
838
839 pub fn sd_bus_track_set_recursive(track: *mut sd_bus_track, b: c_int) -> c_int;
840 pub fn sd_bus_track_count_sender(track: *mut sd_bus_track, m: *mut sd_bus_message) -> c_int;
841 pub fn sd_bus_track_count_name(track: *mut sd_bus_track, name: *const c_char) -> c_int;
842
843 pub fn sd_bus_track_count(track: *mut sd_bus_track) -> c_uint;
844 pub fn sd_bus_track_contains(track: *mut sd_bus_track, names: *const c_char) -> *const c_char;
845 pub fn sd_bus_track_first(track: *mut sd_bus_track) -> *const c_char;
846 pub fn sd_bus_track_next(track: *mut sd_bus_track) -> *const c_char;
847
848 pub fn sd_bus_track_set_destroy_callback(
849 track: *mut sd_bus_track,
850 callback: sd_bus_destroy_t,
851 ) -> c_int;
852 pub fn sd_bus_track_get_destroy_callback(
853 track: *mut sd_bus_track,
854 ret: *mut sd_bus_destroy_t,
855 ) -> c_int;
856}