29#define MOS_EARLY_SETUP(_param, _fn) \
30 static bool _fn(mos::string_view arg); \
31 MOS_PUT_IN_SECTION(".mos.early_setup", mos_cmdline_hook_t, __setup_##_fn, { .param = _param, .hook = _fn }); \
32 static bool _fn(mos::string_view arg)
34#define MOS_SETUP(_param, _fn) \
35 static bool _fn(mos::string_view arg); \
36 MOS_PUT_IN_SECTION(".mos.setup", mos_cmdline_hook_t, __setup_##_fn, { .param = _param, .hook = _fn }); \
37 static bool _fn(mos::string_view arg)
39#define MOS_INIT(_comp, _fn) \
40 static void _fn(void); \
41 MOS_PUT_IN_SECTION(".mos.init", mos_init_t, __init_##_fn, { .target = INIT_TARGET_##_comp, .init_fn = _fn }); \
MOSAPI void(1, 2) fatal_abort(const char *fmt
basic_string_view< char > string_view
void startup_invoke_early_cmdline_hooks(void)
void startup_invoke_cmdline_hooks(void)
void startup_invoke_autoinit(init_target_t target)
bool(* hook)(mos::string_view arg)