我想找出处理写入 /sys/power/state 的 Linux 内核(x86、2.6.18 或类似版本)的源文件。我用谷歌搜索并尝试sysfs_create_file
在源代码中搜索(和目录)。但到目前为止我没有发现任何有用的东西。有人知道吗?谢谢!
问问题
3012 次
1 回答
5
要找出对内核的调用最终在哪里结束,Ftrace是一个方便的工具。
对于您的特定情况,我使用以下命令获取用于读取的函数图/sys/power/state
(我认为读取函数与您正在寻找的写入函数不会太远):
trace-cmd record -p function_graph -F cat /sys/power/state
(您需要是root才能执行此操作)
这会将跟踪转储到一个名为trace.dat
. 要读取此文件,请执行以下操作(再次以 root 身份):
trace-cmd report
然后我用grep
“电源”或“状态”之类的东西过滤输出,最终能够找到以下内容(仅显示相关部分):
sysfs_read_file() {
...
state_show() {
valid_state() {
acpi_suspend_state_valid();
}
}
...
}
所以阅读/sys/power/state
以state_show
. 在该函数下方,您可以找到state_store
我猜写入将结束的位置。
于 2011-04-14T08:48:32.843 回答