aboutsummaryrefslogtreecommitdiff
path: root/accel/hvf/hvf-accel-ops.c
diff options
context:
space:
mode:
authorAlexander Graf <agraf@csgraf.de>2021-06-03 14:09:34 +0100
committerPeter Maydell <peter.maydell@linaro.org>2021-06-03 16:43:27 +0100
commitb533450e74500dd67f0aa49775809ea33bc465b7 (patch)
treeed4a54d0c402c554796ffaac9b7418848d53469f /accel/hvf/hvf-accel-ops.c
parentd662ede2b1eb033883b7c96866e84e8b54524ccb (diff)
downloadqemu-b533450e74500dd67f0aa49775809ea33bc465b7.zip
qemu-b533450e74500dd67f0aa49775809ea33bc465b7.tar.gz
qemu-b533450e74500dd67f0aa49775809ea33bc465b7.tar.bz2
hvf: Introduce hvf vcpu struct
We will need more than a single field for hvf going forward. To keep the global vcpu struct uncluttered, let's allocate a special hvf vcpu struct, similar to how hax does it. Signed-off-by: Alexander Graf <agraf@csgraf.de> Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com> Tested-by: Roman Bolshakov <r.bolshakov@yadro.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Sergio Lopez <slp@redhat.com> Message-id: 20210519202253.76782-12-agraf@csgraf.de Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'accel/hvf/hvf-accel-ops.c')
-rw-r--r--accel/hvf/hvf-accel-ops.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/accel/hvf/hvf-accel-ops.c b/accel/hvf/hvf-accel-ops.c
index 14fc497..ded918c 100644
--- a/accel/hvf/hvf-accel-ops.c
+++ b/accel/hvf/hvf-accel-ops.c
@@ -363,16 +363,20 @@ type_init(hvf_type_init);
static void hvf_vcpu_destroy(CPUState *cpu)
{
- hv_return_t ret = hv_vcpu_destroy(cpu->hvf_fd);
+ hv_return_t ret = hv_vcpu_destroy(cpu->hvf->fd);
assert_hvf_ok(ret);
hvf_arch_vcpu_destroy(cpu);
+ g_free(cpu->hvf);
+ cpu->hvf = NULL;
}
static int hvf_init_vcpu(CPUState *cpu)
{
int r;
+ cpu->hvf = g_malloc0(sizeof(*cpu->hvf));
+
/* init cpu signals */
sigset_t set;
struct sigaction sigact;
@@ -384,7 +388,7 @@ static int hvf_init_vcpu(CPUState *cpu)
pthread_sigmask(SIG_BLOCK, NULL, &set);
sigdelset(&set, SIG_IPI);
- r = hv_vcpu_create((hv_vcpuid_t *)&cpu->hvf_fd, HV_VCPU_DEFAULT);
+ r = hv_vcpu_create((hv_vcpuid_t *)&cpu->hvf->fd, HV_VCPU_DEFAULT);
cpu->vcpu_dirty = 1;
assert_hvf_ok(r);