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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? callbacks.c

?? linux和2410結合開發 用他可以生成2410所需的zImage文件
?? C
字號:
/* * Callbacks for the FSM * * Copyright (C) 1996 Universidade de Lisboa *  * Written by Pedro Roque Marques (roque@di.fc.ul.pt) * * This software may be used and distributed according to the terms of  * the GNU General Public License, incorporated herein by reference. *//* * Fix: 19981230 - Carlos Morgado <chbm@techie.com> * Port of Nelson Escravana's <nelson.escravana@usa.net> fix to CalledPN  * NULL pointer dereference in cb_in_1 (originally fixed in 2.0) */#include <linux/sched.h>#include <linux/string.h>#include <linux/kernel.h>#include <linux/types.h>#include <linux/slab.h>#include <linux/mm.h>#include <linux/tqueue.h>#include <linux/skbuff.h>#include <asm/io.h>#include <linux/isdnif.h>#include "pcbit.h"#include "layer2.h"#include "edss1.h"#include "callbacks.h"#include "capi.h"ushort last_ref_num = 1;/* *  send_conn_req * */void cb_out_1(struct pcbit_dev * dev, struct pcbit_chan* chan, 	      struct callb_data *cbdata) {	struct sk_buff *skb;	int len;        ushort refnum;#ifdef DEBUG        printk(KERN_DEBUG "Called Party Number: %s\n",                cbdata->data.setup.CalledPN);#endif        /*         * hdr - kmalloc in capi_conn_req         *     - kfree   when msg has been sent         */        if ((len = capi_conn_req(cbdata->data.setup.CalledPN, &skb, 				 chan->proto)) < 0)        {                printk("capi_conn_req failed\n");                return;        }        refnum = last_ref_num++ & 0x7fffU;        chan->callref = 0;        chan->layer2link = 0;        chan->snum = 0;        chan->s_refnum = refnum;        pcbit_l2_write(dev, MSG_CONN_REQ, refnum, skb, len);}/* *  rcv CONNECT *  will go into ACTIVE state *  send CONN_ACTIVE_RESP *  send Select protocol request  */void cb_out_2(struct pcbit_dev * dev, struct pcbit_chan* chan, 	      struct callb_data *data) {        isdn_ctrl ictl; 	struct sk_buff *skb;	int len;        ushort refnum;        if ((len=capi_conn_active_resp(chan, &skb)) < 0)        {                printk("capi_conn_active_req failed\n");                return;        }        refnum = last_ref_num++ & 0x7fffU;        chan->s_refnum = refnum;        pcbit_l2_write(dev, MSG_CONN_ACTV_RESP, refnum, skb, len);        ictl.command = ISDN_STAT_DCONN;        ictl.driver=dev->id;        ictl.arg=chan->id;        dev->dev_if->statcallb(&ictl);        /* ACTIVE D-channel */        /* Select protocol  */        if ((len=capi_select_proto_req(chan, &skb, 1 /*outgoing*/)) < 0) {                 printk("capi_select_proto_req failed\n");                return;        }        refnum = last_ref_num++ & 0x7fffU;        chan->s_refnum = refnum;        pcbit_l2_write(dev, MSG_SELP_REQ, refnum, skb, len);}/* * Disconnect received (actually RELEASE COMPLETE)  * This means we were not able to establish connection with remote * Inform the big boss above */void cb_out_3(struct pcbit_dev * dev, struct pcbit_chan* chan,	      struct callb_data *data) {        isdn_ctrl ictl;        ictl.command = ISDN_STAT_DHUP;        ictl.driver=dev->id;        ictl.arg=chan->id;        dev->dev_if->statcallb(&ictl);}/* * Incoming call received * inform user */void cb_in_1(struct pcbit_dev * dev, struct pcbit_chan* chan,	     struct callb_data *cbdata) {        isdn_ctrl ictl;        unsigned short refnum; 	struct sk_buff *skb;	int len;        ictl.command = ISDN_STAT_ICALL;        ictl.driver=dev->id;        ictl.arg=chan->id;                /*         *  ictl.num >= strlen() + strlen() + 5         */	if (cbdata->data.setup.CallingPN == NULL) {		printk(KERN_DEBUG "NULL CallingPN to phone; using 0\n");		strcpy(ictl.parm.setup.phone, "0");	}	else {		strcpy(ictl.parm.setup.phone, cbdata->data.setup.CallingPN);	}	if (cbdata->data.setup.CalledPN == NULL) {		printk(KERN_DEBUG "NULL CalledPN to eazmsn; using 0\n");		strcpy(ictl.parm.setup.eazmsn, "0");	}	else {		strcpy(ictl.parm.setup.eazmsn, cbdata->data.setup.CalledPN);	}	ictl.parm.setup.si1 = 7;	ictl.parm.setup.si2 = 0;	ictl.parm.setup.plan = 0;	ictl.parm.setup.screen = 0;#ifdef DEBUG	printk(KERN_DEBUG "statstr: %s\n", ictl.num);#endif        dev->dev_if->statcallb(&ictl);                if ((len=capi_conn_resp(chan, &skb)) < 0) {                printk(KERN_DEBUG "capi_conn_resp failed\n");                return;	}        refnum = last_ref_num++ & 0x7fffU;        chan->s_refnum = refnum;        pcbit_l2_write(dev, MSG_CONN_RESP, refnum, skb, len);}/* * user has replied * open the channel * send CONNECT message CONNECT_ACTIVE_REQ in CAPI */void cb_in_2(struct pcbit_dev * dev, struct pcbit_chan* chan,	     struct callb_data *data){        unsigned short refnum;	struct sk_buff *skb;        int len;                if ((len = capi_conn_active_req(chan, &skb)) < 0) {                        printk(KERN_DEBUG "capi_conn_active_req failed\n");                return;        }        refnum = last_ref_num++ & 0x7fffU;        chan->s_refnum = refnum;	printk(KERN_DEBUG "sending MSG_CONN_ACTV_REQ\n");        pcbit_l2_write(dev, MSG_CONN_ACTV_REQ, refnum, skb, len);}/* * CONN_ACK arrived * start b-proto selection * */void cb_in_3(struct pcbit_dev * dev, struct pcbit_chan* chan, 	     struct callb_data *data){        unsigned short refnum; 	struct sk_buff *skb;	int len;                if ((len = capi_select_proto_req(chan, &skb, 0 /*incoming*/)) < 0)        {                printk("capi_select_proto_req failed\n");                return;        }        refnum = last_ref_num++ & 0x7fffU;        chan->s_refnum = refnum;        pcbit_l2_write(dev, MSG_SELP_REQ, refnum, skb, len);}/* * Received disconnect ind on active state * send disconnect resp * send msg to user */void cb_disc_1(struct pcbit_dev * dev, struct pcbit_chan* chan, 	       struct callb_data *data){ 	struct sk_buff *skb;	int len;        ushort refnum;        isdn_ctrl ictl;          if ((len = capi_disc_resp(chan, &skb)) < 0) {                printk("capi_disc_resp failed\n");                return;        }        refnum = last_ref_num++ & 0x7fffU;        chan->s_refnum = refnum;        pcbit_l2_write(dev, MSG_DISC_RESP, refnum, skb, len);            ictl.command = ISDN_STAT_BHUP;        ictl.driver=dev->id;        ictl.arg=chan->id;        dev->dev_if->statcallb(&ictl);}        /* *  User HANGUP on active/call proceeding state *  send disc.req */void cb_disc_2(struct pcbit_dev * dev, struct pcbit_chan* chan, 	       struct callb_data *data){ 	struct sk_buff *skb;	int len;        ushort refnum;        if ((len = capi_disc_req(chan->callref, &skb, CAUSE_NORMAL)) < 0)        {                printk("capi_disc_req failed\n");                return;        }        refnum = last_ref_num++ & 0x7fffU;        chan->s_refnum = refnum;        pcbit_l2_write(dev, MSG_DISC_REQ, refnum, skb, len);  }/* *  Disc confirm received send BHUP *  Problem: when the HL driver sends the disc req itself *           LL receives BHUP */void cb_disc_3(struct pcbit_dev * dev, struct pcbit_chan* chan, 	       struct callb_data *data){        isdn_ctrl ictl;        ictl.command = ISDN_STAT_BHUP;        ictl.driver=dev->id;        ictl.arg=chan->id;        dev->dev_if->statcallb(&ictl);}void cb_notdone(struct pcbit_dev * dev, struct pcbit_chan* chan, 		struct callb_data *data){}/* * send activate b-chan protocol */void cb_selp_1(struct pcbit_dev * dev, struct pcbit_chan* chan, 	       struct callb_data *data) { 	struct sk_buff *skb;	int len;        ushort refnum;        if ((len = capi_activate_transp_req(chan, &skb)) < 0)        {                printk("capi_conn_activate_transp_req failed\n");                return;        }        refnum = last_ref_num++ & 0x7fffU;        chan->s_refnum = refnum;        pcbit_l2_write(dev, MSG_ACT_TRANSP_REQ, refnum, skb, len);}/* *  Inform User that the B-channel is available */void cb_open(struct pcbit_dev * dev, struct pcbit_chan* chan, 	     struct callb_data *data) {        isdn_ctrl ictl;        ictl.command = ISDN_STAT_BCONN;        ictl.driver=dev->id;        ictl.arg=chan->id;        dev->dev_if->statcallb(&ictl);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区三区四区| 久久久国产精品午夜一区ai换脸| 一区二区三区视频在线看| 亚洲欧美一区二区久久| 亚洲综合激情另类小说区| 日本女优在线视频一区二区| 蜜臀久久99精品久久久画质超高清 | 国产做a爰片久久毛片| 不卡的av中国片| 欧美欧美欧美欧美首页| 日韩精品专区在线影院重磅| 欧美一区二区三区四区久久| 久久精品视频在线看| 一片黄亚洲嫩模| 精品一区精品二区高清| a级高清视频欧美日韩| 成人美女视频在线看| 欧美日韩国产高清一区二区三区| 久久你懂得1024| 亚洲国产成人tv| 99re66热这里只有精品3直播| 国产精品66部| 91精品国产aⅴ一区二区| 国产精品全国免费观看高清| 日本欧美在线观看| 蜜桃视频在线观看一区| 欧洲视频一区二区| 国产精品久久久久婷婷| 国产精品自拍网站| 日韩午夜激情电影| 亚洲综合网站在线观看| av一区二区三区| 国产亚洲成av人在线观看导航| 亚洲不卡av一区二区三区| 91蜜桃网址入口| 亚洲精品一区二区三区影院 | 成人免费毛片嘿嘿连载视频| 欧美久久婷婷综合色| 亚洲人123区| 一本大道久久a久久综合| 国产精品色婷婷久久58| 免费观看在线色综合| 一本高清dvd不卡在线观看| 国产精品久久精品日日| 极品美女销魂一区二区三区| 国产成人综合亚洲91猫咪| 亚洲精品一线二线三线| 视频一区二区不卡| 精品久久久久久久一区二区蜜臀| 激情综合色综合久久| 久久亚洲精精品中文字幕早川悠里| 蜜桃传媒麻豆第一区在线观看| 成人网在线免费视频| 国产精品国产三级国产三级人妇| kk眼镜猥琐国模调教系列一区二区 | 欧美va亚洲va香蕉在线| 日本aⅴ精品一区二区三区| 久久你懂得1024| 国产欧美日韩不卡免费| 亚洲男人的天堂在线观看| 一级日本不卡的影视| 午夜精品久久久久久久蜜桃app| 国产精品羞羞答答xxdd| 中文乱码免费一区二区| 91麻豆swag| 亚洲精品美国一| 91精品久久久久久久99蜜桃| 日本人妖一区二区| 中文字幕的久久| 国产高清在线观看免费不卡| 亚洲人成人一区二区在线观看| 日本高清无吗v一区| 国产一区二区三区国产| 亚洲另类色综合网站| 国产成人综合视频| 亚洲va中文字幕| 欧美极品美女视频| 国产精品亚洲а∨天堂免在线| 一区二区激情小说| 欧美国产综合色视频| 日韩亚洲欧美中文三级| 色婷婷久久久亚洲一区二区三区| 亚洲一二三四在线| 日本一区二区不卡视频| 3d成人h动漫网站入口| 成人av网站在线观看| 极品美女销魂一区二区三区免费| 中文字幕欧美区| 欧美成人性福生活免费看| 欧美中文字幕久久| 97久久超碰国产精品| 亚洲自拍另类综合| 国产精品久久久一本精品| 日韩一本二本av| 欧美一区二区网站| 日本vs亚洲vs韩国一区三区 | 91视频你懂的| 欧美日韩一级片网站| 91精品国产色综合久久不卡电影| 91视视频在线观看入口直接观看www | 成人免费视频app| 日韩高清不卡一区二区| 久久精品国产秦先生| 亚洲色图视频免费播放| 国产精品视频一二三| 亚洲视频在线一区| 日韩主播视频在线| 国产成人精品免费在线| 亚洲精品国久久99热| 国产欧美日韩视频在线观看| 欧美三级乱人伦电影| 欧美色偷偷大香| 成人v精品蜜桃久久一区| 奇米精品一区二区三区在线观看| 亚洲国产欧美日韩另类综合| 日本中文在线一区| 另类综合日韩欧美亚洲| 国产精品一区二区三区99| 欧美午夜不卡视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美日本一道本| 亚洲色图欧美在线| av不卡免费电影| 在线不卡欧美精品一区二区三区| 精品久久五月天| 欧美日韩三级一区二区| 精品国产制服丝袜高跟| 678五月天丁香亚洲综合网| 久久中文娱乐网| 日韩av中文在线观看| 色婷婷国产精品| 国产精品久久777777| 日本不卡免费在线视频| 成人精品免费视频| 色婷婷av一区二区三区gif| 久久精品一区蜜桃臀影院| 亚洲精品成人少妇| 精品中文字幕一区二区小辣椒| 欧美日韩一区二区欧美激情 | 亚洲一区免费观看| 国内精品视频666| 日韩一区二区免费在线电影| 日本中文一区二区三区| 激情综合色播激情啊| 一区二区三区高清在线| 91在线播放网址| 亚洲天堂中文字幕| 色哟哟一区二区三区| 亚洲美女区一区| 欧美日韩一区三区四区| 久久精品一区二区三区不卡牛牛 | 国产高清不卡二三区| 国产亚洲女人久久久久毛片| 国产久卡久卡久卡久卡视频精品| 欧美精品日韩一本| 亚洲激情第一区| 免费精品视频在线| 日韩一级二级三级| 免费人成精品欧美精品| 久久久亚洲精华液精华液精华液 | 色八戒一区二区三区| 一区二区三区蜜桃网| 欧美一二三四区在线| 国产精品一区二区在线播放| 国产精品污网站| 亚洲精品日韩综合观看成人91| 色播五月激情综合网| 蜜臀久久久99精品久久久久久| 亚洲精品一线二线三线无人区| 国产在线视频一区二区| jlzzjlzz欧美大全| 日韩av在线免费观看不卡| 中文久久乱码一区二区| 国产伦精品一区二区三区免费迷 | 精品一区二区三区免费毛片爱| 1024成人网色www| 日韩色在线观看| 色呦呦国产精品| 国产成人免费网站| 日韩精品视频网| 亚洲视频在线一区二区| 久久免费精品国产久精品久久久久 | 精品黑人一区二区三区久久 | 国产寡妇亲子伦一区二区| 婷婷亚洲久悠悠色悠在线播放 | 日韩理论片一区二区| 久久久久亚洲蜜桃| 欧美群妇大交群的观看方式| 高清不卡一区二区| 国内精品国产成人| 日本视频在线一区| 亚洲成人精品在线观看| 亚洲美女淫视频| 尤物视频一区二区| 国产精品三级av| 国产精品国产三级国产a| 国产色产综合产在线视频| 26uuu国产电影一区二区| 欧美大片在线观看一区二区| 欧美一级高清片|