mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
cpu: Un-inline cpu_get_phys_page_debug and cpu_asidx_from_attrs
To be able to later extract the cpu_get_phys_page_debug() and cpu_asidx_from_attrs() handlers from CPUClass, un-inline them from "hw/core/cpu.h". Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20210517105140.1062037-7-f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
df4fd7d5c8
commit
a41d3aae52
2 changed files with 36 additions and 29 deletions
|
@ -22,6 +22,38 @@
|
||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
#include "hw/core/cpu.h"
|
#include "hw/core/cpu.h"
|
||||||
|
|
||||||
|
hwaddr cpu_get_phys_page_attrs_debug(CPUState *cpu, vaddr addr,
|
||||||
|
MemTxAttrs *attrs)
|
||||||
|
{
|
||||||
|
CPUClass *cc = CPU_GET_CLASS(cpu);
|
||||||
|
|
||||||
|
if (cc->get_phys_page_attrs_debug) {
|
||||||
|
return cc->get_phys_page_attrs_debug(cpu, addr, attrs);
|
||||||
|
}
|
||||||
|
/* Fallback for CPUs which don't implement the _attrs_ hook */
|
||||||
|
*attrs = MEMTXATTRS_UNSPECIFIED;
|
||||||
|
return cc->get_phys_page_debug(cpu, addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
hwaddr cpu_get_phys_page_debug(CPUState *cpu, vaddr addr)
|
||||||
|
{
|
||||||
|
MemTxAttrs attrs = {};
|
||||||
|
|
||||||
|
return cpu_get_phys_page_attrs_debug(cpu, addr, &attrs);
|
||||||
|
}
|
||||||
|
|
||||||
|
int cpu_asidx_from_attrs(CPUState *cpu, MemTxAttrs attrs)
|
||||||
|
{
|
||||||
|
CPUClass *cc = CPU_GET_CLASS(cpu);
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
if (cc->asidx_from_attrs) {
|
||||||
|
ret = cc->asidx_from_attrs(cpu, attrs);
|
||||||
|
assert(ret < cpu->num_ases && ret >= 0);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
GuestPanicInformation *cpu_get_crash_info(CPUState *cpu)
|
GuestPanicInformation *cpu_get_crash_info(CPUState *cpu)
|
||||||
{
|
{
|
||||||
CPUClass *cc = CPU_GET_CLASS(cpu);
|
CPUClass *cc = CPU_GET_CLASS(cpu);
|
||||||
|
|
|
@ -586,18 +586,8 @@ void cpu_dump_statistics(CPUState *cpu, int flags);
|
||||||
*
|
*
|
||||||
* Returns: Corresponding physical page address or -1 if no page found.
|
* Returns: Corresponding physical page address or -1 if no page found.
|
||||||
*/
|
*/
|
||||||
static inline hwaddr cpu_get_phys_page_attrs_debug(CPUState *cpu, vaddr addr,
|
hwaddr cpu_get_phys_page_attrs_debug(CPUState *cpu, vaddr addr,
|
||||||
MemTxAttrs *attrs)
|
MemTxAttrs *attrs);
|
||||||
{
|
|
||||||
CPUClass *cc = CPU_GET_CLASS(cpu);
|
|
||||||
|
|
||||||
if (cc->get_phys_page_attrs_debug) {
|
|
||||||
return cc->get_phys_page_attrs_debug(cpu, addr, attrs);
|
|
||||||
}
|
|
||||||
/* Fallback for CPUs which don't implement the _attrs_ hook */
|
|
||||||
*attrs = MEMTXATTRS_UNSPECIFIED;
|
|
||||||
return cc->get_phys_page_debug(cpu, addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cpu_get_phys_page_debug:
|
* cpu_get_phys_page_debug:
|
||||||
|
@ -609,12 +599,7 @@ static inline hwaddr cpu_get_phys_page_attrs_debug(CPUState *cpu, vaddr addr,
|
||||||
*
|
*
|
||||||
* Returns: Corresponding physical page address or -1 if no page found.
|
* Returns: Corresponding physical page address or -1 if no page found.
|
||||||
*/
|
*/
|
||||||
static inline hwaddr cpu_get_phys_page_debug(CPUState *cpu, vaddr addr)
|
hwaddr cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
|
||||||
{
|
|
||||||
MemTxAttrs attrs = {};
|
|
||||||
|
|
||||||
return cpu_get_phys_page_attrs_debug(cpu, addr, &attrs);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** cpu_asidx_from_attrs:
|
/** cpu_asidx_from_attrs:
|
||||||
* @cpu: CPU
|
* @cpu: CPU
|
||||||
|
@ -623,17 +608,7 @@ static inline hwaddr cpu_get_phys_page_debug(CPUState *cpu, vaddr addr)
|
||||||
* Returns the address space index specifying the CPU AddressSpace
|
* Returns the address space index specifying the CPU AddressSpace
|
||||||
* to use for a memory access with the given transaction attributes.
|
* to use for a memory access with the given transaction attributes.
|
||||||
*/
|
*/
|
||||||
static inline int cpu_asidx_from_attrs(CPUState *cpu, MemTxAttrs attrs)
|
int cpu_asidx_from_attrs(CPUState *cpu, MemTxAttrs attrs);
|
||||||
{
|
|
||||||
CPUClass *cc = CPU_GET_CLASS(cpu);
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
if (cc->asidx_from_attrs) {
|
|
||||||
ret = cc->asidx_from_attrs(cpu, attrs);
|
|
||||||
assert(ret < cpu->num_ases && ret >= 0);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* CONFIG_USER_ONLY */
|
#endif /* CONFIG_USER_ONLY */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue