export_symbol的使用

来源:互联网 发布:linux 分区表 编辑:程序博客网 时间:2024/06/16 06:13
        问题是这样的,前几天师妹需要在内核模块中使用tasklist_lock来操作保护内核进程链表,由于tasklist_lock如果要在模块中使用就必须把它填充到内核符号表里面,就要使用export_symbol,她在sched.h里面就是tasklist_lock声明的地方,添加export_symbol(tasklist_lock),在编译的时候总是出现undefined symbols ,在/proc/kallsyms里面也没找到tasklist_lock,说明没有export成功,当时没找到原因,后来仔细想了下,是因为export_symbol的位置错了。由于全局变量在声明的时候没有分配地址,所以在声明的时候肯定不行,后来在tasklist_lock定义的地方添加export_symbol(就是在fork.c中),问题解决,最后还是要提醒下在使用tasklist_lock,在使用的文件里面先对它进行extern声明。
原创粉丝点击