summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/calypso/arm.c
diff options
context:
space:
mode:
authorHarald Welte2010-02-18 16:46:36 +0100
committerHarald Welte2010-02-18 16:46:36 +0100
commitfbe7b94c9c65f2df74acd5dff7503c9833ec2579 (patch)
tree5f47a597f2f396662719c5a76ac6bf26eda69f6c /src/target/firmware/calypso/arm.c
downloadosmocom-fbe7b94c9c65f2df74acd5dff7503c9833ec2579.tar.gz
osmocom-fbe7b94c9c65f2df74acd5dff7503c9833ec2579.tar.xz
osmocom-fbe7b94c9c65f2df74acd5dff7503c9833ec2579.zip
Initial import of OsmocomBB into git repository
Diffstat (limited to 'src/target/firmware/calypso/arm.c')
-rw-r--r--src/target/firmware/calypso/arm.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/target/firmware/calypso/arm.c b/src/target/firmware/calypso/arm.c
new file mode 100644
index 0000000..8794ee3
--- /dev/null
+++ b/src/target/firmware/calypso/arm.c
@@ -0,0 +1,26 @@
+
+/* enable IRQ+FIQ interrupts */
+void arm_enable_interrupts (void)
+{
+ unsigned long temp;
+ __asm__ __volatile__("mrs %0, cpsr\n"
+ "bic %0, %0, #0xc0\n"
+ "msr cpsr_c, %0"
+ : "=r" (temp)
+ :
+ : "memory");
+}
+
+/* disable IRQ/FIQ interrupts
+ * returns true if interrupts had been enabled before we disabled them */
+int arm_disable_interrupts(void)
+{
+ unsigned long old,temp;
+ __asm__ __volatile__("mrs %0, cpsr\n"
+ "orr %1, %0, #0xc0\n"
+ "msr cpsr_c, %1"
+ : "=r" (old), "=r" (temp)
+ :
+ : "memory");
+ return (old & 0x80) == 0;
+}