[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 26/39] pcnet: convert to memory API
From: |
Bob Breuer |
Subject: |
Re: [Qemu-devel] [PATCH v4 26/39] pcnet: convert to memory API |
Date: |
Tue, 09 Aug 2011 01:55:47 -0500 |
User-agent: |
Thunderbird 2.0.0.24 (Windows/20100228) |
Avi Kivity wrote:
> Also related chips.
>
> Reviewed-by: Richard Henderson <address@hidden>
> Reviewed-by: Anthony Liguori <address@hidden>
> Signed-off-by: Avi Kivity <address@hidden>
> ---
> hw/lance.c | 31 ++++++++++-------------
> hw/pcnet-pci.c | 74 +++++++++++++++++++++++++++++++++----------------------
> hw/pcnet.h | 4 ++-
> 3 files changed, 61 insertions(+), 48 deletions(-)
>
> diff --git a/hw/lance.c b/hw/lance.c
> index ddb1cbb..8e20360 100644
> --- a/hw/lance.c
> +++ b/hw/lance.c
> @@ -55,8 +55,8 @@ static void parent_lance_reset(void *opaque, int irq, int
> level)
> pcnet_h_reset(&d->state);
> }
>
> -static void lance_mem_writew(void *opaque, target_phys_addr_t addr,
> - uint32_t val)
> +static void lance_mem_write(void *opaque, target_phys_addr_t addr,
> + uint64_t val, unsigned size)
> {
> SysBusPCNetState *d = opaque;
>
> @@ -64,7 +64,8 @@ static void lance_mem_writew(void *opaque,
> target_phys_addr_t addr,
> pcnet_ioport_writew(&d->state, addr, val & 0xffff);
> }
>
> -static uint32_t lance_mem_readw(void *opaque, target_phys_addr_t addr)
> +static uint64_t lance_mem_read(void *opaque, target_phys_addr_t addr,
> + unsigned size)
> {
> SysBusPCNetState *d = opaque;
> uint32_t val;
> @@ -74,16 +75,14 @@ static uint32_t lance_mem_readw(void *opaque,
> target_phys_addr_t addr)
> return val & 0xffff;
> }
>
> -static CPUReadMemoryFunc * const lance_mem_read[3] = {
> - NULL,
> - lance_mem_readw,
> - NULL,
> -};
> -
> -static CPUWriteMemoryFunc * const lance_mem_write[3] = {
> - NULL,
> - lance_mem_writew,
> - NULL,
> +static const MemoryRegionOps lance_mem_ops = {
> + .read = lance_mem_read,
> + .write = lance_mem_write,
> + .endianness = DEVICE_NATIVE_ENDIAN,
> + .valid = {
> + .min_access_size = 2,
> + .max_access_size = 2,
> + },
> };
>
> static void lance_cleanup(VLANClientState *nc)
> @@ -117,13 +116,11 @@ static int lance_init(SysBusDevice *dev)
> SysBusPCNetState *d = FROM_SYSBUS(SysBusPCNetState, dev);
> PCNetState *s = &d->state;
>
> - s->mmio_index =
> - cpu_register_io_memory(lance_mem_read, lance_mem_write, d,
> - DEVICE_NATIVE_ENDIAN);
> + memory_region_init_io(&s->mmio, &lance_mem_ops, s, "lance-mmio", 4);
You've switched up d and s here, so anything that tries to talk to the
ethernet, such as a sparc32 guest, will now cause Qemu to segfault.
Bob
- [Qemu-devel] [PATCH v4 00/39] Memory API, batch 2: PCI devices, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH v4 01/39] memory: rename PORTIO_END to PORTIO_END_OF_LIST, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH v4 03/39] vmsvga: don't remember pci BAR address in callback any more, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH v4 17/39] es1370: convert to memory API, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH v4 11/39] pci: pass I/O address space to new PCI bus, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH v4 22/39] intel-hda: convert to memory API, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH v4 16/39] eepro100: convert to memory API, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH v4 26/39] pcnet: convert to memory API, Avi Kivity, 2011/08/08
- Re: [Qemu-devel] [PATCH v4 26/39] pcnet: convert to memory API,
Bob Breuer <=
- Re: [Qemu-devel] [PATCH v4 26/39] pcnet: convert to memory API, Avi Kivity, 2011/08/09
- Re: [Qemu-devel] [PATCH v4 26/39] pcnet: convert to memory API, Michael S. Tsirkin, 2011/08/09
- Re: [Qemu-devel] [PATCH v4 26/39] pcnet: convert to memory API, Avi Kivity, 2011/08/09
- Re: [Qemu-devel] [PATCH v4 26/39] pcnet: convert to memory API, Michael S. Tsirkin, 2011/08/09
- Re: [Qemu-devel] [PATCH v4 26/39] pcnet: convert to memory API, Avi Kivity, 2011/08/09
[Qemu-devel] [PATCH v4 05/39] cirrus: simplify mmio BAR access functions, Avi Kivity, 2011/08/08
[Qemu-devel] [PATCH v4 12/39] pci: allow I/O BARs to be registered with pci_register_bar_region(), Avi Kivity, 2011/08/08
[Qemu-devel] [PATCH v4 02/39] pci: add API to get a BAR's mapped address, Avi Kivity, 2011/08/08
[Qemu-devel] [PATCH v4 35/39] pci: convert pci rom to memory API, Avi Kivity, 2011/08/08
[Qemu-devel] [PATCH v4 21/39] ahci: convert to memory API, Avi Kivity, 2011/08/08