Commit ef2974cc authored by David Hildenbrand's avatar David Hildenbrand Committed by Cornelia Huck
Browse files

target/s390x: move some s390x typedefs to cpu-qom.h



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: default avatarDavid Hildenbrand <david@redhat.com>
Message-Id: <20170913132417.24384-8-david@redhat.com>
Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
Signed-off-by: default avatarCornelia Huck <cohuck@redhat.com>
parent 19c69829
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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
+3 −2
Original line number Diff line number Diff line
@@ -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)
{
+4 −4
Original line number Diff line number Diff line
@@ -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