MOS Source Code
Loading...
Searching...
No Matches
setup.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-3.0-or-later
2
3#pragma once
4
5#include <mos/string_view.hpp>
6#include <mos/types.hpp>
7
8typedef enum
9{
10 INIT_TARGET_POWER, // Power management subsystem
11 INIT_TARGET_PRE_VFS, // Pre-virtual file system
12 INIT_TARGET_VFS, // Virtual file system
13 INIT_TARGET_SYSFS, // sysfs filesystem
14 INIT_TARGET_KTHREAD, // Kernel threads
16
17typedef struct
18{
19 const char *param;
22
23typedef struct
24{
28
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)
33
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)
38
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 }); \
42 static void _fn(void)
43
MOSAPI void(1, 2) fatal_abort(const char *fmt
basic_string_view< char > string_view
int bool
Definition pb_syshdr.h:57
init_target_t
Definition setup.hpp:9
@ INIT_TARGET_PRE_VFS
Definition setup.hpp:11
@ INIT_TARGET_KTHREAD
Definition setup.hpp:14
@ INIT_TARGET_POWER
Definition setup.hpp:10
@ INIT_TARGET_VFS
Definition setup.hpp:12
@ INIT_TARGET_SYSFS
Definition setup.hpp:13
void startup_invoke_early_cmdline_hooks(void)
Definition setup.cpp:56
void startup_invoke_cmdline_hooks(void)
Definition setup.cpp:49
void startup_invoke_autoinit(init_target_t target)
Definition setup.cpp:8
const char * param
Definition setup.hpp:19
bool(* hook)(mos::string_view arg)
Definition setup.hpp:20
init_target_t target
Definition setup.hpp:25
void(* init_fn)(void)
Definition setup.hpp:26