[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 669b49: xilinx_axi*: Re-implemented interconn

From: Anthony Liguori
Subject: [Qemu-commits] [qemu/qemu] 669b49: xilinx_axi*: Re-implemented interconnect
Date: Mon, 13 Aug 2012 03:00:11 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 669b4983018cf13e2adafe1b1b4e1e4053eeb90b
  Author: Peter A. G. Crosthwaite <address@hidden>
  Date:   2012-08-13 (Mon, 13 Aug 2012)

  Changed paths:
    M hw/Makefile.objs
    M hw/petalogix_ml605_mmu.c
    A hw/stream.c
    A hw/stream.h
    M hw/xilinx.h
    M hw/xilinx_axidma.c
    R hw/xilinx_axidma.h
    M hw/xilinx_axienet.c

  Log Message:
  xilinx_axi*: Re-implemented interconnect

Re-implemented the interconnect between the Xilinx AXI ethernet and DMA
controllers. A QOM interface "stream" is created, for the two stream interfaces.

As per Edgars request, this is designed to be more generic than AXI-stream,
so in the future we may see more clients of this interface beyond AXI stream.

This is based primarily on Paolos original refactoring of the interconnect.

Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Peter A.G. Crosthwaite <address@hidden>
Signed-off-by: Edgar E. Iglesias <address@hidden>

  Commit: 33e95c6328a3149a52615176617997c4f8f7088b
  Author: Anthony Liguori <address@hidden>
  Date:   2012-08-13 (Mon, 13 Aug 2012)

  Changed paths:
    M include/qemu/object.h
    M qom/object.c

  Log Message:
  qom: Reimplement Interfaces

The current implementation of Interfaces is poorly designed.  Each interface
that an object implements ends up being an object that's tracked by the
implementing object.  There's all sorts of gymnastics to deal with casting
between these objects.

But an interface shouldn't be associated with an Object.  Interfaces are global
to a class.  This patch moves all Interface knowledge to ObjectClass eliminating
the relationship between Object and Interfaces.

Interfaces are now abstract (as they should be) but this is okay.  Interfaces
essentially act as additional parents for the classes and are treated as such.

With this new implementation, we should fully support derived interfaces
including reimplementing an inherited interface.

PC: Rebased against qom-next merge Jun-2012.

PC: Removed replication of cast logic for interfaces, i.e. there is only
one cast function - object_dynamic_cast() (and object_dynamic_cast_assert())

Signed-off-by: Anthony Liguori <address@hidden>
Signed-off-by: Peter A. G. Crosthwaite <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Signed-off-by: Edgar E. Iglesias <address@hidden>

Compare: https://github.com/qemu/qemu/compare/346fe0c4c0b8...33e95c6328a3

reply via email to

[Prev in Thread] Current Thread [Next in Thread]