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

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

?? pils.c

?? linux集群服務(wù)器軟件代碼包
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
 *	so they have gpointer arguments.  This *not necessarily* clause *	is why they do the g_hash_table_lookup_extended call instead of *	just deleting the key.  When called from outside, the key * *	may not be pointing at the key to actually free, but a copy *	of the key. */static gboolean	/* IsA GHFunc: required for g_hash_table_foreach_remove() */RmAPILPluginType(	gpointer pitname	/* Name of this plugin type "real" key */,	gpointer pitype	/* PILPluginType* */,	gpointer notused){	PILPluginType*	Plugintype = pitype;	g_assert(IS_PILPLUGINTYPE(Plugintype));	PILValidatePluginType(pitname, pitype, NULL);	if (DEBUGPLUGIN) {		PILLog(PIL_DEBUG, "RmAPILPluginType(%s)"		,	Plugintype->plugintype);	}	/*	 * This function is usually but not always called by	 * g_hash_table_foreach_remove()	 */	DelPILPluginType(pitype);	DELETE(pitname);	return TRUE;} static voidRemoveAPILPluginType(PILPluginType*Plugintype){	PILPluginUniv*	Pluginuniv = Plugintype->piuniv;	gpointer	key;	if (g_hash_table_lookup_extended(Pluginuniv->PluginTypes	,	Plugintype->plugintype, &key, (void*)&Plugintype)) {		g_hash_table_remove(Pluginuniv->PluginTypes, key);		RmAPILPluginType(key, Plugintype, NULL);	}else{		g_assert_not_reached();	}}/* *	InterfaceManager_plugin_init: Initialize the handling of *	"Interface Manager" interfaces. * *	There are a few potential bootstraiffng problems here ;-) * */static PIL_rcInterfaceManager_plugin_init(PILPluginUniv* univ){	PILPluginImports* imports = univ->imports;	PILPluginType*	pitype;	PILInterface*	ifinfo;	PILInterfaceType*	iftype;	void*		dontcare;	PILPlugin*	ifmgr_plugin;	PIL_rc		rc;	iftype = NewPILInterfaceType(univ->ifuniv, PI_IFMANAGER, &IfExports	,	NULL);	g_hash_table_insert(univ->ifuniv->iftypes	,	g_strdup(PI_IFMANAGER), iftype);	pitype = NewPILPluginType(univ, PI_IFMANAGER);	g_hash_table_insert(univ->PluginTypes	,	g_strdup(PI_IFMANAGER), pitype);	ifmgr_plugin= NewPILPlugin(pitype, PI_IFMANAGER, NULL, NULL);	g_hash_table_insert(pitype->Plugins	,	g_strdup(PI_IFMANAGER), ifmgr_plugin);	/* We can call register_plugin, since it doesn't depend on us... */	rc = imports->register_plugin(ifmgr_plugin, &PluginExports);	if (rc != PIL_OK) {		PILLog(PIL_CRIT, "register_plugin() failed in init: %s"		,	PIL_strerror(rc));		return(rc);	}	/*	 * Now, we're registering interfaces, and are into some deep	 * Catch-22 if do it the "easy" way, since our code is	 * needed in order to support interface loading for the type of	 * interface we are (a Interface interface).	 *	 * So, instead of calling imports->register_interface(), we have to	 * do the work ourselves here...	 *  	 * Since no one should yet be registered to handle Interface	 * interfaces, we need to bypass the hash table handler lookup	 * that register_interface would do and call the function that	 * register_interface would call...	 *	 */	/* The first argument is the PILInterfaceType* */	ifinfo = NewPILInterface(iftype, PI_IFMANAGER, &IfExports	,	close_ifmgr_interface, NULL, NULL);	ifinfo->ifmanager = iftype->ifmgr_ref = ifinfo;	if (DEBUGPLUGIN) {		PILLog(PIL_DEBUG, "InterfaceManager_plugin_init(0x%lx/%s)"		,	(unsigned long)ifinfo, ifinfo->interfacename);	}	PILValidatePluginUniv(NULL, univ, NULL);	ifmgr_register_interface(ifinfo, &dontcare);	PILValidatePluginUniv(NULL, univ, NULL);	return(PIL_OK);}/*InterfaceManager_plugin_init*//* Return current IfIf "plugin" version (not very interesting for us) */static const char *PIL_PILPluginVersion(void){	return("1.0");}/* Return current IfIf debug level */intPILpisysGetDebugLevel(void){	return(PluginDebugLevel);}/* Set current IfIf debug level */voidPILpisysSetDebugLevel (int level){	PluginDebugLevel = level;}struct set_debug_helper {	const char *	pitype;	const char *	piname;	int		level;};static voidPILSetDebugLeveltoPlugin(gpointer key, gpointer plugin, gpointer Helper){	PILPlugin*			p = plugin;	struct set_debug_helper*	helper = Helper;	p->pluginops->setdebuglevel(helper->level);  }static voidPILSetDebugLevelbyType(const void * key, gpointer plugintype, gpointer Helper){	struct set_debug_helper* helper = Helper;			PILPluginType*	t = plugintype;	if (helper->piname == NULL) {		g_hash_table_foreach(t->Plugins, PILSetDebugLeveltoPlugin		,	helper);	}else{		PILPlugin*	p = g_hash_table_lookup(t->Plugins		,	helper->piname);		if (p != NULL) {			p->pluginops->setdebuglevel(helper->level);  		}	}}voidPILSetDebugLevel(PILPluginUniv* u, const char * pitype, const char * piname,	int level){	struct set_debug_helper helper = {pitype, piname, level};	if (u == NULL) {		return;	}	if (pitype == NULL) {		g_hash_table_foreach(u->PluginTypes			/*			 * Reason for this next cast:			 * SetDebugLevelbyType takes const gpointer			 * arguments, unlike a GHFunc which doesn't.			 */		,	(GHFunc)PILSetDebugLevelbyType		,	&helper);	}else{		PILPluginType*	t = g_hash_table_lookup(u->PluginTypes		,		pitype);		if (t != NULL) {			PILSetDebugLevelbyType(pitype, t, &helper);		}	}}intPILGetDebugLevel(PILPluginUniv* u, const char * pitype, const char * piname){	PILPluginType*	t;	PILPlugin*	p;	if (	u == NULL	||	pitype == NULL	||	(t = g_hash_table_lookup(u->PluginTypes, pitype)) == NULL	||	(p = g_hash_table_lookup(t->Plugins, piname)) == NULL) {		return -1;	}	return p->pluginops->getdebuglevel();}/* Close/shutdown our PILPlugin (the interface manager interface plugin) *//* All our interfaces will have already been shut down and unregistered */static voidPIL_PILPluginClose (PILPlugin* plugin){}static const char *PIL_PILPluginLicense (void){	return LICENSE_LGPL;}static const char *PIL_PILPluginLicenseUrl (void){	return URL_LGPL;}/***************************************************************************** * * This code is for managing interfaces, and interacting with them... * ****************************************************************************/static PILInterface*NewPILInterface(PILInterfaceType*	interfacetype	,	const char*	interfacename	,	void *		exports	,	PILInterfaceFun	closefun	,	void*		ud_interface	,	PILPlugin*	loading_plugin){	PILInterface*	ret = NULL;	PILInterface*	look = NULL;	if ((look = g_hash_table_lookup(interfacetype->interfaces	,	interfacename)) != NULL) {		PILLog(PIL_DEBUG, "Deleting PILInterface!");		DelPILInterface(look);	}	ret = NEW(PILInterface);	STATNEW(interface);	ret->MagicNum = PIL_MAGIC_INTERFACE;	if (DEBUGPLUGIN) {		PILLog(PIL_DEBUG, "NewPILInterface(0x%x)", (unsigned long)ret);	}	if (ret) {		ret->interfacetype = interfacetype;		ret->exports = exports;		ret->ud_interface = ud_interface;		ret->interfacename = g_strdup(interfacename);		ret->ifmanager = interfacetype->ifmgr_ref;		ret->loadingpi = loading_plugin;		g_hash_table_insert(interfacetype->interfaces		,	g_strdup(ret->interfacename), ret);				ret->if_close = closefun;		ret->refcnt = 1;		if (DEBUGPLUGIN) {			PILLog(PIL_DEBUG, "NewPILInterface(0x%lx:%s/%s)*** user_data: 0x%lx *******"			,	(unsigned long)ret			,	interfacetype->typename			,	ret->interfacename			,	ud_interface);		}	}	return ret;}static voidDelPILInterface(PILInterface* intf){	if (DEBUGPLUGIN) {		PILLog(PIL_DEBUG, "DelPILInterface(0x%lx/%s)"		,	(unsigned long)intf, intf->interfacename);	}	STATFREE(interface);	DELETE(intf->interfacename);	ZAP(intf);	DELETE(intf);}static PILInterfaceType*NewPILInterfaceType(PILInterfaceUniv*univ, const char * typename,	void* ifeports, void* user_data){	PILInterfaceType*	ifmgr_types;	PILInterface*	ifmgr_ref;	PILInterfaceType*	ret = NEW(PILInterfaceType);	STATNEW(interfacetype);	ret->MagicNum = PIL_MAGIC_INTERFACETYPE;	ret->typename = g_strdup(typename);	ret->interfaces = g_hash_table_new(g_str_hash, g_str_equal);	ret->ud_if_type = user_data;	ret->universe = univ;	ret->ifmgr_ref = NULL;	/* Now find the pointer to our if type in the Interface Universe */	if ((ifmgr_types = g_hash_table_lookup(univ->iftypes, PI_IFMANAGER))	!=	NULL) {		if ((ifmgr_ref=g_hash_table_lookup(ifmgr_types->interfaces		,	typename)) != NULL) {			ret->ifmgr_ref = ifmgr_ref;		}else {		      g_assert(strcmp(typename, PI_IFMANAGER) == 0);		}	}else {		g_assert(strcmp(typename, PI_IFMANAGER) == 0);	}	/* Insert ourselves into our parent's table */	g_hash_table_insert(univ->iftypes, g_strdup(typename), ret);	return ret;}static voidDelPILInterfaceType(PILInterfaceType*ift){	PILInterfaceUniv*	u = ift->universe;	if (DEBUGPLUGIN) {		PILLog(PIL_DEBUG, "DelPILInterfaceType(%s)"		,	ift->typename);	}	STATFREE(interfacetype);	PILValidateInterfaceUniv(NULL, u, NULL);	/*	 *	RmAPILInterface refuses to remove the interface for the	 *	Interface manager, because it must be removed last.	 *	 *	Otherwise we won't be able to unregister interfaces	 *	for other types of objects, and we'll be very confused.	 */	g_hash_table_foreach_remove(ift->interfaces, RmAPILInterface, NULL);	PILValidateInterfaceUniv(NULL, u, NULL);	if (g_hash_table_size(ift->interfaces) > 0) {		gpointer	key, iftype;		if (DEBUGPLUGIN) {			PILLog(PIL_DEBUG			,	"DelPILInterfaceType(%s): table size (%d)"			,	ift->typename, g_hash_table_size(ift->interfaces));		}		if (g_hash_table_lookup_extended(ift->interfaces		,	PI_IFMANAGER, &key, &iftype)) {			DelPILInterface((PILInterface*)iftype);			DELETE(key);		}	}	DELETE(ift->typename);	g_hash_table_destroy(ift->interfaces);	ZAP(ift);	DELETE(ift);}/* *	These RmA* functions primarily called from hash_table_foreach,  *	so they have gpointer arguments.  This *not necessarily* clause *	is why they do the g_hash_table_lookup_extended call instead of *	just deleting the key.  When called from outside, the key * *	may not be pointing at the key to actually free, but a copy *	of the key. */static gboolean	/* IsAGHFunc: required for g_hash_table_foreach_remove() */RmAPILInterface(	gpointer ifname	/* Name of this interface */,	gpointer intf	/* PILInterface* */,	gpointer notused){	PILInterface*	If = intf;	PILInterfaceType*	Iftype = If->interfacetype;	if (DEBUGPLUGIN) {		PILLog(PIL_DEBUG, "RmAPILInterface(0x%lx/%s)"		,	(unsigned long)If, If->interfacename);	}	g_assert(IS_PILINTERFACE(If));	/*	 * Don't remove the master interface manager this way, or	 * Somebody will have a cow... 	 */	if (If == If->ifmanager) {		if (DEBUGPLUGIN) {			PILLog(PIL_DEBUG, "RmAPILInterface: skipping (%s)"			,	If->interfacename);		}		return FALSE;	}	PILValidateInterface(ifname, If, Iftype);	PILValidateInterfaceType(NULL, Iftype, NULL);	/*	 * This function is usually but not always called by	 * g_hash_table_foreach_remove()	 */	PILunregister_interface(If);	PILValidateInterface(ifname, If, Iftype);	PILValidateInterfaceType(NULL, Iftype, NULL);	DELETE(ifname);	DelPILInterface(If);	return TRUE;}static PIL_rcRemoveAPILInterface(PILInterface* pif){	PILInterfaceType*	Iftype = pif->interfacetype;	gpointer		key;	if (DEBUGPLUGIN) {		PILLog(PIL_DEBUG, "RemoveAPILInterface(0x%lx/%s)"		,	(unsigned long)pif, pif->interfacename);	}	if (g_hash_table_lookup_extended(Iftype->interfaces	,	pif->interfacename, &key, (void*)&pif)) {		g_assert(IS_PILINTERFACE(pif));		g_hash_table_remove(Iftype->interfaces, key);		RmAPILInterface(key, pif, NULL);	}else{		g_assert_not_reached();	}	if (g_hash_table_size(Iftype->interfaces) == 0) {		/* The generic plugin handler doesn't want us to		 * delete it's types...		 */		if (Iftype->ifmgr_ref->refcnt <= 1) {			RemoveAPILInterfaceType(Iftype, NULL);		}	}	return PIL_OK;}/* Register a Interface Interface (Interface manager) */static PIL_rcifmgr_register_interface(PILInterface* intf,		void**	imports){	PILInterfaceType*	ift = intf->interfacetype;	PILInterfaceUniv*	ifuniv = ift->universe;	PILInterfaceOps* ifops;	/* Ops vector for InterfaceManager */	if (DEBUGPLUGIN) {		PILLog(PIL_DEBUG		, 	"Registering Implementation manager for"	       " Interface type '%s'"		,	intf->interfacename);	}	ifops = intf->exports;	if (ifops->RegisterInterface == NULL	||	ifops->UnRegisterInterface == NULL)  {		PILLog(PIL_DEBUG, "ifmgr_register_interface(%s)"		": NULL exported function pointer"		,	intf->interfacename);		return PIL_INVAL;	}	*imports = &IFManagerImports;	if(g_hash_table_lookup(ifuniv->iftypes, intf->interfacename) == NULL){		/* It registers itself into ifuniv automatically */		NewPILInterfaceType(ifuniv,intf->interfacename, &IfExports		,	NULL);	}	return PIL_OK;}static gbooleanRemoveAllClients(PILInterface*interface, void * managerif){	/*	 * Careful!  We can't remove ourselves this way... 	 * This gets taken care of as a special case in DelPILInterfaceUniv...	 */	if (managerif == interface) {		return FALSE;	}	PILunregister_interface(interface);	return TRUE;}/* Unconditionally unregister a interface manager (InterfaceMgr Interface) */static PIL_rcifmgr_unregister_interface(PILInterface* interface){	/*	 * We need to unregister every interface we manage	 */	if (DEBUGPLUGIN) {		PILLog(PIL_DEBUG, "ifmgr_unregister_interface(%s)"		,	interface->interfacename);	}	IfForEachClientRemove(interface, RemoveAllClients, interface);	return PIL_OK;}/*	Called to close the Interface manager for type Interface */static PIL_rcclose_ifmgr_interface(PILInterface* us, void* ud_interface){	if (DEBUGPLUGIN) {		PILLog(PIL_DEBUG, "close_ifmgr_interface(%s)"		,	us->interfacename);	}	/* Nothing much to do */	return PIL_OK;}/* Return the reference count for this interface */static intIfRefCount(PILInterface * eifinfo)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩avvvv在线播放| 奇米一区二区三区| 欧美国产日韩在线观看| 日韩女优av电影在线观看| 欧美日韩不卡视频| 欧美精品国产精品| 制服丝袜一区二区三区| 欧美一级欧美一级在线播放| 欧美精品99久久久**| 91麻豆精品国产91久久久久久久久| 欧美日韩亚洲国产综合| 欧美福利一区二区| 日韩欧美国产午夜精品| 久久看人人爽人人| 国产精品无遮挡| 亚洲人123区| 亚洲成人先锋电影| 六月婷婷色综合| 国产电影一区在线| 99久久综合色| 欧美日韩二区三区| 精品人在线二区三区| 国产日韩三级在线| 一区二区三区在线观看动漫| 午夜视频在线观看一区二区三区| 日韩激情中文字幕| 国产一区二区三区在线观看免费视频| 处破女av一区二区| 在线观看中文字幕不卡| 欧美一区二区三区电影| 久久久www成人免费无遮挡大片| 国产精品久久久久一区二区三区 | 欧美日韩国产精品成人| 日韩一区二区三区高清免费看看| 久久精子c满五个校花| 亚洲人快播电影网| 日本va欧美va精品发布| 懂色av中文字幕一区二区三区| 91精品办公室少妇高潮对白| 日韩三级精品电影久久久| 国产精品色哟哟网站| 性做久久久久久免费观看| 国产在线精品免费| 91天堂素人约啪| 欧美一级欧美三级在线观看| 《视频一区视频二区| 日韩影院在线观看| 成人av在线资源| 欧美男男青年gay1069videost| 久久蜜桃av一区精品变态类天堂 | 激情综合色综合久久综合| 成人国产电影网| 欧美精品123区| ●精品国产综合乱码久久久久| 麻豆久久久久久久| 色综合久久天天| 精品国产乱码久久久久久闺蜜 | 一本色道久久综合亚洲91| 日韩一区二区三区免费观看| 亚洲精品成a人| 国产一区视频在线看| 91电影在线观看| 国产欧美日韩另类一区| 免费高清在线视频一区·| 91黄色小视频| 国产精品久久久久久久第一福利| 久久精工是国产品牌吗| 欧美羞羞免费网站| 国产精品视频九色porn| 久久精品国产精品亚洲综合| 欧美系列在线观看| 中文字幕一区二区三区在线观看 | 成人爽a毛片一区二区免费| 欧美高清视频www夜色资源网| 17c精品麻豆一区二区免费| 国产一区 二区 三区一级| 欧美视频一区二区三区在线观看| 中日韩免费视频中文字幕| 久久国产精品露脸对白| 91麻豆精品91久久久久同性| 一区二区三区在线视频观看58| 国产91精品一区二区麻豆亚洲| 欧美大片顶级少妇| 蜜桃视频在线观看一区二区| 欧美色网站导航| 亚洲男人的天堂在线aⅴ视频 | 欧美精品一区视频| 日本一道高清亚洲日美韩| 欧美三级中文字| 亚洲激情中文1区| 99re成人精品视频| 日韩理论片一区二区| av中文字幕不卡| 中文字幕亚洲精品在线观看| 成人免费视频视频| 日本一区二区视频在线| 懂色av一区二区在线播放| 国产午夜精品美女毛片视频| 国产成人av自拍| 国产亚洲午夜高清国产拍精品| 国产一区二区在线电影| 久久久久久久久久久久久夜| 国产美女视频91| 国产日韩av一区| 成人性色生活片| 国产精品水嫩水嫩| 99久久99久久精品免费观看| 亚洲人123区| 欧美日韩中文国产| 丝袜美腿一区二区三区| 欧美一区二区在线视频| 蜜臀精品久久久久久蜜臀| 精品精品国产高清一毛片一天堂| 经典三级视频一区| 中日韩av电影| 色香蕉成人二区免费| 午夜久久久久久电影| 精品噜噜噜噜久久久久久久久试看| 精品一区二区三区欧美| 国产精品网站一区| 91在线国产福利| 亚洲午夜精品网| 欧美一区二区三区爱爱| 国内精品久久久久影院一蜜桃| 国产欧美精品区一区二区三区| 99riav久久精品riav| 亚洲第一福利一区| 亚洲精品一区二区三区影院| 成人app软件下载大全免费| 亚洲欧美国产三级| 欧美日韩精品电影| 狠狠狠色丁香婷婷综合激情| 国产精品国产自产拍高清av| 欧美性猛片xxxx免费看久爱| 免费看黄色91| 综合在线观看色| 91精品国产麻豆| 懂色av一区二区三区免费看| 亚洲在线视频网站| 日韩欧美一级精品久久| av电影天堂一区二区在线观看| 婷婷六月综合亚洲| 国产亚洲成aⅴ人片在线观看| 91极品视觉盛宴| 国产精品主播直播| 亚洲资源中文字幕| 久久日韩精品一区二区五区| 91在线视频播放| 久久国产精品一区二区| 亚洲免费在线视频| 日韩欧美中文字幕制服| eeuss鲁片一区二区三区在线观看| 天堂va蜜桃一区二区三区漫画版| 中日韩av电影| 欧美一级夜夜爽| 91色综合久久久久婷婷| 麻豆久久久久久| 一区二区三区精品在线| 久久嫩草精品久久久久| 欧美少妇一区二区| 东方aⅴ免费观看久久av| 水蜜桃久久夜色精品一区的特点 | www.久久久久久久久| 日韩国产欧美一区二区三区| 亚洲欧洲三级电影| 欧美精品一区二区精品网| 欧美在线综合视频| 国产成人av一区二区三区在线| 视频在线观看91| 亚洲免费观看高清完整版在线| 久久亚洲免费视频| 欧美精品777| 在线视频综合导航| 成人国产精品免费观看视频| 精品一区二区三区免费观看| 亚洲福利视频三区| 亚洲人xxxx| 中文字幕一区二区三区在线观看| 欧美变态tickling挠脚心| 欧美日韩视频一区二区| 972aa.com艺术欧美| 国产成人亚洲综合a∨猫咪| 日韩成人一级片| 亚洲专区一二三| 亚洲精品自拍动漫在线| 中文字幕乱码一区二区免费| 26uuu欧美| 日韩欧美久久一区| 欧美精品123区| 欧美色综合网站| 欧美吻胸吃奶大尺度电影| 91麻豆国产自产在线观看| 国产激情偷乱视频一区二区三区| 精品一区二区综合| 久久国产剧场电影| 久久精品国产久精国产| 久久精品99久久久| 精品一区二区三区影院在线午夜| 麻豆91在线看| 九一久久久久久|