如何在Centos6中获取符号地址vmalloc_node_范围
我必须为我的模块请求如何在Centos6中获取符号地址vmalloc_node_范围,c,linux-kernel,kernel-module,centos6,C,Linux Kernel,Kernel Module,Centos6,我必须为我的模块请求START和END之间的内存 static struct kprobe kp={.symbol_name = "kallsyms_lookup_name",}; int get_kallsyms_lookup_name(void) { int ret = register_kprobe(&kp); if(ret < 0){ printk("[err] %s. register_kprobe failed, ret
START
和END
之间的内存
static struct kprobe kp={.symbol_name = "kallsyms_lookup_name",};
int get_kallsyms_lookup_name(void)
{
int ret = register_kprobe(&kp);
if(ret < 0){
printk("[err] %s. register_kprobe failed, ret:%d\n", __FUNCTION__, ret);
return ret;
}
printk("[info] %s. kprobe at addr:%p, ret:%d\n", __FUNCTION__, kp.addr, ret);
orig_kallsyms_lookup_name = (kallsyms_lookup_name_t)(void*)kp.addr;
unregister_kprobe(&kp);
return ret;
}
static int __init init(void)
{
if(get_kallsyms_lookup_name() < 0)
{
printk("[err] %s failed!\n", __FUNCTION__);
return -1;
}
___vmalloc_node_range = (void *)orig_kallsyms_lookup_name("__vmalloc_node");
if(!___vmalloc_node_range)
printk("error");
return -1;
}
#define START _AC(0xffffffffa0000000, UL)
#define END _AC(0xffffffffff000000, UL)