1 #ifndef __LUNAIX_OWLOYSIUS_H
2 #define __LUNAIX_OWLOYSIUS_H
4 #include <lunaix/ds/ldga.h>
7 * @brief stage where only basic memory management service
10 #define on_sysconf c_sysconf
13 * @brief stage where basic memory management service
14 * interrupt management and timer/clock service avaliable
16 #define on_earlyboot c_earlyboot
19 * @brief stage where most kernel service is ready, non-preempt
22 * boot-stage initialization is about to conclude.
24 #define on_boot c_boot
27 * @brief stage where all services started, kernel is in preempt
30 #define on_postboot c_postboot
32 #define owloysius_fetch_init(func, call_stage) \
33 export_ldga_el(lunainit, func, ptr_t, func); \
34 export_ldga_el_sfx(lunainit, func##_##call_stage, ptr_t, func, call_stage);
36 #define invoke_init_function(stage) ldga_invoke_fn0(lunainit##_##stage)
39 initfn_invoke_sysconf()
41 invoke_init_function(on_sysconf);
45 initfn_invoke_earlyboot()
47 invoke_init_function(on_earlyboot);
53 invoke_init_function(on_boot);
57 initfn_invoke_postboot()
59 invoke_init_function(on_postboot);
62 #endif /* __LUNAIX_OWLOYSIUS_H */