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
 |