Skip to content

Commit

Permalink
hw: move CPU state serialization to migration/cpu.h
Browse files Browse the repository at this point in the history
Remove usage of NEED_CPU_H from hw/hw.h.

Signed-off-by: Paolo Bonzini <[email protected]>
  • Loading branch information
bonzini committed May 19, 2016
1 parent cbd62f8 commit 1e00b8d
Show file tree
Hide file tree
Showing 12 changed files with 58 additions and 50 deletions.
49 changes: 0 additions & 49 deletions include/hw/hw.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,60 +14,11 @@
#include "qemu/log.h"
#include "qemu/module.h"

#ifdef NEED_CPU_H
#if TARGET_LONG_BITS == 64
#define qemu_put_betl qemu_put_be64
#define qemu_get_betl qemu_get_be64
#define qemu_put_betls qemu_put_be64s
#define qemu_get_betls qemu_get_be64s
#define qemu_put_sbetl qemu_put_sbe64
#define qemu_get_sbetl qemu_get_sbe64
#define qemu_put_sbetls qemu_put_sbe64s
#define qemu_get_sbetls qemu_get_sbe64s
#else
#define qemu_put_betl qemu_put_be32
#define qemu_get_betl qemu_get_be32
#define qemu_put_betls qemu_put_be32s
#define qemu_get_betls qemu_get_be32s
#define qemu_put_sbetl qemu_put_sbe32
#define qemu_get_sbetl qemu_get_sbe32
#define qemu_put_sbetls qemu_put_sbe32s
#define qemu_get_sbetls qemu_get_sbe32s
#endif
#endif

typedef void QEMUResetHandler(void *opaque);

void qemu_register_reset(QEMUResetHandler *func, void *opaque);
void qemu_unregister_reset(QEMUResetHandler *func, void *opaque);

void QEMU_NORETURN hw_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2);

#ifdef NEED_CPU_H
#if TARGET_LONG_BITS == 64
#define VMSTATE_UINTTL_V(_f, _s, _v) \
VMSTATE_UINT64_V(_f, _s, _v)
#define VMSTATE_UINTTL_EQUAL_V(_f, _s, _v) \
VMSTATE_UINT64_EQUAL_V(_f, _s, _v)
#define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \
VMSTATE_UINT64_ARRAY_V(_f, _s, _n, _v)
#define vmstate_info_uinttl vmstate_info_uint64
#else
#define VMSTATE_UINTTL_V(_f, _s, _v) \
VMSTATE_UINT32_V(_f, _s, _v)
#define VMSTATE_UINTTL_EQUAL_V(_f, _s, _v) \
VMSTATE_UINT32_EQUAL_V(_f, _s, _v)
#define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \
VMSTATE_UINT32_ARRAY_V(_f, _s, _n, _v)
#define vmstate_info_uinttl vmstate_info_uint32
#endif
#define VMSTATE_UINTTL(_f, _s) \
VMSTATE_UINTTL_V(_f, _s, 0)
#define VMSTATE_UINTTL_EQUAL(_f, _s) \
VMSTATE_UINTTL_EQUAL_V(_f, _s, 0)
#define VMSTATE_UINTTL_ARRAY(_f, _s, _n) \
VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, 0)

#endif

#endif
48 changes: 48 additions & 0 deletions include/migration/cpu.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/* Declarations for use for CPU state serialization. */
#ifndef MIGRATION_CPU_H
#define MIGRATION_CPU_H

#if TARGET_LONG_BITS == 64
#define qemu_put_betl qemu_put_be64
#define qemu_get_betl qemu_get_be64
#define qemu_put_betls qemu_put_be64s
#define qemu_get_betls qemu_get_be64s
#define qemu_put_sbetl qemu_put_sbe64
#define qemu_get_sbetl qemu_get_sbe64
#define qemu_put_sbetls qemu_put_sbe64s
#define qemu_get_sbetls qemu_get_sbe64s

#define VMSTATE_UINTTL_V(_f, _s, _v) \
VMSTATE_UINT64_V(_f, _s, _v)
#define VMSTATE_UINTTL_EQUAL_V(_f, _s, _v) \
VMSTATE_UINT64_EQUAL_V(_f, _s, _v)
#define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \
VMSTATE_UINT64_ARRAY_V(_f, _s, _n, _v)
#define vmstate_info_uinttl vmstate_info_uint64
#else
#define qemu_put_betl qemu_put_be32
#define qemu_get_betl qemu_get_be32
#define qemu_put_betls qemu_put_be32s
#define qemu_get_betls qemu_get_be32s
#define qemu_put_sbetl qemu_put_sbe32
#define qemu_get_sbetl qemu_get_sbe32
#define qemu_put_sbetls qemu_put_sbe32s
#define qemu_get_sbetls qemu_get_sbe32s

#define VMSTATE_UINTTL_V(_f, _s, _v) \
VMSTATE_UINT32_V(_f, _s, _v)
#define VMSTATE_UINTTL_EQUAL_V(_f, _s, _v) \
VMSTATE_UINT32_EQUAL_V(_f, _s, _v)
#define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \
VMSTATE_UINT32_ARRAY_V(_f, _s, _n, _v)
#define vmstate_info_uinttl vmstate_info_uint32
#endif

#define VMSTATE_UINTTL(_f, _s) \
VMSTATE_UINTTL_V(_f, _s, 0)
#define VMSTATE_UINTTL_EQUAL(_f, _s) \
VMSTATE_UINTTL_EQUAL_V(_f, _s, 0)
#define VMSTATE_UINTTL_ARRAY(_f, _s, _n) \
VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, 0)

#endif
1 change: 1 addition & 0 deletions target-alpha/machine.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
#include "hw/boards.h"
#include "migration/cpu.h"

static int get_fpcr(QEMUFile *f, void *opaque, size_t size)
{
Expand Down
1 change: 1 addition & 0 deletions target-arm/machine.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "sysemu/kvm.h"
#include "kvm_arm.h"
#include "internals.h"
#include "migration/cpu.h"

static bool vfp_needed(void *opaque)
{
Expand Down
1 change: 1 addition & 0 deletions target-cris/machine.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

#include "qemu/osdep.h"
#include "hw/hw.h"
#include "migration/cpu.h"

static const VMStateDescription vmstate_tlbset = {
.name = "cpu/tlbset",
Expand Down
1 change: 1 addition & 0 deletions target-i386/machine.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include "hw/boards.h"
#include "hw/i386/pc.h"
#include "hw/isa/isa.h"
#include "migration/cpu.h"

#include "cpu.h"
#include "sysemu/kvm.h"
Expand Down
1 change: 1 addition & 0 deletions target-lm32/machine.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
#include "hw/boards.h"
#include "migration/cpu.h"

static const VMStateDescription vmstate_env = {
.name = "env",
Expand Down
2 changes: 1 addition & 1 deletion target-mips/machine.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include "qemu/osdep.h"
#include "hw/hw.h"

#include "cpu.h"
#include "migration/cpu.h"

static int cpu_post_load(void *opaque, int version_id)
{
Expand Down
1 change: 1 addition & 0 deletions target-moxie/machine.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include "hw/hw.h"
#include "hw/boards.h"
#include "machine.h"
#include "migration/cpu.h"

const VMStateDescription vmstate_moxie_cpu = {
.name = "cpu",
Expand Down
1 change: 1 addition & 0 deletions target-openrisc/machine.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
#include "hw/boards.h"
#include "migration/cpu.h"

static const VMStateDescription vmstate_env = {
.name = "env",
Expand Down
1 change: 1 addition & 0 deletions target-ppc/machine.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include "sysemu/kvm.h"
#include "helper_regs.h"
#include "mmu-hash64.h"
#include "migration/cpu.h"

static int cpu_load_old(QEMUFile *f, void *opaque, int version_id)
{
Expand Down
1 change: 1 addition & 0 deletions target-sparc/machine.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include "qemu/timer.h"

#include "cpu.h"
#include "migration/cpu.h"

#ifdef TARGET_SPARC64
static const VMStateDescription vmstate_cpu_timer = {
Expand Down

0 comments on commit 1e00b8d

Please sign in to comment.