Merge commit '1067e8cc9a5d4f28f986f7473093cbac874d4208' into libosmocore
[osmocom-bb.git] / src / target / firmware / calypso / arm.c
1
2 /* enable IRQ+FIQ interrupts */
3 void arm_enable_interrupts (void)
4 {
5         unsigned long temp;
6         __asm__ __volatile__("mrs %0, cpsr\n"
7                              "bic %0, %0, #0xc0\n"
8                              "msr cpsr_c, %0"
9                              : "=r" (temp)
10                              :
11                              : "memory");
12 }
13
14 /* disable IRQ/FIQ interrupts
15  * returns true if interrupts had been enabled before we disabled them */
16 int arm_disable_interrupts(void)
17 {
18         unsigned long old,temp;
19         __asm__ __volatile__("mrs %0, cpsr\n"
20                              "orr %1, %0, #0xc0\n"
21                              "msr cpsr_c, %1"
22                              : "=r" (old), "=r" (temp)
23                              :
24                              : "memory");
25         return (old & 0x80) == 0;
26 }