Remove unused is_softmmu parameter from cpu_handle_mmu_fault
Parameter is_softmmu (and its evil mutant twin brother is_softmuu) is not used in cpu_*_handle_mmu_fault() functions, remove them and adjust callers. Acked-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
548f66db33
commit
97b348e7d2
@ -426,7 +426,7 @@ int cpu_alpha_exec(CPUAlphaState *s);
|
|||||||
int cpu_alpha_signal_handler(int host_signum, void *pinfo,
|
int cpu_alpha_signal_handler(int host_signum, void *pinfo,
|
||||||
void *puc);
|
void *puc);
|
||||||
int cpu_alpha_handle_mmu_fault (CPUState *env, uint64_t address, int rw,
|
int cpu_alpha_handle_mmu_fault (CPUState *env, uint64_t address, int rw,
|
||||||
int mmu_idx, int is_softmmu);
|
int mmu_idx);
|
||||||
#define cpu_handle_mmu_fault cpu_alpha_handle_mmu_fault
|
#define cpu_handle_mmu_fault cpu_alpha_handle_mmu_fault
|
||||||
void do_interrupt (CPUState *env);
|
void do_interrupt (CPUState *env);
|
||||||
|
|
||||||
|
@ -160,7 +160,7 @@ void cpu_alpha_store_fpcr (CPUState *env, uint64_t val)
|
|||||||
|
|
||||||
#if defined(CONFIG_USER_ONLY)
|
#if defined(CONFIG_USER_ONLY)
|
||||||
int cpu_alpha_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_alpha_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
env->exception_index = EXCP_MMFAULT;
|
env->exception_index = EXCP_MMFAULT;
|
||||||
env->trap_arg0 = address;
|
env->trap_arg0 = address;
|
||||||
@ -316,7 +316,7 @@ target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_alpha_handle_mmu_fault(CPUState *env, target_ulong addr, int rw,
|
int cpu_alpha_handle_mmu_fault(CPUState *env, target_ulong addr, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
target_ulong phys;
|
target_ulong phys;
|
||||||
int prot, fail;
|
int prot, fail;
|
||||||
|
@ -1344,7 +1344,7 @@ void tlb_fill (target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
|||||||
generated code */
|
generated code */
|
||||||
saved_env = env;
|
saved_env = env;
|
||||||
env = cpu_single_env;
|
env = cpu_single_env;
|
||||||
ret = cpu_alpha_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
|
ret = cpu_alpha_handle_mmu_fault(env, addr, is_write, mmu_idx);
|
||||||
if (unlikely(ret != 0)) {
|
if (unlikely(ret != 0)) {
|
||||||
do_restore_state(retaddr);
|
do_restore_state(retaddr);
|
||||||
/* Exception index and error code are already set */
|
/* Exception index and error code are already set */
|
||||||
|
@ -244,7 +244,7 @@ uint32_t do_arm_semihosting(CPUARMState *env);
|
|||||||
int cpu_arm_signal_handler(int host_signum, void *pinfo,
|
int cpu_arm_signal_handler(int host_signum, void *pinfo,
|
||||||
void *puc);
|
void *puc);
|
||||||
int cpu_arm_handle_mmu_fault (CPUARMState *env, target_ulong address, int rw,
|
int cpu_arm_handle_mmu_fault (CPUARMState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmuu);
|
int mmu_idx);
|
||||||
#define cpu_handle_mmu_fault cpu_arm_handle_mmu_fault
|
#define cpu_handle_mmu_fault cpu_arm_handle_mmu_fault
|
||||||
|
|
||||||
static inline void cpu_set_tls(CPUARMState *env, target_ulong newtls)
|
static inline void cpu_set_tls(CPUARMState *env, target_ulong newtls)
|
||||||
|
@ -542,7 +542,7 @@ void do_interrupt (CPUState *env)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_arm_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_arm_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
if (rw == 2) {
|
if (rw == 2) {
|
||||||
env->exception_index = EXCP_PREFETCH_ABORT;
|
env->exception_index = EXCP_PREFETCH_ABORT;
|
||||||
@ -1254,7 +1254,7 @@ static inline int get_phys_addr(CPUState *env, uint32_t address,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_arm_handle_mmu_fault (CPUState *env, target_ulong address,
|
int cpu_arm_handle_mmu_fault (CPUState *env, target_ulong address,
|
||||||
int access_type, int mmu_idx, int is_softmmu)
|
int access_type, int mmu_idx)
|
||||||
{
|
{
|
||||||
uint32_t phys_addr;
|
uint32_t phys_addr;
|
||||||
target_ulong page_size;
|
target_ulong page_size;
|
||||||
|
@ -86,7 +86,7 @@ void tlb_fill (target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
|||||||
generated code */
|
generated code */
|
||||||
saved_env = env;
|
saved_env = env;
|
||||||
env = cpu_single_env;
|
env = cpu_single_env;
|
||||||
ret = cpu_arm_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
|
ret = cpu_arm_handle_mmu_fault(env, addr, is_write, mmu_idx);
|
||||||
if (unlikely(ret)) {
|
if (unlikely(ret)) {
|
||||||
if (retaddr) {
|
if (retaddr) {
|
||||||
/* now we have a real cpu fault */
|
/* now we have a real cpu fault */
|
||||||
|
@ -226,7 +226,7 @@ static inline int cpu_mmu_index (CPUState *env)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_cris_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
int cpu_cris_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu);
|
int mmu_idx);
|
||||||
#define cpu_handle_mmu_fault cpu_cris_handle_mmu_fault
|
#define cpu_handle_mmu_fault cpu_cris_handle_mmu_fault
|
||||||
|
|
||||||
#if defined(CONFIG_USER_ONLY)
|
#if defined(CONFIG_USER_ONLY)
|
||||||
|
@ -47,7 +47,7 @@ void do_interrupt (CPUState *env)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_cris_handle_mmu_fault(CPUState * env, target_ulong address, int rw,
|
int cpu_cris_handle_mmu_fault(CPUState * env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
env->exception_index = 0xaa;
|
env->exception_index = 0xaa;
|
||||||
env->pregs[PR_EDA] = address;
|
env->pregs[PR_EDA] = address;
|
||||||
@ -68,7 +68,7 @@ static void cris_shift_ccs(CPUState *env)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_cris_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_cris_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
struct cris_mmu_result res;
|
struct cris_mmu_result res;
|
||||||
int prot, miss;
|
int prot, miss;
|
||||||
@ -104,10 +104,9 @@ int cpu_cris_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
|||||||
r = 0;
|
r = 0;
|
||||||
}
|
}
|
||||||
if (r > 0)
|
if (r > 0)
|
||||||
D_LOG("%s returns %d irqreq=%x addr=%x"
|
D_LOG("%s returns %d irqreq=%x addr=%x phy=%x vec=%x pc=%x\n",
|
||||||
" phy=%x ismmu=%d vec=%x pc=%x\n",
|
__func__, r, env->interrupt_request, address, res.phy,
|
||||||
__func__, r, env->interrupt_request,
|
res.bf_vec, env->pc);
|
||||||
address, res.phy, is_softmmu, res.bf_vec, env->pc);
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ void tlb_fill (target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
|||||||
|
|
||||||
D_LOG("%s pc=%x tpc=%x ra=%x\n", __func__,
|
D_LOG("%s pc=%x tpc=%x ra=%x\n", __func__,
|
||||||
env->pc, env->debug1, retaddr);
|
env->pc, env->debug1, retaddr);
|
||||||
ret = cpu_cris_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
|
ret = cpu_cris_handle_mmu_fault(env, addr, is_write, mmu_idx);
|
||||||
if (unlikely(ret)) {
|
if (unlikely(ret)) {
|
||||||
if (retaddr) {
|
if (retaddr) {
|
||||||
/* now we have a real cpu fault */
|
/* now we have a real cpu fault */
|
||||||
|
@ -889,7 +889,7 @@ void host_cpuid(uint32_t function, uint32_t count,
|
|||||||
|
|
||||||
/* helper.c */
|
/* helper.c */
|
||||||
int cpu_x86_handle_mmu_fault(CPUX86State *env, target_ulong addr,
|
int cpu_x86_handle_mmu_fault(CPUX86State *env, target_ulong addr,
|
||||||
int is_write, int mmu_idx, int is_softmmu);
|
int is_write, int mmu_idx);
|
||||||
#define cpu_handle_mmu_fault cpu_x86_handle_mmu_fault
|
#define cpu_handle_mmu_fault cpu_x86_handle_mmu_fault
|
||||||
void cpu_x86_set_a20(CPUX86State *env, int a20_state);
|
void cpu_x86_set_a20(CPUX86State *env, int a20_state);
|
||||||
|
|
||||||
|
@ -546,7 +546,7 @@ void cpu_x86_update_cr4(CPUX86State *env, uint32_t new_cr4)
|
|||||||
#if defined(CONFIG_USER_ONLY)
|
#if defined(CONFIG_USER_ONLY)
|
||||||
|
|
||||||
int cpu_x86_handle_mmu_fault(CPUX86State *env, target_ulong addr,
|
int cpu_x86_handle_mmu_fault(CPUX86State *env, target_ulong addr,
|
||||||
int is_write, int mmu_idx, int is_softmmu)
|
int is_write, int mmu_idx)
|
||||||
{
|
{
|
||||||
/* user mode only emulation */
|
/* user mode only emulation */
|
||||||
is_write &= 1;
|
is_write &= 1;
|
||||||
@ -573,7 +573,7 @@ int cpu_x86_handle_mmu_fault(CPUX86State *env, target_ulong addr,
|
|||||||
1 = generate PF fault
|
1 = generate PF fault
|
||||||
*/
|
*/
|
||||||
int cpu_x86_handle_mmu_fault(CPUX86State *env, target_ulong addr,
|
int cpu_x86_handle_mmu_fault(CPUX86State *env, target_ulong addr,
|
||||||
int is_write1, int mmu_idx, int is_softmmu)
|
int is_write1, int mmu_idx)
|
||||||
{
|
{
|
||||||
uint64_t ptep, pte;
|
uint64_t ptep, pte;
|
||||||
target_ulong pde_addr, pte_addr;
|
target_ulong pde_addr, pte_addr;
|
||||||
|
@ -5009,7 +5009,7 @@ void tlb_fill(target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
|||||||
saved_env = env;
|
saved_env = env;
|
||||||
env = cpu_single_env;
|
env = cpu_single_env;
|
||||||
|
|
||||||
ret = cpu_x86_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
|
ret = cpu_x86_handle_mmu_fault(env, addr, is_write, mmu_idx);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
if (retaddr) {
|
if (retaddr) {
|
||||||
/* now we have a real cpu fault */
|
/* now we have a real cpu fault */
|
||||||
|
@ -205,7 +205,7 @@ void cpu_lm32_set_phys_msb_ignore(CPUState *env, int value);
|
|||||||
#define CPU_SAVE_VERSION 1
|
#define CPU_SAVE_VERSION 1
|
||||||
|
|
||||||
int cpu_lm32_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
int cpu_lm32_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu);
|
int mmu_idx);
|
||||||
#define cpu_handle_mmu_fault cpu_lm32_handle_mmu_fault
|
#define cpu_handle_mmu_fault cpu_lm32_handle_mmu_fault
|
||||||
|
|
||||||
#if defined(CONFIG_USER_ONLY)
|
#if defined(CONFIG_USER_ONLY)
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#include "host-utils.h"
|
#include "host-utils.h"
|
||||||
|
|
||||||
int cpu_lm32_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
int cpu_lm32_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
int prot;
|
int prot;
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ void tlb_fill(target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
|||||||
saved_env = env;
|
saved_env = env;
|
||||||
env = cpu_single_env;
|
env = cpu_single_env;
|
||||||
|
|
||||||
ret = cpu_lm32_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
|
ret = cpu_lm32_handle_mmu_fault(env, addr, is_write, mmu_idx);
|
||||||
if (unlikely(ret)) {
|
if (unlikely(ret)) {
|
||||||
if (retaddr) {
|
if (retaddr) {
|
||||||
/* now we have a real cpu fault */
|
/* now we have a real cpu fault */
|
||||||
|
@ -231,7 +231,7 @@ static inline int cpu_mmu_index (CPUState *env)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_m68k_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
int cpu_m68k_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu);
|
int mmu_idx);
|
||||||
#define cpu_handle_mmu_fault cpu_m68k_handle_mmu_fault
|
#define cpu_handle_mmu_fault cpu_m68k_handle_mmu_fault
|
||||||
|
|
||||||
#if defined(CONFIG_USER_ONLY)
|
#if defined(CONFIG_USER_ONLY)
|
||||||
|
@ -344,7 +344,7 @@ void m68k_switch_sp(CPUM68KState *env)
|
|||||||
#if defined(CONFIG_USER_ONLY)
|
#if defined(CONFIG_USER_ONLY)
|
||||||
|
|
||||||
int cpu_m68k_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_m68k_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
env->exception_index = EXCP_ACCESS;
|
env->exception_index = EXCP_ACCESS;
|
||||||
env->mmu.ar = address;
|
env->mmu.ar = address;
|
||||||
@ -362,7 +362,7 @@ target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_m68k_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_m68k_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
int prot;
|
int prot;
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ void tlb_fill (target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
|||||||
generated code */
|
generated code */
|
||||||
saved_env = env;
|
saved_env = env;
|
||||||
env = cpu_single_env;
|
env = cpu_single_env;
|
||||||
ret = cpu_m68k_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
|
ret = cpu_m68k_handle_mmu_fault(env, addr, is_write, mmu_idx);
|
||||||
if (unlikely(ret)) {
|
if (unlikely(ret)) {
|
||||||
if (retaddr) {
|
if (retaddr) {
|
||||||
/* now we have a real cpu fault */
|
/* now we have a real cpu fault */
|
||||||
|
@ -309,7 +309,7 @@ static inline int cpu_mmu_index (CPUState *env)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_mb_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
int cpu_mb_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu);
|
int mmu_idx);
|
||||||
#define cpu_handle_mmu_fault cpu_mb_handle_mmu_fault
|
#define cpu_handle_mmu_fault cpu_mb_handle_mmu_fault
|
||||||
|
|
||||||
#if defined(CONFIG_USER_ONLY)
|
#if defined(CONFIG_USER_ONLY)
|
||||||
|
@ -37,7 +37,7 @@ void do_interrupt (CPUState *env)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_mb_handle_mmu_fault(CPUState * env, target_ulong address, int rw,
|
int cpu_mb_handle_mmu_fault(CPUState * env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
env->exception_index = 0xaa;
|
env->exception_index = 0xaa;
|
||||||
cpu_dump_state(env, stderr, fprintf, 0);
|
cpu_dump_state(env, stderr, fprintf, 0);
|
||||||
@ -47,7 +47,7 @@ int cpu_mb_handle_mmu_fault(CPUState * env, target_ulong address, int rw,
|
|||||||
#else /* !CONFIG_USER_ONLY */
|
#else /* !CONFIG_USER_ONLY */
|
||||||
|
|
||||||
int cpu_mb_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_mb_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
unsigned int hit;
|
unsigned int hit;
|
||||||
unsigned int mmu_available;
|
unsigned int mmu_available;
|
||||||
|
@ -54,7 +54,7 @@ void tlb_fill (target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
|||||||
saved_env = env;
|
saved_env = env;
|
||||||
env = cpu_single_env;
|
env = cpu_single_env;
|
||||||
|
|
||||||
ret = cpu_mb_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
|
ret = cpu_mb_handle_mmu_fault(env, addr, is_write, mmu_idx);
|
||||||
if (unlikely(ret)) {
|
if (unlikely(ret)) {
|
||||||
if (retaddr) {
|
if (retaddr) {
|
||||||
/* now we have a real cpu fault */
|
/* now we have a real cpu fault */
|
||||||
|
@ -636,7 +636,7 @@ void cpu_mips_soft_irq(CPUState *env, int irq, int level);
|
|||||||
|
|
||||||
/* helper.c */
|
/* helper.c */
|
||||||
int cpu_mips_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_mips_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu);
|
int mmu_idx);
|
||||||
#define cpu_handle_mmu_fault cpu_mips_handle_mmu_fault
|
#define cpu_handle_mmu_fault cpu_mips_handle_mmu_fault
|
||||||
void do_interrupt (CPUState *env);
|
void do_interrupt (CPUState *env);
|
||||||
#if !defined(CONFIG_USER_ONLY)
|
#if !defined(CONFIG_USER_ONLY)
|
||||||
|
@ -266,7 +266,7 @@ target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
int cpu_mips_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_mips_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
#if !defined(CONFIG_USER_ONLY)
|
#if !defined(CONFIG_USER_ONLY)
|
||||||
target_phys_addr_t physical;
|
target_phys_addr_t physical;
|
||||||
@ -278,8 +278,8 @@ int cpu_mips_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
|||||||
#if 0
|
#if 0
|
||||||
log_cpu_state(env, 0);
|
log_cpu_state(env, 0);
|
||||||
#endif
|
#endif
|
||||||
qemu_log("%s pc " TARGET_FMT_lx " ad " TARGET_FMT_lx " rw %d mmu_idx %d smmu %d\n",
|
qemu_log("%s pc " TARGET_FMT_lx " ad " TARGET_FMT_lx " rw %d mmu_idx %d\n",
|
||||||
__func__, env->active_tc.PC, address, rw, mmu_idx, is_softmmu);
|
__func__, env->active_tc.PC, address, rw, mmu_idx);
|
||||||
|
|
||||||
rw &= 1;
|
rw &= 1;
|
||||||
|
|
||||||
|
@ -2017,7 +2017,7 @@ void tlb_fill (target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
|||||||
generated code */
|
generated code */
|
||||||
saved_env = env;
|
saved_env = env;
|
||||||
env = cpu_single_env;
|
env = cpu_single_env;
|
||||||
ret = cpu_mips_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
|
ret = cpu_mips_handle_mmu_fault(env, addr, is_write, mmu_idx);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
if (retaddr) {
|
if (retaddr) {
|
||||||
/* now we have a real cpu fault */
|
/* now we have a real cpu fault */
|
||||||
|
@ -1022,7 +1022,7 @@ void cpu_ppc_close (CPUPPCState *s);
|
|||||||
int cpu_ppc_signal_handler (int host_signum, void *pinfo,
|
int cpu_ppc_signal_handler (int host_signum, void *pinfo,
|
||||||
void *puc);
|
void *puc);
|
||||||
int cpu_ppc_handle_mmu_fault (CPUPPCState *env, target_ulong address, int rw,
|
int cpu_ppc_handle_mmu_fault (CPUPPCState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu);
|
int mmu_idx);
|
||||||
#define cpu_handle_mmu_fault cpu_ppc_handle_mmu_fault
|
#define cpu_handle_mmu_fault cpu_ppc_handle_mmu_fault
|
||||||
#if !defined(CONFIG_USER_ONLY)
|
#if !defined(CONFIG_USER_ONLY)
|
||||||
int get_physical_address (CPUPPCState *env, mmu_ctx_t *ctx, target_ulong vaddr,
|
int get_physical_address (CPUPPCState *env, mmu_ctx_t *ctx, target_ulong vaddr,
|
||||||
|
@ -78,7 +78,7 @@ void (*cpu_ppc_hypercall)(CPUState *);
|
|||||||
|
|
||||||
#if defined(CONFIG_USER_ONLY)
|
#if defined(CONFIG_USER_ONLY)
|
||||||
int cpu_ppc_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_ppc_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
int exception, error_code;
|
int exception, error_code;
|
||||||
|
|
||||||
@ -1658,7 +1658,7 @@ static void booke206_update_mas_tlb_miss(CPUState *env, target_ulong address,
|
|||||||
|
|
||||||
/* Perform address translation */
|
/* Perform address translation */
|
||||||
int cpu_ppc_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_ppc_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
mmu_ctx_t ctx;
|
mmu_ctx_t ctx;
|
||||||
int access_type;
|
int access_type;
|
||||||
|
@ -3725,7 +3725,7 @@ void tlb_fill (target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
|||||||
generated code */
|
generated code */
|
||||||
saved_env = env;
|
saved_env = env;
|
||||||
env = cpu_single_env;
|
env = cpu_single_env;
|
||||||
ret = cpu_ppc_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
|
ret = cpu_ppc_handle_mmu_fault(env, addr, is_write, mmu_idx);
|
||||||
if (unlikely(ret != 0)) {
|
if (unlikely(ret != 0)) {
|
||||||
if (likely(retaddr)) {
|
if (likely(retaddr)) {
|
||||||
/* now we have a real cpu fault */
|
/* now we have a real cpu fault */
|
||||||
|
@ -280,7 +280,7 @@ void do_interrupt (CPUState *env);
|
|||||||
int cpu_s390x_signal_handler(int host_signum, void *pinfo,
|
int cpu_s390x_signal_handler(int host_signum, void *pinfo,
|
||||||
void *puc);
|
void *puc);
|
||||||
int cpu_s390x_handle_mmu_fault (CPUS390XState *env, target_ulong address, int rw,
|
int cpu_s390x_handle_mmu_fault (CPUS390XState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmuu);
|
int mmu_idx);
|
||||||
#define cpu_handle_mmu_fault cpu_s390x_handle_mmu_fault
|
#define cpu_handle_mmu_fault cpu_s390x_handle_mmu_fault
|
||||||
|
|
||||||
|
|
||||||
|
@ -110,10 +110,10 @@ void do_interrupt (CPUState *env)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_s390x_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_s390x_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
/* fprintf(stderr,"%s: address 0x%lx rw %d mmu_idx %d is_softmmu %d\n",
|
/* fprintf(stderr,"%s: address 0x%lx rw %d mmu_idx %d\n",
|
||||||
__FUNCTION__, address, rw, mmu_idx, is_softmmu); */
|
__FUNCTION__, address, rw, mmu_idx); */
|
||||||
env->exception_index = EXCP_ADDR;
|
env->exception_index = EXCP_ADDR;
|
||||||
env->__excp_addr = address; /* FIXME: find out how this works on a real machine */
|
env->__excp_addr = address; /* FIXME: find out how this works on a real machine */
|
||||||
return 1;
|
return 1;
|
||||||
@ -394,14 +394,14 @@ out:
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_s390x_handle_mmu_fault (CPUState *env, target_ulong _vaddr, int rw,
|
int cpu_s390x_handle_mmu_fault (CPUState *env, target_ulong _vaddr, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
uint64_t asc = env->psw.mask & PSW_MASK_ASC;
|
uint64_t asc = env->psw.mask & PSW_MASK_ASC;
|
||||||
target_ulong vaddr, raddr;
|
target_ulong vaddr, raddr;
|
||||||
int prot;
|
int prot;
|
||||||
|
|
||||||
DPRINTF("%s: address 0x%" PRIx64 " rw %d mmu_idx %d is_softmmu %d\n",
|
DPRINTF("%s: address 0x%" PRIx64 " rw %d mmu_idx %d\n",
|
||||||
__FUNCTION__, _vaddr, rw, mmu_idx, is_softmmu);
|
__FUNCTION__, _vaddr, rw, mmu_idx);
|
||||||
|
|
||||||
_vaddr &= TARGET_PAGE_MASK;
|
_vaddr &= TARGET_PAGE_MASK;
|
||||||
vaddr = _vaddr;
|
vaddr = _vaddr;
|
||||||
|
@ -63,7 +63,7 @@ void tlb_fill (target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
|||||||
generated code */
|
generated code */
|
||||||
saved_env = env;
|
saved_env = env;
|
||||||
env = cpu_single_env;
|
env = cpu_single_env;
|
||||||
ret = cpu_s390x_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
|
ret = cpu_s390x_handle_mmu_fault(env, addr, is_write, mmu_idx);
|
||||||
if (unlikely(ret != 0)) {
|
if (unlikely(ret != 0)) {
|
||||||
if (likely(retaddr)) {
|
if (likely(retaddr)) {
|
||||||
/* now we have a real cpu fault */
|
/* now we have a real cpu fault */
|
||||||
|
@ -194,7 +194,7 @@ int cpu_sh4_exec(CPUSH4State * s);
|
|||||||
int cpu_sh4_signal_handler(int host_signum, void *pinfo,
|
int cpu_sh4_signal_handler(int host_signum, void *pinfo,
|
||||||
void *puc);
|
void *puc);
|
||||||
int cpu_sh4_handle_mmu_fault(CPUSH4State * env, target_ulong address, int rw,
|
int cpu_sh4_handle_mmu_fault(CPUSH4State * env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu);
|
int mmu_idx);
|
||||||
#define cpu_handle_mmu_fault cpu_sh4_handle_mmu_fault
|
#define cpu_handle_mmu_fault cpu_sh4_handle_mmu_fault
|
||||||
void do_interrupt(CPUSH4State * env);
|
void do_interrupt(CPUSH4State * env);
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ void do_interrupt (CPUState *env)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_sh4_handle_mmu_fault(CPUState * env, target_ulong address, int rw,
|
int cpu_sh4_handle_mmu_fault(CPUState * env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
env->tea = address;
|
env->tea = address;
|
||||||
env->exception_index = -1;
|
env->exception_index = -1;
|
||||||
@ -440,7 +440,7 @@ static int get_physical_address(CPUState * env, target_ulong * physical,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int cpu_sh4_handle_mmu_fault(CPUState * env, target_ulong address, int rw,
|
int cpu_sh4_handle_mmu_fault(CPUState * env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
target_ulong physical;
|
target_ulong physical;
|
||||||
int prot, ret, access_type;
|
int prot, ret, access_type;
|
||||||
|
@ -64,7 +64,7 @@ void tlb_fill(target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
|||||||
generated code */
|
generated code */
|
||||||
saved_env = env;
|
saved_env = env;
|
||||||
env = cpu_single_env;
|
env = cpu_single_env;
|
||||||
ret = cpu_sh4_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
|
ret = cpu_sh4_handle_mmu_fault(env, addr, is_write, mmu_idx);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
/* now we have a real cpu fault */
|
/* now we have a real cpu fault */
|
||||||
cpu_restore_state_from_retaddr(retaddr);
|
cpu_restore_state_from_retaddr(retaddr);
|
||||||
|
@ -490,7 +490,7 @@ CPUSPARCState *cpu_sparc_init(const char *cpu_model);
|
|||||||
void cpu_sparc_set_id(CPUSPARCState *env, unsigned int cpu);
|
void cpu_sparc_set_id(CPUSPARCState *env, unsigned int cpu);
|
||||||
void sparc_cpu_list(FILE *f, fprintf_function cpu_fprintf);
|
void sparc_cpu_list(FILE *f, fprintf_function cpu_fprintf);
|
||||||
int cpu_sparc_handle_mmu_fault(CPUSPARCState *env1, target_ulong address, int rw,
|
int cpu_sparc_handle_mmu_fault(CPUSPARCState *env1, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu);
|
int mmu_idx);
|
||||||
#define cpu_handle_mmu_fault cpu_sparc_handle_mmu_fault
|
#define cpu_handle_mmu_fault cpu_sparc_handle_mmu_fault
|
||||||
target_ulong mmu_probe(CPUSPARCState *env, target_ulong address, int mmulev);
|
target_ulong mmu_probe(CPUSPARCState *env, target_ulong address, int mmulev);
|
||||||
void dump_mmu(FILE *f, fprintf_function cpu_fprintf, CPUState *env);
|
void dump_mmu(FILE *f, fprintf_function cpu_fprintf, CPUState *env);
|
||||||
|
@ -42,7 +42,7 @@ static int cpu_sparc_find_by_name(sparc_def_t *cpu_def, const char *cpu_model);
|
|||||||
#if defined(CONFIG_USER_ONLY)
|
#if defined(CONFIG_USER_ONLY)
|
||||||
|
|
||||||
int cpu_sparc_handle_mmu_fault(CPUState *env1, target_ulong address, int rw,
|
int cpu_sparc_handle_mmu_fault(CPUState *env1, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
if (rw & 2)
|
if (rw & 2)
|
||||||
env1->exception_index = TT_TFAULT;
|
env1->exception_index = TT_TFAULT;
|
||||||
@ -212,7 +212,7 @@ static int get_physical_address(CPUState *env, target_phys_addr_t *physical,
|
|||||||
|
|
||||||
/* Perform address translation */
|
/* Perform address translation */
|
||||||
int cpu_sparc_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_sparc_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
target_phys_addr_t paddr;
|
target_phys_addr_t paddr;
|
||||||
target_ulong vaddr;
|
target_ulong vaddr;
|
||||||
@ -638,7 +638,7 @@ static int get_physical_address(CPUState *env, target_phys_addr_t *physical,
|
|||||||
|
|
||||||
/* Perform address translation */
|
/* Perform address translation */
|
||||||
int cpu_sparc_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
int cpu_sparc_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
target_ulong virt_addr, vaddr;
|
target_ulong virt_addr, vaddr;
|
||||||
target_phys_addr_t paddr;
|
target_phys_addr_t paddr;
|
||||||
|
@ -4237,7 +4237,7 @@ void tlb_fill(target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
|||||||
saved_env = env;
|
saved_env = env;
|
||||||
env = cpu_single_env;
|
env = cpu_single_env;
|
||||||
|
|
||||||
ret = cpu_sparc_handle_mmu_fault(env, addr, is_write, mmu_idx, 1);
|
ret = cpu_sparc_handle_mmu_fault(env, addr, is_write, mmu_idx);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
cpu_restore_state2(retaddr);
|
cpu_restore_state2(retaddr);
|
||||||
cpu_loop_exit(env);
|
cpu_loop_exit(env);
|
||||||
|
@ -130,7 +130,7 @@ CPUState *uc32_cpu_init(const char *cpu_model);
|
|||||||
int uc32_cpu_exec(CPUState *s);
|
int uc32_cpu_exec(CPUState *s);
|
||||||
int uc32_cpu_signal_handler(int host_signum, void *pinfo, void *puc);
|
int uc32_cpu_signal_handler(int host_signum, void *pinfo, void *puc);
|
||||||
int uc32_cpu_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
int uc32_cpu_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmuu);
|
int mmu_idx);
|
||||||
|
|
||||||
#define CPU_SAVE_VERSION 2
|
#define CPU_SAVE_VERSION 2
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ void do_interrupt(CPUState *env)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int uc32_cpu_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
int uc32_cpu_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
|
||||||
int mmu_idx, int is_softmmu)
|
int mmu_idx)
|
||||||
{
|
{
|
||||||
env->exception_index = UC32_EXCP_TRAP;
|
env->exception_index = UC32_EXCP_TRAP;
|
||||||
env->cp0.c4_faultaddr = address;
|
env->cp0.c4_faultaddr = address;
|
||||||
|
@ -102,7 +102,7 @@ static inline int handle_cpu_signal(unsigned long pc, unsigned long address,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* see if it is an MMU fault */
|
/* see if it is an MMU fault */
|
||||||
ret = cpu_handle_mmu_fault(env, address, is_write, MMU_USER_IDX, 0);
|
ret = cpu_handle_mmu_fault(env, address, is_write, MMU_USER_IDX);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
return 0; /* not an MMU fault */
|
return 0; /* not an MMU fault */
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user