Revision 3c7b48b7
b/target-microblaze/cpu.h | ||
---|---|---|
327 | 327 |
*flags = env->iflags & IFLAGS_TB_MASK; |
328 | 328 |
} |
329 | 329 |
|
330 |
#if !defined(CONFIG_USER_ONLY) |
|
330 | 331 |
void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec, |
331 | 332 |
int is_asi, int size); |
332 | 333 |
#endif |
334 |
#endif |
b/target-microblaze/op_helper.c | ||
---|---|---|
245 | 245 |
{ |
246 | 246 |
mmu_write(env, rn, v); |
247 | 247 |
} |
248 |
#endif |
|
249 | 248 |
|
250 | 249 |
void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec, |
251 | 250 |
int is_asi, int size) |
... | ... | |
282 | 281 |
} |
283 | 282 |
env = saved_env; |
284 | 283 |
} |
284 |
#endif |
b/target-mips/cpu.h | ||
---|---|---|
36 | 36 |
target_ulong PFN[2]; |
37 | 37 |
}; |
38 | 38 |
|
39 |
#if !defined(CONFIG_USER_ONLY) |
|
39 | 40 |
typedef struct CPUMIPSTLBContext CPUMIPSTLBContext; |
40 | 41 |
struct CPUMIPSTLBContext { |
41 | 42 |
uint32_t nb_tlb; |
... | ... | |
51 | 52 |
} r4k; |
52 | 53 |
} mmu; |
53 | 54 |
}; |
55 |
#endif |
|
54 | 56 |
|
55 | 57 |
typedef union fpr_t fpr_t; |
56 | 58 |
union fpr_t { |
... | ... | |
468 | 470 |
CPU_COMMON |
469 | 471 |
|
470 | 472 |
CPUMIPSMVPContext *mvp; |
473 |
#if !defined(CONFIG_USER_ONLY) |
|
471 | 474 |
CPUMIPSTLBContext *tlb; |
475 |
#endif |
|
472 | 476 |
|
473 | 477 |
const mips_def_t *cpu_model; |
474 | 478 |
void *irq[8]; |
475 | 479 |
struct QEMUTimer *timer; /* Internal timer */ |
476 | 480 |
}; |
477 | 481 |
|
482 |
#if !defined(CONFIG_USER_ONLY) |
|
478 | 483 |
int no_mmu_map_address (CPUMIPSState *env, target_phys_addr_t *physical, int *prot, |
479 | 484 |
target_ulong address, int rw, int access_type); |
480 | 485 |
int fixed_mmu_map_address (CPUMIPSState *env, target_phys_addr_t *physical, int *prot, |
... | ... | |
485 | 490 |
void r4k_helper_tlbwr (void); |
486 | 491 |
void r4k_helper_tlbp (void); |
487 | 492 |
void r4k_helper_tlbr (void); |
488 |
void mips_cpu_list (FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...)); |
|
489 | 493 |
|
490 | 494 |
void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec, |
491 | 495 |
int unused, int size); |
496 |
#endif |
|
497 |
|
|
498 |
void mips_cpu_list (FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...)); |
|
492 | 499 |
|
493 | 500 |
#define cpu_init cpu_mips_init |
494 | 501 |
#define cpu_exec cpu_mips_exec |
... | ... | |
598 | 605 |
int mmu_idx, int is_softmmu); |
599 | 606 |
#define cpu_handle_mmu_fault cpu_mips_handle_mmu_fault |
600 | 607 |
void do_interrupt (CPUState *env); |
608 |
#if !defined(CONFIG_USER_ONLY) |
|
601 | 609 |
void r4k_invalidate_tlb (CPUState *env, int idx, int use_extra); |
602 | 610 |
target_phys_addr_t cpu_mips_translate_address (CPUState *env, target_ulong address, |
603 | 611 |
int rw); |
612 |
#endif |
|
604 | 613 |
|
605 | 614 |
static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) |
606 | 615 |
{ |
b/target-mips/helper.c | ||
---|---|---|
34 | 34 |
TLBRET_MATCH = 0 |
35 | 35 |
}; |
36 | 36 |
|
37 |
#if !defined(CONFIG_USER_ONLY) |
|
38 |
|
|
37 | 39 |
/* no MMU emulation */ |
38 | 40 |
int no_mmu_map_address (CPUState *env, target_phys_addr_t *physical, int *prot, |
39 | 41 |
target_ulong address, int rw, int access_type) |
... | ... | |
98 | 100 |
return TLBRET_NOMATCH; |
99 | 101 |
} |
100 | 102 |
|
101 |
#if !defined(CONFIG_USER_ONLY) |
|
102 | 103 |
static int get_physical_address (CPUState *env, target_phys_addr_t *physical, |
103 | 104 |
int *prot, target_ulong address, |
104 | 105 |
int rw, int access_type) |
... | ... | |
599 | 600 |
env->exception_index = EXCP_NONE; |
600 | 601 |
} |
601 | 602 |
|
603 |
#if !defined(CONFIG_USER_ONLY) |
|
602 | 604 |
void r4k_invalidate_tlb (CPUState *env, int idx, int use_extra) |
603 | 605 |
{ |
604 | 606 |
r4k_tlb_t *tlb; |
... | ... | |
652 | 654 |
} |
653 | 655 |
} |
654 | 656 |
} |
657 |
#endif |
b/target-ppc/cpu.h | ||
---|---|---|
332 | 332 |
uint64_t u64[2]; |
333 | 333 |
}; |
334 | 334 |
|
335 |
#if !defined(CONFIG_USER_ONLY) |
|
335 | 336 |
/* Software TLB cache */ |
336 | 337 |
typedef struct ppc6xx_tlb_t ppc6xx_tlb_t; |
337 | 338 |
struct ppc6xx_tlb_t { |
... | ... | |
354 | 355 |
ppc6xx_tlb_t tlb6; |
355 | 356 |
ppcemb_tlb_t tlbe; |
356 | 357 |
}; |
358 |
#endif |
|
357 | 359 |
|
358 | 360 |
typedef struct ppc_slb_t ppc_slb_t; |
359 | 361 |
struct ppc_slb_t { |
... | ... | |
699 | 701 |
int (*osi_call)(struct CPUPPCState *env); |
700 | 702 |
}; |
701 | 703 |
|
704 |
#if !defined(CONFIG_USER_ONLY) |
|
702 | 705 |
/* Context used internally during MMU translations */ |
703 | 706 |
typedef struct mmu_ctx_t mmu_ctx_t; |
704 | 707 |
struct mmu_ctx_t { |
... | ... | |
710 | 713 |
int key; /* Access key */ |
711 | 714 |
int nx; /* Non-execute area */ |
712 | 715 |
}; |
716 |
#endif |
|
713 | 717 |
|
714 | 718 |
/*****************************************************************************/ |
715 | 719 |
CPUPPCState *cpu_ppc_init (const char *cpu_model); |
... | ... | |
724 | 728 |
int cpu_ppc_handle_mmu_fault (CPUPPCState *env, target_ulong address, int rw, |
725 | 729 |
int mmu_idx, int is_softmmu); |
726 | 730 |
#define cpu_handle_mmu_fault cpu_ppc_handle_mmu_fault |
731 |
#if !defined(CONFIG_USER_ONLY) |
|
727 | 732 |
int get_physical_address (CPUPPCState *env, mmu_ctx_t *ctx, target_ulong vaddr, |
728 | 733 |
int rw, int access_type); |
734 |
#endif |
|
729 | 735 |
void do_interrupt (CPUPPCState *env); |
730 | 736 |
void ppc_hw_interrupt (CPUPPCState *env); |
731 | 737 |
|
b/target-sh4/cpu.h | ||
---|---|---|
169 | 169 |
void do_interrupt(CPUSH4State * env); |
170 | 170 |
|
171 | 171 |
void sh4_cpu_list(FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...)); |
172 |
#if !defined(CONFIG_USER_ONLY) |
|
172 | 173 |
void cpu_sh4_invalidate_tlb(CPUSH4State *s); |
173 | 174 |
void cpu_sh4_write_mmaped_utlb_addr(CPUSH4State *s, target_phys_addr_t addr, |
174 | 175 |
uint32_t mem_value); |
176 |
#endif |
|
175 | 177 |
|
176 | 178 |
int cpu_sh4_is_cached(CPUSH4State * env, target_ulong addr); |
177 | 179 |
|
b/target-sparc/cpu.h | ||
---|---|---|
550 | 550 |
#endif |
551 | 551 |
|
552 | 552 |
/* cpu-exec.c */ |
553 |
#if !defined(CONFIG_USER_ONLY) |
|
553 | 554 |
void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec, |
554 | 555 |
int is_asi, int size); |
556 |
#endif |
|
555 | 557 |
int cpu_sparc_signal_handler(int host_signum, void *pinfo, void *puc); |
556 | 558 |
|
557 | 559 |
#define cpu_init cpu_sparc_init |
b/target-sparc/op_helper.c | ||
---|---|---|
47 | 47 |
#endif |
48 | 48 |
#endif |
49 | 49 |
|
50 |
#if defined(CONFIG_USER_ONLY) && defined(TARGET_SPARC64) |
|
51 |
static void do_unassigned_access(target_ulong addr, int is_write, int is_exec, |
|
52 |
int is_asi, int size); |
|
53 |
#endif |
|
54 |
|
|
50 | 55 |
#if defined(TARGET_SPARC64) && !defined(CONFIG_USER_ONLY) |
51 | 56 |
// Calculates TSB pointer value for fault page size 8k or 64k |
52 | 57 |
static uint64_t ultrasparc_tsb_pointer(uint64_t tsb_register, |
... | ... | |
3707 | 3712 |
env = saved_env; |
3708 | 3713 |
} |
3709 | 3714 |
|
3710 |
#endif |
|
3715 |
#endif /* !CONFIG_USER_ONLY */
|
|
3711 | 3716 |
|
3712 | 3717 |
#ifndef TARGET_SPARC64 |
3718 |
#if !defined(CONFIG_USER_ONLY) |
|
3713 | 3719 |
void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec, |
3714 | 3720 |
int is_asi, int size) |
3715 | 3721 |
{ |
... | ... | |
3770 | 3776 |
|
3771 | 3777 |
env = saved_env; |
3772 | 3778 |
} |
3779 |
#endif |
|
3780 |
#else |
|
3781 |
#if defined(CONFIG_USER_ONLY) |
|
3782 |
static void do_unassigned_access(target_ulong addr, int is_write, int is_exec, |
|
3783 |
int is_asi, int size) |
|
3773 | 3784 |
#else |
3774 | 3785 |
void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec, |
3775 | 3786 |
int is_asi, int size) |
3787 |
#endif |
|
3776 | 3788 |
{ |
3777 | 3789 |
CPUState *saved_env; |
3778 | 3790 |
|
... | ... | |
3795 | 3807 |
} |
3796 | 3808 |
#endif |
3797 | 3809 |
|
3810 |
|
|
3798 | 3811 |
#ifdef TARGET_SPARC64 |
3799 | 3812 |
void helper_tick_set_count(void *opaque, uint64_t count) |
3800 | 3813 |
{ |
Also available in: Unified diff