Linux代码执行入口登记表

/*
以下代码来自 linux内核源码中 include/linux/init.h 文件,总共16个等级按先后顺序的入口

//0 #define pure_initcall(fn) __define_initcall("0",fn,1)                入口0
//1 #define core_initcall(fn) __define_initcall("1",fn,1)                入口1
//2 #define core_initcall_sync(fn) __define_initcall("1s",fn,1s)         入口1s
//3 #define postcore_initcall(fn) __define_initcall("2",fn,2)            入口2
//4 #define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s)     入口2s
//5 #define arch_initcall(fn) __define_initcall("3",fn,3)                入口3
//6 #define arch_initcall_sync(fn) __define_initcall("3s",fn,3s)         入口3s
//7 #define subsys_initcall(fn) __define_initcall("4",fn,4)              入口4
//8 #define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s)       入口4s
//9 #define fs_initcall(fn) __define_initcall("5",fn,5)                  入口5
//10 #define fs_initcall_sync(fn) __define_initcall("5s",fn,5s)          入口5s
//11 #define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs)   入口5s+
//12 #define device_initcall(fn) __define_initcall("6",fn,6)             入口6
//13 #define device_initcall_sync(fn) __define_initcall("6s",fn,6s)      入口6s
//14 #define late_initcall(fn) __define_initcall("7",fn,7)               入口7
//15 #define late_initcall_sync(fn) __define_initcall("7s",fn,7s)        入口7s

#define __initcall(fn) device_initcall(fn)
这些入口有个共同的特征,它们都是使用__define_initcall宏定义的。它们的调用也不是随便的,而是按照一定顺序的,这个顺序就取决于__define_initcall宏。__define_initcall宏用来将指定的函数指针放到.initcall.init节里。
*/

/*
以下代码来自 linux内核源码中 include/linux/init.h 文件,总共16个等级按先后顺序的入口
/
//0 #define pure_initcall(fn) __define_initcall("0",fn,1)                              入口0
//1 #define core_initcall(fn) __define_initcall("1",fn,1)                              入口1
//2 #define core_initcall_sync(fn) __define_initcall("1s",fn,1s)                 入口1s
//3 #define postcore_initcall(fn) __define_initcall("2",fn,2)                       入口2
//4 #define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s)          入口2s
//5 #define arch_initcall(fn) __define_initcall("3",fn,3)                             入口3
//6 #define arch_initcall_sync(fn) __define_initcall("3s",fn,3s)                入口3s
//7 #define subsys_initcall(fn) __define_initcall("4",fn,4)                         入口4
//8 #define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s)            入口4s
//9 #define fs_initcall(fn) __define_initcall("5",fn,5)                                 入口5
//10 #define fs_initcall_sync(fn) __define_initcall("5s",fn,5s)                  入口5s
//11 #define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs)           入口5s+
//12 #define device_initcall(fn) __define_initcall("6",fn,6)                       入口6
//13 #define device_initcall_sync(fn) __define_initcall("6s",fn,6s)          入口6s
//14 #define late_initcall(fn) __define_initcall("7",fn,7)                           入口7
//15 #define late_initcall_sync(fn) __define_initcall("7s",fn,7s)              入口7s

#define __initcall(fn) device_initcall(fn)
这些入口有个共同的特征,它们都是使用__define_initcall宏定义的。它们的调用也不是随便的,而是按照一定顺序的,这个顺序就取决于__define_initcall宏。__define_initcall宏用来将指定的函数指针放到.initcall.init节里。
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值