skbuff.h文件中NET_SKBUFF_DATA_USES_OFFSET宏的含义
来源:互联网 发布:软件开发设计 编辑:程序博客网 时间:2024/05/22 04:48
找到NET_SKBUFF_DATA_USES_OFFSET定义的地方,文件include/linux/skbuff.h
#if BITS_PER_LONG > 32
#define NET_SKBUFF_DATA_USES_OFFSET 1
#endif
出现使用NET_SKBUFF_DATA_USES_OFFSET 的地方,如:
#ifdef NET_SKBUFF_DATA_USES_OFFSET
//如果使用了offset来表示偏移的话,就是说是一个相对偏移的情况:
static inline unsigned char *skb_transport_header(const struct sk_buff *skb)
{
return skb->head + skb->transport_header;
}
......
#else /* NET_SKBUFF_DATA_USES_OFFSET */
//不使用相对偏移的情况
static inline unsigned char *skb_transport_header(const struct sk_buff *skb)
{
return skb->transport_header;
}
......
#endif /* NET_SKBUFF_DATA_USES_OFFSET */
以上是*skb_network_header函数的实现,可以看到,返回网络层协议头的实现对于32位系统和64位系统,
skb_network_header函数有不同的实现,所以在编程中,直接调用*skb_network_header函数是好的。
可以说,这些函数,为我们编写内核程序提供了极大的便捷,而不用再花更多的精力去考虑计算各层的指针偏移,
可以把更多的精力用来考虑策略性的设计。
- skbuff.h文件中NET_SKBUFF_DATA_USES_OFFSET宏的含义
- skbuff.h文件中NET_SKBUFF_DATA_USES_OFFSET宏的含义
- Linux中skbuff的实现(转载)
- Linux中skbuff的实现(转载)
- skbuff
- skbuff 的常用例程解释
- sgi stl_config.h 各种宏的含义
- /sys/i386/include/pmap.h中与页表相关宏值的含义
- JM、H.264中一些参数的设置和含义
- H.264 SDP中 profile-level-id字段的含义
- <sys/stat.h>的含义!
- "..\..\source\ucos_ii.h"的含义
- <sys/stat.h>的含义!
- <sys/stat.h>的含义!
- <sys/stat.h>的含义!
- <sys/stat.h>的含义!
- PE文件中各种Section的含义
- QT pro文件中变量的含义
- java反射经典实例
- 如何谈薪资
- 网络上的计算机之间又是如何交换信息的。(TCP/IP协议、IPX/SPX协议、NetBEUI协议)
- 宏定义相关
- URI与URL区别
- skbuff.h文件中NET_SKBUFF_DATA_USES_OFFSET宏的含义
- Sun的浮沉之路 只有技术不能长久成功
- DIV层显示登录窗口 模拟ajax窗口
- android 的bootloader
- 几条强悍的SQL
- 禁止webbrowser脚本,禁止webbrowser缓存,我在WTL下测试正常
- 自动备份和还原数据库(sql server 2005以上版本)
- Windows Server 技术中心
- March 9th Tuesday 2010