mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-24 12:09:58 +00:00
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:
parent
e8906f3529
commit
58160bafa2
@ -69,7 +69,7 @@ typedef struct {
|
||||
NICState *nic;
|
||||
NICConf conf;
|
||||
qemu_irq irq;
|
||||
int mmio_index;
|
||||
MemoryRegion mmio;
|
||||
} stellaris_enet_state;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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;
|
||||
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,
|
||||
uint32_t value)
|
||||
uint64_t value, unsigned size)
|
||||
{
|
||||
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[] = {
|
||||
stellaris_enet_read,
|
||||
stellaris_enet_read,
|
||||
stellaris_enet_read
|
||||
static const MemoryRegionOps stellaris_enet_ops = {
|
||||
.read = stellaris_enet_read,
|
||||
.write = stellaris_enet_write,
|
||||
.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)
|
||||
{
|
||||
s->mdv = 0x80;
|
||||
@ -391,7 +387,7 @@ static void stellaris_enet_cleanup(VLANClientState *nc)
|
||||
|
||||
unregister_savevm(&s->busdev.qdev, "stellaris_enet", s);
|
||||
|
||||
cpu_unregister_io_memory(s->mmio_index);
|
||||
memory_region_destroy(&s->mmio);
|
||||
|
||||
g_free(s);
|
||||
}
|
||||
@ -408,10 +404,9 @@ static int stellaris_enet_init(SysBusDevice *dev)
|
||||
{
|
||||
stellaris_enet_state *s = FROM_SYSBUS(stellaris_enet_state, dev);
|
||||
|
||||
s->mmio_index = cpu_register_io_memory(stellaris_enet_readfn,
|
||||
stellaris_enet_writefn, s,
|
||||
DEVICE_NATIVE_ENDIAN);
|
||||
sysbus_init_mmio(dev, 0x1000, s->mmio_index);
|
||||
memory_region_init_io(&s->mmio, &stellaris_enet_ops, s, "stellaris_enet",
|
||||
0x1000);
|
||||
sysbus_init_mmio_region(dev, &s->mmio);
|
||||
sysbus_init_irq(dev, &s->irq);
|
||||
qemu_macaddr_default_if_unset(&s->conf.macaddr);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user