accel/whpx: Expose whpx_enabled() to common code
Currently whpx_enabled() is restricted to target-specific code. By defining CONFIG_WHPX_IS_POSSIBLE we allow its use anywhere. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20250703173248.44995-26-philmd@linaro.org>
This commit is contained in:
parent
80a1efdedd
commit
a9c2afd74b
5 changed files with 29 additions and 19 deletions
|
|
@ -540,6 +540,7 @@ WHPX CPUs
|
|||
M: Sunil Muthuswamy <sunilmut@microsoft.com>
|
||||
S: Supported
|
||||
F: target/i386/whpx/
|
||||
F: accel/stubs/whpx-stub.c
|
||||
F: include/system/whpx.h
|
||||
|
||||
X86 Instruction Emulator
|
||||
|
|
|
|||
|
|
@ -4,5 +4,6 @@ system_stubs_ss.add(when: 'CONFIG_KVM', if_false: files('kvm-stub.c'))
|
|||
system_stubs_ss.add(when: 'CONFIG_TCG', if_false: files('tcg-stub.c'))
|
||||
system_stubs_ss.add(when: 'CONFIG_HVF', if_false: files('hvf-stub.c'))
|
||||
system_stubs_ss.add(when: 'CONFIG_NVMM', if_false: files('nvmm-stub.c'))
|
||||
system_stubs_ss.add(when: 'CONFIG_WHPX', if_false: files('whpx-stub.c'))
|
||||
|
||||
specific_ss.add_all(when: ['CONFIG_SYSTEM_ONLY'], if_true: system_stubs_ss)
|
||||
|
|
|
|||
12
accel/stubs/whpx-stub.c
Normal file
12
accel/stubs/whpx-stub.c
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
* WHPX stubs for QEMU
|
||||
*
|
||||
* Copyright (c) Linaro
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "system/whpx.h"
|
||||
|
||||
bool whpx_allowed;
|
||||
|
|
@ -16,19 +16,20 @@
|
|||
#define QEMU_WHPX_H
|
||||
|
||||
#ifdef COMPILING_PER_TARGET
|
||||
|
||||
#ifdef CONFIG_WHPX
|
||||
|
||||
int whpx_enabled(void);
|
||||
bool whpx_apic_in_platform(void);
|
||||
|
||||
#else /* CONFIG_WHPX */
|
||||
|
||||
#define whpx_enabled() (0)
|
||||
#define whpx_apic_in_platform() (0)
|
||||
|
||||
#endif /* CONFIG_WHPX */
|
||||
|
||||
# ifdef CONFIG_WHPX
|
||||
# define CONFIG_WHPX_IS_POSSIBLE
|
||||
# endif /* !CONFIG_WHPX */
|
||||
#else
|
||||
# define CONFIG_WHPX_IS_POSSIBLE
|
||||
#endif /* COMPILING_PER_TARGET */
|
||||
|
||||
#ifdef CONFIG_WHPX_IS_POSSIBLE
|
||||
extern bool whpx_allowed;
|
||||
#define whpx_enabled() (whpx_allowed)
|
||||
bool whpx_apic_in_platform(void);
|
||||
#else /* !CONFIG_WHPX_IS_POSSIBLE */
|
||||
#define whpx_enabled() 0
|
||||
#define whpx_apic_in_platform() (0)
|
||||
#endif /* !CONFIG_WHPX_IS_POSSIBLE */
|
||||
|
||||
#endif /* QEMU_WHPX_H */
|
||||
|
|
|
|||
|
|
@ -242,7 +242,7 @@ struct AccelCPUState {
|
|||
WHV_RUN_VP_EXIT_CONTEXT exit_ctx;
|
||||
};
|
||||
|
||||
static bool whpx_allowed;
|
||||
bool whpx_allowed;
|
||||
static bool whp_dispatch_initialized;
|
||||
static HMODULE hWinHvPlatform, hWinHvEmulation;
|
||||
static uint32_t max_vcpu_index;
|
||||
|
|
@ -2688,11 +2688,6 @@ error:
|
|||
return ret;
|
||||
}
|
||||
|
||||
int whpx_enabled(void)
|
||||
{
|
||||
return whpx_allowed;
|
||||
}
|
||||
|
||||
bool whpx_apic_in_platform(void) {
|
||||
return whpx_global.apic_in_platform;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue