Message ID | 20230223231755.81633-5-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | dump: Make most of it target agnostic (build once) | expand |
On 2/23/23 13:17, Philippe Mathieu-Daudé wrote: > @@ -2130,12 +2136,10 @@ void qmp_dump_guest_memory(bool paging, const char *file, > } > #endif > > -#ifndef TARGET_X86_64 > - if (has_format && format == DUMP_GUEST_MEMORY_FORMAT_WIN_DMP) { > - error_setg(errp, "Windows dump is only available for x86-64"); > + if (has_format && format == DUMP_GUEST_MEMORY_FORMAT_WIN_DMP > + && !win_dump_available(errp)) { Indentation is off. Otherwise looks plausible as an intermediate step before more targets. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
On 24/02/2023 00.17, Philippe Mathieu-Daudé wrote: > Remove a pair of TARGET_X86_64 #ifdef'ry by introducing > the win_dump_available() method. We'll soon extract it > to a stub file for non-x86 targets. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > dump/dump.c | 23 +++++++++++++---------- > dump/win_dump.c | 5 +++++ > dump/win_dump.h | 3 +++ > 3 files changed, 21 insertions(+), 10 deletions(-) > > diff --git a/dump/dump.c b/dump/dump.c > index 3784a9054d..c356a88be1 100644 > --- a/dump/dump.c > +++ b/dump/dump.c > @@ -30,9 +30,15 @@ > #include "qemu/main-loop.h" > #include "hw/misc/vmcoreinfo.h" > #include "migration/blocker.h" > - > -#ifdef TARGET_X86_64 > #include "win_dump.h" > + > +#ifndef TARGET_X86_64 > +bool win_dump_available(Error **errp) > +{ > + error_setg(errp, "Windows dump is only available for x86-64"); > + > + return false; > +} > #endif I think I'd prefer to introduce the stub file immediately here already, but it's just a matter of taste. So with the indentation fixed (that Richard mentioned): Reviewed-by: Thomas Huth <thuth@redhat.com>
diff --git a/dump/dump.c b/dump/dump.c index 3784a9054d..c356a88be1 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -30,9 +30,15 @@ #include "qemu/main-loop.h" #include "hw/misc/vmcoreinfo.h" #include "migration/blocker.h" - -#ifdef TARGET_X86_64 #include "win_dump.h" + +#ifndef TARGET_X86_64 +bool win_dump_available(Error **errp) +{ + error_setg(errp, "Windows dump is only available for x86-64"); + + return false; +} #endif #include <zlib.h> @@ -2130,12 +2136,10 @@ void qmp_dump_guest_memory(bool paging, const char *file, } #endif -#ifndef TARGET_X86_64 - if (has_format && format == DUMP_GUEST_MEMORY_FORMAT_WIN_DMP) { - error_setg(errp, "Windows dump is only available for x86-64"); + if (has_format && format == DUMP_GUEST_MEMORY_FORMAT_WIN_DMP + && !win_dump_available(errp)) { return; } -#endif #if !defined(WIN32) if (strstart(file, "fd:", &p)) { @@ -2217,10 +2221,9 @@ DumpGuestMemoryCapability *qmp_query_dump_guest_memory_capability(Error **errp) QAPI_LIST_APPEND(tail, DUMP_GUEST_MEMORY_FORMAT_KDUMP_SNAPPY); #endif - /* Windows dump is available only if target is x86_64 */ -#ifdef TARGET_X86_64 - QAPI_LIST_APPEND(tail, DUMP_GUEST_MEMORY_FORMAT_WIN_DMP); -#endif + if (win_dump_available(NULL)) { + QAPI_LIST_APPEND(tail, DUMP_GUEST_MEMORY_FORMAT_WIN_DMP); + } return cap; } diff --git a/dump/win_dump.c b/dump/win_dump.c index 12b7da5da0..ffeef4b738 100644 --- a/dump/win_dump.c +++ b/dump/win_dump.c @@ -24,6 +24,11 @@ #include "qemu/win_dump_defs.h" #include "win_dump.h" +bool win_dump_available(Error **errp) +{ + return true; +} + static size_t win_dump_ptr_size(bool x64) { return x64 ? sizeof(uint64_t) : sizeof(uint32_t); diff --git a/dump/win_dump.h b/dump/win_dump.h index 56f63683c3..9abce289ac 100644 --- a/dump/win_dump.h +++ b/dump/win_dump.h @@ -13,6 +13,9 @@ #include "sysemu/dump.h" +/* Windows dump is available only if target is x86_64 */ +bool win_dump_available(Error **errp); + void create_win_dump(DumpState *s, Error **errp); #endif /* WIN_DUMP_H */
Remove a pair of TARGET_X86_64 #ifdef'ry by introducing the win_dump_available() method. We'll soon extract it to a stub file for non-x86 targets. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- dump/dump.c | 23 +++++++++++++---------- dump/win_dump.c | 5 +++++ dump/win_dump.h | 3 +++ 3 files changed, 21 insertions(+), 10 deletions(-)