2 * S390x machine definitions and functions
4 * Copyright IBM Corp. 2014
7 * Thomas Huth <thuth@linux.vnet.ibm.com>
8 * Christian Borntraeger <borntraeger@de.ibm.com>
9 * Jason J. Herne <jjherne@us.ibm.com>
11 * This work is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published
13 * by the Free Software Foundation; either version 2 of the License,
14 * or (at your option) any later version.
19 #include "sysemu/kvm.h"
21 static int cpu_post_load(void *opaque
, int version_id
)
23 S390CPU
*cpu
= opaque
;
26 * As the cpu state is pushed to kvm via kvm_set_mp_state rather
27 * than via cpu_synchronize_state, we need update kvm here.
30 kvm_s390_set_cpu_state(cpu
, cpu
->env
.cpu_state
);
36 const VMStateDescription vmstate_s390_cpu
= {
38 .post_load
= cpu_post_load
,
40 .minimum_version_id
= 1,
41 .fields
= (VMStateField
[]) {
42 VMSTATE_UINT64(env
.fregs
[0].ll
, S390CPU
),
43 VMSTATE_UINT64(env
.fregs
[1].ll
, S390CPU
),
44 VMSTATE_UINT64(env
.fregs
[2].ll
, S390CPU
),
45 VMSTATE_UINT64(env
.fregs
[3].ll
, S390CPU
),
46 VMSTATE_UINT64(env
.fregs
[4].ll
, S390CPU
),
47 VMSTATE_UINT64(env
.fregs
[5].ll
, S390CPU
),
48 VMSTATE_UINT64(env
.fregs
[6].ll
, S390CPU
),
49 VMSTATE_UINT64(env
.fregs
[7].ll
, S390CPU
),
50 VMSTATE_UINT64(env
.fregs
[8].ll
, S390CPU
),
51 VMSTATE_UINT64(env
.fregs
[9].ll
, S390CPU
),
52 VMSTATE_UINT64(env
.fregs
[10].ll
, S390CPU
),
53 VMSTATE_UINT64(env
.fregs
[11].ll
, S390CPU
),
54 VMSTATE_UINT64(env
.fregs
[12].ll
, S390CPU
),
55 VMSTATE_UINT64(env
.fregs
[13].ll
, S390CPU
),
56 VMSTATE_UINT64(env
.fregs
[14].ll
, S390CPU
),
57 VMSTATE_UINT64(env
.fregs
[15].ll
, S390CPU
),
58 VMSTATE_UINT64_ARRAY(env
.regs
, S390CPU
, 16),
59 VMSTATE_UINT64(env
.psw
.mask
, S390CPU
),
60 VMSTATE_UINT64(env
.psw
.addr
, S390CPU
),
61 VMSTATE_UINT64(env
.psa
, S390CPU
),
62 VMSTATE_UINT32(env
.fpc
, S390CPU
),
63 VMSTATE_UINT32(env
.todpr
, S390CPU
),
64 VMSTATE_UINT64(env
.pfault_token
, S390CPU
),
65 VMSTATE_UINT64(env
.pfault_compare
, S390CPU
),
66 VMSTATE_UINT64(env
.pfault_select
, S390CPU
),
67 VMSTATE_UINT64(env
.cputm
, S390CPU
),
68 VMSTATE_UINT64(env
.ckc
, S390CPU
),
69 VMSTATE_UINT64(env
.gbea
, S390CPU
),
70 VMSTATE_UINT64(env
.pp
, S390CPU
),
71 VMSTATE_UINT32_ARRAY(env
.aregs
, S390CPU
, 16),
72 VMSTATE_UINT64_ARRAY(env
.cregs
, S390CPU
, 16),
73 VMSTATE_UINT8(env
.cpu_state
, S390CPU
),