aboutsummaryrefslogtreecommitdiff
path: root/arm9/source/dev.h
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/source/dev.h')
-rw-r--r--arm9/source/dev.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/arm9/source/dev.h b/arm9/source/dev.h
new file mode 100644
index 0000000..272baea
--- /dev/null
+++ b/arm9/source/dev.h
@@ -0,0 +1,49 @@
+#ifndef DEV_H_
+ #define DEV_H_
+
+ #include "devices/system.h"
+ #include "devices/memory.h"
+ #include "devices/math.h"
+ #include "devices/clock.h"
+ #include "devices/input.h"
+ #include "devices/screen.h"
+ #include "devices/stream.h"
+ #include "devices/file.h"
+
+
+ // Signals that can be emitted by a device.
+ typedef enum {
+ SIG_NONE = 0,
+ SIG_HALT,
+ SIG_DB1,
+ SIG_DB2,
+ SIG_DB3,
+ SIG_DB4,
+ SIG_DB5,
+ SIG_DB6,
+ SIG_SLEEP,
+ SIG_RESET,
+ SIG_FORK,
+ } Signal;
+
+ // Bedrock device bus.
+ typedef struct {
+ SystemDevice system;
+ MemoryDevice memory;
+ MathDevice math;
+ ClockDevice clock;
+ InputDevice input;
+ ScreenDevice screen;
+ StreamDevice stream;
+ FileDevice file;
+ } DeviceBus;
+
+ // Methods.
+ void dev_reset(DeviceBus *d);
+ u8 dev_read(DeviceBus *d, u8 port);
+ Signal dev_write(DeviceBus *d, u8 port, u8 v);
+
+ // Duplicate declarations from main.
+ void open_keyboard(void);
+ void close_keyboard(void);
+#endif