mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
exec: Declare tlb_flush*() in 'exec/cputlb.h'
Move CPU TLB related methods to "exec/cputlb.h". Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Message-ID: <20241114011310.3615-19-philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
bcde46f57d
commit
6ff5da1600
34 changed files with 224 additions and 211 deletions
|
@ -33,7 +33,7 @@
|
||||||
#include "qemu/main-loop.h"
|
#include "qemu/main-loop.h"
|
||||||
#include "qemu/guest-random.h"
|
#include "qemu/guest-random.h"
|
||||||
#include "qemu/timer.h"
|
#include "qemu/timer.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "exec/hwaddr.h"
|
#include "exec/hwaddr.h"
|
||||||
#include "exec/tb-flush.h"
|
#include "exec/tb-flush.h"
|
||||||
#include "exec/translation-block.h"
|
#include "exec/translation-block.h"
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "exec/tswap.h"
|
#include "exec/tswap.h"
|
||||||
#include "exec/replay-core.h"
|
#include "exec/replay-core.h"
|
||||||
#include "exec/cpu-common.h"
|
#include "exec/cpu-common.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
#include "exec/tb-flush.h"
|
#include "exec/tb-flush.h"
|
||||||
#include "exec/log.h"
|
#include "exec/log.h"
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
#include "system/runstate.h"
|
#include "system/runstate.h"
|
||||||
#include "target/arm/cpu.h"
|
#include "target/arm/cpu.h"
|
||||||
#include "target/arm/cpu-features.h"
|
#include "target/arm/cpu-features.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "exec/memop.h"
|
#include "exec/memop.h"
|
||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
#include "qemu/module.h"
|
#include "qemu/module.h"
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qemu/cutils.h"
|
#include "qemu/cutils.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "helper_regs.h"
|
#include "helper_regs.h"
|
||||||
#include "hw/ppc/ppc.h"
|
#include "hw/ppc/ppc.h"
|
||||||
#include "hw/ppc/spapr.h"
|
#include "hw/ppc/spapr.h"
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include "hw/sh4/sh_intc.h"
|
#include "hw/sh4/sh_intc.h"
|
||||||
#include "hw/timer/tmu012.h"
|
#include "hw/timer/tmu012.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
|
|
||||||
typedef struct SH7750State {
|
typedef struct SH7750State {
|
||||||
|
|
|
@ -25,21 +25,14 @@
|
||||||
#include "exec/memattrs.h"
|
#include "exec/memattrs.h"
|
||||||
#include "exec/vaddr.h"
|
#include "exec/vaddr.h"
|
||||||
|
|
||||||
#ifdef CONFIG_TCG
|
#if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY)
|
||||||
|
|
||||||
#if !defined(CONFIG_USER_ONLY)
|
|
||||||
/* cputlb.c */
|
|
||||||
void tlb_protect_code(ram_addr_t ram_addr);
|
void tlb_protect_code(ram_addr_t ram_addr);
|
||||||
void tlb_unprotect_code(ram_addr_t ram_addr);
|
void tlb_unprotect_code(ram_addr_t ram_addr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* CONFIG_TCG */
|
|
||||||
|
|
||||||
#ifndef CONFIG_USER_ONLY
|
#ifndef CONFIG_USER_ONLY
|
||||||
|
|
||||||
void tlb_reset_dirty(CPUState *cpu, ram_addr_t start1, ram_addr_t length);
|
void tlb_reset_dirty(CPUState *cpu, ram_addr_t start1, ram_addr_t length);
|
||||||
void tlb_reset_dirty_range_all(ram_addr_t start, ram_addr_t length);
|
void tlb_reset_dirty_range_all(ram_addr_t start, ram_addr_t length);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -101,4 +94,193 @@ void tlb_set_page(CPUState *cpu, vaddr addr,
|
||||||
hwaddr paddr, int prot,
|
hwaddr paddr, int prot,
|
||||||
int mmu_idx, vaddr size);
|
int mmu_idx, vaddr size);
|
||||||
|
|
||||||
#endif
|
#if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY)
|
||||||
|
/**
|
||||||
|
* tlb_flush_page:
|
||||||
|
* @cpu: CPU whose TLB should be flushed
|
||||||
|
* @addr: virtual address of page to be flushed
|
||||||
|
*
|
||||||
|
* Flush one page from the TLB of the specified CPU, for all
|
||||||
|
* MMU indexes.
|
||||||
|
*/
|
||||||
|
void tlb_flush_page(CPUState *cpu, vaddr addr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tlb_flush_page_all_cpus_synced:
|
||||||
|
* @cpu: src CPU of the flush
|
||||||
|
* @addr: virtual address of page to be flushed
|
||||||
|
*
|
||||||
|
* Flush one page from the TLB of all CPUs, for all
|
||||||
|
* MMU indexes.
|
||||||
|
*
|
||||||
|
* When this function returns, no CPUs will subsequently perform
|
||||||
|
* translations using the flushed TLBs.
|
||||||
|
*/
|
||||||
|
void tlb_flush_page_all_cpus_synced(CPUState *src, vaddr addr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tlb_flush:
|
||||||
|
* @cpu: CPU whose TLB should be flushed
|
||||||
|
*
|
||||||
|
* Flush the entire TLB for the specified CPU. Most CPU architectures
|
||||||
|
* allow the implementation to drop entries from the TLB at any time
|
||||||
|
* so this is generally safe. If more selective flushing is required
|
||||||
|
* use one of the other functions for efficiency.
|
||||||
|
*/
|
||||||
|
void tlb_flush(CPUState *cpu);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tlb_flush_all_cpus_synced:
|
||||||
|
* @cpu: src CPU of the flush
|
||||||
|
*
|
||||||
|
* Flush the entire TLB for all CPUs, for all MMU indexes.
|
||||||
|
*
|
||||||
|
* When this function returns, no CPUs will subsequently perform
|
||||||
|
* translations using the flushed TLBs.
|
||||||
|
*/
|
||||||
|
void tlb_flush_all_cpus_synced(CPUState *src_cpu);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tlb_flush_page_by_mmuidx:
|
||||||
|
* @cpu: CPU whose TLB should be flushed
|
||||||
|
* @addr: virtual address of page to be flushed
|
||||||
|
* @idxmap: bitmap of MMU indexes to flush
|
||||||
|
*
|
||||||
|
* Flush one page from the TLB of the specified CPU, for the specified
|
||||||
|
* MMU indexes.
|
||||||
|
*/
|
||||||
|
void tlb_flush_page_by_mmuidx(CPUState *cpu, vaddr addr,
|
||||||
|
uint16_t idxmap);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tlb_flush_page_by_mmuidx_all_cpus_synced:
|
||||||
|
* @cpu: Originating CPU of the flush
|
||||||
|
* @addr: virtual address of page to be flushed
|
||||||
|
* @idxmap: bitmap of MMU indexes to flush
|
||||||
|
*
|
||||||
|
* Flush one page from the TLB of all CPUs, for the specified
|
||||||
|
* MMU indexes.
|
||||||
|
*
|
||||||
|
* When this function returns, no CPUs will subsequently perform
|
||||||
|
* translations using the flushed TLBs.
|
||||||
|
*/
|
||||||
|
void tlb_flush_page_by_mmuidx_all_cpus_synced(CPUState *cpu, vaddr addr,
|
||||||
|
uint16_t idxmap);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tlb_flush_by_mmuidx:
|
||||||
|
* @cpu: CPU whose TLB should be flushed
|
||||||
|
* @wait: If true ensure synchronisation by exiting the cpu_loop
|
||||||
|
* @idxmap: bitmap of MMU indexes to flush
|
||||||
|
*
|
||||||
|
* Flush all entries from the TLB of the specified CPU, for the specified
|
||||||
|
* MMU indexes.
|
||||||
|
*/
|
||||||
|
void tlb_flush_by_mmuidx(CPUState *cpu, uint16_t idxmap);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tlb_flush_by_mmuidx_all_cpus_synced:
|
||||||
|
* @cpu: Originating CPU of the flush
|
||||||
|
* @idxmap: bitmap of MMU indexes to flush
|
||||||
|
*
|
||||||
|
* Flush all entries from the TLB of all CPUs, for the specified
|
||||||
|
* MMU indexes.
|
||||||
|
*
|
||||||
|
* When this function returns, no CPUs will subsequently perform
|
||||||
|
* translations using the flushed TLBs.
|
||||||
|
*/
|
||||||
|
void tlb_flush_by_mmuidx_all_cpus_synced(CPUState *cpu, uint16_t idxmap);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tlb_flush_page_bits_by_mmuidx
|
||||||
|
* @cpu: CPU whose TLB should be flushed
|
||||||
|
* @addr: virtual address of page to be flushed
|
||||||
|
* @idxmap: bitmap of mmu indexes to flush
|
||||||
|
* @bits: number of significant bits in address
|
||||||
|
*
|
||||||
|
* Similar to tlb_flush_page_mask, but with a bitmap of indexes.
|
||||||
|
*/
|
||||||
|
void tlb_flush_page_bits_by_mmuidx(CPUState *cpu, vaddr addr,
|
||||||
|
uint16_t idxmap, unsigned bits);
|
||||||
|
|
||||||
|
/* Similarly, with broadcast and syncing. */
|
||||||
|
void tlb_flush_page_bits_by_mmuidx_all_cpus_synced(CPUState *cpu, vaddr addr,
|
||||||
|
uint16_t idxmap,
|
||||||
|
unsigned bits);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tlb_flush_range_by_mmuidx
|
||||||
|
* @cpu: CPU whose TLB should be flushed
|
||||||
|
* @addr: virtual address of the start of the range to be flushed
|
||||||
|
* @len: length of range to be flushed
|
||||||
|
* @idxmap: bitmap of mmu indexes to flush
|
||||||
|
* @bits: number of significant bits in address
|
||||||
|
*
|
||||||
|
* For each mmuidx in @idxmap, flush all pages within [@addr,@addr+@len),
|
||||||
|
* comparing only the low @bits worth of each virtual page.
|
||||||
|
*/
|
||||||
|
void tlb_flush_range_by_mmuidx(CPUState *cpu, vaddr addr,
|
||||||
|
vaddr len, uint16_t idxmap,
|
||||||
|
unsigned bits);
|
||||||
|
|
||||||
|
/* Similarly, with broadcast and syncing. */
|
||||||
|
void tlb_flush_range_by_mmuidx_all_cpus_synced(CPUState *cpu,
|
||||||
|
vaddr addr,
|
||||||
|
vaddr len,
|
||||||
|
uint16_t idxmap,
|
||||||
|
unsigned bits);
|
||||||
|
#else
|
||||||
|
static inline void tlb_flush_page(CPUState *cpu, vaddr addr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
static inline void tlb_flush_page_all_cpus_synced(CPUState *src, vaddr addr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
static inline void tlb_flush(CPUState *cpu)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
static inline void tlb_flush_all_cpus_synced(CPUState *src_cpu)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
static inline void tlb_flush_page_by_mmuidx(CPUState *cpu,
|
||||||
|
vaddr addr, uint16_t idxmap)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void tlb_flush_by_mmuidx(CPUState *cpu, uint16_t idxmap)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
static inline void tlb_flush_page_by_mmuidx_all_cpus_synced(CPUState *cpu,
|
||||||
|
vaddr addr,
|
||||||
|
uint16_t idxmap)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
static inline void tlb_flush_by_mmuidx_all_cpus_synced(CPUState *cpu,
|
||||||
|
uint16_t idxmap)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
static inline void tlb_flush_page_bits_by_mmuidx(CPUState *cpu,
|
||||||
|
vaddr addr,
|
||||||
|
uint16_t idxmap,
|
||||||
|
unsigned bits)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
static inline void
|
||||||
|
tlb_flush_page_bits_by_mmuidx_all_cpus_synced(CPUState *cpu, vaddr addr,
|
||||||
|
uint16_t idxmap, unsigned bits)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
static inline void tlb_flush_range_by_mmuidx(CPUState *cpu, vaddr addr,
|
||||||
|
vaddr len, uint16_t idxmap,
|
||||||
|
unsigned bits)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
static inline void tlb_flush_range_by_mmuidx_all_cpus_synced(CPUState *cpu,
|
||||||
|
vaddr addr,
|
||||||
|
vaddr len,
|
||||||
|
uint16_t idxmap,
|
||||||
|
unsigned bits)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_TCG && !CONFIG_USER_ONLY */
|
||||||
|
#endif /* CPUTLB_H */
|
||||||
|
|
|
@ -27,190 +27,6 @@
|
||||||
#include "exec/mmu-access-type.h"
|
#include "exec/mmu-access-type.h"
|
||||||
#include "exec/translation-block.h"
|
#include "exec/translation-block.h"
|
||||||
|
|
||||||
#if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG)
|
|
||||||
/* cputlb.c */
|
|
||||||
/**
|
|
||||||
* tlb_flush_page:
|
|
||||||
* @cpu: CPU whose TLB should be flushed
|
|
||||||
* @addr: virtual address of page to be flushed
|
|
||||||
*
|
|
||||||
* Flush one page from the TLB of the specified CPU, for all
|
|
||||||
* MMU indexes.
|
|
||||||
*/
|
|
||||||
void tlb_flush_page(CPUState *cpu, vaddr addr);
|
|
||||||
/**
|
|
||||||
* tlb_flush_page_all_cpus_synced:
|
|
||||||
* @cpu: src CPU of the flush
|
|
||||||
* @addr: virtual address of page to be flushed
|
|
||||||
*
|
|
||||||
* Flush one page from the TLB of all CPUs, for all
|
|
||||||
* MMU indexes.
|
|
||||||
*
|
|
||||||
* When this function returns, no CPUs will subsequently perform
|
|
||||||
* translations using the flushed TLBs.
|
|
||||||
*/
|
|
||||||
void tlb_flush_page_all_cpus_synced(CPUState *src, vaddr addr);
|
|
||||||
/**
|
|
||||||
* tlb_flush:
|
|
||||||
* @cpu: CPU whose TLB should be flushed
|
|
||||||
*
|
|
||||||
* Flush the entire TLB for the specified CPU. Most CPU architectures
|
|
||||||
* allow the implementation to drop entries from the TLB at any time
|
|
||||||
* so this is generally safe. If more selective flushing is required
|
|
||||||
* use one of the other functions for efficiency.
|
|
||||||
*/
|
|
||||||
void tlb_flush(CPUState *cpu);
|
|
||||||
/**
|
|
||||||
* tlb_flush_all_cpus_synced:
|
|
||||||
* @cpu: src CPU of the flush
|
|
||||||
*
|
|
||||||
* Flush the entire TLB for all CPUs, for all MMU indexes.
|
|
||||||
*
|
|
||||||
* When this function returns, no CPUs will subsequently perform
|
|
||||||
* translations using the flushed TLBs.
|
|
||||||
*/
|
|
||||||
void tlb_flush_all_cpus_synced(CPUState *src_cpu);
|
|
||||||
/**
|
|
||||||
* tlb_flush_page_by_mmuidx:
|
|
||||||
* @cpu: CPU whose TLB should be flushed
|
|
||||||
* @addr: virtual address of page to be flushed
|
|
||||||
* @idxmap: bitmap of MMU indexes to flush
|
|
||||||
*
|
|
||||||
* Flush one page from the TLB of the specified CPU, for the specified
|
|
||||||
* MMU indexes.
|
|
||||||
*/
|
|
||||||
void tlb_flush_page_by_mmuidx(CPUState *cpu, vaddr addr,
|
|
||||||
uint16_t idxmap);
|
|
||||||
/**
|
|
||||||
* tlb_flush_page_by_mmuidx_all_cpus_synced:
|
|
||||||
* @cpu: Originating CPU of the flush
|
|
||||||
* @addr: virtual address of page to be flushed
|
|
||||||
* @idxmap: bitmap of MMU indexes to flush
|
|
||||||
*
|
|
||||||
* Flush one page from the TLB of all CPUs, for the specified
|
|
||||||
* MMU indexes.
|
|
||||||
*
|
|
||||||
* When this function returns, no CPUs will subsequently perform
|
|
||||||
* translations using the flushed TLBs.
|
|
||||||
*/
|
|
||||||
void tlb_flush_page_by_mmuidx_all_cpus_synced(CPUState *cpu, vaddr addr,
|
|
||||||
uint16_t idxmap);
|
|
||||||
/**
|
|
||||||
* tlb_flush_by_mmuidx:
|
|
||||||
* @cpu: CPU whose TLB should be flushed
|
|
||||||
* @wait: If true ensure synchronisation by exiting the cpu_loop
|
|
||||||
* @idxmap: bitmap of MMU indexes to flush
|
|
||||||
*
|
|
||||||
* Flush all entries from the TLB of the specified CPU, for the specified
|
|
||||||
* MMU indexes.
|
|
||||||
*/
|
|
||||||
void tlb_flush_by_mmuidx(CPUState *cpu, uint16_t idxmap);
|
|
||||||
/**
|
|
||||||
* tlb_flush_by_mmuidx_all_cpus_synced:
|
|
||||||
* @cpu: Originating CPU of the flush
|
|
||||||
* @idxmap: bitmap of MMU indexes to flush
|
|
||||||
*
|
|
||||||
* Flush all entries from the TLB of all CPUs, for the specified
|
|
||||||
* MMU indexes.
|
|
||||||
*
|
|
||||||
* When this function returns, no CPUs will subsequently perform
|
|
||||||
* translations using the flushed TLBs.
|
|
||||||
*/
|
|
||||||
void tlb_flush_by_mmuidx_all_cpus_synced(CPUState *cpu, uint16_t idxmap);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* tlb_flush_page_bits_by_mmuidx
|
|
||||||
* @cpu: CPU whose TLB should be flushed
|
|
||||||
* @addr: virtual address of page to be flushed
|
|
||||||
* @idxmap: bitmap of mmu indexes to flush
|
|
||||||
* @bits: number of significant bits in address
|
|
||||||
*
|
|
||||||
* Similar to tlb_flush_page_mask, but with a bitmap of indexes.
|
|
||||||
*/
|
|
||||||
void tlb_flush_page_bits_by_mmuidx(CPUState *cpu, vaddr addr,
|
|
||||||
uint16_t idxmap, unsigned bits);
|
|
||||||
|
|
||||||
/* Similarly, with broadcast and syncing. */
|
|
||||||
void tlb_flush_page_bits_by_mmuidx_all_cpus_synced
|
|
||||||
(CPUState *cpu, vaddr addr, uint16_t idxmap, unsigned bits);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* tlb_flush_range_by_mmuidx
|
|
||||||
* @cpu: CPU whose TLB should be flushed
|
|
||||||
* @addr: virtual address of the start of the range to be flushed
|
|
||||||
* @len: length of range to be flushed
|
|
||||||
* @idxmap: bitmap of mmu indexes to flush
|
|
||||||
* @bits: number of significant bits in address
|
|
||||||
*
|
|
||||||
* For each mmuidx in @idxmap, flush all pages within [@addr,@addr+@len),
|
|
||||||
* comparing only the low @bits worth of each virtual page.
|
|
||||||
*/
|
|
||||||
void tlb_flush_range_by_mmuidx(CPUState *cpu, vaddr addr,
|
|
||||||
vaddr len, uint16_t idxmap,
|
|
||||||
unsigned bits);
|
|
||||||
|
|
||||||
/* Similarly, with broadcast and syncing. */
|
|
||||||
void tlb_flush_range_by_mmuidx_all_cpus_synced(CPUState *cpu,
|
|
||||||
vaddr addr,
|
|
||||||
vaddr len,
|
|
||||||
uint16_t idxmap,
|
|
||||||
unsigned bits);
|
|
||||||
|
|
||||||
#else
|
|
||||||
static inline void tlb_flush_page(CPUState *cpu, vaddr addr)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
static inline void tlb_flush_page_all_cpus_synced(CPUState *src, vaddr addr)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
static inline void tlb_flush(CPUState *cpu)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
static inline void tlb_flush_all_cpus_synced(CPUState *src_cpu)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
static inline void tlb_flush_page_by_mmuidx(CPUState *cpu,
|
|
||||||
vaddr addr, uint16_t idxmap)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void tlb_flush_by_mmuidx(CPUState *cpu, uint16_t idxmap)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
static inline void tlb_flush_page_by_mmuidx_all_cpus_synced(CPUState *cpu,
|
|
||||||
vaddr addr,
|
|
||||||
uint16_t idxmap)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
static inline void tlb_flush_by_mmuidx_all_cpus_synced(CPUState *cpu,
|
|
||||||
uint16_t idxmap)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
static inline void tlb_flush_page_bits_by_mmuidx(CPUState *cpu,
|
|
||||||
vaddr addr,
|
|
||||||
uint16_t idxmap,
|
|
||||||
unsigned bits)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
static inline void
|
|
||||||
tlb_flush_page_bits_by_mmuidx_all_cpus_synced(CPUState *cpu, vaddr addr,
|
|
||||||
uint16_t idxmap, unsigned bits)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
static inline void tlb_flush_range_by_mmuidx(CPUState *cpu, vaddr addr,
|
|
||||||
vaddr len, uint16_t idxmap,
|
|
||||||
unsigned bits)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
static inline void tlb_flush_range_by_mmuidx_all_cpus_synced(CPUState *cpu,
|
|
||||||
vaddr addr,
|
|
||||||
vaddr len,
|
|
||||||
uint16_t idxmap,
|
|
||||||
unsigned bits)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CONFIG_TCG)
|
#if defined(CONFIG_TCG)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -19,7 +19,8 @@
|
||||||
|
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qemu/error-report.h"
|
#include "qemu/error-report.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
|
#include "exec/target_page.h"
|
||||||
#include "hw/core/cpu.h"
|
#include "hw/core/cpu.h"
|
||||||
|
|
||||||
/* Add a watchpoint. */
|
/* Add a watchpoint. */
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "exec/tb-flush.h"
|
#include "exec/tb-flush.h"
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "system/runstate.h"
|
#include "system/runstate.h"
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
#include "qemu/timer.h"
|
#include "qemu/timer.h"
|
||||||
#include "qemu/bitops.h"
|
#include "qemu/bitops.h"
|
||||||
#include "qemu/qemu-print.h"
|
#include "qemu/qemu-print.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
#include "exec/translation-block.h"
|
#include "exec/translation-block.h"
|
||||||
#include "hw/irq.h"
|
#include "hw/irq.h"
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
*/
|
*/
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "internals.h"
|
#include "internals.h"
|
||||||
#include "cpu-features.h"
|
#include "cpu-features.h"
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "exec/page-protection.h"
|
#include "exec/page-protection.h"
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "hw/core/cpu.h"
|
#include "hw/core/cpu.h"
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qapi/qapi-events-run-state.h"
|
#include "qapi/qapi-events-run-state.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "exec/translation-block.h"
|
#include "exec/translation-block.h"
|
||||||
#include "system/runstate.h"
|
#include "system/runstate.h"
|
||||||
#ifndef CONFIG_USER_ONLY
|
#ifndef CONFIG_USER_ONLY
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "hw/isa/isa.h"
|
#include "hw/isa/isa.h"
|
||||||
#include "migration/cpu.h"
|
#include "migration/cpu.h"
|
||||||
#include "kvm/hyperv.h"
|
#include "kvm/hyperv.h"
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "tcg-cpu.h"
|
#include "tcg-cpu.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "exec/cpu_ldst.h"
|
#include "exec/cpu_ldst.h"
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "fpu/softfloat.h"
|
#include "fpu/softfloat.h"
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "helper-tcg.h"
|
#include "helper-tcg.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "exec/cpu_ldst.h"
|
#include "exec/cpu_ldst.h"
|
||||||
#include "exec/address-spaces.h"
|
#include "exec/address-spaces.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "tcg/helper-tcg.h"
|
#include "tcg/helper-tcg.h"
|
||||||
#include "hw/i386/apic.h"
|
#include "hw/i386/apic.h"
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "exec/cpu_ldst.h"
|
#include "exec/cpu_ldst.h"
|
||||||
#include "tcg/helper-tcg.h"
|
#include "tcg/helper-tcg.h"
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#include "internals.h"
|
#include "internals.h"
|
||||||
#include "qemu/host-utils.h"
|
#include "qemu/host-utils.h"
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "exec/cpu_ldst.h"
|
#include "exec/cpu_ldst.h"
|
||||||
#include "hw/irq.h"
|
#include "hw/irq.h"
|
||||||
#include "cpu-csr.h"
|
#include "cpu-csr.h"
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "exec/page-protection.h"
|
#include "exec/page-protection.h"
|
||||||
|
|
||||||
static unsigned int tlb_decode_size(unsigned int f)
|
static unsigned int tlb_decode_size(unsigned int f)
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
|
|
||||||
/* Called for updates to CP0_Status. */
|
/* Called for updates to CP0_Status. */
|
||||||
void sync_c0_status(CPUMIPSState *env, CPUMIPSState *cpu, int tc)
|
void sync_c0_status(CPUMIPSState *env, CPUMIPSState *cpu, int tc)
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "qemu/host-utils.h"
|
#include "qemu/host-utils.h"
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
|
|
||||||
|
|
||||||
/* SMP helpers. */
|
/* SMP helpers. */
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "exception.h"
|
#include "exception.h"
|
||||||
#ifndef CONFIG_USER_ONLY
|
#ifndef CONFIG_USER_ONLY
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "qemu/main-loop.h"
|
#include "qemu/main-loop.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "system/kvm.h"
|
#include "system/kvm.h"
|
||||||
#include "system/tcg.h"
|
#include "system/tcg.h"
|
||||||
#include "helper_regs.h"
|
#include "helper_regs.h"
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "qemu/error-report.h"
|
#include "qemu/error-report.h"
|
||||||
#include "qemu/main-loop.h"
|
#include "qemu/main-loop.h"
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "pmu.h"
|
#include "pmu.h"
|
||||||
#include "time_helper.h"
|
#include "time_helper.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "exec/tb-flush.h"
|
#include "exec/tb-flush.h"
|
||||||
#include "system/cpu-timers.h"
|
#include "system/cpu-timers.h"
|
||||||
#include "qemu/guest-random.h"
|
#include "qemu/guest-random.h"
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "internals.h"
|
#include "internals.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "exec/cpu_ldst.h"
|
#include "exec/cpu_ldst.h"
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "exec/page-protection.h"
|
#include "exec/page-protection.h"
|
||||||
|
|
||||||
static bool pmp_write_cfg(CPURISCVState *env, uint32_t addr_index,
|
static bool pmp_write_cfg(CPURISCVState *env, uint32_t addr_index,
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "s390x-internal.h"
|
#include "s390x-internal.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/cputlb.h"
|
||||||
#include "exec/gdbstub.h"
|
#include "exec/gdbstub.h"
|
||||||
#include "gdbstub/helpers.h"
|
#include "gdbstub/helpers.h"
|
||||||
#include "qemu/bitops.h"
|
#include "qemu/bitops.h"
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include "system/hw_accel.h"
|
#include "system/hw_accel.h"
|
||||||
#include "system/runstate.h"
|
#include "system/runstate.h"
|
||||||
#include "exec/address-spaces.h"
|
#include "exec/address-spaces.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
#include "system/tcg.h"
|
#include "system/tcg.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "exec/cpu-common.h"
|
#include "exec/cpu-common.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "exec/page-protection.h"
|
#include "exec/page-protection.h"
|
||||||
#include "exec/cpu_ldst.h"
|
#include "exec/cpu_ldst.h"
|
||||||
#include "accel/tcg/cpu-ops.h"
|
#include "accel/tcg/cpu-ops.h"
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "qemu/timer.h"
|
#include "qemu/timer.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "exec/cpu_ldst.h"
|
#include "exec/cpu_ldst.h"
|
||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
#include "tcg_s390x.h"
|
#include "tcg_s390x.h"
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#include "tcg/tcg.h"
|
#include "tcg/tcg.h"
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "exec/page-protection.h"
|
#include "exec/page-protection.h"
|
||||||
#include "exec/cpu_ldst.h"
|
#include "exec/cpu_ldst.h"
|
||||||
#ifdef CONFIG_USER_ONLY
|
#ifdef CONFIG_USER_ONLY
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "exec/helper-proto.h"
|
#include "exec/helper-proto.h"
|
||||||
#include "qemu/host-utils.h"
|
#include "qemu/host-utils.h"
|
||||||
|
#include "exec/cputlb.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
#include "exec/page-protection.h"
|
#include "exec/page-protection.h"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue