?? r8180_if.c
字號:
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 + -