gpt4 book ai didi

c - 如何获取 x86 Linux 内核定义

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:07:18 24 4
gpt4 key购买 nike

假设我想找到 O_APPEND 的真正定义,它是 open() 系统调用的标志之一。根据实际定义,我指的是像 0x2 这样的数字。

I go to LXR and do a search :

Defined in 5 files:
arch/alpha/include/uapi/asm/fcntl.h, line 10 (as a macro)
arch/mips/include/uapi/asm/fcntl.h, line 13 (as a macro)
arch/parisc/include/uapi/asm/fcntl.h, line 4 (as a macro)
arch/sparc/include/uapi/asm/fcntl.h, line 4 (as a macro)
include/uapi/asm-generic/fcntl.h, line 35 (as a macro)

但是,这里没有x86。为什么?

当我需要查找系统调用的数字时,我遇到了同样的问题,最终我使用了 3rd-party website。包含一个生成的表。

如果我理解正确的话,系统调用是以某种方式即时生成的,因此在针对特定架构对内核进行预处理之前,不可能查找它们。

x86x86_64 的所有定义都是一样的吗? 当我需要的东西还没有出现在 Internet 上时,我该如何继续?我本可以在桌面上的标题中查找它,但我使用的是 x86_64 ,而不是 x86

那么,我如何找到针对 x86 架构#define 标记和模式的确切数字?

最佳答案

如果是用户空间 API (uapi),它将在 include/uapi/asm-generic/fcntl.h 中定义。

路径的 generic 部分表示这是独立于体系结构的代码。

关于c - 如何获取 x86 Linux 内核定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44083932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com