Revision 6a4955a8 target-arm/exec.h
b/target-arm/exec.h | ||
---|---|---|
37 | 37 |
{ |
38 | 38 |
} |
39 | 39 |
|
40 |
static inline int cpu_has_work(CPUState *env) |
|
41 |
{ |
|
42 |
return (env->interrupt_request & |
|
43 |
(CPU_INTERRUPT_FIQ | CPU_INTERRUPT_HARD | CPU_INTERRUPT_EXITTB)); |
|
44 |
} |
|
45 |
|
|
40 | 46 |
static inline int cpu_halted(CPUState *env) { |
41 | 47 |
if (!env->halted) |
42 | 48 |
return 0; |
43 | 49 |
/* An interrupt wakes the CPU even if the I and F CPSR bits are |
44 | 50 |
set. We use EXITTB to silently wake CPU without causing an |
45 | 51 |
actual interrupt. */ |
46 |
if (env->interrupt_request & |
|
47 |
(CPU_INTERRUPT_FIQ | CPU_INTERRUPT_HARD | CPU_INTERRUPT_EXITTB)) { |
|
52 |
if (cpu_has_work(env)) { |
|
48 | 53 |
env->halted = 0; |
49 | 54 |
return 0; |
50 | 55 |
} |
Also available in: Unified diff