diff options
Diffstat (limited to 'emu/bus.h')
-rw-r--r-- | emu/bus.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/emu/bus.h b/emu/bus.h new file mode 100644 index 0000000..baa2fe2 --- /dev/null +++ b/emu/bus.h @@ -0,0 +1,28 @@ +#ifndef BUS_H +#define BUS_H + +#include "device.h" + +enum { + MAX_NOF_DEVICES = 5 +}; + +typedef struct registered_device_t { + device_t *device; + uint16_t from; + uint16_t to; +} registered_device_t; + +typedef struct bus_t { + device_t base; + int nof_devices; + registered_device_t devices[MAX_NOF_DEVICES]; +} bus_t; + +void bus_init( bus_t *bus ); +void bus_register( bus_t *bus, device_t *device, uint16_t from, uint16_t to ); +uint8_t bus_read( void *obj, uint16_t addr ); +void bus_write( void *obj, uint16_t addr, uint8_t data ); +void bus_deinit( void *obj ); + +#endif |