diff mbox series

[v5,07/22] target/s390x: move some s390x typedefs to cpu-qom.h

Message ID 20170913132417.24384-8-david@redhat.com
State New
Headers show
Series s390x cleanups and CPU hotplug via device_add | expand

Commit Message

David Hildenbrand Sept. 13, 2017, 1:24 p.m. UTC
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(-)

Comments

Thomas Huth Sept. 13, 2017, 2:27 p.m. UTC | #1
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
David Hildenbrand Sept. 13, 2017, 2:44 p.m. UTC | #2
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.
Thomas Huth Sept. 13, 2017, 3:04 p.m. UTC | #3
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 mbox series

Patch

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