#ifndef MANGO_INIT_H_ #define MANGO_INIT_H_ #include #include #ifdef __cplusplus extern "C" { #endif typedef int (*initcall_t)(void); #define INITLEVEL_EARLY 0 #define INITLEVEL_CORE 1 #define INITLEVEL_POSTCORE 2 #define INITLEVEL_ARCH 3 #define INITLEVEL_SUBSYS 4 #define INITLEVEL_ROOTFS 5 #define INITLEVEL_DEVICE 6 #define INITLEVEL_LATE 7 #define INITLEVEL_TESTS 8 #define early_initcall(fn) __define_initcall(fn, INITLEVEL_EARLY) #define core_initcall(fn) __define_initcall(fn, INITLEVEL_CORE) #define postcore_initcall(fn) __define_initcall(fn, INITLEVEL_POSTCORE) #define arch_initcall(fn) __define_initcall(fn, INITLEVEL_ARCH) #define subsys_initcall(fn) __define_initcall(fn, INITLEVEL_SUBSYS) #define rootfs_initcall(fn) __define_initcall(fn, INITLEVEL_ROOTFS) #define device_initcall(fn) __define_initcall(fn, INITLEVEL_DEVICE) #define late_initcall(fn) __define_initcall(fn, INITLEVEL_LATE) #define test_initcall(fn) __define_initcall(fn, INITLEVEL_TESTS) extern void print_kernel_banner(void); extern int do_initcalls(void); extern int start_initlevel(int level); #ifdef __cplusplus } #endif #endif