tcg: Remove CPUClass::handle_mmu_fault
This hook is now completely replaced by tlb_fill. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
c319dc1357
commit
69963f5709
@ -63,7 +63,6 @@ static inline int handle_cpu_signal(uintptr_t pc, siginfo_t *info,
|
|||||||
{
|
{
|
||||||
CPUState *cpu = current_cpu;
|
CPUState *cpu = current_cpu;
|
||||||
CPUClass *cc;
|
CPUClass *cc;
|
||||||
int ret;
|
|
||||||
unsigned long address = (unsigned long)info->si_addr;
|
unsigned long address = (unsigned long)info->si_addr;
|
||||||
MMUAccessType access_type;
|
MMUAccessType access_type;
|
||||||
|
|
||||||
@ -156,15 +155,9 @@ static inline int handle_cpu_signal(uintptr_t pc, siginfo_t *info,
|
|||||||
helper_retaddr = 0;
|
helper_retaddr = 0;
|
||||||
|
|
||||||
cc = CPU_GET_CLASS(cpu);
|
cc = CPU_GET_CLASS(cpu);
|
||||||
if (cc->tlb_fill) {
|
access_type = is_write ? MMU_DATA_STORE : MMU_DATA_LOAD;
|
||||||
access_type = is_write ? MMU_DATA_STORE : MMU_DATA_LOAD;
|
cc->tlb_fill(cpu, address, 0, access_type, MMU_USER_IDX, false, pc);
|
||||||
cc->tlb_fill(cpu, address, 0, access_type, MMU_USER_IDX, false, pc);
|
g_assert_not_reached();
|
||||||
g_assert_not_reached();
|
|
||||||
} else {
|
|
||||||
ret = cc->handle_mmu_fault(cpu, address, 0, is_write, MMU_USER_IDX);
|
|
||||||
g_assert(ret > 0);
|
|
||||||
cpu_loop_exit_restore(cpu, pc);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__i386__)
|
#if defined(__i386__)
|
||||||
|
@ -117,7 +117,6 @@ struct TranslationBlock;
|
|||||||
* This always includes at least the program counter; some targets
|
* This always includes at least the program counter; some targets
|
||||||
* will need to do more. If this hook is not implemented then the
|
* will need to do more. If this hook is not implemented then the
|
||||||
* default is to call @set_pc(tb->pc).
|
* default is to call @set_pc(tb->pc).
|
||||||
* @handle_mmu_fault: Callback for handling an MMU fault.
|
|
||||||
* @tlb_fill: Callback for handling a softmmu tlb miss or user-only
|
* @tlb_fill: Callback for handling a softmmu tlb miss or user-only
|
||||||
* address fault. For system mode, if the access is valid, call
|
* address fault. For system mode, if the access is valid, call
|
||||||
* tlb_set_page and return true; if the access is invalid, and
|
* tlb_set_page and return true; if the access is invalid, and
|
||||||
@ -195,8 +194,6 @@ typedef struct CPUClass {
|
|||||||
Error **errp);
|
Error **errp);
|
||||||
void (*set_pc)(CPUState *cpu, vaddr value);
|
void (*set_pc)(CPUState *cpu, vaddr value);
|
||||||
void (*synchronize_from_tb)(CPUState *cpu, struct TranslationBlock *tb);
|
void (*synchronize_from_tb)(CPUState *cpu, struct TranslationBlock *tb);
|
||||||
int (*handle_mmu_fault)(CPUState *cpu, vaddr address, int size, int rw,
|
|
||||||
int mmu_index);
|
|
||||||
bool (*tlb_fill)(CPUState *cpu, vaddr address, int size,
|
bool (*tlb_fill)(CPUState *cpu, vaddr address, int size,
|
||||||
MMUAccessType access_type, int mmu_idx,
|
MMUAccessType access_type, int mmu_idx,
|
||||||
bool probe, uintptr_t retaddr);
|
bool probe, uintptr_t retaddr);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user