stellaris_enet: convert to memory API

Reviewed-by: Richard Henderson  <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
Avi Kivity 2011-07-18 11:58:50 +03:00
parent 13faf2a71f
commit f070e1e227
1 changed files with 12 additions and 17 deletions

View File

@ -69,7 +69,7 @@ typedef struct {
NICState *nic; NICState *nic;
NICConf conf; NICConf conf;
qemu_irq irq; qemu_irq irq;
int mmio_index; MemoryRegion mmio;
} stellaris_enet_state; } stellaris_enet_state;
static void stellaris_enet_update(stellaris_enet_state *s) static void stellaris_enet_update(stellaris_enet_state *s)
@ -130,7 +130,8 @@ static int stellaris_enet_can_receive(VLANClientState *nc)
return (s->np < 31); return (s->np < 31);
} }
static uint32_t stellaris_enet_read(void *opaque, target_phys_addr_t offset) static uint64_t stellaris_enet_read(void *opaque, target_phys_addr_t offset,
unsigned size)
{ {
stellaris_enet_state *s = (stellaris_enet_state *)opaque; stellaris_enet_state *s = (stellaris_enet_state *)opaque;
uint32_t val; uint32_t val;
@ -198,7 +199,7 @@ static uint32_t stellaris_enet_read(void *opaque, target_phys_addr_t offset)
} }
static void stellaris_enet_write(void *opaque, target_phys_addr_t offset, static void stellaris_enet_write(void *opaque, target_phys_addr_t offset,
uint32_t value) uint64_t value, unsigned size)
{ {
stellaris_enet_state *s = (stellaris_enet_state *)opaque; stellaris_enet_state *s = (stellaris_enet_state *)opaque;
@ -303,17 +304,12 @@ static void stellaris_enet_write(void *opaque, target_phys_addr_t offset,
} }
} }
static CPUReadMemoryFunc * const stellaris_enet_readfn[] = { static const MemoryRegionOps stellaris_enet_ops = {
stellaris_enet_read, .read = stellaris_enet_read,
stellaris_enet_read, .write = stellaris_enet_write,
stellaris_enet_read .endianness = DEVICE_NATIVE_ENDIAN,
}; };
static CPUWriteMemoryFunc * const stellaris_enet_writefn[] = {
stellaris_enet_write,
stellaris_enet_write,
stellaris_enet_write
};
static void stellaris_enet_reset(stellaris_enet_state *s) static void stellaris_enet_reset(stellaris_enet_state *s)
{ {
s->mdv = 0x80; s->mdv = 0x80;
@ -391,7 +387,7 @@ static void stellaris_enet_cleanup(VLANClientState *nc)
unregister_savevm(&s->busdev.qdev, "stellaris_enet", s); unregister_savevm(&s->busdev.qdev, "stellaris_enet", s);
cpu_unregister_io_memory(s->mmio_index); memory_region_destroy(&s->mmio);
g_free(s); g_free(s);
} }
@ -408,10 +404,9 @@ static int stellaris_enet_init(SysBusDevice *dev)
{ {
stellaris_enet_state *s = FROM_SYSBUS(stellaris_enet_state, dev); stellaris_enet_state *s = FROM_SYSBUS(stellaris_enet_state, dev);
s->mmio_index = cpu_register_io_memory(stellaris_enet_readfn, memory_region_init_io(&s->mmio, &stellaris_enet_ops, s, "stellaris_enet",
stellaris_enet_writefn, s, 0x1000);
DEVICE_NATIVE_ENDIAN); sysbus_init_mmio_region(dev, &s->mmio);
sysbus_init_mmio(dev, 0x1000, s->mmio_index);
sysbus_init_irq(dev, &s->irq); sysbus_init_irq(dev, &s->irq);
qemu_macaddr_default_if_unset(&s->conf.macaddr); qemu_macaddr_default_if_unset(&s->conf.macaddr);