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

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

?? capi.c

?? 優(yōu)龍2410linux2.6.8內(nèi)核源代碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
	if (application) {		appl = application->appl;		CAPIMSG_SETAPPID(skb->data, appl);	} else {		BT_ERR("Can't find application with id %d", appl);		kfree_skb(skb);		return;	}	if ((contr & 0x7f) == 0x01) {		contr = (contr & 0xffffff80) | session->num;		CAPIMSG_SETCONTROL(skb->data, contr);	}	if (!ctrl) {		BT_ERR("Can't find controller %d for message", session->num);		kfree_skb(skb);		return;	}	capi_ctr_handle_message(ctrl, appl, skb);}void cmtp_send_capimsg(struct cmtp_session *session, struct sk_buff *skb){	struct cmtp_scb *scb = (void *) skb->cb;	BT_DBG("session %p skb %p len %d", session, skb, skb->len);	scb->id = -1;	scb->data = (CAPIMSG_COMMAND(skb->data) == CAPI_DATA_B3);	skb_queue_tail(&session->transmit, skb);	cmtp_schedule(session);}static int cmtp_load_firmware(struct capi_ctr *ctrl, capiloaddata *data){	BT_DBG("ctrl %p data %p", ctrl, data);	return 0;}static void cmtp_reset_ctr(struct capi_ctr *ctrl){	struct cmtp_session *session = ctrl->driverdata;	BT_DBG("ctrl %p", ctrl);	capi_ctr_reseted(ctrl);	atomic_inc(&session->terminate);	cmtp_schedule(session);}static void cmtp_register_appl(struct capi_ctr *ctrl, __u16 appl, capi_register_params *rp){	DECLARE_WAITQUEUE(wait, current);	struct cmtp_session *session = ctrl->driverdata;	struct cmtp_application *application;	unsigned long timeo = CMTP_INTEROP_TIMEOUT;	unsigned char buf[8];	int err = 0, nconn, want = rp->level3cnt;	BT_DBG("ctrl %p appl %d level3cnt %d datablkcnt %d datablklen %d",		ctrl, appl, rp->level3cnt, rp->datablkcnt, rp->datablklen);	application = cmtp_application_add(session, appl);	if (!application) {		BT_ERR("Can't allocate memory for new application");		return;	}	if (want < 0)		nconn = ctrl->profile.nbchannel * -want;	else		nconn = want;	if (nconn == 0)		nconn = ctrl->profile.nbchannel;	capimsg_setu16(buf, 0, nconn);	capimsg_setu16(buf, 2, rp->datablkcnt);	capimsg_setu16(buf, 4, rp->datablklen);	application->state = BT_CONFIG;	application->msgnum = cmtp_msgnum_get(session);	cmtp_send_interopmsg(session, CAPI_REQ, 0x0000, application->msgnum,				CAPI_FUNCTION_REGISTER, buf, 6);	add_wait_queue(&session->wait, &wait);	while (1) {		set_current_state(TASK_INTERRUPTIBLE);		if (!timeo) {			err = -EAGAIN;			break;		}		if (application->state == BT_CLOSED) {			err = -application->err;			break;		}		if (application->state == BT_CONNECTED)			break;		if (signal_pending(current)) {			err = -EINTR;			break;		}		timeo = schedule_timeout(timeo);	}	set_current_state(TASK_RUNNING);	remove_wait_queue(&session->wait, &wait);	if (err) {		cmtp_application_del(session, application);		return;	}}static void cmtp_release_appl(struct capi_ctr *ctrl, __u16 appl){	DECLARE_WAITQUEUE(wait, current);	struct cmtp_session *session = ctrl->driverdata;	struct cmtp_application *application;	unsigned long timeo = CMTP_INTEROP_TIMEOUT;	BT_DBG("ctrl %p appl %d", ctrl, appl);	application = cmtp_application_get(session, CMTP_APPLID, appl);	if (!application) {		BT_ERR("Can't find application");		return;	}	application->msgnum = cmtp_msgnum_get(session);	cmtp_send_interopmsg(session, CAPI_REQ, application->mapping, application->msgnum,				CAPI_FUNCTION_RELEASE, NULL, 0);	add_wait_queue(&session->wait, &wait);	while (timeo) {		set_current_state(TASK_INTERRUPTIBLE);		if (application->state == BT_CLOSED)			break;		if (signal_pending(current))			break;		timeo = schedule_timeout(timeo);	}	set_current_state(TASK_RUNNING);	remove_wait_queue(&session->wait, &wait);	cmtp_application_del(session, application);}static u16 cmtp_send_message(struct capi_ctr *ctrl, struct sk_buff *skb){	struct cmtp_session *session = ctrl->driverdata;	struct cmtp_application *application;	__u16 appl;	__u32 contr;	BT_DBG("ctrl %p skb %p", ctrl, skb);	appl = CAPIMSG_APPID(skb->data);	contr = CAPIMSG_CONTROL(skb->data);	application = cmtp_application_get(session, CMTP_APPLID, appl);	if ((!application) || (application->state != BT_CONNECTED)) {		BT_ERR("Can't find application with id %d", appl);		kfree_skb(skb);		return CAPI_ILLAPPNR;	}	CAPIMSG_SETAPPID(skb->data, application->mapping);	if ((contr & 0x7f) == session->num) {		contr = (contr & 0xffffff80) | 0x01;		CAPIMSG_SETCONTROL(skb->data, contr);	}	cmtp_send_capimsg(session, skb);	return CAPI_NOERROR;}static char *cmtp_procinfo(struct capi_ctr *ctrl){	return "CAPI Message Transport Protocol";}static int cmtp_ctr_read_proc(char *page, char **start, off_t off, int count, int *eof, struct capi_ctr *ctrl){	struct cmtp_session *session = ctrl->driverdata;	struct cmtp_application *app;	struct list_head *p, *n;	int len = 0;	len += sprintf(page + len, "%s\n\n", cmtp_procinfo(ctrl));	len += sprintf(page + len, "addr %s\n", session->name);	len += sprintf(page + len, "ctrl %d\n", session->num);	list_for_each_safe(p, n, &session->applications) {		app = list_entry(p, struct cmtp_application, list);		len += sprintf(page + len, "appl %d -> %d\n", app->appl, app->mapping);	}	if (off + count >= len)		*eof = 1;	if (len < off)		return 0;	*start = page + off;	return ((count < len - off) ? count : len - off);}int cmtp_attach_device(struct cmtp_session *session){	DECLARE_WAITQUEUE(wait, current);	unsigned long timeo = CMTP_INTEROP_TIMEOUT;	unsigned char buf[4];	BT_DBG("session %p", session);	capimsg_setu32(buf, 0, 0);	cmtp_send_interopmsg(session, CAPI_REQ, 0xffff, CMTP_INITIAL_MSGNUM,				CAPI_FUNCTION_GET_PROFILE, buf, 4);	add_wait_queue(&session->wait, &wait);	while (timeo) {		set_current_state(TASK_INTERRUPTIBLE);		if (session->ncontroller)			break;		if (signal_pending(current))			break;		timeo = schedule_timeout(timeo);	}	set_current_state(TASK_RUNNING);	remove_wait_queue(&session->wait, &wait);	BT_INFO("Found %d CAPI controller(s) on device %s", session->ncontroller, session->name);	if (!timeo)		return -ETIMEDOUT;	if (!session->ncontroller)		return -ENODEV;	if (session->ncontroller > 1)		BT_INFO("Setting up only CAPI controller 1");	session->ctrl.owner      = THIS_MODULE;	session->ctrl.driverdata = session;	strcpy(session->ctrl.name, session->name);	session->ctrl.driver_name   = "cmtp";	session->ctrl.load_firmware = cmtp_load_firmware;	session->ctrl.reset_ctr     = cmtp_reset_ctr;	session->ctrl.register_appl = cmtp_register_appl;	session->ctrl.release_appl  = cmtp_release_appl;	session->ctrl.send_message  = cmtp_send_message;	session->ctrl.procinfo      = cmtp_procinfo;	session->ctrl.ctr_read_proc = cmtp_ctr_read_proc;	if (attach_capi_ctr(&session->ctrl) < 0) {		BT_ERR("Can't attach new controller");		return -EBUSY;	}	session->num = session->ctrl.cnr;	BT_DBG("session %p num %d", session, session->num);	capimsg_setu32(buf, 0, 1);	cmtp_send_interopmsg(session, CAPI_REQ, 0xffff, cmtp_msgnum_get(session),				CAPI_FUNCTION_GET_MANUFACTURER, buf, 4);	cmtp_send_interopmsg(session, CAPI_REQ, 0xffff, cmtp_msgnum_get(session),				CAPI_FUNCTION_GET_VERSION, buf, 4);	cmtp_send_interopmsg(session, CAPI_REQ, 0xffff, cmtp_msgnum_get(session),				CAPI_FUNCTION_GET_SERIAL_NUMBER, buf, 4);	cmtp_send_interopmsg(session, CAPI_REQ, 0xffff, cmtp_msgnum_get(session),				CAPI_FUNCTION_GET_PROFILE, buf, 4);	return 0;}void cmtp_detach_device(struct cmtp_session *session){	BT_DBG("session %p", session);	detach_capi_ctr(&session->ctrl);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av电影一区二区| 97精品国产97久久久久久久久久久久| 最新成人av在线| 欧美国产精品劲爆| 最新欧美精品一区二区三区| 国产精品久久久久久久久快鸭| 国产网红主播福利一区二区| 国产精品蜜臀在线观看| 亚洲欧美综合网| 一区二区三区不卡视频在线观看| 亚洲色图一区二区| 亚洲成人高清在线| 强制捆绑调教一区二区| 精品一区二区三区免费播放| 国产精品一区二区在线观看网站| 成人性生交大片免费看中文| 色av一区二区| 91精品一区二区三区久久久久久| 欧美一级爆毛片| 国产人成亚洲第一网站在线播放| 成人欧美一区二区三区白人| 亚洲一区二区三区四区五区黄 | 亚洲国产精品一区二区www| 亚洲小说春色综合另类电影| 蜜臀91精品一区二区三区| 国产精品一区二区免费不卡| 色婷婷激情综合| 欧美一区二区视频在线观看2022| 久久精品夜色噜噜亚洲a∨| 玉米视频成人免费看| 精品亚洲成a人在线观看| 92国产精品观看| 精品av综合导航| 亚洲欧美日韩国产成人精品影院| 蜜臀av性久久久久av蜜臀妖精| 成人免费毛片aaaaa**| 欧美四级电影网| 国产蜜臀av在线一区二区三区| 亚洲在线观看免费| 国产成人在线电影| 91精品国产黑色紧身裤美女| 国产精品天美传媒| 久久99久国产精品黄毛片色诱| 成人福利电影精品一区二区在线观看| 欧美久久一二三四区| 国产精品久久毛片av大全日韩| 日本午夜一本久久久综合| 99天天综合性| 亚洲国产成人午夜在线一区| 蜜臀av性久久久久av蜜臀妖精| 色琪琪一区二区三区亚洲区| 日本一区二区视频在线| 久久国产精品99久久人人澡| 欧美日韩午夜影院| 亚洲妇女屁股眼交7| 成人高清视频在线观看| 久久久久久久久久久久久久久99| 性做久久久久久免费观看欧美| 97久久超碰国产精品| 2014亚洲片线观看视频免费| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美日韩日日骚| 一区二区成人在线观看| 91热门视频在线观看| 国产精品久久久久精k8 | 中文幕一区二区三区久久蜜桃| 久久av老司机精品网站导航| 欧美一区二区三区在线看| 亚洲mv大片欧洲mv大片精品| 在线观看亚洲一区| 亚洲一区欧美一区| 欧美日韩一二区| 日韩中文字幕麻豆| 欧美一区二区三区婷婷月色| 蜜桃av一区二区三区| 日韩一区二区高清| 国产一区二区三区在线看麻豆| wwwwww.欧美系列| 国产成人av在线影院| 国产欧美精品在线观看| 成人aa视频在线观看| 亚洲精品少妇30p| 欧美日韩国产首页| 久久99国产精品久久99| 久久久青草青青国产亚洲免观| 国产精品一区久久久久| 欧美国产禁国产网站cc| 在线精品视频一区二区三四| 亚洲h动漫在线| 精品成a人在线观看| 成人免费av网站| 亚洲线精品一区二区三区| 337p亚洲精品色噜噜| 狠狠色综合播放一区二区| 精品久久久久久久人人人人传媒 | 成人听书哪个软件好| 国产精品网曝门| 99视频一区二区| 一区二区三区资源| 日韩一区二区电影| 国产.精品.日韩.另类.中文.在线.播放| 国产精品久久久久一区| 日本高清视频一区二区| 美女诱惑一区二区| 国产精品电影院| 在线播放日韩导航| 丁香桃色午夜亚洲一区二区三区| 国产精品久久久久久久久搜平片 | 久久久久综合网| 色8久久精品久久久久久蜜| 日韩黄色免费网站| 国产精品水嫩水嫩| 欧美精品久久一区| 不卡av电影在线播放| 美女脱光内衣内裤视频久久网站| 国产欧美一区二区精品秋霞影院| 在线免费观看不卡av| 国产精品资源站在线| 日韩高清不卡一区| 一区二区三区四区在线播放| 久久综合国产精品| 666欧美在线视频| 一本色道久久综合狠狠躁的推荐| 精品制服美女丁香| 亚洲精品高清在线| 国产精品网站导航| 久久夜色精品国产噜噜av| 欧美日韩三级一区| 色999日韩国产欧美一区二区| 国产成人aaa| 精品在线你懂的| 日韩和欧美的一区| 亚洲国产成人av| 一区二区三区视频在线看| 国产视频在线观看一区二区三区| 日韩一区二区三区电影在线观看 | 亚洲视频小说图片| 国产三级欧美三级日产三级99 | 欧美吞精做爰啪啪高潮| 成人免费视频app| 国产精品亚洲成人| 精品一区二区在线看| 人人狠狠综合久久亚洲| 午夜精品福利视频网站| 亚洲精品欧美专区| 一区二区三区日韩| 亚洲午夜激情网页| 亚洲一区二区三区爽爽爽爽爽| 亚洲欧美日韩国产一区二区三区 | 怡红院av一区二区三区| 18成人在线观看| 亚洲欧美成人一区二区三区| 国产精品丝袜一区| 亚洲欧洲日韩在线| 成人欧美一区二区三区黑人麻豆 | 欧美日韩精品一区二区三区| 欧美伊人精品成人久久综合97| 日本高清无吗v一区| 欧美性极品少妇| 日韩一区二区三区三四区视频在线观看 | 91麻豆精品91久久久久同性| 欧美精品自拍偷拍| 日韩亚洲欧美一区| 精品处破学生在线二十三| 国产亚洲一区字幕| 亚洲欧美视频一区| 污片在线观看一区二区| 久久国产夜色精品鲁鲁99| 国产成人av在线影院| 91老师片黄在线观看| 欧美日韩黄色影视| 久久精品亚洲精品国产欧美kt∨| 中文字幕不卡在线观看| 成人免费小视频| 日本va欧美va瓶| 成人免费毛片app| 欧美精品高清视频| 久久色视频免费观看| 亚洲精品视频一区| 麻豆高清免费国产一区| 成人开心网精品视频| 欧美精品久久一区| 亚洲国产精品传媒在线观看| 亚洲综合丁香婷婷六月香| 激情综合网激情| 在线观看一区日韩| 久久久国产午夜精品 | 91精品国产综合久久久久久 | 亚洲激情图片小说视频| 日本亚洲三级在线| 一本色道综合亚洲| 久久―日本道色综合久久| 亚洲综合自拍偷拍| 国产精品一区三区| 制服.丝袜.亚洲.中文.综合| 国产精品高潮久久久久无| 麻豆一区二区99久久久久| 91蜜桃免费观看视频| 久久先锋影音av鲁色资源网| 婷婷中文字幕综合|