Revision 3dd3a2b9 target-lm32/cpu.h
b/target-lm32/cpu.h | ||
---|---|---|
163 | 163 |
|
164 | 164 |
/* debug registers */ |
165 | 165 |
uint32_t dc; /* debug control */ |
166 |
uint32_t bp[4]; /* breakpoint addresses */ |
|
167 |
uint32_t wp[4]; /* watchpoint addresses */ |
|
166 |
uint32_t bp[4]; /* breakpoints */ |
|
167 |
uint32_t wp[4]; /* watchpoints */ |
|
168 |
|
|
169 |
CPUBreakpoint * cpu_breakpoint[4]; |
|
170 |
CPUWatchpoint * cpu_watchpoint[4]; |
|
168 | 171 |
|
169 | 172 |
CPU_COMMON |
170 | 173 |
|
... | ... | |
181 | 184 |
|
182 | 185 |
}; |
183 | 186 |
|
187 |
typedef enum { |
|
188 |
LM32_WP_DISABLED = 0, |
|
189 |
LM32_WP_READ, |
|
190 |
LM32_WP_WRITE, |
|
191 |
LM32_WP_READ_WRITE, |
|
192 |
} lm32_wp_t; |
|
193 |
|
|
194 |
static inline lm32_wp_t lm32_wp_type(uint32_t dc, int idx) |
|
195 |
{ |
|
196 |
assert(idx < 4); |
|
197 |
return (dc >> (idx+1)*2) & 0x3; |
|
198 |
} |
|
199 |
|
|
184 | 200 |
#include "cpu-qom.h" |
185 | 201 |
|
186 | 202 |
LM32CPU *cpu_lm32_init(const char *cpu_model); |
... | ... | |
193 | 209 |
void lm32_cpu_list(FILE *f, fprintf_function cpu_fprintf); |
194 | 210 |
void lm32_translate_init(void); |
195 | 211 |
void cpu_lm32_set_phys_msb_ignore(CPULM32State *env, int value); |
212 |
void QEMU_NORETURN raise_exception(CPULM32State *env, int index); |
|
213 |
void lm32_debug_excp_handler(CPULM32State *env); |
|
214 |
void lm32_breakpoint_insert(CPULM32State *env, int index, target_ulong address); |
|
215 |
void lm32_breakpoint_remove(CPULM32State *env, int index); |
|
216 |
void lm32_watchpoint_insert(CPULM32State *env, int index, target_ulong address, |
|
217 |
lm32_wp_t wp_type); |
|
218 |
void lm32_watchpoint_remove(CPULM32State *env, int index); |
|
196 | 219 |
|
197 | 220 |
static inline CPULM32State *cpu_init(const char *cpu_model) |
198 | 221 |
{ |
Also available in: Unified diff