- 论坛徽章:
- 0
|
我用的是2.6.34这套内核代码
其中在看sk_buff这个结构体的时候,
struct sk_buff{
......
kmemcheck_bitfield_begin(flags1);
__u8 local_df:1,
cloned:1,
ip_summed:2,
nohdr:1,
nfctinfo:3;
__u8 pkt_type:3,/*这个字段会根据帧的L2目的地址进行类型划分*/
fclone:2,
ipvs_property:1,
peeked:1,
nf_trace:1;
kmemcheck_bitfield_end(flags1);
.....
}
这里有一些疑问:
1.kmemcheck_bitfield_begin(flags1);和kmemcheck_bitfield_end(flags1);是什么意思呢?
查看它的定义有两个解释:
1)#define kmemcheck_bitfield_begin(name) \
int name##_begin[0];
2)#define kmemcheck_bitfield_begin(name)
这个把人都看晕了 请高手来指点一下小弟啊!!
2.__u8 pkt_type:3 这个字段定义不太明白
pkt_type后面的冒号和3是怎么理解的??
PS:这个和我们通常使用的C的标准貌似不太一样啊 请大家指点下小弟哈!!谢谢了 |
|