亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dbus.c

?? 基于LINUX內(nèi)核驅(qū)動的開發(fā)
?? C
?? 第 1 頁 / 共 2 頁
字號:
	if (dbus_message_is_signal(msg,			DBUS_INTERFACE_LOCAL, "Disconnected") == TRUE) {		error("Got disconnected from the system message bus");		dbus_connection_unref(conn);		dc_data->disconnect_cb(dc_data->user_data);	}	return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;}#ifndef HAVE_DBUS_GLIBstatic dbus_int32_t server_slot = -1;static gboolean server_func(GIOChannel *chan, GIOCondition cond, gpointer data){	DBusWatch *watch = data;	int flags = 0;	if (cond & G_IO_IN)  flags |= DBUS_WATCH_READABLE;	if (cond & G_IO_OUT) flags |= DBUS_WATCH_WRITABLE;	if (cond & G_IO_HUP) flags |= DBUS_WATCH_HANGUP;	if (cond & G_IO_ERR) flags |= DBUS_WATCH_ERROR;	dbus_watch_handle(watch, flags);	return TRUE;}static dbus_bool_t add_server(DBusWatch *watch, void *data){	GIOCondition cond = G_IO_HUP | G_IO_ERR;	DBusServer *server = data;	struct server_info *info;	int fd, flags;	if (!dbus_watch_get_enabled(watch))		return TRUE;	info = g_new(struct server_info, 1);	fd = dbus_watch_get_unix_fd(watch);	info->io = g_io_channel_unix_new(fd);	info->server = dbus_server_ref(server);	dbus_watch_set_data(watch, info, NULL);	flags = dbus_watch_get_flags(watch);	if (flags & DBUS_WATCH_READABLE) cond |= G_IO_IN;	if (flags & DBUS_WATCH_WRITABLE) cond |= G_IO_OUT;	info->watch_id = g_io_add_watch(info->io, cond, server_func, watch);	return TRUE;}static void remove_server(DBusWatch *watch, void *data){	struct server_info *info = dbus_watch_get_data(watch);	dbus_watch_set_data(watch, NULL, NULL);	if (info) {		g_source_remove(info->watch_id);		g_io_channel_unref(info->io);		dbus_server_unref(info->server);		g_free(info);	}}static void server_toggled(DBusWatch *watch, void *data){	/* Because we just exit on OOM, enable/disable is	 * no different from add/remove */	if (dbus_watch_get_enabled(watch))		add_server(watch, data);	else		remove_server(watch, data);}static gboolean message_dispatch_cb(void *data){	DBusConnection *connection = data;	dbus_connection_ref(connection);	/* Dispatch messages */	while (dbus_connection_dispatch(connection) == DBUS_DISPATCH_DATA_REMAINS);	dbus_connection_unref(connection);	return FALSE;}static gboolean watch_func(GIOChannel *chan, GIOCondition cond, gpointer data){	DBusWatch *watch = data;	struct watch_info *info = dbus_watch_get_data(watch);	int flags = 0;	if (cond & G_IO_IN)  flags |= DBUS_WATCH_READABLE;	if (cond & G_IO_OUT) flags |= DBUS_WATCH_WRITABLE;	if (cond & G_IO_HUP) flags |= DBUS_WATCH_HANGUP;	if (cond & G_IO_ERR) flags |= DBUS_WATCH_ERROR;	dbus_watch_handle(watch, flags);	if (dbus_connection_get_dispatch_status(info->conn) == DBUS_DISPATCH_DATA_REMAINS)		g_timeout_add(DISPATCH_TIMEOUT, message_dispatch_cb, info->conn);	return TRUE;}static dbus_bool_t add_watch(DBusWatch *watch, void *data){	GIOCondition cond = G_IO_HUP | G_IO_ERR;	DBusConnection *conn = data;	struct watch_info *info;	int fd, flags;	if (!dbus_watch_get_enabled(watch))		return TRUE;	info = g_new(struct watch_info, 1);	fd = dbus_watch_get_unix_fd(watch);	info->io = g_io_channel_unix_new(fd);	info->conn = dbus_connection_ref(conn);	dbus_watch_set_data(watch, info, NULL);	flags = dbus_watch_get_flags(watch);	if (flags & DBUS_WATCH_READABLE) cond |= G_IO_IN;	if (flags & DBUS_WATCH_WRITABLE) cond |= G_IO_OUT;	info->watch_id = g_io_add_watch(info->io, cond, watch_func, watch);	return TRUE;}static void remove_watch(DBusWatch *watch, void *data){	struct watch_info *info = dbus_watch_get_data(watch);	dbus_watch_set_data(watch, NULL, NULL);	if (info) {		g_source_remove(info->watch_id);		g_io_channel_unref(info->io);		dbus_connection_unref(info->conn);		g_free(info);	}}static void watch_toggled(DBusWatch *watch, void *data){	/* Because we just exit on OOM, enable/disable is	 * no different from add/remove */	if (dbus_watch_get_enabled(watch))		add_watch(watch, data);	else		remove_watch(watch, data);}static gboolean timeout_handler_dispatch(gpointer data){	timeout_handler_t *handler = data;	/* if not enabled should not be polled by the main loop */	if (dbus_timeout_get_enabled(handler->timeout) != TRUE)		return FALSE;	dbus_timeout_handle(handler->timeout);	return FALSE;}static void timeout_handler_free(void *data){	timeout_handler_t *handler = data;	if (!handler)		return;	g_source_remove(handler->id);	g_free(handler);}static dbus_bool_t add_timeout(DBusTimeout *timeout, void *data){	timeout_handler_t *handler;	if (!dbus_timeout_get_enabled(timeout))		return TRUE;	handler = g_new0(timeout_handler_t, 1);	handler->timeout = timeout;	handler->id = g_timeout_add(dbus_timeout_get_interval(timeout),					timeout_handler_dispatch, handler);	dbus_timeout_set_data(timeout, handler, timeout_handler_free);	return TRUE;}static void remove_timeout(DBusTimeout *timeout, void *data){}static void timeout_toggled(DBusTimeout *timeout, void *data){	if (dbus_timeout_get_enabled(timeout))		add_timeout(timeout, data);	else		remove_timeout(timeout, data);}static void dispatch_status_cb(DBusConnection *conn,				DBusDispatchStatus new_status, void *data){	if (!dbus_connection_get_is_connected(conn))		return;	if (new_status == DBUS_DISPATCH_DATA_REMAINS)		g_timeout_add(DISPATCH_TIMEOUT, message_dispatch_cb, data);}#endifvoid setup_dbus_server_with_main_loop(DBusServer *server){#ifdef HAVE_DBUS_GLIB	debug("Using D-Bus GLib server setup");	dbus_server_setup_with_g_main(server, NULL);#else	dbus_server_allocate_data_slot(&server_slot);	if (server_slot < 0)		return;	dbus_server_set_data(server, server_slot, server, NULL);	dbus_server_set_watch_functions(server, add_server, remove_server,						server_toggled, server, NULL);	dbus_server_set_timeout_functions(server, add_timeout, remove_timeout,						timeout_toggled, server, NULL);#endif}void setup_dbus_with_main_loop(DBusConnection *conn){#ifdef HAVE_DBUS_GLIB	debug("Using D-Bus GLib connection setup");	dbus_connection_setup_with_g_main(conn, NULL);#else	dbus_connection_set_watch_functions(conn, add_watch, remove_watch,						watch_toggled, conn, NULL);	dbus_connection_set_timeout_functions(conn, add_timeout, remove_timeout,						timeout_toggled, conn, NULL);	dbus_connection_set_dispatch_status_function(conn, dispatch_status_cb,								conn, NULL);#endif}DBusConnection *init_dbus(const char *name,				void (*disconnect_cb)(void *), void *user_data){	struct disconnect_data *dc_data;	DBusConnection *conn;	DBusError err;	dbus_error_init(&err);	conn = dbus_bus_get(DBUS_BUS_SYSTEM, &err);	if (dbus_error_is_set(&err)) {		error("Can't connect to system message bus: %s", err.message);		dbus_error_free(&err);		return NULL;	}	setup_dbus_with_main_loop(conn);	if (name) {		dbus_error_init(&err);		if (dbus_bus_request_name(conn, name, 0, &err) !=				DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER ) {			error("Could not become the primary owner of %s", name);			dbus_connection_unref(conn);			return NULL;		}		if (dbus_error_is_set(&err)) {			error("Can't get bus name %s: %s", name, err.message);			dbus_error_free(&err);			dbus_connection_unref(conn);			return NULL;		}	}	if (!disconnect_cb)		return conn;	dc_data = g_new(struct disconnect_data, 1);	dc_data->disconnect_cb = disconnect_cb;	dc_data->user_data = user_data;	dbus_connection_set_exit_on_disconnect(conn, FALSE);	if (!dbus_connection_add_filter(conn, disconnect_filter,				dc_data, g_free)) {		error("Can't add D-Bus disconnect filter");		g_free(dc_data);		dbus_connection_unref(conn);		return NULL;	}	return conn;}DBusConnection *init_dbus_direct(const char *address){	DBusConnection *conn;	DBusError err;	dbus_error_init(&err);	conn = dbus_connection_open(address, &err);	if (dbus_error_is_set(&err)) {		error("Can't connect to message server: %s", err.message);		dbus_error_free(&err);		return NULL;	}	setup_dbus_with_main_loop(conn);	dbus_connection_set_exit_on_disconnect(conn, FALSE);	return conn;}DBusConnection *dbus_bus_system_setup_with_main_loop(const char *name,				void (*disconnect_cb)(void *), void *user_data){	return init_dbus(name, disconnect_cb, user_data);}static char simple_xml[] = DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE "<node></node>";DBusHandlerResult simple_introspect(DBusConnection *conn,					DBusMessage *msg, void *user_data){	DBusMessage *reply;	const char *path, *ptr = simple_xml;	path = dbus_message_get_path(msg);	info("Introspect path:%s", path);	if (!dbus_message_has_signature(msg, DBUS_TYPE_INVALID_AS_STRING)) {		error("Unexpected signature to introspect call");		return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;	}	reply = dbus_message_new_method_return(msg);	if (!reply)		return DBUS_HANDLER_RESULT_NEED_MEMORY;	dbus_message_append_args(reply, DBUS_TYPE_STRING, &ptr,					DBUS_TYPE_INVALID);	return send_message_and_unref(conn, reply);}int set_nonblocking(int fd){	long arg;	arg = fcntl(fd, F_GETFL);	if (arg < 0) {		error("fcntl(F_GETFL): %s (%d)", strerror(errno), errno);		return -errno;	}	/* Return if already nonblocking */	if (arg & O_NONBLOCK)		return 0;	arg |= O_NONBLOCK;	if (fcntl(fd, F_SETFL, arg) < 0) {		error("fcntl(F_SETFL, O_NONBLOCK): %s (%d)",				strerror(errno), errno);		return -errno;	}	return 0;}void register_external_service(DBusConnection *conn, const char *identifier,				const char *name, const char *description){	DBusMessage *msg, *reply;	info("Registering service");	msg = dbus_message_new_method_call("org.bluez", "/org/bluez",				"org.bluez.Database", "RegisterService");	if (!msg) {		error("Can't create service register method");		return;	}	dbus_message_append_args(msg, DBUS_TYPE_STRING, &identifier,			DBUS_TYPE_STRING, &name,			DBUS_TYPE_STRING, &description, DBUS_TYPE_INVALID);	reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, NULL);	if (!reply) {		error("Can't register service");		return;	}	dbus_message_unref(msg);	dbus_message_unref(reply);	dbus_connection_flush(conn);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩在线不卡| 亚洲免费在线电影| 国产不卡在线视频| 亚洲精品国产第一综合99久久| 欧美午夜不卡在线观看免费| 极品少妇xxxx精品少妇| 亚洲三级在线看| 欧美不卡视频一区| 99精品1区2区| 六月丁香婷婷色狠狠久久| 中文字幕不卡的av| 6080午夜不卡| 99国产精品视频免费观看| 日韩—二三区免费观看av| 国产精品久久毛片a| 欧美丰满少妇xxxbbb| 波多野结衣欧美| 青青青伊人色综合久久| 亚洲欧洲av色图| 日韩美女视频一区二区在线观看| 91首页免费视频| 精品一区二区成人精品| 亚洲自拍偷拍av| 国产日韩av一区二区| 91精品国产综合久久精品app | 国产蜜臀av在线一区二区三区| 一本久久精品一区二区| 国内不卡的二区三区中文字幕| 亚洲在线成人精品| 国产精品免费aⅴ片在线观看| 7777精品伊人久久久大香线蕉| 99久久精品国产导航| 狠狠色狠狠色综合| 午夜欧美电影在线观看| 亚洲男人天堂av网| 国产精品国产三级国产有无不卡| 精品国产一区二区在线观看| 欧美日韩免费观看一区三区| 92精品国产成人观看免费| 国产成人精品免费| 亚洲在线视频网站| 国产精品免费看片| 26uuu亚洲婷婷狠狠天堂| 91丨porny丨最新| 成人激情动漫在线观看| 国产乱码精品1区2区3区| 视频一区欧美精品| 国产精品美女久久久久久久网站| 欧美精品一区二区三区高清aⅴ | 亚洲国产成人91porn| 国产精品成人网| 国产精品三级电影| 国产亚洲精久久久久久| 国产喂奶挤奶一区二区三区| 欧美tickling挠脚心丨vk| 欧美一区二区福利在线| 欧美一区二区女人| 日韩一区二区视频| 欧美一级淫片007| 911精品产国品一二三产区| 欧美吞精做爰啪啪高潮| 欧美色偷偷大香| 欧美在线你懂的| 欧美综合一区二区| 欧美日韩一区视频| 欧美肥胖老妇做爰| 日韩亚洲欧美一区| 日韩欧美成人一区二区| 精品国产伦一区二区三区观看体验| 日韩一区二区三区在线| 欧美岛国在线观看| 欧美精品一区二区三区一线天视频| 2024国产精品| 精品第一国产综合精品aⅴ| 久久久久久久综合日本| 中文字幕精品一区二区精品绿巨人 | 午夜免费欧美电影| 免费不卡在线观看| 国产精品一二三四| av欧美精品.com| 91国产丝袜在线播放| 欧美日韩成人综合天天影院| 欧美成人三级电影在线| 精品国产3级a| 久久毛片高清国产| 中文字幕国产一区二区| 亚洲欧美另类小说视频| 一区二区免费视频| 日韩国产欧美在线观看| 国产一区二区三区不卡在线观看 | 北条麻妃国产九九精品视频| 国产精品99久久久久久有的能看| 岛国精品一区二区| 欧美主播一区二区三区| 日韩欧美中文字幕精品| 欧美激情一区二区三区四区| 亚洲精品菠萝久久久久久久| 日韩精品久久久久久| 岛国av在线一区| 欧美日韩精品三区| 久久久久久免费| 午夜欧美一区二区三区在线播放| 久久国产夜色精品鲁鲁99| 97久久精品人人澡人人爽| 欧美伦理电影网| 久久综合九色综合欧美亚洲| 一色桃子久久精品亚洲| 免费久久99精品国产| 99麻豆久久久国产精品免费优播| 欧美精品日韩精品| 精品久久人人做人人爽| 亚洲欧洲综合另类| 韩国成人福利片在线播放| 色综合夜色一区| 91精品国产麻豆| 中文字幕一区二区三| 日韩精品一区第一页| av中文一区二区三区| 日韩欧美国产综合| 亚洲狠狠爱一区二区三区| 国产成人一区二区精品非洲| 欧美人牲a欧美精品| √…a在线天堂一区| 五月天亚洲精品| 91在线视频免费91| 久久亚洲免费视频| 天堂一区二区在线| 91碰在线视频| 国产午夜亚洲精品理论片色戒| 无码av免费一区二区三区试看| aaa亚洲精品| 日韩写真欧美这视频| 一区二区高清在线| 国产一区欧美一区| 欧美日韩一级二级三级| 亚洲天堂久久久久久久| 国产成人精品免费网站| 欧美va天堂va视频va在线| 日韩电影在线一区二区三区| 99久久久精品免费观看国产蜜| 国产喂奶挤奶一区二区三区| 九一九一国产精品| 欧美一区二区三区在线看| 亚洲高清不卡在线| 色天天综合久久久久综合片| 综合久久一区二区三区| 成人福利电影精品一区二区在线观看| 欧美电影免费提供在线观看| 日本va欧美va欧美va精品| 91麻豆精品国产综合久久久久久| 亚洲一区二区三区国产| 91成人在线免费观看| 一区二区三区欧美日| 色综合久久久久网| 亚洲免费视频中文字幕| 91免费在线看| 一区二区三区.www| 在线一区二区三区做爰视频网站| 亚洲女与黑人做爰| 91国偷自产一区二区三区成为亚洲经典 | 色视频成人在线观看免| 亚洲欧美日韩一区二区| 在线观看视频欧美| 日本aⅴ亚洲精品中文乱码| 日韩免费福利电影在线观看| 加勒比av一区二区| 国产日产欧美一区| 成人av中文字幕| 国产亚洲一区字幕| 国产美女娇喘av呻吟久久| 久久久久88色偷偷免费 | 国产毛片精品视频| 欧美激情在线一区二区三区| 99久久精品免费观看| 亚洲愉拍自拍另类高清精品| 欧美高清视频一二三区 | 日韩精品一区二区三区在线| 国模大尺度一区二区三区| 国产农村妇女毛片精品久久麻豆 | 97aⅴ精品视频一二三区| 天天av天天翘天天综合网色鬼国产| www国产成人| 欧美性受xxxx黑人xyx性爽| 国产一区二区福利| 一区二区成人在线观看| 久久久99免费| 99精品热视频| 麻豆91在线观看| 亚洲精品乱码久久久久久久久| 欧美一区二区在线免费播放| 成人在线视频首页| 日韩精品三区四区| 亚洲欧美日韩久久| 亚洲精品一区二区三区在线观看 | 亚洲午夜一区二区| 中文字幕欧美国产| 欧美成人伊人久久综合网| 91麻豆国产在线观看| 国产精品影视在线观看| 日本欧美大码aⅴ在线播放|