summaryrefslogtreecommitdiffstats
path: root/target/arm/cpu.h
diff options
context:
space:
mode:
authorDongjiu Geng2018-10-24 08:50:16 +0200
committerPeter Maydell2018-10-24 08:50:16 +0200
commit202ccb6bab5fe26bca2c82bff23302f7acfd1940 (patch)
treee2cbe6029211d7c06a3d7f01acdd7b58d1eb192c /target/arm/cpu.h
parentssi-sd: Make devices picking up backends unavailable with -device (diff)
downloadqemu-202ccb6bab5fe26bca2c82bff23302f7acfd1940.tar.gz
qemu-202ccb6bab5fe26bca2c82bff23302f7acfd1940.tar.xz
qemu-202ccb6bab5fe26bca2c82bff23302f7acfd1940.zip
target/arm: Add support for VCPU event states
This patch extends the qemu-kvm state sync logic with support for KVM_GET/SET_VCPU_EVENTS, giving access to yet missing SError exception. And also it can support the exception state migration. The SError exception states include SError pending state and ESR value, the kvm_put/get_vcpu_events() will be called when set or get system registers. When do migration, if source machine has SError pending, QEMU will do this migration regardless whether the target machine supports to specify guest ESR value, because if target machine does not support that, it can also inject the SError with zero ESR value. Signed-off-by: Dongjiu Geng <gengdongjiu@huawei.com> Reviewed-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 1538067351-23931-3-git-send-email-gengdongjiu@huawei.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target/arm/cpu.h')
-rw-r--r--target/arm/cpu.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index f00c0444c4..a314e557ac 100644
--- a/target/arm/cpu.h
+++ b/target/arm/cpu.h
@@ -531,6 +531,13 @@ typedef struct CPUARMState {
*/
} exception;
+ /* Information associated with an SError */
+ struct {
+ uint8_t pending;
+ uint8_t has_esr;
+ uint64_t esr;
+ } serror;
+
/* Thumb-2 EE state. */
uint32_t teecr;
uint32_t teehbr;