繁体   English   中英

如何获得x86 Linux内核定义

[英]How to get x86 Linux kernel definitions

假设我想找到O_APPEND的真实定义,这是open() syscall的标志之一。 根据实际定义,我的意思是像0x2这样的数字。

我去LXR并进行搜索

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 为什么?

当我需要查找系统调用的编号时遇到了同样的问题,最终我使用了一个包含生成表的第三方网站

如果我理解正确,系统调用会以某种方式即时生成,因此在对内核针对特定体系结构进行预处理之前,无法对其进行查找。

对于x86x86_64所有定义是否都是同一故事? 当我需要某人尚未在Internet上生成的内容时,该如何继续? 我可以在桌面上的标头中查找它,但是我使用x86_64而不是x86

那么, 如何找到x86体系结构#define d的确切数字标志和模式

对于用户空间API(uapi),它将在include/uapi/asm-generic/fcntl.h

该路径的generic部分意味着这是与体系结构无关的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM