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/types.hpp
>
6
7
typedef
enum
8
{
9
INIT_TARGET_POWER
,
// Power management subsystem
10
INIT_TARGET_PRE_VFS
,
// Pre-virtual file system
11
INIT_TARGET_VFS
,
// Virtual file system
12
INIT_TARGET_SYSFS
,
// sysfs filesystem
13
INIT_TARGET_KTHREAD
,
// Kernel threads
14
}
init_target_t
;
15
16
typedef
struct
17
{
18
const
char
*
param
;
19
bool
(*
hook
)(
const
char
*arg);
20
}
mos_cmdline_hook_t
;
21
22
typedef
struct
23
{
24
init_target_t
target
;
25
void
(*
init_fn
)(
void
);
26
}
mos_init_t
;
27
28
#define MOS_EARLY_SETUP(_param, _fn) \
29
static bool _fn(const char *arg); \
30
MOS_PUT_IN_SECTION(".mos.early_setup", mos_cmdline_hook_t, __setup_##_fn, { .param = _param, .hook = _fn }); \
31
static bool _fn(const char *arg)
32
33
#define MOS_SETUP(_param, _fn) \
34
static bool _fn(const char *arg); \
35
MOS_PUT_IN_SECTION(".mos.setup", mos_cmdline_hook_t, __setup_##_fn, { .param = _param, .hook = _fn }); \
36
static bool _fn(const char *arg)
37
38
#define MOS_INIT(_comp, _fn) \
39
static void _fn(void); \
40
MOS_PUT_IN_SECTION(".mos.init", mos_init_t, __init_##_fn, { .target = INIT_TARGET_##_comp, .init_fn = _fn }); \
41
static void _fn(void)
42
43
void
startup_invoke_cmdline_hooks
(
void
);
44
void
startup_invoke_early_cmdline_hooks
(
void
);
45
void
startup_invoke_autoinit
(
init_target_t
target);
void
MOSAPI void(1, 2) fatal_abort(const char *fmt
bool
int bool
Definition
pb_syshdr.h:57
init_target_t
init_target_t
Definition
setup.hpp:8
INIT_TARGET_PRE_VFS
@ INIT_TARGET_PRE_VFS
Definition
setup.hpp:10
INIT_TARGET_KTHREAD
@ INIT_TARGET_KTHREAD
Definition
setup.hpp:13
INIT_TARGET_POWER
@ INIT_TARGET_POWER
Definition
setup.hpp:9
INIT_TARGET_VFS
@ INIT_TARGET_VFS
Definition
setup.hpp:11
INIT_TARGET_SYSFS
@ INIT_TARGET_SYSFS
Definition
setup.hpp:12
startup_invoke_early_cmdline_hooks
void startup_invoke_early_cmdline_hooks(void)
Definition
setup.cpp:56
startup_invoke_cmdline_hooks
void startup_invoke_cmdline_hooks(void)
Definition
setup.cpp:49
startup_invoke_autoinit
void startup_invoke_autoinit(init_target_t target)
Definition
setup.cpp:8
mos_cmdline_hook_t
Definition
setup.hpp:17
mos_cmdline_hook_t::hook
bool(* hook)(const char *arg)
Definition
setup.hpp:19
mos_cmdline_hook_t::param
const char * param
Definition
setup.hpp:18
mos_init_t
Definition
setup.hpp:23
mos_init_t::target
init_target_t target
Definition
setup.hpp:24
mos_init_t::init_fn
void(* init_fn)(void)
Definition
setup.hpp:25
types.hpp
kernel
include
private
mos
misc
setup.hpp
Generated on Tue Feb 18 2025 16:41:40 for MOS Source Code by
1.13.2