mirror of https://github.com/xemu-project/xemu.git
hvf: Consistent types for vCPU handles
macOS Hypervisor.framework uses different types for identifying vCPUs, hv_vcpu_t or hv_vcpuid_t, depending on host architecture. They are not just differently named typedefs for the same primitive type, but reference different-width integers. Instead of using an integer type and casting where necessary, this change introduces a typedef which resolves the active architecture’s hvf typedef. It also removes a now-unnecessary cast. Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu> Reviewed-by: Roman Bolshakov <roman@roolebo.dev> Tested-by: Roman Bolshakov <roman@roolebo.dev> Message-ID: <20240605112556.43193-4-phil@philjordan.eu> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
0e4e622e32
commit
f21f0cbc2c
|
@ -400,7 +400,7 @@ static int hvf_init_vcpu(CPUState *cpu)
|
||||||
r = hv_vcpu_create(&cpu->accel->fd,
|
r = hv_vcpu_create(&cpu->accel->fd,
|
||||||
(hv_vcpu_exit_t **)&cpu->accel->exit, NULL);
|
(hv_vcpu_exit_t **)&cpu->accel->exit, NULL);
|
||||||
#else
|
#else
|
||||||
r = hv_vcpu_create((hv_vcpuid_t *)&cpu->accel->fd, HV_VCPU_DEFAULT);
|
r = hv_vcpu_create(&cpu->accel->fd, HV_VCPU_DEFAULT);
|
||||||
#endif
|
#endif
|
||||||
cpu->accel->dirty = true;
|
cpu->accel->dirty = true;
|
||||||
assert_hvf_ok(r);
|
assert_hvf_ok(r);
|
||||||
|
|
|
@ -13,8 +13,10 @@
|
||||||
|
|
||||||
#ifdef __aarch64__
|
#ifdef __aarch64__
|
||||||
#include <Hypervisor/Hypervisor.h>
|
#include <Hypervisor/Hypervisor.h>
|
||||||
|
typedef hv_vcpu_t hvf_vcpuid;
|
||||||
#else
|
#else
|
||||||
#include <Hypervisor/hv.h>
|
#include <Hypervisor/hv.h>
|
||||||
|
typedef hv_vcpuid_t hvf_vcpuid;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* hvf_slot flags */
|
/* hvf_slot flags */
|
||||||
|
@ -50,7 +52,7 @@ struct HVFState {
|
||||||
extern HVFState *hvf_state;
|
extern HVFState *hvf_state;
|
||||||
|
|
||||||
struct AccelCPUState {
|
struct AccelCPUState {
|
||||||
uint64_t fd;
|
hvf_vcpuid fd;
|
||||||
void *exit;
|
void *exit;
|
||||||
bool vtimer_masked;
|
bool vtimer_masked;
|
||||||
sigset_t unblock_ipi_mask;
|
sigset_t unblock_ipi_mask;
|
||||||
|
|
Loading…
Reference in New Issue