diff options
Diffstat (limited to 'roms/u-boot/arch/sparc/include/asm/irq.h')
-rw-r--r-- | roms/u-boot/arch/sparc/include/asm/irq.h | 35 |
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 |