只要看看 include/linux/init.h中的定义就清楚了: #define core_initcall(fn) __define_initcall("1",fn)#define postcore_initcall(fn) __define_initcall("2",fn)#define arch_initcall(fn) __define_initcall("3",fn)#define subsys_initcall(fn) __define_initcall("4",fn)#define fs_initcall(fn) __define_initcall("5",fn)#define device_initcall(fn) __define_initcall("6",fn)#define late_initcall(fn) __define_initcall("7",fn) #define __initcall(fn) device_initcall(fn)#define console_initcall(fn) / static initcall_t __initcall_##fn / __attribute_used__ __attribute__((__section__(".con_initcall.init")))=fn#define security_initcall(fn) / static initcall_t __initcall_##fn / __attribute_used__ __attribute__((__section__(".security_initcall.init"))) = fn #define module_init(x) __initcall(x); //modlue的级别是6链接的时候按下面的顺序链接: __initcall_start = .; *(.initcall1.init) *(.initcall2.init) *(.initcall3.init) *(.initcall4.init) *(.initcall5.init) *(.initcall6.init) *(.initcall7.init) __initcall_end = .;因此,在do_initcalls的时候就按照前面的顺序来了。其中 console_initcall等这些则是定义在专门的section中的。比如console_initcall就是定义在:__con_initcall_start与__con_initcall_end这个section中。Linux下的实时流媒体编程(RTP,RTCP,RTSP)Linux Shell基础命令相关资讯 Linux知识
- 时光总是太匆匆!Linux已经诞生23 (08/29/2014 14:12:03)
- Linux虚拟文件系统之文件打开(sys (02/14/2012 11:41:54)
- 2012 年 Linux 峰会时间表 (02/14/2012 06:47:27)
| - 报告称当前 Linux 人才抢手 高薪也 (02/15/2012 06:35:56)
- 解析企业为何选择Linux及其特别之 (02/14/2012 08:17:59)
- Linux禁用字符闪烁的方法 (11/02/2011 10:28:25)
|
本文评论 查看全部评论 (0)