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

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

?? capi.c

?? linux和2410結(jié)合開發(fā) 用他可以生成2410所需的zImage文件
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
	chan->fsm_state = ACT2000_STATE_BHWAIT;	ACTCAPI_QUEUE_TX;}voidactcapi_connect_resp(act2000_card *card, act2000_chan *chan, __u8 cause){	actcapi_msg *m;	struct sk_buff *skb;	ACTCAPI_MKHDR(3, 0x02, 0x03);	ACTCAPI_CHKSKB;	m->msg.connect_resp.plci = chan->plci;	m->msg.connect_resp.rejectcause = cause;	if (cause) {		chan->fsm_state = ACT2000_STATE_NULL;		chan->plci = 0x8000;	} else		chan->fsm_state = ACT2000_STATE_IWAIT;	ACTCAPI_QUEUE_TX;}static voidactcapi_connect_active_resp(act2000_card *card, act2000_chan *chan){	actcapi_msg *m;	struct sk_buff *skb;	ACTCAPI_MKHDR(2, 0x03, 0x03);	ACTCAPI_CHKSKB;	m->msg.connect_resp.plci = chan->plci;	if (chan->fsm_state == ACT2000_STATE_IWAIT)		chan->fsm_state = ACT2000_STATE_IBWAIT;	ACTCAPI_QUEUE_TX;}static voidactcapi_connect_b3_resp(act2000_card *card, act2000_chan *chan, __u8 rejectcause){	actcapi_msg *m;	struct sk_buff *skb;	ACTCAPI_MKHDR((rejectcause?3:17), 0x82, 0x03);	ACTCAPI_CHKSKB;	m->msg.connect_b3_resp.ncci = chan->ncci;	m->msg.connect_b3_resp.rejectcause = rejectcause;	if (!rejectcause) {		memset(&m->msg.connect_b3_resp.ncpi, 0,		       sizeof(m->msg.connect_b3_resp.ncpi));		m->msg.connect_b3_resp.ncpi.len = 13;		m->msg.connect_b3_resp.ncpi.modulo = 8;		chan->fsm_state = ACT2000_STATE_BWAIT;	}	ACTCAPI_QUEUE_TX;}static voidactcapi_connect_b3_active_resp(act2000_card *card, act2000_chan *chan){	actcapi_msg *m;	struct sk_buff *skb;	ACTCAPI_MKHDR(2, 0x83, 0x03);	ACTCAPI_CHKSKB;	m->msg.connect_b3_active_resp.ncci = chan->ncci;	chan->fsm_state = ACT2000_STATE_ACTIVE;	ACTCAPI_QUEUE_TX;}static voidactcapi_info_resp(act2000_card *card, act2000_chan *chan){	actcapi_msg *m;	struct sk_buff *skb;	ACTCAPI_MKHDR(2, 0x07, 0x03);	ACTCAPI_CHKSKB;	m->msg.info_resp.plci = chan->plci;	ACTCAPI_QUEUE_TX;}static voidactcapi_disconnect_b3_resp(act2000_card *card, act2000_chan *chan){	actcapi_msg *m;	struct sk_buff *skb;	ACTCAPI_MKHDR(2, 0x84, 0x03);	ACTCAPI_CHKSKB;	m->msg.disconnect_b3_resp.ncci = chan->ncci;	chan->ncci = 0x8000;	chan->queued = 0;	ACTCAPI_QUEUE_TX;}static voidactcapi_disconnect_resp(act2000_card *card, act2000_chan *chan){	actcapi_msg *m;	struct sk_buff *skb;	ACTCAPI_MKHDR(2, 0x04, 0x03);	ACTCAPI_CHKSKB;	m->msg.disconnect_resp.plci = chan->plci;	chan->plci = 0x8000;	ACTCAPI_QUEUE_TX;}static intnew_plci(act2000_card *card, __u16 plci){	int i;	for (i = 0; i < ACT2000_BCH; i++)		if (card->bch[i].plci == 0x8000) {			card->bch[i].plci = plci;			return i;		}	return -1;}static intfind_plci(act2000_card *card, __u16 plci){	int i;	for (i = 0; i < ACT2000_BCH; i++)		if (card->bch[i].plci == plci)			return i;	return -1;}static intfind_ncci(act2000_card *card, __u16 ncci){	int i;	for (i = 0; i < ACT2000_BCH; i++)		if (card->bch[i].ncci == ncci)			return i;	return -1;}static intfind_dialing(act2000_card *card, __u16 callref){	int i;	for (i = 0; i < ACT2000_BCH; i++)		if ((card->bch[i].callref == callref) &&		    (card->bch[i].fsm_state == ACT2000_STATE_OCALL))			return i;	return -1;}static intactcapi_data_b3_ind(act2000_card *card, struct sk_buff *skb) {	__u16 plci;	__u16 ncci;	__u16 controller;	__u8  blocknr;	int chan;	actcapi_msg *msg = (actcapi_msg *)skb->data;	EVAL_NCCI(msg->msg.data_b3_ind.fakencci, plci, controller, ncci);	chan = find_ncci(card, ncci);	if (chan < 0)		return 0;	if (card->bch[chan].fsm_state != ACT2000_STATE_ACTIVE)		return 0;	if (card->bch[chan].plci != plci)		return 0;	blocknr = msg->msg.data_b3_ind.blocknr;	skb_pull(skb, 19);	card->interface.rcvcallb_skb(card->myid, chan, skb);        if (!(skb = alloc_skb(11, GFP_ATOMIC))) {                printk(KERN_WARNING "actcapi: alloc_skb failed\n");                return 1;        }	msg = (actcapi_msg *)skb_put(skb, 11);	msg->hdr.len = 11;	msg->hdr.applicationID = 1;	msg->hdr.cmd.cmd = 0x86;	msg->hdr.cmd.subcmd = 0x03;	msg->hdr.msgnum = actcapi_nextsmsg(card);	msg->msg.data_b3_resp.ncci = ncci;	msg->msg.data_b3_resp.blocknr = blocknr;	ACTCAPI_QUEUE_TX;	return 1;}/* * Walk over ackq, unlink DATA_B3_REQ from it, if * ncci and blocknr are matching. * Decrement queued-bytes counter. */static inthandle_ack(act2000_card *card, act2000_chan *chan, __u8 blocknr) {	unsigned long flags;	struct sk_buff *skb;	struct sk_buff *tmp;	struct actcapi_msg *m;	int ret = 0;	save_flags(flags);	cli();	skb = skb_peek(&card->ackq);	restore_flags(flags);        if (!skb) {		printk(KERN_WARNING "act2000: handle_ack nothing found!\n");		return 0;	}        tmp = skb;        while (1) {                m = (actcapi_msg *)tmp->data;                if ((((m->msg.data_b3_req.fakencci >> 8) & 0xff) == chan->ncci) &&		    (m->msg.data_b3_req.blocknr == blocknr)) {			/* found corresponding DATA_B3_REQ */                        skb_unlink(tmp);			chan->queued -= m->msg.data_b3_req.datalen;			if (m->msg.data_b3_req.flags)				ret = m->msg.data_b3_req.datalen;			dev_kfree_skb(tmp);			if (chan->queued < 0)				chan->queued = 0;                        return ret;                }		save_flags(flags);		cli();                tmp = skb_peek((struct sk_buff_head *)tmp);		restore_flags(flags);                if ((tmp == skb) || (tmp == NULL)) {			/* reached end of queue */			printk(KERN_WARNING "act2000: handle_ack nothing found!\n");                        return 0;		}        }}voidactcapi_dispatch(act2000_card *card){	struct sk_buff *skb;	actcapi_msg *msg;	__u16 ccmd;	int chan;	int len;	act2000_chan *ctmp;	isdn_ctrl cmd;	char tmp[170];	while ((skb = skb_dequeue(&card->rcvq))) {		actcapi_debug_msg(skb, 0);		msg = (actcapi_msg *)skb->data;		ccmd = ((msg->hdr.cmd.cmd << 8) | msg->hdr.cmd.subcmd);		switch (ccmd) {			case 0x8602:				/* DATA_B3_IND */				if (actcapi_data_b3_ind(card, skb))					return;				break;			case 0x8601:				/* DATA_B3_CONF */				chan = find_ncci(card, msg->msg.data_b3_conf.ncci);				if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_ACTIVE)) {					if (msg->msg.data_b3_conf.info != 0)						printk(KERN_WARNING "act2000: DATA_B3_CONF: %04x\n",						       msg->msg.data_b3_conf.info);					len = handle_ack(card, &card->bch[chan],							 msg->msg.data_b3_conf.blocknr);					if (len) {						cmd.driver = card->myid;						cmd.command = ISDN_STAT_BSENT;						cmd.arg = chan;						cmd.parm.length = len;						card->interface.statcallb(&cmd);					}				}				break;			case 0x0201:				/* CONNECT_CONF */				chan = find_dialing(card, msg->hdr.msgnum);				if (chan >= 0) {					if (msg->msg.connect_conf.info) {						card->bch[chan].fsm_state = ACT2000_STATE_NULL;						cmd.driver = card->myid;						cmd.command = ISDN_STAT_DHUP;						cmd.arg = chan;						card->interface.statcallb(&cmd);					} else {						card->bch[chan].fsm_state = ACT2000_STATE_OWAIT;						card->bch[chan].plci = msg->msg.connect_conf.plci;					}				}				break;			case 0x0202:				/* CONNECT_IND */				chan = new_plci(card, msg->msg.connect_ind.plci);				if (chan < 0) {					ctmp = (act2000_chan *)tmp;					ctmp->plci = msg->msg.connect_ind.plci;					actcapi_connect_resp(card, ctmp, 0x11); /* All Card-Cannels busy */				} else {					card->bch[chan].fsm_state = ACT2000_STATE_ICALL;					cmd.driver = card->myid;					cmd.command = ISDN_STAT_ICALL;					cmd.arg = chan;					cmd.parm.setup.si1 = msg->msg.connect_ind.si1;					cmd.parm.setup.si2 = msg->msg.connect_ind.si2;					if (card->ptype == ISDN_PTYPE_EURO)						strcpy(cmd.parm.setup.eazmsn,						       act2000_find_eaz(card, msg->msg.connect_ind.eaz));					else {						cmd.parm.setup.eazmsn[0] = msg->msg.connect_ind.eaz;						cmd.parm.setup.eazmsn[1] = 0;					}					memset(cmd.parm.setup.phone, 0, sizeof(cmd.parm.setup.phone));					memcpy(cmd.parm.setup.phone, msg->msg.connect_ind.addr.num,					       msg->msg.connect_ind.addr.len - 1);					cmd.parm.setup.plan = msg->msg.connect_ind.addr.tnp;					cmd.parm.setup.screen = 0;					if (card->interface.statcallb(&cmd) == 2)						actcapi_connect_resp(card, &card->bch[chan], 0x15); /* Reject Call */				}				break;			case 0x0302:				/* CONNECT_ACTIVE_IND */				chan = find_plci(card, msg->msg.connect_active_ind.plci);				if (chan >= 0)					switch (card->bch[chan].fsm_state) {						case ACT2000_STATE_IWAIT:							actcapi_connect_active_resp(card, &card->bch[chan]);							break;						case ACT2000_STATE_OWAIT:							actcapi_connect_active_resp(card, &card->bch[chan]);							actcapi_select_b2_protocol_req(card, &card->bch[chan]);							break;					}				break;			case 0x8202:				/* CONNECT_B3_IND */				chan = find_plci(card, msg->msg.connect_b3_ind.plci);				if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_IBWAIT)) {					card->bch[chan].ncci = msg->msg.connect_b3_ind.ncci;					actcapi_connect_b3_resp(card, &card->bch[chan], 0);				} else {					ctmp = (act2000_chan *)tmp;					ctmp->ncci = msg->msg.connect_b3_ind.ncci;					actcapi_connect_b3_resp(card, ctmp, 0x11); /* All Card-Cannels busy */				}				break;			case 0x8302:				/* CONNECT_B3_ACTIVE_IND */				chan = find_ncci(card, msg->msg.connect_b3_active_ind.ncci);				if ((chan >= 0) && (card->bch[chan].fsm_state == ACT2000_STATE_BWAIT)) {					actcapi_connect_b3_active_resp(card, &card->bch[chan]);					cmd.driver = card->myid;					cmd.command = ISDN_STAT_BCONN;					cmd.arg = chan;					card->interface.statcallb(&cmd);				}				break;			case 0x8402:				/* DISCONNECT_B3_IND */				chan = find_ncci(card, msg->msg.disconnect_b3_ind.ncci);				if (chan >= 0) {					ctmp = &card->bch[chan];					actcapi_disconnect_b3_resp(card, ctmp);					switch (ctmp->fsm_state) {						case ACT2000_STATE_ACTIVE:							ctmp->fsm_state = ACT2000_STATE_DHWAIT2;							cmd.driver = card->myid;							cmd.command = ISDN_STAT_BHUP;							cmd.arg = chan;							card->interface.statcallb(&cmd);							break;						case ACT2000_STATE_BHWAIT2:							actcapi_disconnect_req(card, ctmp);							ctmp->fsm_state = ACT2000_STATE_DHWAIT;							cmd.driver = card->myid;							cmd.command = ISDN_STAT_BHUP;							cmd.arg = chan;							card->interface.statcallb(&cmd);							break;					}				}				break;			case 0x0402:				/* DISCONNECT_IND */				chan = find_plci(card, msg->msg.disconnect_ind.plci);				if (chan >= 0) {					ctmp = &card->bch[chan];					actcapi_disconnect_resp(card, ctmp);					ctmp->fsm_state = ACT2000_STATE_NULL;					cmd.driver = card->myid;					cmd.command = ISDN_STAT_DHUP;					cmd.arg = chan;					card->interface.statcallb(&cmd);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品国产一区| 白白色 亚洲乱淫| 国产精品乱码人人做人人爱| 色婷婷亚洲综合| 精品在线播放免费| 99久久综合国产精品| 日本视频免费一区| 亚洲最新视频在线观看| 久久综合九色综合97婷婷女人| 欧美性淫爽ww久久久久无| 国产69精品久久久久毛片| 奇米影视7777精品一区二区| 亚洲男同1069视频| 国产视频一区在线播放| 日韩视频免费观看高清完整版在线观看| 97se狠狠狠综合亚洲狠狠| 国产在线精品一区二区夜色| 午夜精品久久久久| 亚洲精品国产第一综合99久久| 国产婷婷精品av在线| 日韩西西人体444www| 欧美色图免费看| 色婷婷综合激情| 91亚洲国产成人精品一区二三| 国产一区二区伦理| 欧美a级理论片| 天堂蜜桃一区二区三区| 亚洲一区二区三区四区五区黄| 国产精品成人一区二区艾草 | 精品制服美女丁香| 午夜成人在线视频| 亚洲123区在线观看| 一区二区欧美国产| 一区二区三区日韩在线观看| 亚洲免费观看高清完整版在线| 国产精品三级在线观看| 欧美国产精品一区二区三区| 久久精品亚洲一区二区三区浴池| 日韩欧美国产一区二区三区| 日韩午夜在线影院| 亚洲一区影音先锋| 一区二区三区日韩精品| 亚洲美女电影在线| 亚洲日穴在线视频| 亚洲理论在线观看| 有坂深雪av一区二区精品| 尤物在线观看一区| 午夜精品一区二区三区电影天堂| 亚洲图片欧美视频| 日韩av一二三| 免费成人小视频| 国产在线精品一区二区三区不卡| 国产一区二区不卡在线| 国产盗摄视频一区二区三区| 国产成人亚洲综合a∨猫咪| 成人免费视频网站在线观看| www.亚洲精品| 欧美在线短视频| 91精品国产综合久久久久久 | 26uuu亚洲综合色欧美 | 久久久www成人免费无遮挡大片| 久久综合成人精品亚洲另类欧美| 中文字幕免费观看一区| 亚洲欧美视频在线观看视频| 亚洲成在线观看| 久久丁香综合五月国产三级网站 | 欧美日本一区二区在线观看| 欧美一卡在线观看| 久久久亚洲欧洲日产国码αv| 欧美激情综合五月色丁香小说| 亚洲免费av在线| 麻豆成人免费电影| 国产成人av一区| 欧美在线综合视频| 日韩精品一区二区三区视频在线观看| 日本一区二区三级电影在线观看 | 国产一区二区三区在线观看免费视频 | 一色桃子久久精品亚洲| 亚洲123区在线观看| 国产美女精品在线| 91黄色激情网站| 久久久亚洲精品石原莉奈| 亚洲黄色片在线观看| 久久精品国产免费看久久精品| 成人精品免费网站| 欧美一区二区三区四区五区| 国产精品免费av| 免费不卡在线视频| 色综合欧美在线| 26uuu久久综合| 亚洲一区二区三区精品在线| 国产一区二区久久| 欧美亚洲图片小说| 国产精品色哟哟网站| 麻豆精品视频在线观看视频| 99久久婷婷国产综合精品电影| 日韩欧美高清一区| 一区二区在线观看免费| 国产精品伊人色| 欧美一区二区人人喊爽| 伊人开心综合网| 国产精品亚洲第一区在线暖暖韩国| 在线亚洲+欧美+日本专区| 国产丝袜美腿一区二区三区| 日韩经典一区二区| 在线视频你懂得一区二区三区| 欧美激情艳妇裸体舞| 麻豆视频一区二区| 欧美色欧美亚洲另类二区| 中文字幕一区二区三区色视频 | av亚洲精华国产精华| 日韩午夜在线观看视频| 亚洲成人av一区二区三区| 99久久精品免费看| 欧美国产视频在线| 国内一区二区在线| 欧美一二三四在线| 91浏览器入口在线观看| 亚洲国产高清aⅴ视频| 黄色小说综合网站| 日韩一区二区三区电影在线观看| 亚洲最大成人综合| 色综合一个色综合亚洲| 亚洲国产精品激情在线观看| 激情偷乱视频一区二区三区| 日韩一区二区在线观看视频播放| 亚洲午夜精品17c| 在线观看av不卡| 一区二区三区精品| 日本精品视频一区二区| 亚洲精品国产无天堂网2021| 91视频www| 亚洲激情图片qvod| 在线亚洲精品福利网址导航| 亚洲欧洲制服丝袜| 欧美性生活一区| 亚洲国产一区视频| 欧美写真视频网站| 亚洲国产精品久久久久婷婷884| 欧美在线视频日韩| 视频一区国产视频| 欧美一级视频精品观看| 精品系列免费在线观看| 精品久久久久久无| 国产真实乱子伦精品视频| 国产午夜亚洲精品午夜鲁丝片| 国产乱人伦精品一区二区在线观看 | 国产成人av在线影院| 国产精品久久久久久久久果冻传媒 | 1000部国产精品成人观看| 99精品视频中文字幕| 一区二区三区四区视频精品免费| 欧美日韩你懂得| 久久草av在线| 国产精品福利在线播放| 99久久精品免费看国产| 亚洲国产精品久久艾草纯爱| 欧美剧情片在线观看| 韩国成人在线视频| 国产原创一区二区| 国产精品美女久久久久高潮| 色菇凉天天综合网| 天天亚洲美女在线视频| 2023国产精华国产精品| 成人av午夜电影| 午夜影院在线观看欧美| 欧美成人乱码一区二区三区| 成人综合在线观看| 亚洲影院在线观看| 精品国内二区三区| 91视频www| 久久精品二区亚洲w码| 国产精品美女一区二区三区| 欧美色区777第一页| 国产高清精品在线| 亚洲123区在线观看| 国产欧美日本一区二区三区| 日本乱人伦aⅴ精品| 久国产精品韩国三级视频| 亚洲欧洲另类国产综合| 日韩一区二区三区四区五区六区| 国产不卡视频在线观看| 亚洲国产成人av网| 国产视频一区二区三区在线观看| 欧美自拍偷拍午夜视频| 国产一区日韩二区欧美三区| 亚洲一二三区不卡| 欧美激情中文字幕一区二区| 欧美高清性hdvideosex| 97se亚洲国产综合自在线| 捆绑变态av一区二区三区| 亚洲精品日韩一| 国产欧美一区二区精品性色| 欧美日韩视频第一区| 波多野结衣中文字幕一区| 免费看日韩a级影片| 亚洲女同一区二区| 蜜桃视频免费观看一区| 一区二区三区波多野结衣在线观看| 久久亚洲私人国产精品va媚药|