i386的Linux内核entry.S中的ENTRY语句是什么意思

Ada*_*nes 2 linux assembly kernel i386

例如在 entry.S

ENTRY(ret_from_fork)
    pushl %eax
    call schedule_tail
    GET_THREAD_INFO(%ebp)
    popl %eax
    jmp syscall_exit
Run Code Online (Sandbox Code Playgroud)

那么 ENTRY 在 as 语言中的语法是什么?我认为 as 的所有指令都是以 . 并且 ENTRY 也看起来不像一个宏 谁能告诉我 ENTRY 是什么?如果它是在 Linux 源代码中定义的,任何人都可以指出它的位置,或者它是否是一种语法,有人可以告诉我在哪里可以找到此用途的具体描述!谢谢!

Jes*_*ter 5

不知道为什么你说它看起来不像一个宏,因为这正是宏的样子。实际上它是一个定义在include/linux/linkage.h 中的宏,如下所示:

#ifndef ENTRY
#define ENTRY(name) \
    .globl name ASM_NL \
    ALIGN ASM_NL \
    name:
#endif
Run Code Online (Sandbox Code Playgroud)