Linux 2.6.36版本内核分析之asmlinkage

博客探讨了Linux内核中asmlinkage的定义和作用,特别是在不同架构如ia64、x86下的应用。asmlinkage指示函数通过堆栈而非寄存器接收参数,而CPP_ASMLINKAGE确保在C++环境中以C方式链接。文章提到ia64架构的syscall_linkage以及在mn103000和perf工具中的不同实现。
摘要由CSDN通过智能技术生成

asmlinkage在内核文件中有5处定义,分别为:

1、arch/ia64/include/asm/Linkage.h:

#define asmlinkage CPP_ASMLINKAGE __attribute__((syscall_linkage))

 

2、arch/x86/include/asm/Linkage.h:

#define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))

 

3、include/linux/Linkage.h:

#ifndef asmlinkage
#define asmlinkage CPP_ASMLINKAGE
#endif

 

4、arch/mn103000/include/asm/Linkage.h:

#define asmlinkage


5、tools/perf/Perf.h:

#define asmlinkage



CPP_ASMLINKAGE在include/linux/Linkage.h中定义:

#ifdef __cplusplus
#define CPP_ASMLINKAGE extern "C"
#else
#define CPP_ASMLINKAGE
#endif

CP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值