📄 00000043.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: menschen (阿中), 信区: Linux <BR>标 题: Re: 看过源码的高手解释一下? <BR>发信站: BBS 水木清华站 (Thu Dec 14 19:02:23 2000) <BR> <BR> <BR> 很久以前看过,现在印象不深了。大致说一下吧。 <BR> skb->end是个指针,指向数据的末端,我觉得这里是一个 <BR> skb实际数据的引用计数,每clone一次,该计数加1。 <BR> 数据区释放的条件是,或者skb没有被clone,或者clone了, <BR> 引用计数为0,这段代码讲得就是这个意思。 <BR> <BR>【 在 lightofstar (star) 的大作中提到: 】 <BR>∶<I> void kfree_skbmem(struct sk_buff *skb) </I><BR>∶<I> { </I><BR>∶<I> if (!skb->cloned || atomic_dec_and_test(skb_datarefp(skb))) </I><BR>∶<I> kfree(skb->head); </I><BR>∶<I> kmem_cache_free(skbuff_head_cache, skb); </I><BR>∶<I> atomic_dec(&net_skbcount); </I><BR>∶<I> } </I><BR>∶<I> extern __inline__ atomic_t *skb_datarefp(struct sk_buff *skb) </I><BR>∶<I> { </I><BR>∶<I> return (atomic_t *)(skb->end); </I><BR>∶<I> } </I><BR>∶<I> ................... </I><BR> <BR>-- <BR> <BR> <BR> 输了你,赢了世界又如何? <BR> <BR> <BR>※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.152.15] <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -