Message ID | 20170913132417.24384-8-david@redhat.com |
---|---|
State | New |
Headers | show |
Series | s390x cleanups and CPU hotplug via device_add | expand |
On 13.09.2017 15:24, David Hildenbrand wrote: > This allows us to drop inclusion of cpu_models.h in cpu-qom.h, and > prepares for using cpu-qom.h as a s390 specific version of typedefs.h > > Signed-off-by: David Hildenbrand <david@redhat.com> > --- > target/s390x/cpu-qom.h | 5 ++++- > target/s390x/cpu.h | 5 +++-- > target/s390x/cpu_models.h | 8 ++++---- > 3 files changed, 11 insertions(+), 7 deletions(-) [...] > diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h > index 372f7d8885..4a0a59dfbc 100644 > --- a/target/s390x/cpu.h > +++ b/target/s390x/cpu.h > @@ -25,6 +25,7 @@ > > #include "qemu-common.h" > #include "cpu-qom.h" > +#include "cpu_models.h" Do we really need to include cpu_models.h here? Looking at your changes below, it does not seem to be necessary? > #define TARGET_LONG_BITS 64 > > @@ -80,7 +81,7 @@ typedef struct MchkQueue { > uint16_t type; > } MchkQueue; > > -typedef struct CPUS390XState { > +struct CPUS390XState { > uint64_t regs[16]; /* GP registers */ > /* > * The floating point registers are part of the vector registers. > @@ -174,7 +175,7 @@ typedef struct CPUS390XState { > /* currently processed sigp order */ > uint8_t sigp_order; > > -} CPUS390XState; > +}; > > static inline CPU_DoubleU *get_freg(CPUS390XState *cs, int nr) > { Thomas
On 13.09.2017 16:27, Thomas Huth wrote: > On 13.09.2017 15:24, David Hildenbrand wrote: >> This allows us to drop inclusion of cpu_models.h in cpu-qom.h, and >> prepares for using cpu-qom.h as a s390 specific version of typedefs.h >> >> Signed-off-by: David Hildenbrand <david@redhat.com> >> --- >> target/s390x/cpu-qom.h | 5 ++++- >> target/s390x/cpu.h | 5 +++-- >> target/s390x/cpu_models.h | 8 ++++---- >> 3 files changed, 11 insertions(+), 7 deletions(-) > [...] >> diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h >> index 372f7d8885..4a0a59dfbc 100644 >> --- a/target/s390x/cpu.h >> +++ b/target/s390x/cpu.h >> @@ -25,6 +25,7 @@ >> >> #include "qemu-common.h" >> #include "cpu-qom.h" >> +#include "cpu_models.h" > > Do we really need to include cpu_models.h here? Looking at your changes > below, it does not seem to be necessary? Yes, due to s390_has_feat(), and I want to avoid cleaning all the other calling places up in this patch.
On 13.09.2017 16:44, David Hildenbrand wrote: > On 13.09.2017 16:27, Thomas Huth wrote: >> On 13.09.2017 15:24, David Hildenbrand wrote: >>> This allows us to drop inclusion of cpu_models.h in cpu-qom.h, and >>> prepares for using cpu-qom.h as a s390 specific version of typedefs.h >>> >>> Signed-off-by: David Hildenbrand <david@redhat.com> >>> --- >>> target/s390x/cpu-qom.h | 5 ++++- >>> target/s390x/cpu.h | 5 +++-- >>> target/s390x/cpu_models.h | 8 ++++---- >>> 3 files changed, 11 insertions(+), 7 deletions(-) >> [...] >>> diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h >>> index 372f7d8885..4a0a59dfbc 100644 >>> --- a/target/s390x/cpu.h >>> +++ b/target/s390x/cpu.h >>> @@ -25,6 +25,7 @@ >>> >>> #include "qemu-common.h" >>> #include "cpu-qom.h" >>> +#include "cpu_models.h" >> >> Do we really need to include cpu_models.h here? Looking at your changes >> below, it does not seem to be necessary? > > Yes, due to s390_has_feat(), and I want to avoid cleaning all the other > calling places up in this patch. OK, I just checked and it indeed blows up in a lot of places, so I think this include here is justified. Reviewed-by: Thomas Huth <thuth@redhat.com>
diff --git a/target/s390x/cpu-qom.h b/target/s390x/cpu-qom.h index 4e936e7788..2435cd8390 100644 --- a/target/s390x/cpu-qom.h +++ b/target/s390x/cpu-qom.h @@ -21,7 +21,6 @@ #define QEMU_S390_CPU_QOM_H #include "qom/cpu.h" -#include "cpu_models.h" #define TYPE_S390_CPU "s390-cpu" @@ -32,6 +31,9 @@ #define S390_CPU_GET_CLASS(obj) \ OBJECT_GET_CLASS(S390CPUClass, (obj), TYPE_S390_CPU) +typedef struct S390CPUModel S390CPUModel; +typedef struct S390CPUDef S390CPUDef; + /** * S390CPUClass: * @parent_realize: The parent class' realize handler. @@ -62,5 +64,6 @@ typedef struct S390CPUClass { } S390CPUClass; typedef struct S390CPU S390CPU; +typedef struct CPUS390XState CPUS390XState; #endif diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index 372f7d8885..4a0a59dfbc 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -25,6 +25,7 @@ #include "qemu-common.h" #include "cpu-qom.h" +#include "cpu_models.h" #define TARGET_LONG_BITS 64 @@ -80,7 +81,7 @@ typedef struct MchkQueue { uint16_t type; } MchkQueue; -typedef struct CPUS390XState { +struct CPUS390XState { uint64_t regs[16]; /* GP registers */ /* * The floating point registers are part of the vector registers. @@ -174,7 +175,7 @@ typedef struct CPUS390XState { /* currently processed sigp order */ uint8_t sigp_order; -} CPUS390XState; +}; static inline CPU_DoubleU *get_freg(CPUS390XState *cs, int nr) { diff --git a/target/s390x/cpu_models.h b/target/s390x/cpu_models.h index c0bee15d7a..4c6dee1871 100644 --- a/target/s390x/cpu_models.h +++ b/target/s390x/cpu_models.h @@ -17,7 +17,7 @@ #include "qom/cpu.h" /* static CPU definition */ -typedef struct S390CPUDef { +struct S390CPUDef { const char *name; /* name exposed to the user */ const char *desc; /* description exposed to the user */ uint8_t gen; /* hw generation identification */ @@ -37,10 +37,10 @@ typedef struct S390CPUDef { S390FeatBitmap full_feat; /* used to init full_feat from generated data */ S390FeatInit full_init; -} S390CPUDef; +}; /* CPU model based on a CPU definition */ -typedef struct S390CPUModel { +struct S390CPUModel { const S390CPUDef *def; S390FeatBitmap features; /* values copied from the "host" model, can change during migration */ @@ -48,7 +48,7 @@ typedef struct S390CPUModel { uint32_t cpu_id; /* CPU id */ uint8_t cpu_id_format; /* CPU id format bit */ uint8_t cpu_ver; /* CPU version, usually "ff" for kvm */ -} S390CPUModel; +}; /* * CPU ID
This allows us to drop inclusion of cpu_models.h in cpu-qom.h, and prepares for using cpu-qom.h as a s390 specific version of typedefs.h Signed-off-by: David Hildenbrand <david@redhat.com> --- target/s390x/cpu-qom.h | 5 ++++- target/s390x/cpu.h | 5 +++-- target/s390x/cpu_models.h | 8 ++++---- 3 files changed, 11 insertions(+), 7 deletions(-)