diff options
Diffstat (limited to 'arm9/source/dev.h')
-rw-r--r-- | arm9/source/dev.h | 49 |
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 |