summaryrefslogtreecommitdiffstats
path: root/include/hw/isa
diff options
context:
space:
mode:
authorHervé Poussineau <hpoussin@reactos.org>2016-02-03 11:28:56 -0500
committerTimothy Pearson <tpearson@raptorengineering.com>2019-11-29 19:31:26 -0600
commit689e691fabf2583d90e47f568997945883c27b6a (patch)
treeb89a562c1d15e90d9d6e20c8a84f871bac912b35 /include/hw/isa
parent81bf5d519d0489f5e0ec2a94cc6d1b066faacfc2 (diff)
downloadhqemu-689e691fabf2583d90e47f568997945883c27b6a.zip
hqemu-689e691fabf2583d90e47f568997945883c27b6a.tar.gz
i8257: move state definition to new independent header
We will now be able to embed the i8257 interrupt controller in another object. Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Message-id: 1453843944-26833-10-git-send-email-hpoussin@reactos.org Signed-off-by: John Snow <jsnow@redhat.com>
Diffstat (limited to 'include/hw/isa')
-rw-r--r--include/hw/isa/i8257.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/include/hw/isa/i8257.h b/include/hw/isa/i8257.h
new file mode 100644
index 0000000..8d34ed1
--- /dev/null
+++ b/include/hw/isa/i8257.h
@@ -0,0 +1,42 @@
+#ifndef HW_I8257_H
+#define HW_I8257_H
+
+#define TYPE_I8257 "i8257"
+
+typedef struct I8257Regs {
+ int now[2];
+ uint16_t base[2];
+ uint8_t mode;
+ uint8_t page;
+ uint8_t pageh;
+ uint8_t dack;
+ uint8_t eop;
+ DMA_transfer_handler transfer_handler;
+ void *opaque;
+} I8257Regs;
+
+typedef struct I8257State {
+ /* <private> */
+ ISADevice parent_obj;
+
+ /* <public> */
+ int32_t base;
+ int32_t page_base;
+ int32_t pageh_base;
+ int32_t dshift;
+
+ uint8_t status;
+ uint8_t command;
+ uint8_t mask;
+ uint8_t flip_flop;
+ I8257Regs regs[4];
+ MemoryRegion channel_io;
+ MemoryRegion cont_io;
+
+ QEMUBH *dma_bh;
+ bool dma_bh_scheduled;
+ int running;
+} I8257State;
+
+#endif
+
OpenPOWER on IntegriCloud