[php-src] Php内核的有趣高频宏】的更多相关文章

Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址. Container_of的定义如下: #define OffsetOf(type, member) ((unsigned long) &(((type *)0)->member)) #define container_of(p, type, member)  ((type *) ((char *)(p) - O…
版本:linux-2.6.24.4宏:    MKDEV(MAJOR, MINOR);  说明: 获取设备在设备表中的位置.        MAJOR   主设备号        MINOR   次设备号 内核使用的版本号说明文件:    在内核 /Documentation 目录下的 devices.txt 有说明.    一般本地保留的        MAJOR               234-239        UNASSIGNED               240-254 cha…
Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址. Container_of的定义如下: #define container_of(ptr, type, member) ({      \ const typeof( ((type *)0)->member ) *__mptr = (ptr);    \ (type *)( (char *)__mptr - offs…
转自:http://blog.csdn.net/npy_lp/article/details/7010752 开发平台:Ubuntu11.04 编 译器:gcc version 4.5.2 (Ubuntu/Linaro4.5.2-8ubuntu4) Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址. Container_of的定义如下: #define contai…
版本:linux-2.6.24.4宏:    MKDEV(MAJOR, MINOR);  说明: 获取设备在设备表中的位置.        MAJOR   主设备号        MINOR   次设备号 内核使用的版本号说明文件:    在内核 /Documentation 目录下的 devices.txt 有说明.    一般本地保留的        MAJOR               234-239        UNASSIGNED     //理解为不做分配            …
1. simple_strtoul 用于将字符串转换为无符号长整数,第3个参数10意味着转换方式是10进制. ival = simple_strtoul(buffer, NULL, 10); 2. 大部分体系结构把BUG()和BUG_ON()定义成某种非法操作,这样自然会产生需要的oops. #ifndef HAVE_ARCH_BUG #define BUG() do { \ printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LIN…
http://blog.csdn.net/tankai19880619/article/details/12015305…
http://blog.csdn.net/npy_lp/article/details/7010752 通过一个结构体变量的地址,求该结构体的首地址. #ifndef CONTAINER_OF #define CONTAINER_OF(ptr, type, member) \ (type *)(()->member) #endif 其中代码难以理解的地方就是它灵活地运用了0地址.如果觉得&( (struct test_struct *)0 )->ch这样的代码不好理解,那么我们可以假设…
看这里!!!https://mp.weixin.qq.com/s?__biz=MzI0ODk2NDIyMQ==&mid=2247494048&idx=1&sn=cacfc6a48269418422966b8456e04038&chksm=e99a1cb2deed95a4862f1a086a6b27ef58318e67888785beb9ca16ed2e77e91d836916a8fad7&token=859167462&lang=zh_CN#rd 内核是操作…
4.1 typeof 关键字 ANSI C 定义了 sizeof 关键字,用来获取一个变量或数据类型在内存中所占的存储字节数.GNU C 扩展了一个关键字 typeof,用来获取一个变量或表达式的类型.这里使用关键字可能不太合适,因为毕竟 typeof 还没有被写入 C 标准,是 GCC 扩展的一个关键字.为了方便,我们就姑且称之为关键字吧. 通过使用 typeof,我们可以获取一个变量或表达式的类型.所以 typeof 的参数有两种形式:表达式或类型. int i ; ; ​ typeof(i…