mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:56:38 +00:00
whpx: i386: re-enable guest debug support
Fix what got broken several years ago by adding ops->supports_guest_debug support as an architecture-specific function. arm64 WHP doesn't currently provide support needed for this. Signed-off-by: Mohamed Mediouni <mohamed@unpredictable.fr> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Link: https://lore.kernel.org/r/20260223233950.96076-7-mohamed@unpredictable.fr Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
committed by
Paolo Bonzini
parent
2c87eb5cad
commit
19b48084f7
@@ -17,6 +17,7 @@
|
||||
|
||||
#include "system/whpx.h"
|
||||
#include "system/whpx-internal.h"
|
||||
#include "system/whpx-all.h"
|
||||
#include "system/whpx-accel-ops.h"
|
||||
|
||||
static void *whpx_cpu_thread_fn(void *arg)
|
||||
@@ -81,6 +82,12 @@ static bool whpx_vcpu_thread_is_idle(CPUState *cpu)
|
||||
return !whpx_irqchip_in_kernel();
|
||||
}
|
||||
|
||||
static bool whpx_supports_guest_debug(void)
|
||||
{
|
||||
return whpx_arch_supports_guest_debug();
|
||||
}
|
||||
|
||||
|
||||
static void whpx_accel_ops_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
AccelOpsClass *ops = ACCEL_OPS_CLASS(oc);
|
||||
@@ -89,6 +96,7 @@ static void whpx_accel_ops_class_init(ObjectClass *oc, const void *data)
|
||||
ops->kick_vcpu_thread = whpx_kick_vcpu_thread;
|
||||
ops->cpu_thread_is_idle = whpx_vcpu_thread_is_idle;
|
||||
ops->handle_interrupt = generic_handle_interrupt;
|
||||
ops->supports_guest_debug = whpx_supports_guest_debug;
|
||||
|
||||
ops->synchronize_post_reset = whpx_cpu_synchronize_post_reset;
|
||||
ops->synchronize_post_init = whpx_cpu_synchronize_post_init;
|
||||
|
||||
@@ -17,4 +17,8 @@ void whpx_translate_cpu_breakpoints(
|
||||
struct whpx_breakpoints *breakpoints,
|
||||
CPUState *cpu,
|
||||
int cpu_breakpoint_count);
|
||||
|
||||
/* called by whpx-accel-ops */
|
||||
bool whpx_arch_supports_guest_debug(void);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -303,6 +303,11 @@ void whpx_translate_cpu_breakpoints(
|
||||
/* Breakpoints aren’t supported on this platform */
|
||||
}
|
||||
|
||||
bool whpx_arch_supports_guest_debug(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static void whpx_get_reg(CPUState *cpu, WHV_REGISTER_NAME reg, WHV_REGISTER_VALUE* val)
|
||||
{
|
||||
struct whpx_state *whpx = &whpx_global;
|
||||
|
||||
@@ -1272,6 +1272,11 @@ void whpx_apply_breakpoints(
|
||||
}
|
||||
}
|
||||
|
||||
bool whpx_arch_supports_guest_debug(void)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Returns the address of the next instruction that is about to be executed. */
|
||||
static vaddr whpx_vcpu_get_pc(CPUState *cpu, bool exit_context_valid)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user