xref: /openbmc/qemu/include/hw/char/parallel.h (revision 5767815218efd3cbfd409505ed824d5f356044ae)
1bb3d5ea8SPhilippe Mathieu-Daudé #ifndef HW_PARALLEL_H
2bb3d5ea8SPhilippe Mathieu-Daudé #define HW_PARALLEL_H
3bb3d5ea8SPhilippe Mathieu-Daudé 
4*8ff98e09SBernhard Beschow #include "exec/memory.h"
5bb3d5ea8SPhilippe Mathieu-Daudé #include "hw/isa/isa.h"
6*8ff98e09SBernhard Beschow #include "hw/irq.h"
7*8ff98e09SBernhard Beschow #include "chardev/char-fe.h"
8bb3d5ea8SPhilippe Mathieu-Daudé #include "chardev/char.h"
9bb3d5ea8SPhilippe Mathieu-Daudé 
10*8ff98e09SBernhard Beschow typedef struct ParallelState {
11*8ff98e09SBernhard Beschow     MemoryRegion iomem;
12*8ff98e09SBernhard Beschow     uint8_t dataw;
13*8ff98e09SBernhard Beschow     uint8_t datar;
14*8ff98e09SBernhard Beschow     uint8_t status;
15*8ff98e09SBernhard Beschow     uint8_t control;
16*8ff98e09SBernhard Beschow     qemu_irq irq;
17*8ff98e09SBernhard Beschow     int irq_pending;
18*8ff98e09SBernhard Beschow     CharBackend chr;
19*8ff98e09SBernhard Beschow     int hw_driver;
20*8ff98e09SBernhard Beschow     int epp_timeout;
21*8ff98e09SBernhard Beschow     uint32_t last_read_offset; /* For debugging */
22*8ff98e09SBernhard Beschow     /* Memory-mapped interface */
23*8ff98e09SBernhard Beschow     int it_shift;
24*8ff98e09SBernhard Beschow } ParallelState;
25*8ff98e09SBernhard Beschow 
26bb3d5ea8SPhilippe Mathieu-Daudé void parallel_hds_isa_init(ISABus *bus, int n);
27bb3d5ea8SPhilippe Mathieu-Daudé 
28bb3d5ea8SPhilippe Mathieu-Daudé bool parallel_mm_init(MemoryRegion *address_space,
29bb3d5ea8SPhilippe Mathieu-Daudé                       hwaddr base, int it_shift, qemu_irq irq,
30bb3d5ea8SPhilippe Mathieu-Daudé                       Chardev *chr);
31bb3d5ea8SPhilippe Mathieu-Daudé 
32bb3d5ea8SPhilippe Mathieu-Daudé #endif
33