2 |
#define CPU_MIPS_H |
#define CPU_MIPS_H |
3 |
|
|
4 |
/* |
/* |
5 |
* Copyright (C) 2003-2006 Anders Gavare. All rights reserved. |
* Copyright (C) 2003-2007 Anders Gavare. All rights reserved. |
6 |
* |
* |
7 |
* Redistribution and use in source and binary forms, with or without |
* Redistribution and use in source and binary forms, with or without |
8 |
* modification, are permitted provided that the following conditions are met: |
* modification, are permitted provided that the following conditions are met: |
28 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
29 |
* |
* |
30 |
* |
* |
31 |
* $Id: cpu_mips.h,v 1.50 2006/10/14 23:47:37 debug Exp $ |
* $Id: cpu_mips.h,v 1.55 2007/02/07 18:58:32 debug Exp $ |
32 |
*/ |
*/ |
33 |
|
|
34 |
|
#include "interrupt.h" |
35 |
#include "misc.h" |
#include "misc.h" |
36 |
|
|
37 |
struct cpu_family; |
struct cpu_family; |
204 |
#define MIPS_L2N 17 |
#define MIPS_L2N 17 |
205 |
#define MIPS_L3N 18 |
#define MIPS_L3N 18 |
206 |
|
|
207 |
#define MIPS_MAX_VPH_TLB_ENTRIES 192 |
#define MIPS_MAX_VPH_TLB_ENTRIES 128 |
208 |
DYNTRANS_MISC_DECLARATIONS(mips,MIPS,uint64_t) |
DYNTRANS_MISC_DECLARATIONS(mips,MIPS,uint64_t) |
209 |
DYNTRANS_MISC64_DECLARATIONS(mips,MIPS,uint8_t) |
DYNTRANS_MISC64_DECLARATIONS(mips,MIPS,uint8_t) |
210 |
|
|
231 |
/* Count/compare timer: */ |
/* Count/compare timer: */ |
232 |
int compare_register_set; |
int compare_register_set; |
233 |
int compare_interrupts_pending; |
int compare_interrupts_pending; |
234 |
|
struct interrupt irq_compare; |
235 |
struct timer *timer; |
struct timer *timer; |
236 |
|
|
237 |
int rmw; /* Read-Modify-Write */ |
int rmw; /* Read-Modify-Write */ |
277 |
|
|
278 |
|
|
279 |
/* cpu_mips.c: */ |
/* cpu_mips.c: */ |
280 |
|
void mips_cpu_interrupt_assert(struct interrupt *interrupt); |
281 |
|
void mips_cpu_interrupt_deassert(struct interrupt *interrupt); |
282 |
int mips_cpu_instruction_has_delayslot(struct cpu *cpu, unsigned char *ib); |
int mips_cpu_instruction_has_delayslot(struct cpu *cpu, unsigned char *ib); |
283 |
void mips_cpu_tlbdump(struct machine *m, int x, int rawflag); |
void mips_cpu_tlbdump(struct machine *m, int x, int rawflag); |
284 |
void mips_cpu_register_match(struct machine *m, char *name, |
void mips_cpu_register_match(struct machine *m, char *name, |
286 |
void mips_cpu_register_dump(struct cpu *cpu, int gprs, int coprocs); |
void mips_cpu_register_dump(struct cpu *cpu, int gprs, int coprocs); |
287 |
int mips_cpu_disassemble_instr(struct cpu *cpu, unsigned char *instr, |
int mips_cpu_disassemble_instr(struct cpu *cpu, unsigned char *instr, |
288 |
int running, uint64_t addr); |
int running, uint64_t addr); |
|
int mips_cpu_interrupt(struct cpu *cpu, uint64_t irq_nr); |
|
|
int mips_cpu_interrupt_ack(struct cpu *cpu, uint64_t irq_nr); |
|
289 |
void mips_cpu_exception(struct cpu *cpu, int exccode, int tlb, uint64_t vaddr, |
void mips_cpu_exception(struct cpu *cpu, int exccode, int tlb, uint64_t vaddr, |
290 |
/* uint64_t pagemask, */ int coproc_nr, uint64_t vaddr_vpn2, |
/* uint64_t pagemask, */ int coproc_nr, uint64_t vaddr_vpn2, |
291 |
int vaddr_asid, int x_64); |
int vaddr_asid, int x_64); |