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:
Jan Kiszka 2013-06-22 08:07:07 +02:00 committed by Paolo Bonzini
parent d67f679d99
commit 5767e4e198
2 changed files with 11 additions and 19 deletions

View file

@ -25,6 +25,7 @@
#define IOPORT_H
#include "qemu-common.h"
#include "exec/memory.h"
typedef uint32_t pio_addr_t;
#define FMT_pioaddr PRIx32
@ -32,9 +33,16 @@ typedef uint32_t pio_addr_t;
#define MAX_IOPORTS (64 * 1024)
#define IOPORTS_MASK (MAX_IOPORTS - 1)
/* These should really be in isa.h, but are here to make pc.h happy. */
typedef void (IOPortWriteFunc)(void *opaque, uint32_t address, uint32_t data);
typedef uint32_t (IOPortReadFunc)(void *opaque, uint32_t address);
typedef struct MemoryRegionPortio {
uint32_t offset;
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_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);
uint32_t cpu_inl(pio_addr_t addr);
struct MemoryRegion;
struct MemoryRegionPortio;
typedef struct PortioList {
const struct MemoryRegionPortio *ports;
struct MemoryRegion *address_space;

View file

@ -24,7 +24,6 @@
#include "exec/hwaddr.h"
#endif
#include "qemu/queue.h"
#include "exec/ioport.h"
#include "qemu/int128.h"
#include "qemu/notify.h"
@ -32,7 +31,6 @@
#define MAX_PHYS_ADDR (((hwaddr)1 << MAX_PHYS_ADDR_SPACE_BITS) - 1)
typedef struct MemoryRegionOps MemoryRegionOps;
typedef struct MemoryRegionPortio MemoryRegionPortio;
typedef struct MemoryRegionMmio MemoryRegionMmio;
/* Must match *_DIRTY_FLAGS in cpu-all.h. To be replaced with dynamic
@ -166,17 +164,6 @@ struct MemoryRegion {
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
*/