免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2755 | 回复: 2
打印 上一主题 下一主题

[内核模块] 关于init_module的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-17 10:23 |只看该作者 |倒序浏览
定义module的宏为
#define module_init(initfn)                                        \
        static inline initcall_t __inittest(void)                \                { return initfn; }                                        \
        int init_module(void) __attribute__((alias(#initfn)));  

为什么要为initfn取别名init_module呢?难道是在编译module的时候,编译器只认init_module而不认initfn,然后把init_module的地址赋给struct module里面的init字段?如果是这样,那把init_module改成另外的名字,编译器是不是就不认识了?

论坛徽章:
0
2 [报告]
发表于 2012-05-17 15:02 |只看该作者
编译器是认识的
改成统一的名字,是方便insmod找到模块的入口点

论坛徽章:
0
3 [报告]
发表于 2012-05-18 09:25 |只看该作者
回复 2# senioryzc

谢谢,我再问个问题。
如果编译内核时没有定义MODULE宏,是不是所有module_init代码都不会编译进内核
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP