Files
mango/include/kernel/init.h

42 lines
1.2 KiB
C
Raw Normal View History

2026-02-19 19:13:44 +00:00
#ifndef KERNEL_INIT_H_
#define KERNEL_INIT_H_
#include <kernel/compiler.h>
#include <kernel/machine/init.h>
#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