【发布时间】:2015-05-03 04:57:17
【问题描述】:
我需要使用arch/x86/mm/pageattr.c中实现的函数void clflush_cache_range(void *vaddr, unsigned int size),但是遇到了两个问题。
如何正确识别对应的header?我天真地搜索了这个符号,似乎
arch/x86/include/asm/cacheflush.h就是那个。如何包含标题
arch/x86/include/asm/cacheflush.h(如果包含正确的标题)?我尝试include <asm/cacheflush.h>,但没有成功。
致命错误:asm/cacheflush.h:没有这样的文件或目录
【问题讨论】:
-
您是在开发内核模块还是用户空间应用程序?
-
因为用户空间程序不能调用随机内核函数。内核和用户空间之间的接口体现在定义的系统调用中(在手册的第 2 节等地方都有说明),
clflush_cache_range()不是其中之一。 -
@EugeneSh。哪个更容易做。我只是想对缓存刷新做一个基准测试。
-
@bl4ck5un 你必须编写内核代码才能使用这些功能。它们对用户空间代码不可用。
-
@bl4ck5un 所以如下,这里需要一个内核模块。
标签: c linux-kernel include kernel