KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches
init_flags.h
Go to the documentation of this file.
1/* KallistiOS ##version##
2
3 arch/dreamcast/include/arch/init_flags.h
4 Copyright (C) 2001 Megan Potter
5 Copyright (C) 2023 Lawrence Sebald
6 Copyright (C) 2023 Falco Girgis
7
8*/
9
10/** \file arch/init_flags.h
11 \brief Dreamcast-specific initialization-related flags and macros.
12 \ingroup init_flags
13
14 This file provides initialization-related flags that are specific to the
15 Dreamcast architecture.
16
17 \sa kos/init.h
18 \sa kos/init_base.h
19
20 \author Lawrence Sebald
21 \author Megan Potter
22 \author Falco Girgis
23*/
24
25#ifndef __ARCH_INIT_FLAGS_H
26#define __ARCH_INIT_FLAGS_H
27
28#include <kos/cdefs.h>
29#include <kos/init_base.h>
30__BEGIN_DECLS
31
32/** \brief Dreamcast-specific KOS_INIT Exports
33 \ingroup init_flags
34
35 This macro contains a list of all of the possible DC-specific
36 exported functions based on their associated initialization flags.
37
38 \note
39 This is not typically used directly and is instead included within
40 the top-level architecture-independent KOS_INIT_FLAGS() macro.
41
42 \param flags Parts of KOS to initialize.
43
44 \sa KOS_INIT_FLAGS()
45*/
46#define KOS_INIT_FLAGS_ARCH(flags) \
47 KOS_INIT_FLAG_NONE(flags, INIT_NO_DCLOAD, dcload_init); \
48 KOS_INIT_FLAG_NONE(flags, INIT_NO_DCLOAD, fs_dcload_init_console); \
49 KOS_INIT_FLAG_NONE(flags, INIT_NO_DCLOAD, fs_dcload_shutdown); \
50 KOS_INIT_FLAG_NONE(flags, INIT_NO_DCLOAD, arch_init_net_dcload_ip); \
51 KOS_INIT_FLAG(flags, INIT_NO_DCLOAD, arch_init_net_no_dcload); \
52 KOS_INIT_FLAG(flags, INIT_CDROM, cdrom_init); \
53 KOS_INIT_FLAG(flags, INIT_CDROM, cdrom_shutdown); \
54 KOS_INIT_FLAG(flags, INIT_CDROM, fs_iso9660_init); \
55 KOS_INIT_FLAG(flags, INIT_CDROM, fs_iso9660_shutdown); \
56 KOS_INIT_FLAG(flags, INIT_CONTROLLER, cont_init); \
57 KOS_INIT_FLAG(flags, INIT_CONTROLLER, cont_shutdown); \
58 KOS_INIT_FLAG(flags, INIT_KEYBOARD, kbd_init); \
59 KOS_INIT_FLAG(flags, INIT_KEYBOARD, kbd_shutdown); \
60 KOS_INIT_FLAG(flags, INIT_MOUSE, mouse_init); \
61 KOS_INIT_FLAG(flags, INIT_MOUSE, mouse_shutdown); \
62 KOS_INIT_FLAG(flags, INIT_LIGHTGUN, lightgun_init); \
63 KOS_INIT_FLAG(flags, INIT_LIGHTGUN, lightgun_shutdown); \
64 KOS_INIT_FLAG(flags, INIT_VMU, vmu_init); \
65 KOS_INIT_FLAG(flags, INIT_VMU, vmu_shutdown); \
66 KOS_INIT_FLAG(flags, INIT_VMU, vmu_fs_init); \
67 KOS_INIT_FLAG(flags, INIT_VMU, vmu_fs_shutdown); \
68 KOS_INIT_FLAG(flags, INIT_PURUPURU, purupuru_init); \
69 KOS_INIT_FLAG(flags, INIT_PURUPURU, purupuru_shutdown); \
70 KOS_INIT_FLAG(flags, INIT_SIP, sip_init); \
71 KOS_INIT_FLAG(flags, INIT_SIP, sip_shutdown); \
72 KOS_INIT_FLAG(flags, INIT_DREAMEYE, dreameye_init); \
73 KOS_INIT_FLAG(flags, INIT_DREAMEYE, dreameye_shutdown); \
74 KOS_INIT_FLAG(flags, INIT_MAPLE_ALL, maple_wait_scan); \
75 KOS_INIT_FLAG(flags, INIT_MAPLE_ALL, maple_init); \
76 KOS_INIT_FLAG(flags, INIT_MAPLE_ALL, maple_shutdown)
77
78
79/** \defgroup kos_init_flags_dc Dreamcast-Specific Flags
80 \brief Dreamcast-specific initialization flags.
81 \ingroup init_flags
82
83 These are the Dreamcast-specific flags that can be specified with
84 KOS_INIT_FLAGS.
85
86 \see kos_initflags
87 @{
88*/
89
90/** \brief Default init flags for the Dreamcast. */
91#define INIT_DEFAULT_ARCH (INIT_MAPLE_ALL | INIT_CDROM)
92
93#define INIT_CONTROLLER 0x00001000 /**< \brief Enable Controller maple driver */
94#define INIT_KEYBOARD 0x00002000 /**< \brief Enable Keyboard maple driver */
95#define INIT_MOUSE 0x00004000 /**< \brief Enable Mouse maple driver */
96#define INIT_LIGHTGUN 0x00008000 /**< \brief Enable Lightgun maple driver */
97#define INIT_VMU 0x00010000 /**< \brief Enable VMU maple driver */
98#define INIT_PURUPURU 0x00020000 /**< \brief Enable Puru Puru maple driver */
99#define INIT_SIP 0x00040000 /**< \brief Enable Sound input maple driver */
100#define INIT_DREAMEYE 0x00080000 /**< \brief Enable DreamEye maple driver */
101#define INIT_MAPLE_ALL 0x000ff000 /**< \brief Enable all Maple drivers */
102
103#define INIT_CDROM 0x00100000 /**< \brief Enable CD-ROM support */
104
105#define INIT_OCRAM 0x10000000 /**< \brief Use half of the dcache as RAM */
106#define INIT_NO_DCLOAD 0x20000000 /**< \brief Disable dcload */
107
108/** @} */
109
110__END_DECLS
111
112#endif /* !__ARCH_INIT_FLAGS_H */
Definitions for builtin attributes and compiler directives.
Shared initialization macros and utilities.