⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 r8180_if.c

📁 linux 下的 PCI-RLT8180 driver module
💻 C
📖 第 1 页 / 共 2 页
字号:
	netif_wake_queue(dev);}/************************************************************************************************************************************/void rtl_netif_start_queue(struct net_device *dev){	netif_start_queue(dev);}/************************************************************************************************************************************/void rtl_netif_stop_queue(struct net_device *dev){	netif_stop_queue(dev);}/****************************************************************** Indicate received frame.******************************************************************/void rtl_indicate_rx_frame(struct net_device *dev, struct sk_buff *rx_skb, int frame_len){	int     ret;	rx_skb->dev = dev;	skb_put ( rx_skb, frame_len );	rx_skb->protocol = eth_type_trans ( rx_skb, dev );	ret = netif_rx (rx_skb);#ifdef ENABLE_RTL_SKB_STATS	rtl_skb_atomic_inc(&rtl_netif_rx_skb_cnt);#endif //end #ifdef ENABLE_RTL_SKB_STATS//	switch(ret)//	{//	case NET_RX_SUCCESS:    printk("%s: NETIF_RX_SUCCESS\n", dev->name);	break;//	case NET_RX_CN_LOW:     printk("%s: NETIF_RX_CN_LOW\n", dev->name);	break;//	case NET_RX_CN_MOD:     printk("%s: NETIF_CN_MOD\n", dev->name);	break;//	case NET_RX_CN_HIGH:    printk("%s: NETIF_CN_HIGH\n", dev->name);	break;//	case NET_RX_DROP:       printk("%s: NETIF_RX_DROP\n", dev->name);	break;//	default:                printk("%s: netif_rx():Unknown\n", dev->name);	break;//	}}//end of void Indicate_to_bridge(WLAN_CTX *wCtx, struct sk_buff *rx_skb){//===========================================================================// Move to r8180_type.h//===========================================================================unsigned long GetCurTime(void){	//return current time	return jiffies;}//===========================================================================//===========================================================================int	timer_cnt = 0;//---------------------------------------------------------------int rtl_request_timer( timer_t *timer, unsigned long timer_expires, void *timer_func, void *timer_data ){	init_timer(timer);	timer->expires = (unsigned long)(jiffies + timer_expires);//	timer->expires = (unsigned long)(jiffies + timer_expires*HZ);	timer->data = (unsigned long)timer_data;	timer->function = timer_func;	add_timer(timer);	timer_cnt++;	DPRINTK_INFO("request_timer at 0x%08lx, timer_cnt=%d\n", (unsigned long)timer, timer_cnt);	return 0;}//===========================================================================//===========================================================================void rtl_delete_timer( timer_t *del_timer_t ){	del_timer(del_timer_t);	timer_cnt--;	DPRINTK_INFO("delete_timer at 0x%08lx, timer_cnt=%d\n", (unsigned long)del_timer_t, timer_cnt);}//===========================================================================//===========================================================================int rtl_check_timer( timer_t *timer ){	if( (timer->list.next == NULL) && (timer->list.prev == NULL) ){		return 1;	}	return 0;}//===========================================================================//===========================================================================int rtl_mod_timer(struct timer_list *timer, unsigned long expires){	return mod_timer( timer, jiffies + expires );}/************************************************************************************************************************************/int rtl8180_open(struct net_device *dev){	return __rtl8180_open(dev);}/************************************************************************************************************************************/int rtl8180_close(struct net_device *dev){	return __rtl8180_close(dev);}/*---------------------------------------------------------------- rtl8180_xmit Net_device hard_start_xmit callback function. Arguments:	skb		- socket buffer pointer	dev		- net device pointer Returns:	None----------------------------------------------------------------*/int rtl8180_xmit(struct sk_buff *skb, struct net_device *dev){	return __rtl8180_xmit(skb,dev);}/************************************************************************************************************************************/struct net_device_stats *rtl8180_get_stats(struct net_device *dev){	return __rtl8180_get_stats(dev);}/************************************************************************************************************************************/int rtl8180_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd){	return __rtl8180_ioctl(dev, ifr, cmd);}/************************************************************************************************************************************/void rtl8180_set_multicast_list(struct net_device *dev){	__rtl8180_set_multicast_list(dev);}/************************************************************************************************************************************/void rtl8180_interrupt(int irq, void *dev_id, struct pt_regs *regs){	__rtl8180_interrupt(irq, dev_id, regs);}//-------------------------------------------------------------------------// Wireless Lan MAC initialization//     Initialize SW, HW//-------------------------------------------------------------------------void rtl8180_init( struct net_device *dev ){#ifdef ENABLE_RTL_SKB_STATS	rtl_skb_atomic_set(&rtl_alloc_skb_cnt, 0);	rtl_skb_atomic_set(&rtl_kfree_skb_cnt, 0);	rtl_skb_atomic_set(&rtl_netif_rx_skb_cnt, 0);#endif //end #ifdef ENABLE_RTL_SKB_STATS	//-----------------------------------------------------------------------------	// Allocate memory .	//-----------------------------------------------------------------------------	__rtl8180_alloc_mem( dev );	#ifdef RTL_ACT_AS_AP	//-----------------------------------------------------------------------------	// AP mode Initialization	//-----------------------------------------------------------------------------	__rtl8180_init_apmode_config( dev );#endif //end #ifdef RTL_ACT_AS_AP	//-----------------------------------------------------------------------------	// SW Initialization	//-----------------------------------------------------------------------------	__rtl8180_init_default_config( dev );	__rtl8180_sw_init( dev );	//-----------------------------------------------------------------------------	// Add proc file system	//-----------------------------------------------------------------------------	__rtl8180_init_proc(dev);	//-----------------------------------------------------------------------------	// HW Initialization	//-----------------------------------------------------------------------------	__rtl8180_hw_init( dev );	//-----------------------------------------------------------------------------	// Register IRQ handler	//-----------------------------------------------------------------------------	if( request_irq(dev->irq, &rtl8180_interrupt, SA_SHIRQ, dev->name, dev) != 0 ) {		DPRINTK_OUTINFO("request_irq() failed!\n");	}}//-------------------------------------------------------------------------// Wireless Lan MAC initialization//-------------------------------------------------------------------------void rtl8180_remove( struct net_device *dev ){	//-----------------------------------------------------------------------------	// Free memory .	//-----------------------------------------------------------------------------	__rtl8180_free_mem( dev );	//-----------------------------------------------------------------------------	// HW removal	//-----------------------------------------------------------------------------	__rtl8180_hw_remove( dev );	//-----------------------------------------------------------------------------	// Remove proc file system	//-----------------------------------------------------------------------------	__rtl8180_remove_proc(dev);	//-----------------------------------------------------------------------------	// SW removal	//-----------------------------------------------------------------------------	__rtl8180_sw_remove( dev );	//-----------------------------------------------------------------------------	// Free IRQ handler	//-----------------------------------------------------------------------------	if (dev->irq){		free_irq(dev->irq, dev);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -