Commit 0d8d6a24 authored by Thomas Huth's avatar Thomas Huth
Browse files

ppc: Fix duplicated typedefs to be able to compile with Clang in gnu99 mode



When compiling the ppc code with clang and -std=gnu99, there are a
couple of warnings/errors like this one:

  CC      ppc64-softmmu/hw/intc/xics.o
In file included from hw/intc/xics.c:35:
include/hw/ppc/xics.h:43:25: error: redefinition of typedef 'ICPState' is a C11 feature
      [-Werror,-Wtypedef-redefinition]
typedef struct ICPState ICPState;
                        ^
target/ppc/cpu.h:1181:25: note: previous definition is here
typedef struct ICPState ICPState;
                        ^
Work around the problems by including the proper headers in spapr.h
and by using struct forward declarations in cpu.h.

Reviewed-by: default avatarGreg Kurz <groug@kaod.org>
Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
parent a51d5afc
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -8,15 +8,16 @@
#include "hw/mem/pc-dimm.h"
#include "hw/ppc/spapr_ovec.h"
#include "hw/ppc/spapr_irq.h"
#include "hw/ppc/spapr_xive.h"  /* For sPAPRXive */
#include "hw/ppc/xics.h"        /* For ICSState */

struct VIOsPAPRBus;
struct sPAPRPHBState;
struct sPAPRNVRAM;

typedef struct sPAPREventLogEntry sPAPREventLogEntry;
typedef struct sPAPREventSource sPAPREventSource;
typedef struct sPAPRPendingHPT sPAPRPendingHPT;
typedef struct ICSState ICSState;
typedef struct sPAPRXive sPAPRXive;

#define HPTE64_V_HPTE_DIRTY     0x0000000000000040ULL
#define SPAPR_ENTRY_POINT       0x100
+0 −2
Original line number Diff line number Diff line
@@ -41,8 +41,6 @@ bool spapr_xive_irq_claim(sPAPRXive *xive, uint32_t lisn, bool lsi);
bool spapr_xive_irq_free(sPAPRXive *xive, uint32_t lisn);
void spapr_xive_pic_print_info(sPAPRXive *xive, Monitor *mon);

typedef struct sPAPRMachineState sPAPRMachineState;

void spapr_xive_hcall_init(sPAPRMachineState *spapr);
void spapr_dt_xive(sPAPRMachineState *spapr, uint32_t nr_servers, void *fdt,
                   uint32_t phandle);
+5 −4
Original line number Diff line number Diff line
@@ -1177,8 +1177,9 @@ do { \

typedef struct PPCVirtualHypervisor PPCVirtualHypervisor;
typedef struct PPCVirtualHypervisorClass PPCVirtualHypervisorClass;
typedef struct XiveTCTX XiveTCTX;
typedef struct ICPState ICPState;

struct XiveTCTX;
struct ICPState;

/**
 * PowerPCCPU:
@@ -1197,8 +1198,8 @@ struct PowerPCCPU {
    int vcpu_id;
    uint32_t compat_pvr;
    PPCVirtualHypervisor *vhyp;
    ICPState *icp;
    XiveTCTX *tctx;
    struct ICPState *icp;
    struct XiveTCTX *tctx;
    void *machine_data;
    int32_t node_id; /* NUMA node this CPU belongs to */
    PPCHash64Options *hash64_opts;