static int LoadDBUSSyms(void) { #define SDL_DBUS_SYM2(x, y) \ if (!(dbus.x = SDL_LoadFunction(dbus_handle, #y))) return -1 #define SDL_DBUS_SYM(x) \ SDL_DBUS_SYM2(x, dbus_##x) SDL_DBUS_SYM(bus_get_private); SDL_DBUS_SYM(bus_register); SDL_DBUS_SYM(bus_add_match); SDL_DBUS_SYM(connection_open_private); SDL_DBUS_SYM(connection_set_exit_on_disconnect); SDL_DBUS_SYM(connection_get_is_connected); SDL_DBUS_SYM(connection_add_filter); SDL_DBUS_SYM(connection_try_register_object_path); SDL_DBUS_SYM(connection_send); SDL_DBUS_SYM(connection_send_with_reply_and_block); SDL_DBUS_SYM(connection_close); SDL_DBUS_SYM(connection_unref); SDL_DBUS_SYM(connection_flush); SDL_DBUS_SYM(connection_read_write); SDL_DBUS_SYM(connection_dispatch); SDL_DBUS_SYM(message_is_signal); SDL_DBUS_SYM(message_new_method_call); SDL_DBUS_SYM(message_append_args); SDL_DBUS_SYM(message_append_args_valist); SDL_DBUS_SYM(message_get_args); SDL_DBUS_SYM(message_get_args_valist); SDL_DBUS_SYM(message_iter_init); SDL_DBUS_SYM(message_iter_next); SDL_DBUS_SYM(message_iter_get_basic); SDL_DBUS_SYM(message_iter_get_arg_type); SDL_DBUS_SYM(message_iter_recurse); SDL_DBUS_SYM(message_unref); SDL_DBUS_SYM(error_init); SDL_DBUS_SYM(error_is_set); SDL_DBUS_SYM(error_free); SDL_DBUS_SYM(get_local_machine_id); SDL_DBUS_SYM(free); SDL_DBUS_SYM(free_string_array); SDL_DBUS_SYM(shutdown); #undef SDL_DBUS_SYM #undef SDL_DBUS_SYM2 return 0; }
static int load_dbus_syms(void) { /* cast funcs to char* first, to please GCC's strict aliasing rules. */ #define SDL_DBUS_SYM(x) \ if (!load_dbus_sym(#x, (void **) (char *) &DBUS_##x)) return -1 SDL_DBUS_SYM(dbus_bus_get_private); SDL_DBUS_SYM(dbus_connection_set_exit_on_disconnect); SDL_DBUS_SYM(dbus_connection_send); SDL_DBUS_SYM(dbus_connection_close); SDL_DBUS_SYM(dbus_connection_unref); SDL_DBUS_SYM(dbus_connection_flush); SDL_DBUS_SYM(dbus_message_new_method_call); SDL_DBUS_SYM(dbus_message_unref); SDL_DBUS_SYM(dbus_error_init); SDL_DBUS_SYM(dbus_error_is_set); SDL_DBUS_SYM(dbus_error_free); #undef SDL_DBUS_SYM return 0; }