ioport: Move portio types to ioport.h
This decouples memory.h from ioport.h, concentrating all portio related types in a single header. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
d67f679d99
commit
5767e4e198
|
@ -25,6 +25,7 @@
|
||||||
#define IOPORT_H
|
#define IOPORT_H
|
||||||
|
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
|
#include "exec/memory.h"
|
||||||
|
|
||||||
typedef uint32_t pio_addr_t;
|
typedef uint32_t pio_addr_t;
|
||||||
#define FMT_pioaddr PRIx32
|
#define FMT_pioaddr PRIx32
|
||||||
|
@ -32,9 +33,16 @@ typedef uint32_t pio_addr_t;
|
||||||
#define MAX_IOPORTS (64 * 1024)
|
#define MAX_IOPORTS (64 * 1024)
|
||||||
#define IOPORTS_MASK (MAX_IOPORTS - 1)
|
#define IOPORTS_MASK (MAX_IOPORTS - 1)
|
||||||
|
|
||||||
/* These should really be in isa.h, but are here to make pc.h happy. */
|
typedef struct MemoryRegionPortio {
|
||||||
typedef void (IOPortWriteFunc)(void *opaque, uint32_t address, uint32_t data);
|
uint32_t offset;
|
||||||
typedef uint32_t (IOPortReadFunc)(void *opaque, uint32_t address);
|
uint32_t len;
|
||||||
|
unsigned size;
|
||||||
|
uint32_t (*read)(void *opaque, uint32_t address);
|
||||||
|
void (*write)(void *opaque, uint32_t address, uint32_t data);
|
||||||
|
uint32_t base; /* private field */
|
||||||
|
} MemoryRegionPortio;
|
||||||
|
|
||||||
|
#define PORTIO_END_OF_LIST() { }
|
||||||
|
|
||||||
void cpu_outb(pio_addr_t addr, uint8_t val);
|
void cpu_outb(pio_addr_t addr, uint8_t val);
|
||||||
void cpu_outw(pio_addr_t addr, uint16_t val);
|
void cpu_outw(pio_addr_t addr, uint16_t val);
|
||||||
|
@ -43,9 +51,6 @@ uint8_t cpu_inb(pio_addr_t addr);
|
||||||
uint16_t cpu_inw(pio_addr_t addr);
|
uint16_t cpu_inw(pio_addr_t addr);
|
||||||
uint32_t cpu_inl(pio_addr_t addr);
|
uint32_t cpu_inl(pio_addr_t addr);
|
||||||
|
|
||||||
struct MemoryRegion;
|
|
||||||
struct MemoryRegionPortio;
|
|
||||||
|
|
||||||
typedef struct PortioList {
|
typedef struct PortioList {
|
||||||
const struct MemoryRegionPortio *ports;
|
const struct MemoryRegionPortio *ports;
|
||||||
struct MemoryRegion *address_space;
|
struct MemoryRegion *address_space;
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include "exec/hwaddr.h"
|
#include "exec/hwaddr.h"
|
||||||
#endif
|
#endif
|
||||||
#include "qemu/queue.h"
|
#include "qemu/queue.h"
|
||||||
#include "exec/ioport.h"
|
|
||||||
#include "qemu/int128.h"
|
#include "qemu/int128.h"
|
||||||
#include "qemu/notify.h"
|
#include "qemu/notify.h"
|
||||||
|
|
||||||
|
@ -32,7 +31,6 @@
|
||||||
#define MAX_PHYS_ADDR (((hwaddr)1 << MAX_PHYS_ADDR_SPACE_BITS) - 1)
|
#define MAX_PHYS_ADDR (((hwaddr)1 << MAX_PHYS_ADDR_SPACE_BITS) - 1)
|
||||||
|
|
||||||
typedef struct MemoryRegionOps MemoryRegionOps;
|
typedef struct MemoryRegionOps MemoryRegionOps;
|
||||||
typedef struct MemoryRegionPortio MemoryRegionPortio;
|
|
||||||
typedef struct MemoryRegionMmio MemoryRegionMmio;
|
typedef struct MemoryRegionMmio MemoryRegionMmio;
|
||||||
|
|
||||||
/* Must match *_DIRTY_FLAGS in cpu-all.h. To be replaced with dynamic
|
/* Must match *_DIRTY_FLAGS in cpu-all.h. To be replaced with dynamic
|
||||||
|
@ -166,17 +164,6 @@ struct MemoryRegion {
|
||||||
NotifierList iommu_notify;
|
NotifierList iommu_notify;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MemoryRegionPortio {
|
|
||||||
uint32_t offset;
|
|
||||||
uint32_t len;
|
|
||||||
unsigned size;
|
|
||||||
IOPortReadFunc *read;
|
|
||||||
IOPortWriteFunc *write;
|
|
||||||
uint32_t base; /* private field */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define PORTIO_END_OF_LIST() { }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AddressSpace: describes a mapping of addresses to #MemoryRegion objects
|
* AddressSpace: describes a mapping of addresses to #MemoryRegion objects
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue