50#define __kos_cplusplus 1
52#define __kos_cplusplus 0
55#define __KOS_INIT_FLAGS_0(flags) \
56 const uint32_t __kos_init_flags = (flags); \
57 KOS_INIT_FLAG(flags, INIT_NET, arch_init_net); \
58 KOS_INIT_FLAG(flags, INIT_NET, net_shutdown); \
59 KOS_INIT_FLAG(flags, INIT_NET, bba_la_init); \
60 KOS_INIT_FLAG(flags, INIT_NET, bba_la_shutdown); \
61 KOS_INIT_FLAG(flags, INIT_FS_ROMDISK, fs_romdisk_init); \
62 KOS_INIT_FLAG(flags, INIT_FS_ROMDISK, fs_romdisk_shutdown); \
63 KOS_INIT_FLAG(flags, INIT_EXPORT, export_init); \
64 KOS_INIT_FLAG_NONE(flags, INIT_NO_SHUTDOWN, kos_shutdown); \
65 KOS_INIT_FLAGS_ARCH(flags)
67#define __KOS_INIT_FLAGS_1(flags) \
69 __KOS_INIT_FLAGS_0(flags); \
72#define __KOS_INIT_FLAGS(flags, cp) \
73 __KOS_INIT_FLAGS_##cp(flags)
75#define _KOS_INIT_FLAGS(flags, cp) \
76 __KOS_INIT_FLAGS(flags, cp)
78extern const uint32_t __kos_init_flags;
94#define KOS_INIT_FLAGS(flags) \
95 _KOS_INIT_FLAGS(flags, __kos_cplusplus)
98#define KOS_INIT_ROMDISK(rd) \
99 const void *__kos_romdisk = (rd); \
100 extern void fs_romdisk_mount_builtin_legacy(void); \
101 void (*fs_romdisk_mount_builtin_legacy_weak)(void) = fs_romdisk_mount_builtin_legacy
108#define KOS_INIT_ROMDISK_NONE NULL
117#define KOS_INIT_EARLY(func) void (*__kos_init_early_fn)(void) = (func)
130#define INIT_DEFAULT (INIT_IRQ | INIT_THD_PREEMPT | INIT_FS_ROMDISK | \
133#define INIT_NONE 0x00000000
134#define INIT_IRQ 0x00000001
136#define INIT_THD_PREEMPT 0x00000002
137#define INIT_NET 0x00000004
138#define INIT_MALLOCSTATS 0x00000008
139#define INIT_QUIET 0x00000010
140#define INIT_EXPORT 0x00000020
141#define INIT_FS_ROMDISK 0x00000040
142#define INIT_NO_SHUTDOWN 0x00000080
Definitions for builtin attributes and compiler directives.
const void * __kos_romdisk
Built-in romdisk.
Shared initialization macros and utilities.
Dreamcast-specific initialization-related flags and macros.