如何获取linux/driver下每个子目录注册的initcall函数的起始地址
实现multi-probe的时候,欲将driver下每个目录下的init函数分别放在一个group上,遇到一个棘手的问题:目前的机制只是获取initcall0~7的start,但怎么去获取initcall6也就是driver目录下各个子目录对应的initcall start
我能想到一个比较笨拙的办法就是:
在编译时,通过脚本在driver子目录下临时生成一个.c文件,该文件仅有一个module_init注册,
并放在该子目录Makefile obj-y的最前面编译,也就是插入一个标记去标注该子目录的start
编译结束再删除上述临时文件
但这样做不是很严谨,对脚本也不是很熟,实现起来还有一定困难
不清楚是否有好的办法能满足该需求
不吝赐教,多谢! 咦,这个问题不是问过了吗?貌似我还回答过。nm vmlinux不就知道地址了吗?不知lz要的是什么。 回复 2# andloani
nm只是获取所有函数的地址---System.map,我需要知道driver每个子目录下面包含的所有init函数的start和end地址
谢谢!
页:
[1]