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 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197
#![allow(dead_code)] use libc::{c_void, c_char, c_uint, c_int}; pub type DBusConnection = c_void; pub type DBusMessage = c_void; pub type DBusCallback = extern "C" fn(*mut c_void, *mut c_void, *mut c_void) -> DBusHandlerResult; #[repr(C)] #[derive(Debug, PartialEq, Copy)] pub enum DBusBusType { Session = 0, System = 1, Starter = 2, } pub const DBUS_TYPE_ARRAY: c_int = 'a' as c_int; pub const DBUS_TYPE_VARIANT: c_int = 'v' as c_int; pub const DBUS_TYPE_BOOLEAN: c_int = 'b' as c_int; pub const DBUS_TYPE_INVALID: c_int = 0; pub const DBUS_TYPE_STRING: c_int = 's' as c_int; pub const DBUS_TYPE_DICT_ENTRY: c_int = 'e' as c_int; pub const DBUS_TYPE_BYTE: c_int = 'y' as c_int; pub const DBUS_TYPE_INT16: c_int = 'n' as c_int; pub const DBUS_TYPE_UINT16: c_int = 'q' as c_int; pub const DBUS_TYPE_INT32: c_int = 'i' as c_int; pub const DBUS_TYPE_UINT32: c_int = 'u' as c_int; pub const DBUS_TYPE_INT64: c_int = 'x' as c_int; pub const DBUS_TYPE_UINT64: c_int = 't' as c_int; pub const DBUS_TYPE_DOUBLE: c_int = 'd' as c_int; pub const DBUS_TYPE_UNIX_FD: c_int = 'h' as c_int; pub const DBUS_TYPE_STRUCT: c_int = 'r' as c_int; pub const DBUS_TYPE_OBJECT_PATH: c_int = 'o' as c_int; #[repr(C)] #[derive(Debug, PartialEq, Copy)] pub enum DBusNameFlag { AllowReplacement = 1, ReplaceExisting = 2, DoNotQueue = 4, } #[repr(C)] #[derive(Debug, PartialEq, Copy)] pub enum DBusRequestNameReply { PrimaryOwner = 1, InQueue = 2, Exists = 3, AlreadyOwner = 4, } #[repr(C)] #[derive(Debug, PartialEq, Copy)] pub enum DBusReleaseNameReply { Released = 1, NonExistent = 2, NotOwner = 3, } #[repr(C)] #[derive(Debug, PartialEq, Copy)] pub enum DBusHandlerResult { Handled = 0, NotYetHandled = 1, NeedMemory = 2, } #[repr(C)] #[derive(Debug, PartialEq, Copy)] pub enum DBusMessageType { Invalid = 0, MethodCall = 1, MethodReturn = 2, Error = 3, Signal = 4, } #[repr(C)] #[derive(Debug, PartialEq, Copy)] pub enum DBusDispatchStatus { DataRemains = 0, Complete = 1, NeedMemory = 2, } #[repr(C)] pub struct DBusError { pub name: *const c_char, pub message: *const c_char, pub dummy: c_uint, pub padding1: *const c_void } #[repr(C)] pub struct DBusMessageIter { pub dummy1: *mut (), pub dummy2: *mut (), pub dummy3: u32, pub dummy4: c_int, pub dummy5: c_int, pub dummy6: c_int, pub dummy7: c_int, pub dummy8: c_int, pub dummy9: c_int, pub dummy10: c_int, pub dummy11: c_int, pub pad1: c_int, pub pad2: c_int, pub pad3: *mut (), } pub type DBusHandleMessageFunction = Option< extern fn(conn: *mut DBusConnection, msg: *mut DBusMessage, user_data: *mut c_void) -> DBusHandlerResult>; #[repr(C)] pub struct DBusObjectPathVTable { pub unregister_function: Option<extern fn(conn: *mut DBusConnection, user_data: *mut c_void)>, pub message_function: DBusHandleMessageFunction, pub dbus_internal_pad1: Option<extern fn()>, pub dbus_internal_pad2: Option<extern fn()>, pub dbus_internal_pad3: Option<extern fn()>, pub dbus_internal_pad4: Option<extern fn()>, } #[link(name = "dbus-1")] extern "C" { pub fn dbus_bus_get_private(t: DBusBusType, error: *mut DBusError) -> *mut DBusConnection; pub fn dbus_bus_get_unique_name(conn: *mut DBusConnection) -> *const c_char; pub fn dbus_bus_request_name(conn: *mut DBusConnection, name: *const c_char, flags: c_uint, error: *mut DBusError) -> c_int; pub fn dbus_bus_release_name(conn: *mut DBusConnection, name: *const c_char, error: *mut DBusError) -> c_int; pub fn dbus_bus_add_match(conn: *mut DBusConnection, rule: *const c_char, error: *mut DBusError); pub fn dbus_bus_remove_match(conn: *mut DBusConnection, rule: *const c_char, error: *mut DBusError); pub fn dbus_connection_close(conn: *mut DBusConnection); pub fn dbus_connection_dispatch(conn: *mut DBusConnection) -> DBusDispatchStatus; pub fn dbus_connection_flush(conn: *mut DBusConnection); pub fn dbus_connection_unref(conn: *mut DBusConnection); pub fn dbus_connection_set_exit_on_disconnect(conn: *mut DBusConnection, enable: u32); pub fn dbus_connection_send_with_reply_and_block(conn: *mut DBusConnection, message: *mut DBusMessage, timeout_milliseconds: c_int, error: *mut DBusError) -> *mut DBusMessage; pub fn dbus_connection_send(conn: *mut DBusConnection, message: *mut DBusMessage, serial: *mut u32) -> u32; pub fn dbus_connection_read_write_dispatch(conn: *mut DBusConnection, timeout_milliseconds: c_int) -> u32; pub fn dbus_connection_try_register_object_path(conn: *mut DBusConnection, path: *const c_char, vtable: *const DBusObjectPathVTable, user_data: *mut c_void, error: *mut DBusError) -> u32; pub fn dbus_connection_unregister_object_path(conn: *mut DBusConnection, path: *const c_char) -> u32; pub fn dbus_connection_list_registered(conn: *mut DBusConnection, parent_path: *const c_char, child_entries: *mut *mut *mut c_char) -> u32; pub fn dbus_connection_add_filter(conn: *mut DBusConnection, function: DBusHandleMessageFunction, user_data: *mut c_void, free_data_function: Option<extern fn(memory: *mut c_void)>) -> u32; pub fn dbus_connection_remove_filter(conn: *mut DBusConnection, function: DBusHandleMessageFunction, user_data: *mut c_void) -> u32; pub fn dbus_error_init(error: *mut DBusError); pub fn dbus_error_free(error: *mut DBusError); pub fn dbus_set_error(error: *mut DBusError, name: *const c_char, message: *const c_char, ...); pub fn dbus_set_error_from_message(error: *mut DBusError, message: *mut DBusMessage) -> u32; pub fn dbus_message_new_method_call(destination: *const c_char, path: *const c_char, iface: *const c_char, method: *const c_char) -> *mut DBusMessage; pub fn dbus_message_new_method_return(message: *mut DBusMessage) -> *mut DBusMessage; pub fn dbus_message_new_error(message: *mut DBusMessage, error_name: *const c_char, error_message: *const c_char) -> *mut DBusMessage; pub fn dbus_message_new_signal(path: *const c_char, iface: *const c_char, name: *const c_char) -> *mut DBusMessage; pub fn dbus_message_ref(message: *mut DBusMessage) -> *mut DBusMessage; pub fn dbus_message_unref(message: *mut DBusMessage); pub fn dbus_message_get_type(message: *mut DBusMessage) -> c_int; pub fn dbus_message_is_method_call(message: *mut DBusMessage, iface: *const c_char, method: *const c_char) -> u32; pub fn dbus_message_is_signal(message: *mut DBusMessage, iface: *const c_char, signal_name: *const c_char) -> u32; pub fn dbus_message_get_path(message: *mut DBusMessage) -> *const c_char; pub fn dbus_message_get_interface(message: *mut DBusMessage) -> *const c_char; pub fn dbus_message_get_member(message: *mut DBusMessage) -> *const c_char; pub fn dbus_message_get_sender(message: *mut DBusMessage) -> *const c_char; pub fn dbus_message_iter_append_basic(iter: *mut DBusMessageIter, t: c_int, value: *const c_void) -> u32; pub fn dbus_message_iter_init(message: *mut DBusMessage, iter: *mut DBusMessageIter) -> u32; pub fn dbus_message_iter_init_append(message: *mut DBusMessage, iter: *mut DBusMessageIter); pub fn dbus_message_iter_get_arg_type(iter: *mut DBusMessageIter) -> c_int; pub fn dbus_message_iter_get_basic(iter: *mut DBusMessageIter, value: *mut c_void); pub fn dbus_message_iter_next(iter: *mut DBusMessageIter) -> u32; pub fn dbus_message_iter_recurse(iter: *mut DBusMessageIter, subiter: *mut DBusMessageIter); pub fn dbus_message_iter_open_container(iter: *mut DBusMessageIter, _type: c_int, contained_signature: *const c_char, sub: *mut DBusMessageIter) -> u32; pub fn dbus_message_iter_close_container(iter: *mut DBusMessageIter, sub: *mut DBusMessageIter) -> u32; pub fn dbus_free_string_array(str_array: *mut *mut c_char) -> c_void; pub fn dbus_threads_init_default() -> c_int; }