1use super::{c_char, c_int, c_void, clockid_t, pid_t, siginfo_t, signalfd_siginfo};
4
5#[allow(non_camel_case_types)]
6pub enum sd_event {}
7#[allow(non_camel_case_types)]
8pub enum sd_event_source {}
9
10pub const SD_EVENT_OFF: i32 = 0;
11pub const SD_EVENT_ON: i32 = 1;
12pub const SD_EVENT_ONESHOT: i32 = -1;
13
14pub const SD_EVENT_INITIAL: u32 = 0;
15pub const SD_EVENT_ARMED: u32 = 1;
16pub const SD_EVENT_PENDING: u32 = 2;
17pub const SD_EVENT_RUNNING: u32 = 3;
18pub const SD_EVENT_EXITING: u32 = 4;
19pub const SD_EVENT_FINISHED: u32 = 5;
20
21pub const SD_EVENT_PRIORITY_IMPORTANT: i32 = -100;
22pub const SD_EVENT_PRIORITY_NORMAL: i32 = 0;
23pub const SD_EVENT_PRIORITY_IDLE: i32 = 100;
24
25#[allow(non_camel_case_types)]
26pub type sd_event_handler_t =
27 Option<unsafe extern "C" fn(s: *mut sd_event_source, userdata: *mut c_void) -> c_int>;
28#[allow(non_camel_case_types)]
29pub type sd_event_io_handler_t = Option<
30 unsafe extern "C" fn(
31 s: *mut sd_event_source,
32 fd: c_int,
33 revents: u32,
34 userdata: *mut c_void,
35 ) -> c_int,
36>;
37#[allow(non_camel_case_types)]
38pub type sd_event_time_handler_t = Option<
39 unsafe extern "C" fn(s: *mut sd_event_source, usec: u64, userdata: *mut c_void) -> c_int,
40>;
41#[allow(non_camel_case_types)]
42pub type sd_event_signal_handler_t = Option<
43 unsafe extern "C" fn(
44 s: *mut sd_event_source,
45 si: *const signalfd_siginfo,
46 userdata: *mut c_void,
47 ) -> c_int,
48>;
49#[allow(non_camel_case_types)]
50pub type sd_event_child_handler_t = Option<
51 unsafe extern "C" fn(
52 s: *mut sd_event_source,
53 si: *const siginfo_t,
54 userdata: *mut c_void,
55 ) -> c_int,
56>;
57extern "C" {
58 pub fn sd_event_default(e: *mut *mut sd_event) -> c_int;
59 pub fn sd_event_new(e: *mut *mut sd_event) -> c_int;
60 pub fn sd_event_ref(e: *mut sd_event) -> *mut sd_event;
61 pub fn sd_event_unref(e: *mut sd_event) -> *mut sd_event;
62 pub fn sd_event_add_io(
63 e: *mut sd_event,
64 s: *mut *mut sd_event_source,
65 fd: c_int,
66 events: u32,
67 callback: sd_event_io_handler_t,
68 userdata: *mut c_void,
69 ) -> c_int;
70 pub fn sd_event_add_time(
71 e: *mut sd_event,
72 s: *mut *mut sd_event_source,
73 clock: clockid_t,
74 usec: u64,
75 accuracy: u64,
76 callback: sd_event_time_handler_t,
77 userdata: *mut c_void,
78 ) -> c_int;
79 pub fn sd_event_add_signal(
80 e: *mut sd_event,
81 s: *mut *mut sd_event_source,
82 sig: c_int,
83 callback: sd_event_signal_handler_t,
84 userdata: *mut c_void,
85 ) -> c_int;
86 pub fn sd_event_add_child(
87 e: *mut sd_event,
88 s: *mut *mut sd_event_source,
89 pid: pid_t,
90 options: c_int,
91 callback: sd_event_child_handler_t,
92 userdata: *mut c_void,
93 ) -> c_int;
94 pub fn sd_event_add_defer(
95 e: *mut sd_event,
96 s: *mut *mut sd_event_source,
97 callback: sd_event_handler_t,
98 userdata: *mut c_void,
99 ) -> c_int;
100 pub fn sd_event_add_post(
101 e: *mut sd_event,
102 s: *mut *mut sd_event_source,
103 callback: sd_event_handler_t,
104 userdata: *mut c_void,
105 ) -> c_int;
106 pub fn sd_event_add_exit(
107 e: *mut sd_event,
108 s: *mut *mut sd_event_source,
109 callback: sd_event_handler_t,
110 userdata: *mut c_void,
111 ) -> c_int;
112 pub fn sd_event_prepare(e: *mut sd_event) -> c_int;
113 pub fn sd_event_wait(e: *mut sd_event, timeout: u64) -> c_int;
114 pub fn sd_event_dispatch(e: *mut sd_event) -> c_int;
115 pub fn sd_event_run(e: *mut sd_event, timeout: u64) -> c_int;
116 pub fn sd_event_loop(e: *mut sd_event) -> c_int;
117 pub fn sd_event_exit(e: *mut sd_event, code: c_int) -> c_int;
118 pub fn sd_event_now(e: *mut sd_event, clock: clockid_t, usec: *mut u64) -> c_int;
119 pub fn sd_event_get_fd(e: *mut sd_event) -> c_int;
120 pub fn sd_event_get_state(e: *mut sd_event) -> c_int;
121 pub fn sd_event_get_tid(e: *mut sd_event, tid: *mut pid_t) -> c_int;
122 pub fn sd_event_get_exit_code(e: *mut sd_event, code: *mut c_int) -> c_int;
123 pub fn sd_event_set_watchdog(e: *mut sd_event, b: c_int) -> c_int;
124 pub fn sd_event_get_watchdog(e: *mut sd_event) -> c_int;
125 pub fn sd_event_source_ref(s: *mut sd_event_source) -> *mut sd_event_source;
126 pub fn sd_event_source_unref(s: *mut sd_event_source) -> *mut sd_event_source;
127 pub fn sd_event_source_get_event(s: *mut sd_event_source) -> *mut sd_event;
128 pub fn sd_event_source_get_userdata(s: *mut sd_event_source) -> *mut c_void;
129 pub fn sd_event_source_set_userdata(
130 s: *mut sd_event_source,
131 userdata: *mut c_void,
132 ) -> *mut c_void;
133 pub fn sd_event_source_set_description(
134 s: *mut sd_event_source,
135 description: *const c_char,
136 ) -> c_int;
137 pub fn sd_event_source_get_description(
138 s: *mut sd_event_source,
139 description: *mut *const c_char,
140 ) -> c_int;
141 pub fn sd_event_source_set_prepare(
142 s: *mut sd_event_source,
143 callback: sd_event_handler_t,
144 ) -> c_int;
145 pub fn sd_event_source_get_pending(s: *mut sd_event_source) -> c_int;
146 pub fn sd_event_source_get_priority(s: *mut sd_event_source, priority: *mut i64) -> c_int;
147 pub fn sd_event_source_set_priority(s: *mut sd_event_source, priority: i64) -> c_int;
148 pub fn sd_event_source_get_enabled(s: *mut sd_event_source, enabled: *mut c_int) -> c_int;
149 pub fn sd_event_source_set_enabled(s: *mut sd_event_source, enabled: c_int) -> c_int;
150 pub fn sd_event_source_get_io_fd(s: *mut sd_event_source) -> c_int;
151 pub fn sd_event_source_set_io_fd(s: *mut sd_event_source, fd: c_int) -> c_int;
152 pub fn sd_event_source_get_io_events(s: *mut sd_event_source, events: *mut u32) -> c_int;
153 pub fn sd_event_source_set_io_events(s: *mut sd_event_source, events: u32) -> c_int;
154 pub fn sd_event_source_get_io_revents(s: *mut sd_event_source, revents: *mut u32) -> c_int;
155 pub fn sd_event_source_get_time(s: *mut sd_event_source, usec: *mut u64) -> c_int;
156 pub fn sd_event_source_set_time(s: *mut sd_event_source, usec: u64) -> c_int;
157 pub fn sd_event_source_get_time_accuracy(s: *mut sd_event_source, usec: *mut u64) -> c_int;
158 pub fn sd_event_source_set_time_accuracy(s: *mut sd_event_source, usec: u64) -> c_int;
159 pub fn sd_event_source_get_time_clock(s: *mut sd_event_source, clock: *mut clockid_t) -> c_int;
160 pub fn sd_event_source_get_signal(s: *mut sd_event_source) -> c_int;
161 pub fn sd_event_source_get_child_pid(s: *mut sd_event_source, pid: *mut pid_t) -> c_int;
162}