Hello, As requested by Paolo, this replaces Kate's previous memory_mapping split and my follow-ups and instead goes directly for moving things to CPUState.
All knowledge about dump / memory mapping are moved away from configure. v4 incorporates minor API changes, suggested by Luiz, as well as two CPUArchState cleanups previously on qom-cpu-10 and goes on to make memory_mapping.c target-independent. Note: dump.c depends on TARGET_PAGE_SIZE. Since it is only used in ifs and function arguments, we could easily introduce a target_get_page_size() helper to abstract this info out from dump.c, but that's outside the scope of this guest-memory-dump series. Available for testing here: git://github.com/afaerber/qemu-cpu.git qom-cpu-dump-stubs.v4 https://github.com/afaerber/qemu-cpu/commits/qom-cpu-dump-stubs.v4 Regards, Andreas v3 -> v4: * Made cpu_paging_enabled() CPUState argument const. * Added Error** argument to cpu_get_memory_mapping(). * Inserted patch to change cpu_paging_enabled() default to false. * Redid qemu_get_guest_memory_mapping() cleanup with two CPU iterations and Error. * Appended two patches to clean up CPUArchState uses. * Re-appended target_ulong replacement patch. v2 -> v3: * Incorporate Luiz' x86 bugfix. * Append a patch to resolve the open-coded CPU loops. * Massage CONFIG_HAVE_* commit messages (they were previously reordered). v1 -> v2: * Dropped Kate's memory_mapping split * Dropped target_ulong cleanup and replaced with typedef * Amended CPUArchState cleanups with introducing hooks in CPUClass * Drop memory_memory stubs instead of moving them Cc: Wen Congyang <we...@cn.fujitsu.com> Cc: Qiao Nuohan <qiaonuo...@cn.fujitsu.com> Cc: Jens Freimann <jf...@linux.vnet.ibm.com> Cc: Vincent Rabin <ra...@rab.in> Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: Luiz Capitulino <lcapitul...@redhat.com> Andreas Färber (13): dump: Move stubs into libqemustub.a cpu: Turn cpu_paging_enabled() into a CPUState hook memory_mapping: Move MemoryMappingList typedef to qemu/typedefs.h cpu: Turn cpu_get_memory_mapping() into a CPUState hook memory_mapping: Drop qemu_get_memory_mapping() stub dump: Drop qmp_dump_guest_memory() stub and build for all targets cpu: Change default for CPUClass::get_paging_enabled() memory_mapping: Cleanup qemu_get_guest_memory_mapping() dump: Abstract dump_init() with cpu_synchronize_all_states() dump: Abstract dump_init() further with qemu_for_each_cpu() dump: Abstract write_elf{64,32}_notes() with qemu_for_each_cpu() memory_mapping: Use hwaddr type for MemoryMapping virt_addr field memory_mapping: Build only once Eduardo Habkost (3): pc: Create pc-*-1.6 machine-types target-i386: Update model values on Conroe/Penryn/Nehalem CPU models target-i386: Set level=4 on Conroe/Penryn/Nehalem Igor Mammedov (2): pc: Fix crash when attempting to hotplug CPU with negative ID target-i386: cpu: Fix potential buffer overrun in get_register_name_32() Makefile.objs | 1 + Makefile.target | 7 +- configure | 8 -- dump.c | 157 +++++++++++++++++++++++++++----------- hmp-commands.hx | 2 - hw/i386/pc.c | 5 ++ hw/i386/pc_piix.c | 18 ++++- hw/i386/pc_q35.c | 16 +++- include/exec/cpu-all.h | 28 ------- include/exec/cpu-common.h | 33 ++++++++ include/hw/i386/pc.h | 28 +++++++ include/qemu/typedefs.h | 2 + include/qom/cpu.h | 24 ++++++ include/sysemu/memory_mapping.h | 19 ++--- memory_mapping-stub.c | 33 -------- memory_mapping.c | 57 ++++++++------ qom/cpu.c | 29 +++++++ stubs/Makefile.objs | 1 + dump-stub.c => stubs/dump.c | 8 -- target-i386/arch_memory_mapping.c | 16 ++-- target-i386/cpu-qom.h | 3 + target-i386/cpu.c | 26 ++++--- 22 files changed, 336 insertions(+), 185 deletions(-) delete mode 100644 memory_mapping-stub.c rename dump-stub.c => stubs/dump.c (65%) -- 1.8.1.4