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

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

?? zjmdmdrv.h

?? 這個程序是我們公司自己開發的modem卡的驅動程序
?? H
字號:
/*****************************************
*FileName : zjmdmdrv.h
*Description:Character device drive for zj-modem
*Version:1.0.0
*Author:XieHongwei
*Date:2002-04-26
*****************************************/
#ifndef ZJMDMDRV_H
#define ZJMDMDRV_H

/************ Define port *****************/
#define DATAPORT0	0x210
#define DATAPORT1	0x211
#define DATAPORT2	0x212
#define DATAPORT3	0x213
#define DATAPORT4	0x214
#define DATAPORT5	0x215
#define DATAPORT6	0x216
#define DATAPORT7	0x217

#define STATPORT0	0x218
#define STATPORT1	0x219
#define STATPORT2	0x21A
#define STATPORT3	0x21B
#define STATPORT4	0x21C
#define STATPORT5	0x21D
#define STATPORT6	0x21E
#define STATPORT7	0x21F

#define IOPORTBASE	DATAPORT0
#define PORT_RANGE	16

/************ Modem protocol cmd ****************/
#define	CMD_CONNECT		0xc1	//建立連接
#define	CMD_DISCONN		0xc2	//掛機
#define	CMD_CALLOUT		0xc3	//撥號
#define	CMD_CONN_SUCCESS	0xc4	//連接成功
#define	CMD_CONN_BUSY		0xc5	//占線
#define	CMD_CONN_FAIL		0xc6	//連接失敗
#define	CMD_OPEN_CHL		0xc7	//開啟通道
#define	CMD_SHUT_CHL		0xc8	//關閉通道
#define	CMD_DETECT		0x55	//上電自檢
#define	CMD_FEEDBACK		0xaa	//反饋自檢結果
#define	CMD_QUERY_STATE	0xbb	//查詢狀態
#define	CMD_HANGUP_BACK	0xd0	//返回查詢的狀態:掛機
#define	CMD_BRINGUP_BACK	0xd1	//返回查詢的狀態:摘機
#define	CMD_REVOVER_HEAD	0x39	//糾正頭錯誤(僅driver支持)

/************ define the ioctl cmd **********/
#define IOCTL_CMD_SHUTCH			0x6b00
#define IOCTL_CMD_OPENCH			0x6b01
#define IOCTL_CMD_DISCONN			0x6b02
#define IOCTL_CMD_MAKECALL			0x6b03
#define IOCTL_CMD_GETSTAT			0x6b04
#define IOCTL_CMD_IsWriteOver		0x6b05
#define IOCTL_CMD_CmdSendOver		0x6b06
#define IOCTL_CMD_GetRdableCH		0x6b07
#define IOCTL_CMD_CORRECTTIME		0x6b08	//糾正系統時間
#define IOCTL_CMD_RESETCH			0x6b09
#define IOCTL_CMD_CARD_USABLE		0x6b0a
#define IOCTL_CMD_QUERY_STATE		0x6b0b
#define IOCTL_CMD_GetQueryResult	0x6b0c	//得到查詢結果
#define IOCTL_CMD_RecoverHead		0x6b0d

/******************** buffer state ***************/
#define NORMAL	0
#define EMPTY	-1
#define FULL		-2

/************ Error code define **************/
#define	NO_ERROR		0
#define	E_COMMON			-1	/*普通錯誤*/
#define	E_ACCESS_MEMORY	-2;	/*訪問內存失敗*/
#define	E_NONE_CARD		-3	/*卡不可用*/
#define	E_SEND_FAIL		-4	/*發送數據失敗 */
#define	E_RECV_FAIL		-5	/*接收數據失敗*/
#define	E_SEND_CMD_FAIL	-6	/*發送命令給modem時失敗*/


/************ Macro perennial define **********/
#define TRUE					1
#define FALSE				0

#define DEVICE_NAME			 "zjmdmdrv"
#define MAJOR				0
#define IRQ_NO				5
#define MDM_NUM			8
#define CHL_NUM				4
#define MAX_BUFF_SIZE		4000
#define MAX_CMDBUF_SIZE	128
#define MAX_DETECT_TIMES	4
#define OPT_CARD_NUM_ONE_IRQ	8	/*一次中斷處理幾塊卡*/

#define INVALID_MDMNO		0x22	/*無效的modem號*/
#define INVALID_CHLNO		INVALID_MDMNO
#define INVALID_STATE		0x33	/*無效的連接狀態*/
#define MAX_FULL_TIMES		1000	//d 100000



/********* Globe perennial *****************/
const int DataPort[] = 
{
	DATAPORT0,DATAPORT1,DATAPORT2,DATAPORT3,
	DATAPORT4,DATAPORT5,DATAPORT6,DATAPORT7,0
};
const int StatePort[] =
{
	STATPORT0,STATPORT1,STATPORT2,STATPORT3,
	STATPORT4,STATPORT5,STATPORT6,STATPORT7,0
};

/******** myself date type *****************/
#define BOOL int
#define ERRNO int

struct ChannelDesc
{
	u8 mdm_no;
	u8 chl_no;
	BOOL be_open;				//是否已經開啟
	BOOL connect;				//是否建立連接
	char connect_state;			//通道連接狀態
	char hangup_state;			//掛機狀態
	/* 各個通道有獨立的讀緩沖*/
	char read_buf[MAX_BUFF_SIZE];
	u32 rbuf_readpos;
	u32 rbuf_writepos;
	u32 readable_len;			//本通道已經從卡收收到數據的長度
	u64	rbuf_max_full_times;	//讀緩沖最多能滿的次數,超過指定的值就自動清空
	/* 各個通道有獨立的寫緩沖*/
	char write_buf[MAX_BUFF_SIZE];
	u32 wbuf_readpos;
	u32 wbuf_writepos;
	u32 writeable_len;			//可以發送的數據長度
	u16 wbytes_once;			//一次發送的字節數
	u16 pause_time;				//暫停時間(毫秒)
	u16 wbytes_after_pause;		//暫停后發送的字節數
	BOOL wtimer_started;		//寫數據的定時器是否開啟
	u64 wtimer_start_time;		//定時器啟動時間
	wait_queue_head_t wait_queue_r;	//讀等待隊列
	wait_queue_head_t wait_queue_w;	//寫等待隊列
	u64	wbuf_max_full_times;		//寫緩沖最多能滿的次數,超過指定的值就自動清空
};

struct MdmDesc
{
	u8 mdm_no;
	unsigned int f_flags;		//文件打開標志
	atomic_t writed_head;		//剛寫完數據頭
	BOOL	writed_head_flag;	//寫數據頭標志
	atomic_t expect_read_head;	//希望讀到數據頭,為FALSE時表示希望讀到數據
	atomic_t is_data_head;		//最后一次讀到的頭是數據頭,非狀態頭
	char head_at_last;		//最后一次讀到的頭保存在此
	u8 next_write_chl_id;	//下一次要發送的通道號
	/*命令數據緩沖*/
	char cmd_buf[MAX_CMDBUF_SIZE];
	u32 cbuf_readpos;
	u32 cbuf_writepos;
	u32 cmdable_len;		//可以發送的命令長度
	wait_queue_head_t wait_queue_cmd;	//等待命令發完的等待隊列
	struct semaphore cmd_sending_sem;	//發送命令的信號量
	struct ChannelDesc ch_desc[CHL_NUM];
};

/*********** Globe variable ***************/
static int Major;
u8 g_MdmNum;	//可用modem數目
u8 g_MdmNO[MDM_NUM];	//依次記錄可用modem卡的編號
u8 g_CurReadCardCount;	//當前讀操作的卡號計數
u8 g_CurWriteCardCount;	//當前寫操作的卡號計數

struct MdmDesc *gp_MdmDesc[MDM_NUM];
char *gp_mdm_res;
#ifdef _DEBUG
	u64 amount_recv_bytes,amount_send_bytes,no_read_data,
		max_no_read_data,rbuf_full_times;
	BOOL recv_first_data,head_err;
#endif

void TastletRoutine(unsigned long arg);

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲品质自拍视频| 精品黑人一区二区三区久久| 国产毛片精品国产一区二区三区| 亚洲成人av一区二区| 一区二区三区精品在线观看| 亚洲人成影院在线观看| 亚洲免费在线电影| 亚洲自拍另类综合| 日本成人在线看| 精品一区二区av| 国产大片一区二区| 99久久婷婷国产综合精品| 99视频一区二区| 色综合久久久久综合体| 一本到三区不卡视频| 精品视频一区二区三区免费| 欧美二区三区的天堂| 精品国产污污免费网站入口| 国产亚洲午夜高清国产拍精品| 国产精品毛片大码女人| 亚洲精品国久久99热| 三级欧美韩日大片在线看| 精品一区二区日韩| 成人av网站在线观看| 欧美日韩国产首页| 久久久综合视频| 一区二区三区中文在线| 九九视频精品免费| 99这里只有精品| 欧美一区二区三区在线电影| 久久久久国产精品厨房| 亚洲综合色自拍一区| 麻豆精品视频在线观看免费| 99久久久国产精品免费蜜臀| 4hu四虎永久在线影院成人| 国产亚洲精品超碰| 一区二区三区毛片| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲图片欧美一区| 日本不卡在线视频| 91香蕉视频在线| 精品成人免费观看| 一区二区三区四区亚洲| 国产在线精品免费av| 欧洲视频一区二区| 久久久久久免费| 婷婷六月综合网| 99久久婷婷国产| 久久嫩草精品久久久精品| 亚洲一区二区三区三| 国产黄色91视频| 欧美一区日韩一区| 亚洲最色的网站| 国产不卡视频在线观看| 日韩一区在线看| 日本视频中文字幕一区二区三区| 国产成人亚洲综合a∨婷婷| 欧美午夜不卡在线观看免费| 国产人妖乱国产精品人妖| 亚洲观看高清完整版在线观看| 成人97人人超碰人人99| 26uuu另类欧美| 日韩激情一二三区| 欧美影视一区二区三区| 国产精品国产三级国产aⅴ中文| 青青草97国产精品免费观看无弹窗版| 91麻豆福利精品推荐| 国产精品女上位| 成人中文字幕在线| 久久久久久久国产精品影院| 美美哒免费高清在线观看视频一区二区 | 午夜久久久久久| 99久久综合国产精品| 国产精品视频看| 国产乱人伦偷精品视频不卡| 精品久久久久久久久久久久包黑料| 亚洲综合av网| 777久久久精品| 蜜桃视频一区二区三区在线观看| 欧美一区二区高清| 奇米在线7777在线精品| 欧美一区二区精品| 蜜臀av在线播放一区二区三区| 欧美丰满少妇xxxxx高潮对白| 亚洲成人av福利| 宅男在线国产精品| 青青草精品视频| 欧美tk—视频vk| 极品尤物av久久免费看| 久久久久久久久久美女| 成人午夜免费av| 亚洲视频图片小说| 欧美日韩另类国产亚洲欧美一级| 婷婷开心久久网| 久久久国产精品不卡| 成人福利视频在线看| 欧美韩日一区二区三区四区| 99麻豆久久久国产精品免费优播| 亚洲人成精品久久久久| 欧美日韩在线直播| 欧美aaa在线| 国产三级一区二区三区| 91欧美激情一区二区三区成人| 亚洲香蕉伊在人在线观| 欧美猛男超大videosgay| 免费观看一级欧美片| 久久久夜色精品亚洲| 色婷婷综合久久久中文字幕| 一区二区三区**美女毛片| 欧美一级在线观看| 成人深夜福利app| 午夜精品视频一区| 久久女同互慰一区二区三区| 一本久久a久久免费精品不卡| 日韩国产精品大片| 中文字幕在线免费不卡| 欧美日韩aaaaaa| 成人午夜电影小说| 一区二区三区国产精品| 久久久久久久综合日本| 欧美精品三级在线观看| 国产精一区二区三区| 亚洲va欧美va天堂v国产综合| 久久久久久9999| 欧美顶级少妇做爰| 91丝袜美女网| 国产一区二区日韩精品| 亚洲成人精品影院| 国产精品久久久久久久午夜片| 欧美日韩高清一区二区不卡| 99久久国产综合精品麻豆| 国产一区中文字幕| 午夜精品久久久| 亚洲精品久久久蜜桃| 国产精品久久久久久亚洲毛片| 欧美成人猛片aaaaaaa| 欧美日免费三级在线| 91亚洲精品一区二区乱码| 国产精品亚洲一区二区三区妖精| 日韩高清在线观看| 亚洲精品ww久久久久久p站| 日本一区二区成人| 2020国产精品自拍| 欧美不卡一二三| 日韩视频在线观看一区二区| 欧美三级欧美一级| 欧美亚洲国产bt| 在线国产亚洲欧美| 在线亚洲一区观看| 色狠狠色狠狠综合| 日本韩国欧美一区| 91色.com| 在线免费精品视频| 色妞www精品视频| 在线视频一区二区三| 色综合久久久久综合体桃花网| 成人av片在线观看| 91香蕉视频黄| 欧美中文字幕一区二区三区| 欧洲av在线精品| 欧美日韩一本到| 欧美精品一级二级| 精品福利视频一区二区三区| 日韩精品一区二区三区在线播放| 日韩一区二区三区免费观看| 91精品国产乱码久久蜜臀| 欧美一级精品在线| 久久精品男人的天堂| 中文字幕在线不卡一区二区三区 | 99久久久精品| 91黄色激情网站| 91麻豆精品国产91久久久| 欧美一卡二卡在线| 欧美tickle裸体挠脚心vk| 欧美激情一区不卡| 亚洲综合小说图片| 久久91精品国产91久久小草| 国产美女精品在线| 色综合中文字幕| 6080yy午夜一二三区久久| 精品国产制服丝袜高跟| 中文字幕亚洲在| 蜜臀99久久精品久久久久久软件| 国产乱淫av一区二区三区| 国产a久久麻豆| 欧美日韩亚州综合| 久久久久国色av免费看影院| 亚洲日本青草视频在线怡红院| 亚洲成av人片在www色猫咪| 国产精品白丝av| 欧美日韩一区三区四区| 久久久久国产精品免费免费搜索| 亚洲色图一区二区三区| 麻豆成人av在线| 色狠狠一区二区| 国产欧美一区二区精品性色超碰| 亚洲一区免费视频| 国产成人超碰人人澡人人澡| 欧美猛男超大videosgay| 国产精品久久三|