mirror of
https://github.com/qemu/qemu.git
synced 2024-12-01 07:43:35 +08:00
softmmu: Restrict cpu_check_watchpoint / address_matches to TCG accel
Both cpu_check_watchpoint() and cpu_watchpoint_address_matches() are specific to TCG system emulation. Declare them in "tcg-cpu-ops.h" to be sure accessing them from non-TCG code is a compilation error. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20230328173117.15226-2-philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
4f5c67f8df
commit
6eece7f531
@ -970,17 +970,6 @@ static inline void cpu_watchpoint_remove_by_ref(CPUState *cpu,
|
||||
static inline void cpu_watchpoint_remove_all(CPUState *cpu, int mask)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void cpu_check_watchpoint(CPUState *cpu, vaddr addr, vaddr len,
|
||||
MemTxAttrs atr, int fl, uintptr_t ra)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int cpu_watchpoint_address_matches(CPUState *cpu,
|
||||
vaddr addr, vaddr len)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int cpu_watchpoint_insert(CPUState *cpu, vaddr addr, vaddr len,
|
||||
int flags, CPUWatchpoint **watchpoint);
|
||||
@ -988,32 +977,6 @@ int cpu_watchpoint_remove(CPUState *cpu, vaddr addr,
|
||||
vaddr len, int flags);
|
||||
void cpu_watchpoint_remove_by_ref(CPUState *cpu, CPUWatchpoint *watchpoint);
|
||||
void cpu_watchpoint_remove_all(CPUState *cpu, int mask);
|
||||
|
||||
/**
|
||||
* cpu_check_watchpoint:
|
||||
* @cpu: cpu context
|
||||
* @addr: guest virtual address
|
||||
* @len: access length
|
||||
* @attrs: memory access attributes
|
||||
* @flags: watchpoint access type
|
||||
* @ra: unwind return address
|
||||
*
|
||||
* Check for a watchpoint hit in [addr, addr+len) of the type
|
||||
* specified by @flags. Exit via exception with a hit.
|
||||
*/
|
||||
void cpu_check_watchpoint(CPUState *cpu, vaddr addr, vaddr len,
|
||||
MemTxAttrs attrs, int flags, uintptr_t ra);
|
||||
|
||||
/**
|
||||
* cpu_watchpoint_address_matches:
|
||||
* @cpu: cpu context
|
||||
* @addr: guest virtual address
|
||||
* @len: access length
|
||||
*
|
||||
* Return the watchpoint flags that apply to [addr, addr+len).
|
||||
* If no watchpoint is registered for the range, the result is 0.
|
||||
*/
|
||||
int cpu_watchpoint_address_matches(CPUState *cpu, vaddr addr, vaddr len);
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -175,4 +175,47 @@ struct TCGCPUOps {
|
||||
|
||||
};
|
||||
|
||||
#if defined(CONFIG_USER_ONLY)
|
||||
|
||||
static inline void cpu_check_watchpoint(CPUState *cpu, vaddr addr, vaddr len,
|
||||
MemTxAttrs atr, int fl, uintptr_t ra)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int cpu_watchpoint_address_matches(CPUState *cpu,
|
||||
vaddr addr, vaddr len)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
/**
|
||||
* cpu_check_watchpoint:
|
||||
* @cpu: cpu context
|
||||
* @addr: guest virtual address
|
||||
* @len: access length
|
||||
* @attrs: memory access attributes
|
||||
* @flags: watchpoint access type
|
||||
* @ra: unwind return address
|
||||
*
|
||||
* Check for a watchpoint hit in [addr, addr+len) of the type
|
||||
* specified by @flags. Exit via exception with a hit.
|
||||
*/
|
||||
void cpu_check_watchpoint(CPUState *cpu, vaddr addr, vaddr len,
|
||||
MemTxAttrs attrs, int flags, uintptr_t ra);
|
||||
|
||||
/**
|
||||
* cpu_watchpoint_address_matches:
|
||||
* @cpu: cpu context
|
||||
* @addr: guest virtual address
|
||||
* @len: access length
|
||||
*
|
||||
* Return the watchpoint flags that apply to [addr, addr+len).
|
||||
* If no watchpoint is registered for the range, the result is 0.
|
||||
*/
|
||||
int cpu_watchpoint_address_matches(CPUState *cpu, vaddr addr, vaddr len);
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* TCG_CPU_OPS_H */
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "exec/ram_addr.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "exec/helper-proto.h"
|
||||
#include "hw/core/tcg-cpu-ops.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qemu/guest-random.h"
|
||||
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "tcg/tcg.h"
|
||||
#include "vec_internal.h"
|
||||
#include "sve_ldst_internal.h"
|
||||
#include "hw/core/tcg-cpu-ops.h"
|
||||
|
||||
|
||||
/* Return a value for NZCV as per the ARM PredTest pseudofunction.
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "exec/helper-proto.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "hw/core/tcg-cpu-ops.h"
|
||||
#include "qemu/int128.h"
|
||||
#include "qemu/atomic128.h"
|
||||
#include "trace.h"
|
||||
|
Loading…
Reference in New Issue
Block a user