4.1.13. __smc

__smc 关键字声明 SMC(安全监控调用)函数。 SMC 函数调用在编译器生成的指令流中插入一个 SMC 指令(在函数调用位置)。

Note

SMC 指令替代以前版本的 ARM 汇编语言中使用的 SMI 指令。

__smc 是一个函数限定符。 它影响函数的类型。

语法


__smc(int smc_num) return-type function-name([argument-list]);

其中:

smc_num

是在 SMC 指令中使用的 16 位立即值。

ARM 处理器忽略 smc_num 值,但 SMC 异常处理程序可以使用它来确定所请求的服务。

限制

如果某些基于 ARM 体系结构的处理器具有安全扩展,则它们可以使用 SMC 指令。 有关详细信息,请参阅汇编程序指南中的第 4-137 页的SMC

如果针对不支持 SMC 指令的体系结构编译包含 __smc 关键字的源代码,编译器将生成错误。

示例


__smc(5) void mycall(void); /* declare a name by which SMC #5 can be called */



...

mycall();                   /* invoke the function */

另请参阅

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential