qemu-e2k/include/exec
Markus Armbruster 1b53ecd909 memory: Fix type of IOMMUMemoryRegionClass member @parent_class
TYPE_IOMMU_MEMORY_REGION is a direct subtype of TYPE_MEMORY_REGION.
Its instance struct is IOMMUMemoryRegion, and its first member is a
MemoryRegion.  Correct.  Its class struct is IOMMUMemoryRegionClass,
and its first member is a DeviceClass.  Wrong.  Messed up when commit
1221a47467 introduced the QOM type.  It even included hw/qdev-core.h
just for that.

TYPE_MEMORY_REGION doesn't bother to define a class struct.  This is
fine, it simply defaults to its super-type TYPE_OBJECT's class struct
ObjectClass.  Changing IOMMUMemoryRegionClass's first member's type to
ObjectClass would be a minimal fix, if a bit brittle: if
TYPE_MEMORY_REGION ever acquired own class struct, we'd have to update
IOMMUMemoryRegionClass to use it.

Fix it the clean and robust way instead: give TYPE_MEMORY_REGION its
own class struct MemoryRegionClass now, and use it for
IOMMUMemoryRegionClass's first member.

Revert the include of hw/qdev-core.h, and fix the few files that have
come to rely on it.

Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20190812052359.30071-5-armbru@redhat.com>
2019-08-16 13:31:51 +02:00
..
user include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
address-spaces.h
cpu_ldst_template.h cpu: Replace ENV_GET_CPU with env_cpu 2019-06-10 07:03:34 -07:00
cpu_ldst_useronly_template.h tcg: Release mmap_lock on translation fault 2019-07-14 12:19:01 +02:00
cpu_ldst.h linux-user: check valid address in access_ok() 2019-07-18 13:57:28 +02:00
cpu-all.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
cpu-common.h Header cleanups 2019-05-03 13:03:04 +02:00
cpu-defs.h cpu: Remove CPU_COMMON 2019-06-10 07:03:42 -07:00
cputlb.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
exec-all.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
gdbstub.h
gen-icount.h cpu: Move icount_decr to CPUNegativeOffsetState 2019-06-10 07:03:42 -07:00
helper-gen.h
helper-head.h include/exec/helper-head.h: support "const void *" in helper calls 2019-02-21 10:22:24 -08:00
helper-proto.h
helper-tcg.h
hwaddr.h
ioport.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
log.h qom/cpu: Simplify how CPUClass:cpu_dump_state() prints 2019-04-18 22:18:59 +02:00
memattrs.h
memory_ldst_cached.inc.h
memory_ldst_phys.inc.h
memory_ldst.inc.h
memory-internal.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
memory.h memory: Fix type of IOMMUMemoryRegionClass member @parent_class 2019-08-16 13:31:51 +02:00
poison.h include/exec/poison: Mark TARGET_FMT_lu as poisoned, too 2019-05-09 09:37:09 +02:00
ram_addr.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
ramlist.h
softmmu-semi.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
target_page.h
tb-context.h
tb-hash.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
tb-lookup.h accel/tcg: Consider cluster index in tb_lookup__cpu_state() 2019-02-06 03:39:24 +00:00
translator.h Clean up decorations and whitespace around header guards 2019-05-13 08:58:55 +02:00