summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/sparc/include/asm/irq.h3
-rw-r--r--arch/sparc/lib/interrupts.c7
2 files changed, 10 insertions, 0 deletions
diff --git a/arch/sparc/include/asm/irq.h b/arch/sparc/include/asm/irq.h
index 2faf7a074e..5d0f7564e9 100644
--- a/arch/sparc/include/asm/irq.h
+++ b/arch/sparc/include/asm/irq.h
@@ -32,4 +32,7 @@ extern int intLock(void);
/* Sets the PIL to oldLevel */
extern void intUnlock(int oldLevel);
+/* Return non-zero if interrupts are currently enabled */
+extern int interrupt_is_enabled(void);
+
#endif
diff --git a/arch/sparc/lib/interrupts.c b/arch/sparc/lib/interrupts.c
index b7c3993619..b8f2efb303 100644
--- a/arch/sparc/lib/interrupts.c
+++ b/arch/sparc/lib/interrupts.c
@@ -47,6 +47,13 @@ int disable_interrupts(void)
return intLock();
}
+int interrupt_is_enabled(void)
+{
+ if (get_pil() == 15)
+ return 0;
+ return 1;
+}
+
int interrupt_init(void)
{
int ret;