[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 05/16] target/arm/kvm: Split kvm_arch_get/put_registers
From: |
Jean-Philippe Brucker |
Subject: |
[RFC PATCH 05/16] target/arm/kvm: Split kvm_arch_get/put_registers |
Date: |
Fri, 27 Jan 2023 15:07:18 +0000 |
The confidential guest support in KVM limits the number of registers
that we can read and write. Split the get/put_registers function to
prepare for it.
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
---
target/arm/kvm64.c | 30 ++++++++++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c
index 1197253d12..55191496f3 100644
--- a/target/arm/kvm64.c
+++ b/target/arm/kvm64.c
@@ -1080,7 +1080,7 @@ static int kvm_arch_put_sve(CPUState *cs)
return 0;
}
-int kvm_arch_put_registers(CPUState *cs, int level)
+static int kvm_arm_put_core_regs(CPUState *cs)
{
struct kvm_one_reg reg;
uint64_t val;
@@ -1200,6 +1200,19 @@ int kvm_arch_put_registers(CPUState *cs, int level)
return ret;
}
+ return 0;
+}
+
+int kvm_arch_put_registers(CPUState *cs, int level)
+{
+ int ret;
+ ARMCPU *cpu = ARM_CPU(cs);
+
+ ret = kvm_arm_put_core_regs(cs);
+ if (ret) {
+ return ret;
+ }
+
write_cpustate_to_list(cpu, true);
if (!write_list_to_kvmstate(cpu, level)) {
@@ -1293,7 +1306,7 @@ static int kvm_arch_get_sve(CPUState *cs)
return 0;
}
-int kvm_arch_get_registers(CPUState *cs)
+static int kvm_arm_get_core_regs(CPUState *cs)
{
struct kvm_one_reg reg;
uint64_t val;
@@ -1413,6 +1426,19 @@ int kvm_arch_get_registers(CPUState *cs)
}
vfp_set_fpcr(env, fpr);
+ return 0;
+}
+
+int kvm_arch_get_registers(CPUState *cs)
+{
+ int ret;
+ ARMCPU *cpu = ARM_CPU(cs);
+
+ ret = kvm_arm_get_core_regs(cs);
+ if (ret) {
+ return ret;
+ }
+
ret = kvm_get_vcpu_events(cpu);
if (ret) {
return ret;
--
2.39.0
- [RFC PATCH 03/16] target/arm/kvm-rme: Initialize realm, (continued)
- [RFC PATCH 03/16] target/arm/kvm-rme: Initialize realm, Jean-Philippe Brucker, 2023/01/27
- [RFC PATCH 01/16] NOMERGE: Add KVM Arm RME definitions to Linux headers, Jean-Philippe Brucker, 2023/01/27
- [RFC PATCH 07/16] target/arm/kvm: Select RME VM type for the scratch VM, Jean-Philippe Brucker, 2023/01/27
- [RFC PATCH 02/16] target/arm: Add confidential guest support, Jean-Philippe Brucker, 2023/01/27
- [RFC PATCH 04/16] hw/arm/virt: Add support for Arm RME, Jean-Philippe Brucker, 2023/01/27
- [RFC PATCH 05/16] target/arm/kvm: Split kvm_arch_get/put_registers,
Jean-Philippe Brucker <=
- [RFC PATCH 06/16] target/arm/kvm-rme: Initialize vCPU, Jean-Philippe Brucker, 2023/01/27
- [RFC PATCH 08/16] target/arm/kvm-rme: Populate the realm with boot images, Jean-Philippe Brucker, 2023/01/27
- [RFC PATCH 09/16] hw/arm/boot: Populate realm memory with boot images, Jean-Philippe Brucker, 2023/01/27
- [RFC PATCH 13/16] target/arm/kvm-rme: Add breakpoints and watchpoints parameters, Jean-Philippe Brucker, 2023/01/27