Chinaunix首页 | 论坛 | 博客
  • 博客访问: 173571
  • 博文数量: 47
  • 博客积分: 992
  • 博客等级: 准尉
  • 技术积分: 565
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-08 21:57
文章分类

全部博文(47)

文章存档

2019年(1)

2018年(1)

2017年(1)

2014年(6)

2013年(1)

2012年(2)

2011年(35)

我的朋友

分类: LINUX

2011-06-21 11:05:00

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
阅读(748) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~