我想找出处理写入/ sys / power / state的Linux内核(x86,2.6.18或类似文件)的源文件。我用Google搜索并尝试在源代码中搜索sysfs_create_file
(和dir)。但到目前为止我没有找到任何有用的东西。谁知道呢?谢谢!
答案 0 :(得分:5)
要找出内核调用的最终位置,Ftrace可以成为一个方便的工具。
对于您的特定情况,我使用以下命令从/sys/power/state
获取读取的函数图(我认为读取函数与您正在寻找的函数不会相差太远):
trace-cmd record -p function_graph -F cat /sys/power/state
(你需要root才能执行它)
这会将跟踪转储到名为trace.dat
的二进制文件中。要读取此文件,请执行以下操作(再次以root身份):
trace-cmd report
然后我使用grep
来过滤“power”或“state”之类的输出,最终能够找到以下内容(仅显示相关部分):
sysfs_read_file() {
...
state_show() {
valid_state() {
acpi_suspend_state_valid();
}
}
...
}
因此,阅读/sys/power/state
最终会出现在state_show
中。在该函数下面,您可以找到state_store
,这是我猜的结果将会结束的地方。