Kernel110621: regparm注记
Email: zcatt@163.com
Blog http://zcatt.blog.chinaunix.net
声明
仅限学习交流,禁止商业用途。转载需注明出处。
版本记录
Date Ver Note
2011-06-21 0.1 Draft. zcatt, Beijing
kernel中asmlinkage和asmregparm的定义如下
#define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))
#define asmregparm __attribute__((regparm(3)))
其中, regparm(num)的含义, 使用几个寄存器(EAX, EDX和ECX)来传递函数的入口参数, 假设入口参数是寄存器适合的整数类型. num可以取0, 1, 2, 3. 取0则表示完全不使用寄存器传递参数, 仅使用栈.
而 CPP_ASMLINKAGE在cpp环境下则展开成 extern "C".
阅读(793) | 评论(0) | 转发(0) |