From b75a0cf8be56a1e852461078e032ca8182fb4d21 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 30 Jul 2013 11:37:09 -0600 Subject: [PATCH] Add ARMv7-A irqdisable() inline function --- arch/arm/include/armv7-a/irq.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/include/armv7-a/irq.h b/arch/arm/include/armv7-a/irq.h index 6aeba431ee3..51a9702ae80 100755 --- a/arch/arm/include/armv7-a/irq.h +++ b/arch/arm/include/armv7-a/irq.h @@ -286,6 +286,24 @@ static inline irqstate_t irqenable(void) return cpsr; } +/* Disable IRQs and return the previous IRQ state */ + +static inline irqstate_t irqdisable(void) +{ + unsigned int cpsr; + + __asm__ __volatile__ + ( + "\tmrs %0, cpsr\n" + "\tcpsid i\n" + : "=r" (cpsr) + : + : "memory" + ); + + return cpsr; +} + /* Restore saved IRQ & FIQ state */ static inline void irqrestore(irqstate_t flags)