C语言源码的解析

#define container_of(ptr, type, member) ({             /
         const typeof( ((type *)0)->member ) *__mptr = (ptr);     /
         (type *)( (char *)__mptr - offsetof(type,member) );})

container_of实现了根据一个结构体变量中的一个域成员变量的指针来获取指向整个结构体变量的指针的功能。可以参考:http://blog.csdn.net/yinkaizhong/article/details/409379

static inline void prefetch(const void *x)
{
        alternative_input(ASM_NOP4,
                          "prefetchnta (%1)",
                          X86_FEATURE_XMM,
                          "r" (x));
}

prefetch是预取内存的内容,程序员告诉CPU哪些内容可能马上用到,CPU预取,用于优化。下面的也是用于优化,比如同样系列的CPU中高档CPU可能对某些操作有更优化的指令而低档CPU没有。那么在Linux 在得知CPU的型号后会用优化的指令代替普通指令。如果该函数的函数体为空,则只是为了程序的可扩展性或兼容性才用了该函数。


你可能感兴趣的:(C语言源码的解析)