#define fs_initcall(fn) __define_initcall(fn, 5) #define fs_initcall_sync(fn) __define_initcall(fn, 5s) #define rootfs_initcall(fn) __define_initcall(fn, rootfs) #define device_initcall(fn) __define_initcall(fn, 6) #define device_initcall_sync(fn) __define_initcall(fn, 6s) #defin...
#define device_initcall(fn) __define_initcall(fn, 6) #define device_initcall_sync(fn) __define_initcall(fn, 6s) #definelate_initcall(fn) __define_initcall(fn, 7) #define late_initcall_sync(fn) __define_initcall(fn, 7s) xxx_init_call(fn)的原型其实是__define_initcall(fn, n),n是一...
#define device_initcall(fn) __define_initcall("6",fn,6) #define device_initcall_sync(fn) __define_initcall("6s",fn,6s) #define late_initcall(fn) __define_initcall("7",fn,7) #define late_initcall_sync(fn) __define_initcall("7s",fn,7s) #define __initcall(fn) device_initcall(fn)...
device_initcall_sync(sensor_mod_init);/* 注册一个设备初始化函数 */ module_exit(sensor_mod_exit);/* 注销一个设备初始化函数 */ MODULE_AUTHOR("jiaozhu <cn_jiaozhu@qq.com>"); MODULE_DESCRIPTION("RN6752 CMOS Image Sensor driver"); 注意:这里的代码是 I2C 驱动的基础,有不明白的小伙伴可以参...
__initcall_end, }; static const char *initcall_level_names[] __initdata = { "pure", "core", "postcore", "arch", "subsys", "fs", "device", "late", }; static void __init do_initcalls(void) { int level; for (level = 0; level < ARRAY_SIZE(initcall_levels) - 1; level++)...
rootfs_initcall(fn)__define_initcall(fn, rootfs)#definedevice_initcall(fn)__define_initcall(fn,6)#definedevice_initcall_sync(fn)__define_initcall(fn,6s)#definelate_initcall(fn)__define_initcall(fn,7)#definelate_initcall_sync(fn)__define_initcall(fn,7s)#define__initcall(fn)device_initcall(...
#define device_initcall(fn) __define_initcall("6",fn,6) #define device_initcall_sync(fn) __define_initcall("6s",fn,6s) #define late_initcall(fn) __define_initcall("7",fn,7) #define late_initcall_sync(fn) __define_initcall("7s",fn,7s) ...
_initcall(fn, 5s)#define rootfs_initcall(fn) __define_initcall(fn, rootfs)#define device_initcall(fn) __define_initcall(fn, 6)#define device_initcall_sync(fn) __define_initcall(fn, 6s)#define late_initcall(fn) __define_initcall(fn, 7)#define late_initcall_sync(fn) __define_initcall(...
#define device_initcall(fn) __define_initcall("6",fn,6) #define device_initcall_sync(fn) __define_initcall("6s",fn,6s) #define late_initcall(fn) __define_initcall("7",fn,7) #define late_initcall_sync(fn) __define_initcall("7s",fn,7s) 内核调用链 start_kernel->rest_init->init-...
#define late_initcall_sync(fn) __define_initcall("7s",fn,7s)#define __initcall(fn) device_initcall(fn)把自己的驱动的函数名用这些宏去定义之后, 就会对应不同的加载时候的优先级。其中,我们写驱动中所用到的module_init对应的是 #define module_init(x) __initcall(x); 而#define __initcall(fn)...