全部博文(478)
发布时间:2017-08-17 14:19:36
程序在执行过程中通常有用户态和内核态两种状态,CPU对处于内核态根据上下文环境进一步细分,因此有了下面三种状态: 上下文context: 上下文简单说来就是一个环境。 相对于进程而言,就是进程执行时的环境。具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。一个进程.........【阅读全文】
发布时间:2017-05-15 10:46:56
likely()与unlikely()在2.6内核中,随处可见,那为什么要用它们?它们之间有什么区别呢?首先明确:if (likely(value))等价于if (value)if (unlikely(value))等价于if (value)也就是说likely()和unlikely()从阅读和理解的角度是一样的。这两个宏在内核中定义如下:#define likely(x) __builtin_expect(!!(x), 1).........【阅读全文】
发布时间:2016-09-02 15:39:45
__setup这条宏在Linux Kernel中使用最多的地方就是定义处理Kernel的启动参数的函数及数据结构,宏定义如下:#define __setup(str, fn) \__setup_param(str, fn, fn, 0)#define __setup_param(str, unique_id, fn, early) \static char __setup_str_##unique_id[] __initdata __aligned(1) = str; \static str.........【阅读全文】