summaryrefslogtreecommitdiffstats
path: root/include/hw/misc/macio/macio.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/hw/misc/macio/macio.h')
-rw-r--r--include/hw/misc/macio/macio.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/include/hw/misc/macio/macio.h b/include/hw/misc/macio/macio.h
index cfaa145500..970058b6ed 100644
--- a/include/hw/misc/macio/macio.h
+++ b/include/hw/misc/macio/macio.h
@@ -34,6 +34,42 @@
#include "hw/ppc/mac_dbdma.h"
#include "hw/ppc/openpic.h"
+/* MacIO virtual bus */
+#define TYPE_MACIO_BUS "macio-bus"
+#define MACIO_BUS(obj) OBJECT_CHECK(MacIOBusState, (obj), TYPE_MACIO_BUS)
+
+typedef struct MacIOBusState {
+ /*< private >*/
+ BusState parent_obj;
+} MacIOBusState;
+
+/* MacIO IDE */
+#define TYPE_MACIO_IDE "macio-ide"
+#define MACIO_IDE(obj) OBJECT_CHECK(MACIOIDEState, (obj), TYPE_MACIO_IDE)
+
+typedef struct MACIOIDEState {
+ /*< private >*/
+ SysBusDevice parent_obj;
+ /*< public >*/
+ uint32_t addr;
+ uint32_t channel;
+ qemu_irq real_ide_irq;
+ qemu_irq real_dma_irq;
+ qemu_irq ide_irq;
+ qemu_irq dma_irq;
+
+ MemoryRegion mem;
+ IDEBus bus;
+ IDEDMA dma;
+ void *dbdma;
+ bool dma_active;
+ uint32_t timing_reg;
+ uint32_t irq_reg;
+} MACIOIDEState;
+
+void macio_ide_init_drives(MACIOIDEState *ide, DriveInfo **hd_table);
+void macio_ide_register_dma(MACIOIDEState *ide);
+
#define TYPE_MACIO "macio"
#define MACIO(obj) OBJECT_CHECK(MacIOState, (obj), TYPE_MACIO)
@@ -42,6 +78,7 @@ typedef struct MacIOState {
PCIDevice parent;
/*< public >*/
+ MacIOBusState macio_bus;
MemoryRegion bar;
CUDAState cuda;
PMUState pmu;