[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 02/11] arm/arm64: irq enable/disable
From: |
Alex Bennée |
Subject: |
[Qemu-devel] [RFC 02/11] arm/arm64: irq enable/disable |
Date: |
Fri, 26 Feb 2016 13:15:24 +0000 |
From: Andrew Jones <address@hidden>
Signed-off-by: Andrew Jones <address@hidden>
---
lib/arm/asm/processor.h | 10 ++++++++++
lib/arm64/asm/processor.h | 10 ++++++++++
2 files changed, 20 insertions(+)
diff --git a/lib/arm/asm/processor.h b/lib/arm/asm/processor.h
index f25e7ee..a3a4e0b 100644
--- a/lib/arm/asm/processor.h
+++ b/lib/arm/asm/processor.h
@@ -33,6 +33,16 @@ static inline unsigned long current_cpsr(void)
#define current_mode() (current_cpsr() & MODE_MASK)
+static inline void local_irq_enable(void)
+{
+ asm volatile("cpsie i" : : : "memory", "cc");
+}
+
+static inline void local_irq_disable(void)
+{
+ asm volatile("cpsid i" : : : "memory", "cc");
+}
+
static inline unsigned int get_mpidr(void)
{
unsigned int mpidr;
diff --git a/lib/arm64/asm/processor.h b/lib/arm64/asm/processor.h
index 84d5c7c..18fa2a2 100644
--- a/lib/arm64/asm/processor.h
+++ b/lib/arm64/asm/processor.h
@@ -66,6 +66,16 @@ static inline unsigned long current_level(void)
return el & 0xc;
}
+static inline void local_irq_enable(void)
+{
+ asm volatile("msr daifclr, #2" : : : "memory");
+}
+
+static inline void local_irq_disable(void)
+{
+ asm volatile("msr daifset, #2" : : : "memory");
+}
+
#define DEFINE_GET_SYSREG32(reg) \
static inline unsigned int get_##reg(void) \
{ \
--
2.7.1
- [Qemu-devel] [RFC 00/11] Current MTTCG kvm-unit-test patches, Alex Bennée, 2016/02/26
- [Qemu-devel] [RFC 02/11] arm/arm64: irq enable/disable,
Alex Bennée <=
- [Qemu-devel] [RFC 04/11] arm/arm64: Add IPI test, Alex Bennée, 2016/02/26
- [Qemu-devel] [RFC 01/11] config/config-arm-common: build-up tests-common target, Alex Bennée, 2016/02/26
- [Qemu-devel] [RFC 03/11] arm/arm64: Add initial gic support, Alex Bennée, 2016/02/26
- [Qemu-devel] [RFC 06/11] arm/run: set indentation defaults for emacs, Alex Bennée, 2016/02/26
- [Qemu-devel] [RFC 08/11] arm/tlbflush-test: Add TLB torture test, Alex Bennée, 2016/02/26
- [Qemu-devel] [RFC 10/11] arm/barrier-litmus-tests: add some litmus tests, Alex Bennée, 2016/02/26
- [Qemu-devel] [RFC 05/11] lib: add isaac prng library from CCAN, Alex Bennée, 2016/02/26
- [Qemu-devel] [RFC 07/11] arm/run: allow aarch64 to start arm binaries, Alex Bennée, 2016/02/26