#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