9cc44d9bd6
Allows the struct to be embedded directly into device models without additional allocation. Suggested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Bernhard Beschow <shentey@gmail.com> Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20230612081238.1742-3-shentey@gmail.com> [PMD: Update MAINTAINERS entry and use SPDX license identifier] Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
35 lines
786 B
C
35 lines
786 B
C
#ifndef HW_PARALLEL_H
|
|
#define HW_PARALLEL_H
|
|
|
|
#include "exec/ioport.h"
|
|
#include "exec/memory.h"
|
|
#include "hw/isa/isa.h"
|
|
#include "hw/irq.h"
|
|
#include "chardev/char-fe.h"
|
|
#include "chardev/char.h"
|
|
|
|
typedef struct ParallelState {
|
|
MemoryRegion iomem;
|
|
uint8_t dataw;
|
|
uint8_t datar;
|
|
uint8_t status;
|
|
uint8_t control;
|
|
qemu_irq irq;
|
|
int irq_pending;
|
|
CharBackend chr;
|
|
int hw_driver;
|
|
int epp_timeout;
|
|
uint32_t last_read_offset; /* For debugging */
|
|
/* Memory-mapped interface */
|
|
int it_shift;
|
|
PortioList portio_list;
|
|
} ParallelState;
|
|
|
|
void parallel_hds_isa_init(ISABus *bus, int n);
|
|
|
|
bool parallel_mm_init(MemoryRegion *address_space,
|
|
hwaddr base, int it_shift, qemu_irq irq,
|
|
Chardev *chr);
|
|
|
|
#endif
|