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

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

?? dw4002.c

?? linux下DVB/IP驅動原代碼 DVBWorld 公司產品 www.worlddvb.com
?? C
?? 第 1 頁 / 共 5 頁
字號:
#define DRV_NAME	"DVBWORLD DW4002 DVBS PCI NIC"#define DRV_VERSION	"1.0.02"#include <linux/config.h>#include <linux/module.h>MODULE_LICENSE ("Dual BSD/GPL");#include <linux/pci.h>#include <linux/netdevice.h>#include <linux/etherdevice.h>#include <linux/rtnetlink.h>#include <linux/delay.h>#include <linux/ethtool.h>#include <linux/crc32.h>#include <linux/sched.h>#include <linux/interrupt.h>#include <asm/io.h>#include <asm/msr.h>#include <asm/irq.h>		//Added by Kully 11-3-2006#include <linux/string.h>#include <linux/ipc.h>#include <linux/shm.h>//typedef unsigned int          BOOL;#ifndef FALSE#define FALSE                 0#endif#ifndef TRUE#define TRUE                  1#endif#ifdef DM1105_NDEBUG    #define assert(expr) do {} while (0)#else    #define assert(expr) \        if(!(expr)) {					\        printk( "Assertion failed! %s,%s,%s,line=%d\n",	\        #expr,__FILE__,__FUNCTION__,__LINE__);		\        }#endif#define		MAX_UNITS           8static int	media[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1};//Maximum events (Rx packets, etc.) to handle at each interrupt.static int max_interrupt_work = 1000;//5;//Kully 10-31-2006//#define IRQ_DATA_LENGTH			(IRQ_TSPACKET_NUM * 188)#define DM1105_IRQ_DATA_LENGTH	(128*4*47)//0x5e00 //64*2*188//Fixed by Kully 11-01-2006#define FILTERPID_PACKNUM		100#define FILTERPID_BUFLENGTH		18800// Rx Buffer Start address+2k buffer+redundant#define RX_BUF_SIZE			(128*188*5)//0x24000(147456)	//144K,DMA Ring buffer size;//Fixed by Kully 11-01-2006#define RX_BUF_TOT_LEN		RX_BUF_SIZE//Real mem buffer size;#define MINDMABUFDATA       564     // 3TS = 3*188//Number of Tx descriptor registers.#define NUM_TX_DESC         4//max supported ethernet frame size -- must be at least (dev->mtu+14+4).#define MAX_ETH_FRAME_SIZE	1536//Size of the Tx bounce buffers -- must be at least (dev->mtu+14+4).#define TX_BUF_SIZE			MAX_ETH_FRAME_SIZE		//1536#define TX_BUF_TOT_LEN		(TX_BUF_SIZE * NUM_TX_DESC)	//1536*4//Operational parameters that usually are not changed.//Time in jiffies before concluding the transmitter is hung.#define TX_TIMEOUT			(6*HZ)//about dm1105#define INTMAK_ALLMASK		0x01	//0x09	//IRM|TSIRQM#define CMD_RxEnable		0x01#define CF_TS_IP            0x0001#define CF_Filter           0x0002#define CF_TsPass           0x0004#define CF_RxEnable         0x0008#define CF_LNBPower         0x0010#define CF_LNB_HV           0x0020#define IOCTL_MINCMD        SIOCDEVPRIVATE#define IOCTL_MAXCMD        (SIOCDEVPRIVATE + 0x0f)enum IoctlCmd {	IOCTL_Dm1105_ReadReg = IOCTL_MINCMD,	IOCTL_Dm1105_WriteReg,	IOCTL_Dm1105_DeviceInfo,	IOCTL_Dm1105_FilterPID,	IOCTL_Dm1105_ConfigReg,	IOCTL_Dm1105_Statistics,};struct dm1105_ioctl_data {	u8  param1;  // register addr	u8  param2;  // operation : 1 - char   2 - word   4 - dword	u8  val_in;	u8  val_out;	unsigned char buf[384];};//Interrupt register bits, using my own meaningful names.enum IntrStatusBits {	PCIErr	= 0x8000,	PCSTimeout = 0x4000,	RxFIFOOver = 0x40,	RxUnderrun = 0x20,	RxOverflow = 0x10,	TxErr	= 0x08,	TxOK	= 0x04,	RxErr	= 0x02,	RxOK	= 0x01,	RxAckBits = RxFIFOOver | RxOverflow | RxOK,};#define ANY_NUM_STATS       4     /* number of ETHTOOL_GSTATS u64's */#define ANY_REGS_VER        1     /* version of reg. data in ETHTOOL_GREGS */#define ANY_MIN_IO_SIZE     0xFF		//0x80// ************************************************************// Filter PID and decode IP function variables// ************************************************************#define RTFAST_HEAD_SIZE      14#define RTFAST_MAX_LOOKAHEAD  (1518 - RTFAST_HEAD_SIZE)#define MPE_MAXSECTIONLEN     2048 //(1516+184)#define MaxIRPQueue           2#define MaxFilterPID          32	//Fixed by Kully //old data:6 #define MaxDecodeIP           32#define MaxMpePID             255// Protocols#define IPPROTO_IP			0        //dummy for IP#define IPPROTO_ICMP		1        //control message protocol#define IPPROTO_IGMP		2        //internet group management protocol #define IPPROTO_GGP			3        //gateway^2 (deprecated) #define IPPROTO_TCP			6        //tcp #define IPPROTO_PUP			12       //pup#define IPPROTO_UDP			17       //user datagram protocol#define IPPROTO_IDP			22       //xns idp */#define IPPROTO_ND			77       //UNOFFICIAL net disk proto#define IPPROTO_RAW			255      //raw IP packet#define IPPROTO_MAX			256enum SetDeviceStatusCmd{	ScanDeviceCmd = 1,	DeviceInfoCmd,	ApplyUseCmd,	FreeUseCmd,};enum FILTERIOCTLTYPE{	FILTERNONE = 0,	FILTERPSI,	FILTERMPE,	FILTERIP,	FILTEREXT,	FILTERSAVE,	FILTERPLAY,};enum FILTERTYPE {	APPLYFILTER = 0,	SETFILTERPID,	STARTFILTER,	PAUSEFILTER,	CONTINUEFILTER,	RESTARTFILTER,	CHECKFILTER,	STOPFILTER,	RESTOREFILTER,};enum FILTERPIDSTATUS {	FILTERPID_READY = 0,	FILTERPID_INIT,	FILTERPID_SET,	FILTERPID_RUN,	FILTERPID_PAUSE,	FILTERPID_OK,	FILTERPID_ERR,};typedef struct _TS_PACKET_HEAD {	unsigned char sync_byte;	unsigned char pid1:5;	unsigned char priorty:1;	unsigned char start_indicator:1;	unsigned char error_indicator:1;	unsigned char pid2;	unsigned char continuity_counter:4;	unsigned char adap:2;	unsigned char scramble:2;}TS_PACKET_HEAD, *PTS_PACKET_HEAD;typedef struct _FILTERPID {	unsigned short wPID[MaxFilterPID];	unsigned char status;   // filter status, INIT RUN PAUSE STOP OVER ...	unsigned char mode;     // 0 : filter from start unit  1 : pass this pid ts  // 2: pass whole ts	unsigned char indicator;   // just for mode = 0	int  packet_num;  // filtered packet number	int  pid_num;     // filtered pid number	int  move_num;	BOOL bmove_flag;	int  lost_num;	unsigned char PacketBuf[FILTERPID_BUFLENGTH];}FILTERPID, *PFILTERPID;typedef struct _DECODE_IP {	unsigned short  wPID;	unsigned char  MACHead[RTFAST_HEAD_SIZE];	unsigned char  SectionBuf[MPE_MAXSECTIONLEN];	unsigned char  IP_address[4];	unsigned short  TotalSectionLen;	unsigned short  CurSectionLen;	unsigned char* IPBuf;	unsigned short  IPPacketLen; // IP len	long long	IPTotalLen;	unsigned long TotalTsNum; // statistic ts lost	unsigned long LostTsNum;	unsigned long TotalIpNum;	unsigned long LostIpNum;	unsigned char  status;   // decode status, READY RUN PAUSE STOP OVER ...	unsigned char  payload_unit_start_indicator:1;	unsigned char  payload_scrambling_control:2;	unsigned char  address_scrambling_control:2;	unsigned char  SectionDone:1;	unsigned char  bInitFlag:1;	unsigned char  IpFilterFlag:1;} DECODE_IP, *PDECODE_IP;typedef struct _MPE_SECTION_HEAD{	unsigned char table_id;	unsigned char section_length1:4;	unsigned char not_use1:2;	unsigned char private_indicator:1;	unsigned char syntax_indicator:1;	unsigned char section_length2;		unsigned char MAC_address6;	unsigned char MAC_address5;		unsigned char next_indicator:1;	unsigned char LLC_SNAP_flag:1;	unsigned char address_scrambling_control:2;	unsigned char payload_scrambling_control:2;	unsigned char not_use2:2;		unsigned char section_number;	unsigned char last_section_number;		unsigned char MAC_address4;	unsigned char MAC_address3;	unsigned char MAC_address2;	unsigned char MAC_address1;} MPE_SECTION_HEAD, *PMPE_SECTION_HEAD;typedef struct _IP_HEAD {	unsigned char headlength:4;	unsigned char version:4;	unsigned char TOS;	unsigned char length1;	unsigned char length2;	unsigned char id1;	unsigned char id2;	unsigned char slice_offset1:5;	unsigned char flags:3;	unsigned char slice_offset2;	unsigned char TTL;	unsigned char protocol;	unsigned char checksum1;	unsigned char checksum2;	unsigned char sourceIP1;	unsigned char sourceIP2;	unsigned char sourceIP3;	unsigned char sourceIP4;	unsigned char destIP1;	unsigned char destIP2;	unsigned char destIP3;	unsigned char destIP4;}IP_HEAD, *PIP_HEAD;typedef struct _UDP_HEAD {	unsigned char source_port[2];	unsigned char dest_port[2];	unsigned char length[2];	unsigned char check_sum[2];} UDP_HEAD, *PUDP_HEAD;typedef struct _MPE_PID {	unsigned short wPID;	unsigned char MAC_address[6];	unsigned char IP_address[4];	unsigned short wPort;} MPE_PID, *PMPE_PID;#define DM1105_VENDOR_ID	0x109f#define	DM1105_DEVICE_ID		0x036ftypedef struct __card_info__{	unsigned short vendor_id;	unsigned short device_id;	char version[16];	char name[64];}card_info,*pcard_info;//CARDINFO device_info;typedef enum {	UNKNOWN_DEV = 0,	DW4002,}board_t;static struct pci_device_id dm1105_pci_tbl[] __devinitdata = {	{0x109f, 0x036f, 0x0000, 0x2002, 0, 0, DW4002},
	{0x109f, 0x036f, 0x0001, 0x2002, 0, 0, DW4002},	{0x109f, 0x036f, 0x0000, 0x4002, 0, 0, DW4002},	{0x109f, 0x036f, 0x0001, 0x4002, 0, 0, DW4002},	{0,}};MODULE_DEVICE_TABLE (pci, dm1105_pci_tbl);////////////////////////////////////////////////////////////////////////////////////void	*local_ioaddr;#define ANY_R8_ET(reg)             inb (((unsigned long)local_ioaddr) + (reg))#define ANY_W8_ET(reg, val8)       outb ((val8), ((unsigned long)local_ioaddr) + (reg))////////////////////////////////////////////////////////////////////////////////////#define ANY_R8(reg)             inb (((unsigned long)ioaddr) + (reg))#define ANY_R16(reg)            inw (((unsigned long)ioaddr) + (reg))#define ANY_R32(reg)            ((unsigned long) inl (((unsigned long)ioaddr) + (reg)))#define ANY_W8(reg, val8)       outb ((val8), ((unsigned long)ioaddr) + (reg))#define ANY_W16(reg, val16)     outw ((val16), ((unsigned long)ioaddr) + (reg))#define ANY_W32(reg, val32)     outl ((val32), ((unsigned long)ioaddr) + (reg))#define ANY_W8_F                ANY_W8#define ANY_W16_F               ANY_W16#define ANY_W32_F               ANY_W32#undef readb#undef readw#undef readl#undef writeb#undef writew#undef writel#define readb(addr) inb((unsigned long)(addr))#define readw(addr) inw((unsigned long)(addr))#define readl(addr) inl((unsigned long)(addr))#define writeb(val,addr) outb((val),(unsigned long)(addr))#define writew(val,addr) outw((val),(unsigned long)(addr))#define writel(val,addr) outl((val),(unsigned long)(addr))enum dm1105_regs //:755: error: `Multimedia' undeclared (first use in this function){		NIC_TSCTR		=0x00,	// TSCTL: TS			NIC_DATALEN    	=0x04,	// DATALEN: 		NIC_POWER     	=0x08,			GPIO89DATA	=0x09,	//0x0A,		NIC_GPIOCTR     =0x0C,            // GPIOCTR: 		GPIO89DIR		=0x0D,	//0x0E,		NIC_PIDN		=0x10,            // PIDN: PID		NIC_CWSEL       =0x14,            // CWSEL: // PCI		NIC_CR			=0x30,            // CR: control register		NIC_RST			=0x34,            // RST: 		NIC_STADR		=0x38,            // STADR: Rx Buffer Start Address		NIC_RLEN		=0x3c,            // RLEN: Receive(Rx) Buffer Len		NIC_WRP			=0x40,            // WRP: Current Buffer Address. (writer pointer)		NIC_INTCNT		=0x44,            // INTCNT: Interrupt cycle counter		NIC_INTMAK		=0x48,            // INTMAK: Interrupt Mask Register		NIC_INTSTS		=0x4c,            // INTSTS: Interrupt Status Register// ir		NIC_IRCTR		=0x64,		NIC_IRMODE		=0x68,		NIC_SYSCODE		=0x6c,		NIC_IRCODE		=0x70,//i2c		NIC_ENCRYPT		=0x74,		NIC_VER			=0x7c,		NIC_I2CCTR		=0x80,            // I2C Command Register		NIC_I2CSTS		=0x81,            // I2C Status  Register		NIC_I2CDAT		=0x82,            // I2C Device Address Register		NIC_I2C_RA		=0x83,            // I2C Data read address		NIC_I2C_WA		=0x84,		DELAY_7C		=100000 ,// 0.1 sec};#define IIC_24C01_addr  0xa0struct any_extra_stats {	unsigned long early_rx;	unsigned long tx_buf_mapped;	unsigned long tx_timeouts;	unsigned long rx_lost_in_ring;};     struct dm1105_private {	void			*base_addr;	struct			pci_dev *pci_dev;	struct			net_device_stats stats;	char			MACaddr[6];	unsigned char	*rx_ring;	unsigned char	*rx_buf_start;	unsigned int	cur_rx;	/* Index into the Rx buffer of next Rx pkt. */	unsigned int	tx_flag;	unsigned long	cur_tx;	unsigned long	dirty_tx;	unsigned char	*tx_buf[NUM_TX_DESC];	/* Tx bounce buffers */	unsigned char	*tx_bufs;	/* Tx bounce buffer region. */	dma_addr_t		rx_ring_dma;	dma_addr_t		tx_bufs_dma;	unsigned int	default_port:4;	/* Last dev->if_port value. */	spinlock_t		lock;	//device info	card_info dev_info;	u8				rx_config;	int				time_to_die;//:755: error: `Multimedia' undeclared (first use in this function)	unsigned int	regs_len;	u8				found_and_inuse;	wait_queue_head_t		thr_wait;	struct completion		thr_exited;	struct any_extra_stats	xstats;	void *		RxVirtualSADTop;	void *  	RxVirtualSAD;	unsigned long  RxBufDataStart;	unsigned long  RxBufDataPtr;	unsigned long  RxBufDataEnd;	//unsigned long  NicCurCBA;      //Write pointer	unsigned long	PacketErrorCount;	// if nonzero, filter pid, scan MPE pid, decode IP	BOOL   bedoing;	BOOL   bFilterPIDFlag;   // if nonzero, filter pid	FILTERPID FilterPID[MaxIRPQueue];	//	unsigned long       NicConfig;   		//ir	BOOL   bDecIPFlag;  // if nonzero, decode IP	DECODE_IP DecodeIP[MaxDecodeIP];	BOOL   bScanMpePIDFlag;  // if nonzero, scan MPE pid	MPE_PID MpePID[MaxMpePID];	unsigned char   MpePIDNum;	unsigned long  ScanTime;	unsigned long  ReceivePacketCount;	unsigned long  FramesXmitGood;         // Good Frames Transmitted	unsigned long  FramesRcvGood;          // Good Frames Received	long long RecDataLength;	unsigned long LostIPTotal;	//added by Hong Fei	unsigned long IPPacketTotalNum;	unsigned long RegStatus;	unsigned long	Version;};int		dm1105_open (struct net_device *dev);void	dm1105_tx_timeout (struct net_device *dev);void	dm1105_init_ring (struct net_device *dev);int		dm1105_start_xmit (struct sk_buff *skb, struct net_device *dev);void	dm1105_interrupt (int irq, void *dev_instance, struct pt_regs *regs);int		dm1105_close (struct net_device *dev);int		netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);struct	net_device_stats *dm1105_get_stats (struct net_device *dev);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re这里只有精品首页| 亚洲一区二区三区在线播放| 奇米777欧美一区二区| 欧美日韩三级一区| 日日摸夜夜添夜夜添精品视频 | 午夜精品久久久久久久| 91成人网在线| 日韩精品一二三| 欧美一二三区在线观看| 国模娜娜一区二区三区| 欧美激情一区不卡| 99re热视频这里只精品| 亚洲在线视频一区| 日韩一区二区三区四区| 国产大陆a不卡| 亚洲欧美偷拍卡通变态| 欧美日韩精品专区| 激情图区综合网| 91高清视频在线| 日韩免费视频一区二区| 亚洲色图20p| 久久精品噜噜噜成人av农村| 久久69国产一区二区蜜臀| 国产一区二区0| 91成人免费在线| 日本一区二区三区dvd视频在线| 中文字幕电影一区| 亚洲18色成人| 在线观看成人小视频| 5月丁香婷婷综合| 国产一区二区福利视频| 国产精品国产馆在线真实露脸| 欧美亚洲国产一区二区三区va | 欧美猛男超大videosgay| 日韩经典中文字幕一区| 久久久www免费人成精品| 91丝袜国产在线播放| 日韩高清不卡在线| 国产人伦精品一区二区| 在线观看日产精品| 国产夫妻精品视频| 偷拍与自拍一区| 国产精品久久毛片av大全日韩| 在线免费观看视频一区| 国产91丝袜在线18| 日韩在线一区二区三区| 中文字幕一区二区三区四区不卡| 91精品国产一区二区三区蜜臀| 国产69精品久久777的优势| 亚洲成人免费在线观看| 国产精品久久久久永久免费观看| 制服视频三区第一页精品| www.亚洲在线| 国产在线播放一区三区四| 亚洲国产精品一区二区www在线| 日本一区二区成人| 日韩一区二区三区四区| 欧美午夜视频网站| 成人av中文字幕| 国模套图日韩精品一区二区| 日本最新不卡在线| 一区二区三区四区在线| 国产精品入口麻豆原神| 久久久美女毛片| 精品国产自在久精品国产| 欧美高清视频一二三区| 91高清视频在线| 97超碰欧美中文字幕| 国产成人精品aa毛片| 久久成人综合网| 麻豆精品一区二区av白丝在线| 亚洲制服丝袜av| 亚洲欧美一区二区三区极速播放| 欧美国产丝袜视频| 久久毛片高清国产| 久久精子c满五个校花| 亚洲精品综合在线| 91精品婷婷国产综合久久性色| 欧美色视频一区| 一本大道久久a久久综合婷婷| 亚洲精品国产精华液| 欧美成人国产一区二区| 北岛玲一区二区三区四区| 偷拍亚洲欧洲综合| 一级做a爱片久久| 欧美一区二区免费观在线| av成人动漫在线观看| 成人永久免费视频| 精品国产网站在线观看| 678五月天丁香亚洲综合网| 9191精品国产综合久久久久久| 欧美精品vⅰdeose4hd| 欧美一区二区啪啪| 久久午夜色播影院免费高清 | 91久久一区二区| 欧美视频在线一区二区三区| 91精品国产综合久久小美女| 精品嫩草影院久久| 中文欧美字幕免费| 亚洲综合自拍偷拍| 青青草97国产精品免费观看无弹窗版 | 国产精品美女久久久久av爽李琼 | 亚洲欧美日韩在线不卡| 一区二区三区中文免费| 一区二区三区国产精华| 亚洲天堂精品视频| 欧美mv日韩mv亚洲| 337p日本欧洲亚洲大胆色噜噜| 欧美成人乱码一区二区三区| 日韩一区二区三区四区| 欧美一区二区精品在线| 久久久精品天堂| 国产精品天美传媒| 亚洲免费观看高清在线观看| 樱桃国产成人精品视频| 亚洲国产视频网站| 亚洲第一狼人社区| 麻豆91在线播放免费| 国产一区二区三区免费在线观看 | 欧美在线观看一区| 精品国产乱码久久久久久1区2区| 日韩免费高清av| 久久婷婷国产综合精品青草| 国产精品成人免费精品自在线观看| 1000精品久久久久久久久| 亚洲国产综合91精品麻豆| 日本欧美在线观看| 高清久久久久久| 欧美日韩一区在线观看| 精品日韩一区二区三区| 久久午夜羞羞影院免费观看| 亚洲黄色免费网站| 美美哒免费高清在线观看视频一区二区| 久久美女高清视频| 亚洲精品久久久蜜桃| 在线免费不卡电影| 26uuu精品一区二区在线观看| 久久久亚洲高清| 婷婷中文字幕综合| 成人高清免费观看| 日韩三级电影网址| 亚洲视频一区二区在线| 精一区二区三区| av亚洲精华国产精华| 久久品道一品道久久精品| 99r国产精品| 99久久精品99国产精品| 欧美色窝79yyyycom| 精品国产一区二区三区久久久蜜月| 亚洲精品亚洲人成人网 | 成人美女视频在线看| 欧美视频精品在线| 中文字幕视频一区| 免费看精品久久片| 在线中文字幕一区二区| 中文字幕免费观看一区| 美国三级日本三级久久99| 91视频免费播放| 国产亚洲欧美一级| 亚洲成人一区二区在线观看| 91久久精品午夜一区二区| 国产日韩成人精品| 精品亚洲成av人在线观看| 欧美日韩成人综合| 亚洲视频在线观看三级| 成人高清免费在线播放| 久久人人超碰精品| 男人的j进女人的j一区| 欧洲激情一区二区| 亚洲乱码国产乱码精品精的特点 | 欧美mv日韩mv国产网站app| 亚洲国产精品一区二区www| 成人爱爱电影网址| 欧美精品一区二区三区在线| 日韩福利电影在线观看| 99免费精品视频| 亚洲人成网站在线| www.在线成人| 国产精品久久久久久久久久久免费看 | 91在线观看视频| 国产精品素人一区二区| 国产91富婆露脸刺激对白| 国产视频不卡一区| 视频在线观看国产精品| 色综合久久99| 一区二区三区不卡在线观看 | 国产白丝精品91爽爽久久| 久久美女高清视频| www.综合网.com| 亚洲图片你懂的| 91麻豆免费观看| 亚洲精品自拍动漫在线| 欧美理论在线播放| 国产精品久久久久久久久图文区 | 蜜臀国产一区二区三区在线播放| 成人av手机在线观看| 精品影院一区二区久久久| 亚洲国产精品久久人人爱蜜臀| 97久久人人超碰| av成人免费在线|