Message ID | 20241211230357.97036-6-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | misc: Reduce 'exec/tswap.h' inclusions | expand |
On 12/11/24 17:03, Philippe Mathieu-Daudé wrote: > Some files indirectly get "exec/tswap.h" declarations via > "exec/cpu-all.h". Include it directly to be able to remove > the former from the latter, otherwise we get: > > hw/ppc/virtex_ml507.c:123:19: error: call to undeclared function 'tswap32'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] > 123 | env->gpr[6] = tswap32(EPAPR_MAGIC); > | ^ > hw/ppc/sam460ex.c:238:23: error: call to undeclared function 'tswap32'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] > 238 | env->gpr[6] = tswap32(EPAPR_MAGIC); > | ^ > hw/ppc/spapr.c:1617:13: error: call to undeclared function 'tswap64'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] > 1617 | DIRTY_HPTE(HPTE(spapr->htab, i)); > | ^ > hw/ppc/spapr.c:1406:55: note: expanded from macro 'DIRTY_HPTE' > 1406 | #define DIRTY_HPTE(_hpte) ((*(uint64_t *)(_hpte)) |= tswap64(HPTE64_V_HPTE_DIRTY)) > | ^ > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> I suspect that, like Arm, all of these could be big-endian. AFAIK all ppc reset into BE; the OS has to flip the bit to get into LE mode. But I am less sure of this than I was for Arm. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index 78e2a46e753..3bbab263ae8 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -22,6 +22,7 @@ #include "sysemu/device_tree.h" #include "sysemu/block-backend.h" #include "exec/page-protection.h" +#include "exec/tswap.h" #include "hw/loader.h" #include "elf.h" #include "exec/memory.h" diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 0d4efaa0c09..02136b3295a 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -90,6 +90,7 @@ #include "hw/ppc/spapr_numa.h" #include <libfdt.h> +#include "exec/tswap.h" /* SLOF memory layout: * diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c index f378e5c4a90..0e9a2469599 100644 --- a/hw/ppc/virtex_ml507.c +++ b/hw/ppc/virtex_ml507.c @@ -26,6 +26,7 @@ #include "qemu/datadir.h" #include "qemu/units.h" #include "exec/page-protection.h" +#include "exec/tswap.h" #include "cpu.h" #include "hw/sysbus.h" #include "hw/char/serial-mm.h"
Some files indirectly get "exec/tswap.h" declarations via "exec/cpu-all.h". Include it directly to be able to remove the former from the latter, otherwise we get: hw/ppc/virtex_ml507.c:123:19: error: call to undeclared function 'tswap32'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 123 | env->gpr[6] = tswap32(EPAPR_MAGIC); | ^ hw/ppc/sam460ex.c:238:23: error: call to undeclared function 'tswap32'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 238 | env->gpr[6] = tswap32(EPAPR_MAGIC); | ^ hw/ppc/spapr.c:1617:13: error: call to undeclared function 'tswap64'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 1617 | DIRTY_HPTE(HPTE(spapr->htab, i)); | ^ hw/ppc/spapr.c:1406:55: note: expanded from macro 'DIRTY_HPTE' 1406 | #define DIRTY_HPTE(_hpte) ((*(uint64_t *)(_hpte)) |= tswap64(HPTE64_V_HPTE_DIRTY)) | ^ Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/ppc/sam460ex.c | 1 + hw/ppc/spapr.c | 1 + hw/ppc/virtex_ml507.c | 1 + 3 files changed, 3 insertions(+)