qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v3 1/5] dump: Include missing "cpu.h" header for tswap32/tswa


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v3 1/5] dump: Include missing "cpu.h" header for tswap32/tswap64() declarations
Date: Thu, 23 Feb 2023 22:19:26 +0100
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.8.0

On 23/2/23 19:01, Richard Henderson wrote:
On 2/23/23 00:09, Philippe Mathieu-Daudé wrote:
+#include "cpu.h"

Does it work to include "exec/cpu-all.h" instead?

We get:

include/exec/cpu-all.h:110:5: warning: 'TARGET_LONG_SIZE' is not defined, evaluates to 0 [-Wundef]
#if TARGET_LONG_SIZE == 4
     ^

TARGET_LONG_SIZE is defined in "exec/cpu-defs.h" which is
target specific. If I add "exec/cpu-defs.h" to "exec/cpu-all.h"
I get:

In file included from ../../dump/dump.c:18:
include/exec/cpu-all.h:439:8: error: incomplete definition of type 'struct ArchCPU'
     cpu->parent_obj.env_ptr = &cpu->env;
     ~~~^

Is it worth extracting the few tswapX() declarations to "exec/tswap.h"?

That's probably worthwhile, using cpu-param.h directly, perhaps, rather than pulling in the rest of cpu stuff?

TARGET_BIG_ENDIAN is only defined for target-specific objects, so this
as is it will never work (dump.o must be compiled for each target).

For heterogeneous emulation we need to pass a CPU[Arch]State* to
get the endianness of the CPU. As of today the endianness isn't
runtime, so this field doesn't exist in the common CPUState (some
arch might have some equivalent field).


This file uses tswap() 4 times in the same function: get_note_sizes(),
so I could extract it to a dump-target.c unit.
I have no clue what that file is for, but this particularity is odd.

Looking further, we have in "hw/core/cpu.h":

  int (SysemuCPUOps::write_elf32/64_note)(WriteCoreDumpFunction, ...

but no ReadCoreDumpFunction equivalent.



reply via email to

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