linux/compile.h头文件说明
的操作步骤,可以参看内核源码所带的文档.那上面说了这么多,与notrace这个属性有什么关系呢?![]() #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) 这两句是一对对应关系.__builtin_expect(expr, c)这个函数是新版gcc支持的,它是用来作代码优化的,用来告诉编译器,expr的期,非常有可能是c,这样在gcc生成对应的汇编代码的时候,会把相 应的可能执行的代码都放在一起,这样能少执行代码的跳转.为什么这样能提高CPU的执行效率呢? #ifndef barrier # define barrier() __memory_barrier() #endif 这里表示如果没有定义barrier函数,则定义barrier()函数为__memory_barrier().但在内核代码里,是会包含 compiler-gcc.h这个文件的, #ifndef RELOC_HIDE # define RELOC_HIDE(ptr, off) ({ unsigned long __ptr; __ptr = (unsigned long) (ptr); (typeof(ptr)) (__ptr (off)); }) #endif 这个没有什么太多值得讲的,也能看明白,虽然不知道具体用在哪里, 接下来好多定义都没有实现,可以看一看注释就知道了, #define noinline_for_stack noinline #ifndef __always_inline #define |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |