skb_queue_purge : 将某个链表清空 voidskb_queue_purge(structsk_buff_head *list){structsk_buff*skb;while((skb =skb_dequeue(list)) !=NULL)kfree_skb(skb); } skb_queue_walk : 遍历链表 #defineskb_queue_walk(queue, skb) \for(skb = (queue)->next,prefetch(skb->next); \ (skb != (...
·struct sk_buff *skb_dequeue(struct sk_buff_head *list) ·void skb_queue_purge(struct sk_buff_head *list) ·void skb_queue_purge(struct sk_buff_head *list) ·void skb_queue_tail(struct sk_buff_head *list, struct sk_buff *newsk) ·void skb_unlink(struct sk_buff *skb, struct sk...
· struct sk_buff *skb_dequeue(struct sk_buff_head *list) · void skb_queue_purge(struct sk_buff_head *list) · void skb_queue_purge(struct sk_buff_head *list) · void skb_queue_tail(struct sk_buff_head *list, struct sk_buff *newsk) · void skb_unlink(struct sk_buff *skb, st...
}intip_rcv(structsk_buff *skb,structnet_device *dev,structpacket_type *pt){structiphdr*iph;/* When the interface is in promisc. mode, drop all the crap * that it receives, do not try to analyse it. */if(skb->pkt_type == PACKET_OTHERHOST)gotodrop;IP_INC_STATS_BH(IPSTATS_MIB_...
*/if(skb->pkt_type == PACKET_OTHERHOST)gotodrop;IP_INC_STATS_BH(IPSTATS_MIB_INRECEIVES);if((skb =skb_share_check(skb, GFP_ATOMIC)) ==NULL) {IP_INC_STATS_BH(IPSTATS_MIB_INDISCARDS);gotoout; } ... }staticinlineintskb_shared(conststructsk_buff *skb){returnatomic_read(&skb->user...