aboutsummaryrefslogtreecommitdiffstats
path: root/roms/u-boot/arch/sparc/include/asm/irq.h
diff options
context:
space:
mode:
Diffstat (limited to 'roms/u-boot/arch/sparc/include/asm/irq.h')
-rw-r--r--roms/u-boot/arch/sparc/include/asm/irq.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/roms/u-boot/arch/sparc/include/asm/irq.h b/roms/u-boot/arch/sparc/include/asm/irq.h
new file mode 100644
index 00000000..bbe02043
--- /dev/null
+++ b/roms/u-boot/arch/sparc/include/asm/irq.h
@@ -0,0 +1,35 @@
+/* IRQ functions
+ *
+ * (C) Copyright 2007
+ * Daniel Hellstrom, Gaisler Research, daniel@gaisler.com.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __SPARC_IRQ_H__
+#define __SPARC_IRQ_H__
+
+#include <asm/psr.h>
+
+/* Set SPARC Processor Interrupt Level */
+extern inline void set_pil(unsigned int level)
+{
+ unsigned int psr = get_psr();
+
+ put_psr((psr & ~PSR_PIL) | ((level & 0xf) << PSR_PIL_OFS));
+}
+
+/* Get SPARC Processor Interrupt Level */
+extern inline unsigned int get_pil(void)
+{
+ unsigned int psr = get_psr();
+ return (psr & PSR_PIL) >> PSR_PIL_OFS;
+}
+
+/* Disables interrupts and return current PIL value */
+extern int intLock(void);
+
+/* Sets the PIL to oldLevel */
+extern void intUnlock(int oldLevel);
+
+#endif