【发布时间】:2014-02-10 09:23:57
【问题描述】:
我正在编写一个涉及tasklist_lock、__bss_start 的内核模块。
这些符号不会被导出。我很确定即使没有导出,我们也可以使用 kernsym_lookup_name() 访问文本部分中的符号
参考How my custom module on linux 3.2.28 can make a call to print_cpu_info?
$ vim System.map
...
80017be0 T register_undef_hook
80017c28 T unregister_undef_hook
80017c70 T do_unexp_fiq
...
806eb000 D mmlist_lock
806eb040 D tasklist_lock
806eb080 d softirq_vec
....
T代表文本符号。D和d代表数据段符号。
我可以使用kallsyms_lookup_name() 访问register_undef_hook() 和unregister_undef_hook()。
但不是tasklist_lock。
请分享您的知识以从内核模块(LKM)访问tasklist_lock。
【问题讨论】:
标签: c linux-kernel linux-device-driver