我试图定义一个没有任何序言/结尾的函数,一个“到达地址”,以便它可以调用由编译器正确管理的内部函数(对调用者清除环境有用)。
我发现可以使用内联汇编程序创建全局标签,但是在同一文件中调用另一个函数时遇到问题。当我按此处列出的顺序编译代码时,我收到警告:
警告:“ handle_vmexit” [/代码/超级/内核/hyper.ko]未定义!
当我删除静态修饰符时,没有任何问题。
所以我的问题是,为什么嵌入式程序集在静态时无法与handle_vmexit链接,以及如何使其称为静态handle_vmexit。
以下是相关代码:
static void handle_vmexit(void){
...
}
__asm__(".handle_vmexit: \n\t"
"call handle_vmexit"
);
Run Code Online (Sandbox Code Playgroud)