1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
// automatically generated by rust-bindgen with manual adjustments

use super::{c_void, c_int, c_char, uint32_t, uint64_t, signalfd_siginfo, siginfo_t, clockid_t,
            pid_t, int64_t};

#[allow(non_camel_case_types)]
pub enum sd_event {}
#[allow(non_camel_case_types)]
pub enum sd_event_source {}

pub const SD_EVENT_OFF: i32 = 0;
pub const SD_EVENT_ON: i32 = 1;
pub const SD_EVENT_ONESHOT: i32 = -1;

pub const SD_EVENT_INITIAL: u32 = 0;
pub const SD_EVENT_ARMED: u32 = 1;
pub const SD_EVENT_PENDING: u32 = 2;
pub const SD_EVENT_RUNNING: u32 = 3;
pub const SD_EVENT_EXITING: u32 = 4;
pub const SD_EVENT_FINISHED: u32 = 5;

pub const SD_EVENT_PRIORITY_IMPORTANT: i32 = -100;
pub const SD_EVENT_PRIORITY_NORMAL: i32 = 0;
pub const SD_EVENT_PRIORITY_IDLE: i32 = 100;

#[allow(non_camel_case_types)]
pub type sd_event_handler_t = Option<unsafe extern "C" fn(s: *mut sd_event_source,
                                                          userdata: *mut c_void)
                                                          -> c_int>;
#[allow(non_camel_case_types)]
pub type sd_event_io_handler_t = Option<unsafe extern "C" fn(s: *mut sd_event_source,
                                                             fd: c_int,
                                                             revents: uint32_t,
                                                             userdata: *mut c_void)
                                                             -> c_int>;
#[allow(non_camel_case_types)]
pub type sd_event_time_handler_t = Option<unsafe extern "C" fn(s: *mut sd_event_source,
                                                               usec: uint64_t,
                                                               userdata: *mut c_void)
                                                               -> c_int>;
#[allow(non_camel_case_types)]
pub type sd_event_signal_handler_t = Option<unsafe extern "C" fn(s: *mut sd_event_source,
                                                                 si: *const signalfd_siginfo,
                                                                 userdata: *mut c_void)
                                                                 -> c_int>;
#[allow(non_camel_case_types)]
pub type sd_event_child_handler_t = Option<unsafe extern "C" fn(s: *mut sd_event_source,
                                                                si: *const siginfo_t,
                                                                userdata: *mut c_void)
                                                                -> c_int>;
extern "C" {
    pub fn sd_event_default(e: *mut *mut sd_event) -> c_int;
    pub fn sd_event_new(e: *mut *mut sd_event) -> c_int;
    pub fn sd_event_ref(e: *mut sd_event) -> *mut sd_event;
    pub fn sd_event_unref(e: *mut sd_event) -> *mut sd_event;
    pub fn sd_event_add_io(e: *mut sd_event,
                           s: *mut *mut sd_event_source,
                           fd: c_int,
                           events: uint32_t,
                           callback: sd_event_io_handler_t,
                           userdata: *mut c_void)
                           -> c_int;
    pub fn sd_event_add_time(e: *mut sd_event,
                             s: *mut *mut sd_event_source,
                             clock: clockid_t,
                             usec: uint64_t,
                             accuracy: uint64_t,
                             callback: sd_event_time_handler_t,
                             userdata: *mut c_void)
                             -> c_int;
    pub fn sd_event_add_signal(e: *mut sd_event,
                               s: *mut *mut sd_event_source,
                               sig: c_int,
                               callback: sd_event_signal_handler_t,
                               userdata: *mut c_void)
                               -> c_int;
    pub fn sd_event_add_child(e: *mut sd_event,
                              s: *mut *mut sd_event_source,
                              pid: pid_t,
                              options: c_int,
                              callback: sd_event_child_handler_t,
                              userdata: *mut c_void)
                              -> c_int;
    pub fn sd_event_add_defer(e: *mut sd_event,
                              s: *mut *mut sd_event_source,
                              callback: sd_event_handler_t,
                              userdata: *mut c_void)
                              -> c_int;
    pub fn sd_event_add_post(e: *mut sd_event,
                             s: *mut *mut sd_event_source,
                             callback: sd_event_handler_t,
                             userdata: *mut c_void)
                             -> c_int;
    pub fn sd_event_add_exit(e: *mut sd_event,
                             s: *mut *mut sd_event_source,
                             callback: sd_event_handler_t,
                             userdata: *mut c_void)
                             -> c_int;
    pub fn sd_event_prepare(e: *mut sd_event) -> c_int;
    pub fn sd_event_wait(e: *mut sd_event, timeout: uint64_t) -> c_int;
    pub fn sd_event_dispatch(e: *mut sd_event) -> c_int;
    pub fn sd_event_run(e: *mut sd_event, timeout: uint64_t) -> c_int;
    pub fn sd_event_loop(e: *mut sd_event) -> c_int;
    pub fn sd_event_exit(e: *mut sd_event, code: c_int) -> c_int;
    pub fn sd_event_now(e: *mut sd_event, clock: clockid_t, usec: *mut uint64_t) -> c_int;
    pub fn sd_event_get_fd(e: *mut sd_event) -> c_int;
    pub fn sd_event_get_state(e: *mut sd_event) -> c_int;
    pub fn sd_event_get_tid(e: *mut sd_event, tid: *mut pid_t) -> c_int;
    pub fn sd_event_get_exit_code(e: *mut sd_event, code: *mut c_int) -> c_int;
    pub fn sd_event_set_watchdog(e: *mut sd_event, b: c_int) -> c_int;
    pub fn sd_event_get_watchdog(e: *mut sd_event) -> c_int;
    pub fn sd_event_source_ref(s: *mut sd_event_source) -> *mut sd_event_source;
    pub fn sd_event_source_unref(s: *mut sd_event_source) -> *mut sd_event_source;
    pub fn sd_event_source_get_event(s: *mut sd_event_source) -> *mut sd_event;
    pub fn sd_event_source_get_userdata(s: *mut sd_event_source) -> *mut c_void;
    pub fn sd_event_source_set_userdata(s: *mut sd_event_source,
                                        userdata: *mut c_void)
                                        -> *mut c_void;
    pub fn sd_event_source_set_description(s: *mut sd_event_source,
                                           description: *const c_char)
                                           -> c_int;
    pub fn sd_event_source_get_description(s: *mut sd_event_source,
                                           description: *mut *const c_char)
                                           -> c_int;
    pub fn sd_event_source_set_prepare(s: *mut sd_event_source,
                                       callback: sd_event_handler_t)
                                       -> c_int;
    pub fn sd_event_source_get_pending(s: *mut sd_event_source) -> c_int;
    pub fn sd_event_source_get_priority(s: *mut sd_event_source, priority: *mut int64_t) -> c_int;
    pub fn sd_event_source_set_priority(s: *mut sd_event_source, priority: int64_t) -> c_int;
    pub fn sd_event_source_get_enabled(s: *mut sd_event_source, enabled: *mut c_int) -> c_int;
    pub fn sd_event_source_set_enabled(s: *mut sd_event_source, enabled: c_int) -> c_int;
    pub fn sd_event_source_get_io_fd(s: *mut sd_event_source) -> c_int;
    pub fn sd_event_source_set_io_fd(s: *mut sd_event_source, fd: c_int) -> c_int;
    pub fn sd_event_source_get_io_events(s: *mut sd_event_source, events: *mut uint32_t) -> c_int;
    pub fn sd_event_source_set_io_events(s: *mut sd_event_source, events: uint32_t) -> c_int;
    pub fn sd_event_source_get_io_revents(s: *mut sd_event_source,
                                          revents: *mut uint32_t)
                                          -> c_int;
    pub fn sd_event_source_get_time(s: *mut sd_event_source, usec: *mut uint64_t) -> c_int;
    pub fn sd_event_source_set_time(s: *mut sd_event_source, usec: uint64_t) -> c_int;
    pub fn sd_event_source_get_time_accuracy(s: *mut sd_event_source,
                                             usec: *mut uint64_t)
                                             -> c_int;
    pub fn sd_event_source_set_time_accuracy(s: *mut sd_event_source, usec: uint64_t) -> c_int;
    pub fn sd_event_source_get_time_clock(s: *mut sd_event_source, clock: *mut clockid_t) -> c_int;
    pub fn sd_event_source_get_signal(s: *mut sd_event_source) -> c_int;
    pub fn sd_event_source_get_child_pid(s: *mut sd_event_source, pid: *mut pid_t) -> c_int;
}