28 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
29 |
* |
* |
30 |
* |
* |
31 |
* $Id: cpu_mips.h,v 1.13 2005/03/14 12:49:16 debug Exp $ |
* $Id: cpu_mips.h,v 1.16 2005/06/26 22:23:43 debug Exp $ |
32 |
*/ |
*/ |
33 |
|
|
34 |
#include "misc.h" |
#include "misc.h" |
203 |
|
|
204 |
/* Virtual to host address translation tables: */ |
/* Virtual to host address translation tables: */ |
205 |
struct vth32_table { |
struct vth32_table { |
206 |
void *haddr_entry[1024]; |
void *haddr_entry[1024 * 2]; |
207 |
uint32_t paddr_entry[1024]; |
uint32_t paddr_entry[1024]; |
208 |
uint32_t *bintrans_chunks[1024]; |
uint32_t *bintrans_chunks[1024]; |
209 |
struct vth32_table *next_free; |
struct vth32_table *next_free; |
290 |
uint64_t bintrans_data_vaddr[N_BINTRANS_VADDR_TO_HOST]; |
uint64_t bintrans_data_vaddr[N_BINTRANS_VADDR_TO_HOST]; |
291 |
unsigned char *bintrans_data_hostpage[N_BINTRANS_VADDR_TO_HOST]; |
unsigned char *bintrans_data_hostpage[N_BINTRANS_VADDR_TO_HOST]; |
292 |
|
|
293 |
void (*bintrans_loadstore_32bit)(struct cpu *); /* Note: incorrect args */ |
void (*bintrans_load_32bit)(struct cpu *); /* Note: incorrect args */ |
294 |
|
void (*bintrans_store_32bit)(struct cpu *); /* Note: incorrect args */ |
295 |
void (*bintrans_jump_to_32bit_pc)(struct cpu *); |
void (*bintrans_jump_to_32bit_pc)(struct cpu *); |
296 |
void (*bintrans_simple_exception)(struct cpu *, int); |
void (*bintrans_simple_exception)(struct cpu *, int); |
297 |
void (*bintrans_fast_rfe)(struct cpu *); |
void (*bintrans_fast_rfe)(struct cpu *); |
363 |
int cache_linesize[2]; |
int cache_linesize[2]; |
364 |
int cache_mask[2]; |
int cache_mask[2]; |
365 |
int cache_miss_penalty[2]; |
int cache_miss_penalty[2]; |
366 |
|
|
367 |
|
/* Other stuff: */ |
368 |
|
uint64_t cop0_config_select1; |
369 |
}; |
}; |
370 |
|
|
371 |
|
|
372 |
/* cpu_mips.c: */ |
/* cpu_mips.c: */ |
|
struct cpu *mips_cpu_new(struct memory *mem, struct machine *machine, |
|
|
int cpu_id, char *cpu_type_name); |
|
373 |
void mips_cpu_show_full_statistics(struct machine *m); |
void mips_cpu_show_full_statistics(struct machine *m); |
374 |
void mips_cpu_tlbdump(struct machine *m, int x, int rawflag); |
void mips_cpu_tlbdump(struct machine *m, int x, int rawflag); |
375 |
void mips_cpu_register_match(struct machine *m, char *name, |
void mips_cpu_register_match(struct machine *m, char *name, |
400 |
void clear_all_chunks_from_all_tables(struct cpu *cpu); |
void clear_all_chunks_from_all_tables(struct cpu *cpu); |
401 |
void mips_invalidate_translation_caches_paddr(struct cpu *cpu, uint64_t paddr); |
void mips_invalidate_translation_caches_paddr(struct cpu *cpu, uint64_t paddr); |
402 |
void coproc_register_read(struct cpu *cpu, |
void coproc_register_read(struct cpu *cpu, |
403 |
struct mips_coproc *cp, int reg_nr, uint64_t *ptr); |
struct mips_coproc *cp, int reg_nr, uint64_t *ptr, int select); |
404 |
void coproc_register_write(struct cpu *cpu, |
void coproc_register_write(struct cpu *cpu, |
405 |
struct mips_coproc *cp, int reg_nr, uint64_t *ptr, int flag64); |
struct mips_coproc *cp, int reg_nr, uint64_t *ptr, int flag64, |
406 |
|
int select); |
407 |
void coproc_tlbpr(struct cpu *cpu, int readflag); |
void coproc_tlbpr(struct cpu *cpu, int readflag); |
408 |
void coproc_tlbwri(struct cpu *cpu, int randomflag); |
void coproc_tlbwri(struct cpu *cpu, int randomflag); |
409 |
void coproc_rfe(struct cpu *cpu); |
void coproc_rfe(struct cpu *cpu); |