28 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
29 |
* |
* |
30 |
* |
* |
31 |
* $Id: cpu_sh.h,v 1.38 2007/02/24 19:21:44 debug Exp $ |
* $Id: cpu_sh.h,v 1.39 2007/04/04 19:59:24 debug Exp $ |
32 |
* |
* |
33 |
* Note: Many things here are SH4-specific, so it probably doesn't work |
* Note: Many things here are SH4-specific, so it probably doesn't work |
34 |
* for SH3 emulation. |
* for SH3 emulation. |
141 |
uint16_t intc_iprb; |
uint16_t intc_iprb; |
142 |
uint16_t intc_iprc; |
uint16_t intc_iprc; |
143 |
uint16_t intc_iprd; |
uint16_t intc_iprd; |
144 |
|
uint32_t intc_intpri00; |
145 |
|
uint32_t intc_intpri04; |
146 |
|
uint32_t intc_intpri08; |
147 |
|
uint32_t intc_intpri0c; |
148 |
|
uint32_t intc_intreq00; |
149 |
|
uint32_t intc_intreq04; |
150 |
|
uint32_t intc_intmsk00; |
151 |
|
uint32_t intc_intmsk04; |
152 |
|
/* Cached and calculated values: */ |
153 |
|
uint8_t int_prio_and_pending[0x1000 / 0x20]; |
154 |
int16_t int_to_assert; /* Calculated int to assert */ |
int16_t int_to_assert; /* Calculated int to assert */ |
155 |
int int_level; /* Calculated int level */ |
int int_level; /* Calculated int level */ |
|
uint32_t int_pending[0x1000 / 0x20 / (sizeof(uint32_t)*8)]; |
|
156 |
|
|
157 |
/* Timer/clock functionality: */ |
/* Timer/clock functionality: */ |
158 |
int pclock; |
int pclock; |
212 |
#define SH_FPSCR_FR 0x00200000 /* Register Bank Select */ |
#define SH_FPSCR_FR 0x00200000 /* Register Bank Select */ |
213 |
|
|
214 |
|
|
215 |
|
/* int_prio_and_pending bits: */ |
216 |
|
#define SH_INT_ASSERTED 0x10 |
217 |
|
#define SH_INT_PRIO_MASK 0x0f |
218 |
|
|
219 |
/* cpu_sh.c: */ |
/* cpu_sh.c: */ |
220 |
void sh_cpu_interrupt_assert(struct interrupt *interrupt); |
void sh_cpu_interrupt_assert(struct interrupt *interrupt); |
221 |
void sh_cpu_interrupt_deassert(struct interrupt *interrupt); |
void sh_cpu_interrupt_deassert(struct interrupt *interrupt); |
235 |
unsigned char *data, size_t len, int writeflag, int cache_flags); |
unsigned char *data, size_t len, int writeflag, int cache_flags); |
236 |
int sh_cpu_family_init(struct cpu_family *); |
int sh_cpu_family_init(struct cpu_family *); |
237 |
|
|
238 |
|
void sh_update_interrupt_priorities(struct cpu *cpu); |
239 |
void sh_update_sr(struct cpu *cpu, uint32_t new_sr); |
void sh_update_sr(struct cpu *cpu, uint32_t new_sr); |
240 |
void sh_exception(struct cpu *cpu, int expevt, int intevt, uint32_t vaddr); |
void sh_exception(struct cpu *cpu, int expevt, int intevt, uint32_t vaddr); |
241 |
|
|