Kernel110621: regparm注记

807阅读 0评论2011-06-21 zcatt
分类:LINUX

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".

Locations of visitors to this page
上一篇:Kernel110615: A20注记
下一篇:Kernel110621: likely和unlikely注记