On 10/20/2026 6:43 PM, Philippe Mathieu-Daudé wrote: > On 19/10/26 23:26, Pierrick Bouvier wrote: >> This allows a specific cpu to declare its implementation of >> get_dump_info, needed by dump. >> >> Reviewed-by: Anton Johansson <[email protected]> >> Reviewed-by: Marc-André Lureau <[email protected]> >> Signed-off-by: Pierrick Bouvier <[email protected]> >> --- >> include/hw/core/sysemu-cpu-ops.h | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/include/hw/core/sysemu-cpu-ops.h b/include/hw/core/ >> sysemu-cpu-ops.h >> index d125540262d..2c7d0b94767 100644 >> --- a/include/hw/core/sysemu-cpu-ops.h >> +++ b/include/hw/core/sysemu-cpu-ops.h >> @@ -94,6 +94,12 @@ typedef struct SysemuCPUOps { >> */ >> int (*write_elf64_qemunote)(WriteCoreDumpFunction f, CPUState *cpu, >> DumpState *s); >> + /** >> + * @get_dump_info: fills @info with the endianness, class and >> architecture. >> + * Returns 0 on success, or -1 if the guest memory can't be dumped. > > QEMU style is to return int when errno is propagated, otherwise > a boolean is preferred (bonus if error propagated in Error *errp). >
Taking a look at it from this perspective, we never return any failure from any implementation. -1 was just here to say "not implemented". So I'll switch to no return (void) for get_dump_info, and size_t for get_note_size. Note: the global wrappers will keep on returning -1, only sysemu ops will be infallible. > Getting the prototype right is simpler at its addition than later > refactors. >> + */ >> + int (*get_dump_info)(const CPUState *cpu, ArchDumpInfo *info, >> + const GuestPhysBlockList *guest_phys_blocks); >> /** >> * @internal_is_big_endian: Callback to return %true if a CPU >> which supports >> * runtime configurable endianness is currently big-endian. >
