mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-11 16:00:50 -07:00
accel/hvf: Move per-cpu method declarations to hvf-accel-ops.c
hvf-all.c aims to contain the generic accel methods (TYPE_ACCEL), while hvf-accel-ops.c the per-vcpu methods (TYPE_ACCEL_OPS). Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Zhao Liu <zhao1.liu@intel.com> Message-Id: <20250703173248.44995-16-philmd@linaro.org>
This commit is contained in:
parent
0175310c38
commit
c4b231cbd3
2 changed files with 30 additions and 28 deletions
|
|
@ -50,9 +50,11 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qemu/error-report.h"
|
#include "qemu/error-report.h"
|
||||||
#include "qemu/main-loop.h"
|
#include "qemu/main-loop.h"
|
||||||
|
#include "qemu/queue.h"
|
||||||
#include "system/address-spaces.h"
|
#include "system/address-spaces.h"
|
||||||
#include "gdbstub/enums.h"
|
#include "gdbstub/enums.h"
|
||||||
#include "hw/boards.h"
|
#include "hw/boards.h"
|
||||||
|
#include "hw/core/cpu.h"
|
||||||
#include "system/accel-ops.h"
|
#include "system/accel-ops.h"
|
||||||
#include "system/cpus.h"
|
#include "system/cpus.h"
|
||||||
#include "system/hvf.h"
|
#include "system/hvf.h"
|
||||||
|
|
@ -482,6 +484,34 @@ static void hvf_start_vcpu_thread(CPUState *cpu)
|
||||||
cpu, QEMU_THREAD_JOINABLE);
|
cpu, QEMU_THREAD_JOINABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct hvf_sw_breakpoint *hvf_find_sw_breakpoint(CPUState *cpu, vaddr pc)
|
||||||
|
{
|
||||||
|
struct hvf_sw_breakpoint *bp;
|
||||||
|
|
||||||
|
QTAILQ_FOREACH(bp, &hvf_state->hvf_sw_breakpoints, entry) {
|
||||||
|
if (bp->pc == pc) {
|
||||||
|
return bp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
int hvf_sw_breakpoints_active(CPUState *cpu)
|
||||||
|
{
|
||||||
|
return !QTAILQ_EMPTY(&hvf_state->hvf_sw_breakpoints);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void do_hvf_update_guest_debug(CPUState *cpu, run_on_cpu_data arg)
|
||||||
|
{
|
||||||
|
hvf_arch_update_guest_debug(cpu);
|
||||||
|
}
|
||||||
|
|
||||||
|
int hvf_update_guest_debug(CPUState *cpu)
|
||||||
|
{
|
||||||
|
run_on_cpu(cpu, do_hvf_update_guest_debug, RUN_ON_CPU_NULL);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int hvf_insert_breakpoint(CPUState *cpu, int type, vaddr addr, vaddr len)
|
static int hvf_insert_breakpoint(CPUState *cpu, int type, vaddr addr, vaddr len)
|
||||||
{
|
{
|
||||||
struct hvf_sw_breakpoint *bp;
|
struct hvf_sw_breakpoint *bp;
|
||||||
|
|
|
||||||
|
|
@ -41,31 +41,3 @@ void assert_hvf_ok_impl(hv_return_t ret, const char *file, unsigned int line,
|
||||||
|
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
struct hvf_sw_breakpoint *hvf_find_sw_breakpoint(CPUState *cpu, vaddr pc)
|
|
||||||
{
|
|
||||||
struct hvf_sw_breakpoint *bp;
|
|
||||||
|
|
||||||
QTAILQ_FOREACH(bp, &hvf_state->hvf_sw_breakpoints, entry) {
|
|
||||||
if (bp->pc == pc) {
|
|
||||||
return bp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
int hvf_sw_breakpoints_active(CPUState *cpu)
|
|
||||||
{
|
|
||||||
return !QTAILQ_EMPTY(&hvf_state->hvf_sw_breakpoints);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void do_hvf_update_guest_debug(CPUState *cpu, run_on_cpu_data arg)
|
|
||||||
{
|
|
||||||
hvf_arch_update_guest_debug(cpu);
|
|
||||||
}
|
|
||||||
|
|
||||||
int hvf_update_guest_debug(CPUState *cpu)
|
|
||||||
{
|
|
||||||
run_on_cpu(cpu, do_hvf_update_guest_debug, RUN_ON_CPU_NULL);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue