#ifndef SOCKS_INIT_H_ #define SOCKS_INIT_H_ #include 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 __define_initcall(fn, id) \ static initcall_t __initcall_##fn##id __used \ __section(".initcall" #id ".init") = (fn) #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) extern int do_initcalls(void); #endif