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

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

?? dw4002.c

?? linux下DVB/IP驅動原代碼 DVBWorld 公司產品 www.worlddvb.com
?? C
?? 第 1 頁 / 共 5 頁
字號:
						else 						{							memcpy (tp->FilterPID[i].PacketBuf+188 * tp->FilterPID[i].packet_num, TsBuf, 188);							tp->FilterPID[i].packet_num++;						}					}					else {  // mode == 0						if (tp->FilterPID[i].indicator) 						{							if (pTsHead->start_indicator) 							{ // over								tp->FilterPID[i].status = FILTERPID_OK;							}							else 							{								memcpy (tp->FilterPID[i].PacketBuf+188 * tp->FilterPID[i].packet_num, TsBuf, 188);								tp->FilterPID[i].packet_num++;							}						}						else 						{							if (pTsHead->start_indicator) 							{								memcpy (tp->FilterPID[i].PacketBuf+188 * tp->FilterPID[i].packet_num, TsBuf, 188);								tp->FilterPID[i].packet_num = 1;								tp->FilterPID[i].indicator = 1;							}						}					} // else {  // mode == 0										break;   // break for (j...				} // if (wPID ==			}  // for (j...		} // if (tp->FilterPID[i].status	} // for (i...}// Deal with 188 X 128 Bytes every call time.void IndicatePacket (struct net_device *dev){	struct dm1105_private *tp = dev->priv;	PTS_PACKET_HEAD pTsHead;		if (tp->bedoing == FALSE)		return;		unsigned char* pBufPtr = (unsigned char*)(tp->RxBufDataPtr);	int kk;		for (kk = 0; kk < (DM1105_IRQ_DATA_LENGTH/188); kk++) 	{		pTsHead = (PTS_PACKET_HEAD) pBufPtr;		if (pTsHead->sync_byte != 0x47) 		{			pBufPtr += 188;			continue;		}				if (pTsHead->error_indicator) 		{			pBufPtr += 188;			continue;		}				if (tp->bFilterPIDFlag)		{			FilterPacket (dev, pBufPtr);		}				if (tp->bScanMpePIDFlag)		{			ScanMpePID (dev, pBufPtr);		}				if (tp->bDecIPFlag)		{			DecodeIP (dev, pBufPtr);		}				pBufPtr += 188;  // next ts packet	} // for (...	//	}    return;}//This function deal with the TS data!void dm1105_rx_interrupt (struct net_device *dev){	struct dm1105_private *tp = dev->priv;		assert (dev != NULL);	assert (tp != NULL);	void *ioaddr = tp->base_addr;	if (PacketOK (dev)) 	{//		printk("\nOne Packet OK!\n");		IndicatePacket (dev);		tp->PacketErrorCount=0;		tp->FramesRcvGood++;	}	else	{		tp->PacketErrorCount++;//		printk("Bad Packet Found! NIC Device Reset !  ----%d\n",tp->PacketErrorCount);
		if((tp->PacketErrorCount >= 2)&&(DMARSTFLAG == 0))	//Fixed by Kully 10-31-2006		{			//We should reset the chip when Bad Packet Found!
			////////////////////////////////////////////////// Added by Kully 11-2-2006			//Restart INT /////////////Added here			disable_irq (dev->irq);			////////////////////////////////// Old code here			ANY_W8 (NIC_CR, 0);						//reset device			ANY_W8(NIC_RST,0x01);						// Must enable Tx/Rx before setting transfer thresholds! 			ANY_W8 (NIC_CR, 0x01);			///////////////////////////////////			ANY_W8(NIC_INTSTS,0x0F);			ANY_W8(NIC_INTMAK, INTMAK_ALLMASK);			need_reception = 0;			need_reception_count =0;			enable_irq (dev->irq);			//////////////////////////////////////////////////						tp->RxBufDataPtr=tp->RxBufDataStart;			tp->PacketErrorCount=0;			tp->LostIPTotal=0;			DMARSTFLAG=1;			return;		}	}	tp->RxBufDataPtr += DM1105_IRQ_DATA_LENGTH;	if (tp->RxBufDataPtr >= tp->RxBufDataEnd)	{		tp->RxBufDataPtr = tp->RxBufDataStart + (tp->RxBufDataPtr - tp->RxBufDataEnd);	}}void  IrProc(struct net_device *dev){}////////////////////////////////////////////////////////////////////void IP_RX_tasklet_action(unsigned long t) //Added by Kully 11-2-2006{//	struct net_device *dev = (struct net_device *) t;//	printk("\n RX Tasklet One Time!\n");	if(local_dev == NULL)	{		if (stop_tasklet == 0)			tasklet_schedule (&my_tasklet);		return;	}//	struct dm1105_private *tp = local_dev->priv;		if (need_reception_count != need_reception)	{//		printk("\n RX_Reception One Time! ----------%d\n",need_reception_count);		dm1105_rx_interrupt (local_dev);		need_reception_count ++;		if (need_reception_count > 888)			need_reception_count = 1;	}	if (stop_tasklet == 0)		tasklet_schedule (&my_tasklet);}void dm1105_interrupt (int irq, void *dev_instance, struct pt_regs *regs){	struct net_device *dev = (struct net_device *) dev_instance;	struct dm1105_private *tp = dev->priv;//	int boguscnt = max_interrupt_work;		// Deleted by Kully 10-31-2006 	void *ioaddr = tp->base_addr;	int status;	//int link_changed = 0; /* avoid bogus "uninit" warning *///	spin_lock (&tp->lock);//	if(irq != 22)//		printk("\n (IRQ Error) Current IRQ == %d\n",irq);			status = ANY_R8 (NIC_INTSTS);	/* h/w no longer present (hotplug?) or major error, bail */	if (status == 0xff) 	{	// chip is out of power or iobase is wrong//			printk("TEST: The interrupt register's status is wrong \n");		tp->RegStatus=0;		ANY_W8 (NIC_INTSTS, 0x00);		ANY_W8(NIC_INTMAK, INTMAK_ALLMASK);//		spin_unlock (&tp->lock);		return IRQ_HANDLED;	}	if ((status &INTMAK_ALLMASK) == 0)	{//			printk("OK, The Interrupt is jump out :-) \n");		tp->RegStatus=0;		ANY_W8(NIC_INTMAK, INTMAK_ALLMASK);//		spin_unlock (&tp->lock);		return IRQ_HANDLED;	}	status&=0x0f;	tp->RegStatus = status;	if(status&0x01)	{		need_reception ++;		if(need_reception > 888)			need_reception = 1;		if(local_dev == NULL)			local_dev = dev;	}//	ANY_W8(NIC_INTMAK, 0);	//Deleted by Kully 11-2-2006	// clr interrupt	ANY_W8(NIC_INTSTS,status);	ANY_W8(NIC_INTMAK, INTMAK_ALLMASK);//	spin_unlock (&tp->lock);	//tiger end	return IRQ_HANDLED;}int dm1105_close (struct net_device *dev){	struct dm1105_private *tp = dev->priv;	void *ioaddr = tp->base_addr;	//int ret = 0;	unsigned long flags;		My_Task_Clean();	//	printk ("\nDM1105 Close!");	//	netif_stop_queue (dev);	//DPRINTK ("%s: Shutting down ethercard, status was 0x%4.4x.\n",dev->name, ANY_R8 (NIC_ISR));//	printk("%s: Shutting down ethercard\n",dev->name);	spin_lock_irqsave (&tp->lock, flags);	// Stop the chip's Tx and Rx DMA processes. 	ANY_W8 (NIC_CR, 0);	// Disable interrupts by clearing the interrupt mask. 	ANY_W8 (NIC_INTMAK, 0);	//tiger end	spin_unlock_irqrestore (&tp->lock, flags);	synchronize_irq (dev->irq);	free_irq (dev->irq, dev);	dm1105_tx_clear (tp);	pci_free_consistent(tp->pci_dev, RX_BUF_TOT_LEN, tp->rx_ring, tp->rx_ring_dma);	tp->rx_ring = NULL;	pci_free_consistent(tp->pci_dev, TX_BUF_TOT_LEN, tp->tx_bufs, tp->tx_bufs_dma);	tp->tx_bufs = NULL;	return 0;}int IoReadRegs_IoctlFun (void *ioaddr, unsigned char *userdata){	struct dm1105_ioctl_data *data = (struct dm1105_ioctl_data *) userdata;	int i;	data->val_out = 0;	if (data->param2 == 0 || data->param2 == 1) 	{		for (i = 0; i < data->val_in; i++)		{			data->buf[i] = ANY_R8 (data->param1 + i);		}	}	else if (data->param2 == 2) 	{		for (i = 0; i < data->val_in; i+=2)			*(u16 *) (data->buf+i) = ANY_R16 (data->param1 + i);	}	else if (data->param2 == 4) 	{		for (i = 0; i < data->val_in; i+=4)			*(u32 *) (data->buf+i) = ANY_R32 (data->param1 + i);	}	else		return -EINVAL;	data->val_out = data->val_in;	return 0;}int IoWriteRegs_IoctlFun (void *ioaddr, unsigned char *userdata){	struct dm1105_ioctl_data *data = (struct dm1105_ioctl_data *) userdata;	int i;	data->val_out = 0;	///printk("TEST:WriteRegs");	//for (i = 0; i < data->val_in; i++)	//{	//	printk("write addr :0x%02x; data :0x%x  .\n",data->param1 + i, data->buf[i]);	//}		if (data->val_in > 128)	{		return -EINVAL;	}	if (data->param2 == 1 || data->param2 == 0) 	{		for (i = 0; i < data->val_in; i++)			ANY_W8 (data->param1 + i, data->buf[i]);	}	else if (data->param2 == 2) 	{		for (i = 0; i < data->val_in; i+=2)			ANY_W16 (data->param1 + i, *(u16 *) (data->buf+i));	}	else if (data->param2 == 4) 	{		for (i = 0; i < data->val_in; i+=4)			ANY_W32 (data->param1 + i, *(u32 *) (data->buf+i));	}	else		return -EINVAL;	data->val_out = data->val_in;	//printk("TEST:WriteRegs end\n\n");	return 0;}int FilterPID_IoctlFun (struct net_device *dev, unsigned char *userdata){	struct dm1105_ioctl_data *data = (struct dm1105_ioctl_data *) userdata;	struct dm1105_private *tp = dev->priv;	unsigned short type, index, num;	unsigned short *bufptr;	int i, result = -1;  // failed	unsigned char operation;	assert (dev != NULL);	assert (tp != NULL);	bufptr = (unsigned short*)data->buf;	data->val_out = 0;	operation = data->val_in;	type = *bufptr++ ;	index = *bufptr++;	num = *bufptr++;	switch( operation ) 	{		case FILTERPSI:		case FILTERSAVE:		case FILTERPLAY:			switch (type) 			{				case APPLYFILTER:					for (i = 0; i < MaxIRPQueue; i++) 					{						if (tp->FilterPID[i].status == FILTERPID_READY) 						{							tp->FilterPID[i].status = FILTERPID_INIT;							if (operation == FILTERPSI)								tp->FilterPID[i].mode = 0;							else								tp->FilterPID[i].mode = 1;							tp->FilterPID[i].packet_num = 0;							tp->FilterPID[i].lost_num = 0;							tp->FilterPID[i].indicator = 0;							tp->FilterPID[i].bmove_flag = FALSE;							data->val_out = i & 0xff;							result = 0;							break;						}					}					break;				case SETFILTERPID:					if (tp->FilterPID[index].status != FILTERPID_RUN) 					{						if (num > 0) 						{							if (num > MaxFilterPID)								num = MaxFilterPID;							tp->FilterPID[index].status = FILTERPID_SET;							memcpy (tp->FilterPID[index].wPID, bufptr, num * 2);							tp->FilterPID[index].pid_num = num;							data->val_out = num;							result = 0;						}					}					break;				case STARTFILTER:					tp->FilterPID[index].status = FILTERPID_RUN;					tp->FilterPID[index].packet_num = 0;					tp->FilterPID[index].bmove_flag = FALSE;					tp->bFilterPIDFlag = TRUE;					result = 0;					break;				case PAUSEFILTER:					if (tp->FilterPID[index].status == FILTERPID_RUN)					{						tp->FilterPID[index].status = FILTERPID_PAUSE;						for (i = 0; i < MaxIRPQueue; i++) 						{							if (tp->FilterPID[i].status != FILTERPID_RUN)								break;						}						if (i >= MaxIRPQueue)  // No filter							tp->bFilterPIDFlag = FALSE;					}					result = 0;					break;				case CONTINUEFILTER:					if (tp->FilterPID[index].status == FILTERPID_PAUSE) 					{						tp->FilterPID[index].status = FILTERPID_RUN;						tp->bFilterPIDFlag = TRUE;					}					result = 0;					break;				case RESTARTFILTER:					tp->FilterPID[index].status = FILTERPID_RUN;					tp->FilterPID[index].packet_num = 0;					tp->FilterPID[index].bmove_flag = FALSE;					tp->FilterPID[index].indicator = 0;					tp->bFilterPIDFlag = TRUE;					result = 0;					break;				case CHECKFILTER:					if (operation == FILTERPSI) 					{						if (tp->FilterPID[index].status == FILTERPID_OK) 						{						//	printk ("Filter OK : %d\n", index);							data->val_out = tp->FilterPID[index].packet_num & 0xff;							memcpy (data->buf, tp->FilterPID[index].PacketBuf, tp->FilterPID[index].packet_num * 188);						//	printk ("total packets : %d\n", tp->FilterPID[index].packet_num);						}						else							data->val_out = 0;					}					else 					{ // play and save						if (tp->FilterPID[index].packet_num > 0) 						{							tp->FilterPID[index].move_num = tp->FilterPID[index].packet_num;							memcpy (data->buf, tp->FilterPID[index].PacketBuf, tp->FilterPID[index].move_num * 188);							data->val_out = tp->FilterPID[index].move_num;							tp->FilterPID[index].bmove_flag = TRUE;						}					}					result = 0;					break;				case STOPFILTER:				//	printk ("Stop filter : %d\n", index);					tp->FilterPID[index].status = FILTERPID_READY;					for (i = 0; i < MaxIRPQueue; i++) 					{						if (tp->FilterPID[i].status == FILTERPID_RUN)							break;					}					if (i >= MaxIRPQueue)  // No filter						tp->bFilterPIDFlag = FALSE;					else						tp->bFilterPIDFlag = TRUE;					result = 0;					break;				case RESTOREFILTER:					for (i = 0; i < MaxIRPQueue; i++) 					{						tp->FilterPID[i].status = FILTERPID_READY;					}					tp->bFilterPIDFlag = FALSE;					result = 0;					break;				default:					break;			} // switch (status)			break; // case FILTERPSI:		case FILTERMPE:  // scan MPE PID			switch( type ) 			{				case APPLYFILTER:				case STARTFILTER:				case RESTARTFILTER:					if( tp->bScanMpePIDFlag == TRUE )						break;					tp->bScanMpePIDFlag = TRUE;					tp->MpePIDNum = 0;					tp->ScanTime = jiffies + SCANMPETIME;					result = 0;					data->buf[0] = 0x00;//					printk ("tp->bScanMpePIDFlag = TRUE\n");					break;				case PAUSEFILTER:					tp->bScanMpePIDFlag = FALSE;					result = 0;					break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97精品国产露脸对白| 国产精品美女视频| 视频在线在亚洲| 欧美三级韩国三级日本三斤| 亚洲一级不卡视频| 3atv一区二区三区| 久草这里只有精品视频| 国产喂奶挤奶一区二区三区| 成人国产免费视频| 亚洲精品一二三四区| 欧美丰满嫩嫩电影| 国产在线视视频有精品| 中文字幕不卡一区| 欧美视频在线一区| 韩国一区二区在线观看| 国产精品久久久久婷婷二区次| 972aa.com艺术欧美| 日韩激情视频在线观看| 精品国产乱码久久久久久闺蜜| 国产成人av电影在线播放| 亚洲精品国产一区二区精华液| 91麻豆精品91久久久久同性| 精品午夜一区二区三区在线观看| 一区精品在线播放| 欧美一区二视频| 播五月开心婷婷综合| 日韩精品视频网站| 中文字幕中文在线不卡住| 欧美精品电影在线播放| 国产成人精品在线看| 天堂午夜影视日韩欧美一区二区| 久久综合国产精品| 在线视频欧美区| 亚洲第一激情av| 欧美一区二区视频网站| 欧美一a一片一级一片| 久久久久国产一区二区三区四区| a亚洲天堂av| 日本一区中文字幕| 亚洲免费av在线| 久久久久久亚洲综合影院红桃 | 精品一区二区三区香蕉蜜桃| 国产精品国产馆在线真实露脸 | 欧美日韩aaaaaa| 成人h动漫精品一区二区| 免费成人性网站| 一区二区三区在线观看国产| 久久色.com| 日韩亚洲欧美成人一区| 色嗨嗨av一区二区三区| 国产91精品入口| 激情文学综合插| 婷婷综合久久一区二区三区| 亚洲精品第一国产综合野| 亚洲国产电影在线观看| 久久―日本道色综合久久| 日韩一区二区三区在线观看| 欧美午夜精品免费| 色婷婷综合久色| www.日本不卡| 国产a级毛片一区| 精品一区二区三区视频在线观看| 天堂va蜜桃一区二区三区| 一区二区三区四区激情| 亚洲欧洲av一区二区三区久久| 久久久国产精华| 国产亚洲va综合人人澡精品| 欧美成人一区二区| 日韩一级免费一区| 欧美一区二区二区| 6080午夜不卡| 91精品国模一区二区三区| 欧美精品乱码久久久久久按摩| 色视频欧美一区二区三区| 色综合久久久久| 日本韩国一区二区三区| 色婷婷综合激情| 在线观看av一区二区| 欧美亚洲尤物久久| 欧美视频一区二区三区四区| 欧美人狂配大交3d怪物一区| 3751色影院一区二区三区| 日韩一区二区三区av| 精品成人a区在线观看| 久久久久久久久蜜桃| 中文字幕av资源一区| 亚洲视频精选在线| 夜夜操天天操亚洲| 日韩avvvv在线播放| 狠狠色丁香九九婷婷综合五月| 国产老女人精品毛片久久| 国产传媒一区在线| 91丨九色丨蝌蚪富婆spa| 色八戒一区二区三区| 欧美另类高清zo欧美| 精品少妇一区二区三区免费观看 | 国产成人在线色| 91在线高清观看| 欧美日韩高清影院| 久久这里都是精品| 亚洲欧美激情小说另类| 日韩国产一二三区| 成人网在线播放| 精品视频一区 二区 三区| 精品成人在线观看| 亚洲天堂a在线| 日本欧美一区二区在线观看| 国产成人一区在线| 欧美日韩一区国产| 久久夜色精品国产噜噜av| 国产精品精品国产色婷婷| 午夜电影一区二区三区| 国产精品影音先锋| 欧美亚洲高清一区二区三区不卡| 亚洲精品国产视频| 国产成人欧美日韩在线电影 | 国产大片一区二区| 欧美天堂亚洲电影院在线播放| 日韩午夜精品视频| 怡红院av一区二区三区| 精品一区二区三区免费播放| 972aa.com艺术欧美| 日韩视频不卡中文| 夜夜精品视频一区二区| 国产成人超碰人人澡人人澡| 欧洲精品在线观看| 国产午夜精品一区二区三区视频| 亚洲国产精品嫩草影院| 成人免费观看男女羞羞视频| 4hu四虎永久在线影院成人| 国产精品久久久久aaaa樱花| 美女任你摸久久| 欧美丝袜丝nylons| 国产精品乱码人人做人人爱 | 国产精品自在欧美一区| 欧美精品在线视频| 亚洲乱码中文字幕| 丰满岳乱妇一区二区三区| 69堂精品视频| 亚洲国产欧美一区二区三区丁香婷| 91丝袜高跟美女视频| 自拍av一区二区三区| 欧美欧美欧美欧美| 欧美国产1区2区| 国产a精品视频| 亚洲免费成人av| 欧美老女人第四色| 午夜视频在线观看一区二区三区| 欧美亚洲一区二区在线| 一本久久综合亚洲鲁鲁五月天| 精品免费99久久| 日本视频一区二区三区| 欧美色区777第一页| 亚洲欧美日韩久久精品| 99九九99九九九视频精品| 国产欧美视频一区二区| 国产经典欧美精品| 久久久久久久久久久久久女国产乱 | 国产三级精品在线| 国产一区二区0| 日韩视频免费观看高清在线视频| 亚洲成人精品一区二区| 欧美日韩不卡视频| 日韩极品在线观看| 欧美一区二区精品在线| 国产激情一区二区三区| 欧美日韩国产电影| 中文字幕一区二区三中文字幕| 国产成人免费视频一区| 欧美国产丝袜视频| 99久久婷婷国产精品综合| 亚洲日本在线看| 777亚洲妇女| 日本色综合中文字幕| 日韩欧美国产一区二区三区| 久久99最新地址| 欧美精品一区二区三区蜜臀| 国产伦精品一区二区三区在线观看| 欧美成人aa大片| 国产福利精品一区二区| 亚洲图片激情小说| 欧美日韩一区二区三区四区五区 | 欧美videossexotv100| 精品一区二区在线播放| 国产色一区二区| 91精品1区2区| 视频在线观看国产精品| www国产精品av| av成人免费在线| 亚洲第一主播视频| 精品国产一区二区三区忘忧草 | 九九久久精品视频| 国产偷国产偷精品高清尤物| 波多野结衣亚洲一区| 亚洲一卡二卡三卡四卡| 亚洲精品一区二区三区精华液| 国产suv一区二区三区88区| 亚洲综合在线五月| 日韩精品一区二区三区视频在线观看| 国产电影一区在线|