[英]How does Linux kernel flush_write_buffers() work on x86?
[英]How to get x86 Linux kernel definitions
假设我想找到O_APPEND
的真实定义,这是open()
syscall的标志之一。 根据实际定义,我的意思是像0x2
这样的数字。
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
。 为什么?
当我需要查找系统调用的编号时遇到了同样的问题,最终我使用了一个包含生成表的第三方网站 。
如果我理解正确,系统调用会以某种方式即时生成,因此在对内核针对特定体系结构进行预处理之前,无法对其进行查找。
对于x86
和x86_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.