This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 8257b11944 arm/isr: move up_set_interrupt_context() to chip define
8257b11944 is described below
commit 8257b11944f14d5e10913949bed09620848f59af
Author: chao an <[email protected]>
AuthorDate: Tue Nov 26 20:27:42 2024 +0800
arm/isr: move up_set_interrupt_context() to chip define
up_set_interrupt_context() is chip specific implement, move this function
to correct place
Signed-off-by: chao an <[email protected]>
---
arch/arm/include/arm/irq.h | 10 ++++++++++
arch/arm/include/armv7-a/irq.h | 6 ++++++
arch/arm/include/armv7-r/irq.h | 6 ++++++
arch/arm/include/armv8-r/irq.h | 6 ++++++
arch/arm/include/tlsr82/irq.h | 10 ++++++++++
arch/arm/src/common/arm_initialize.c | 2 --
arch/arm/src/common/arm_internal.h | 16 ----------------
7 files changed, 38 insertions(+), 18 deletions(-)
diff --git a/arch/arm/include/arm/irq.h b/arch/arm/include/arm/irq.h
index b5c853e5b6..efb8397ce5 100644
--- a/arch/arm/include/arm/irq.h
+++ b/arch/arm/include/arm/irq.h
@@ -244,6 +244,16 @@ static inline_function bool up_interrupt_context(void)
#endif
}
+noinstrument_function
+static inline_function void up_set_interrupt_context(bool flag)
+{
+#ifdef CONFIG_ARCH_HAVE_MULTICPU
+ g_interrupt_context[up_cpu_index()] = flag;
+#else
+ g_interrupt_context[0] = flag;
+#endif
+}
+
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
diff --git a/arch/arm/include/armv7-a/irq.h b/arch/arm/include/armv7-a/irq.h
index e10cdcc5b4..be4e38301e 100644
--- a/arch/arm/include/armv7-a/irq.h
+++ b/arch/arm/include/armv7-a/irq.h
@@ -476,6 +476,12 @@ static inline_function bool up_interrupt_context(void)
return (bool)CP15_GET(TPIDRPRW);
}
+noinstrument_function
+static inline_function void up_set_interrupt_context(bool flag)
+{
+ CP15_SET(TPIDRPRW, flag);
+}
+
/****************************************************************************
* Public Data
****************************************************************************/
diff --git a/arch/arm/include/armv7-r/irq.h b/arch/arm/include/armv7-r/irq.h
index d8bad2a939..4abb50ed53 100644
--- a/arch/arm/include/armv7-r/irq.h
+++ b/arch/arm/include/armv7-r/irq.h
@@ -471,6 +471,12 @@ static inline_function bool up_interrupt_context(void)
return (bool)CP15_GET(TPIDRPRW);
}
+noinstrument_function
+static inline_function void up_set_interrupt_context(bool flag)
+{
+ CP15_SET(TPIDRPRW, flag);
+}
+
/****************************************************************************
* Public Data
****************************************************************************/
diff --git a/arch/arm/include/armv8-r/irq.h b/arch/arm/include/armv8-r/irq.h
index 30de6ca2a9..6be61fd281 100644
--- a/arch/arm/include/armv8-r/irq.h
+++ b/arch/arm/include/armv8-r/irq.h
@@ -471,6 +471,12 @@ static inline_function bool up_interrupt_context(void)
return (bool)CP15_GET(TPIDRPRW);
}
+noinstrument_function
+static inline_function void up_set_interrupt_context(bool flag)
+{
+ CP15_SET(TPIDRPRW, flag);
+}
+
/****************************************************************************
* Public Data
****************************************************************************/
diff --git a/arch/arm/include/tlsr82/irq.h b/arch/arm/include/tlsr82/irq.h
index d7a26d7904..115f9f14b6 100644
--- a/arch/arm/include/tlsr82/irq.h
+++ b/arch/arm/include/tlsr82/irq.h
@@ -273,6 +273,16 @@ static inline_function bool up_interrupt_context(void)
#endif
}
+noinstrument_function
+static inline_function void up_set_interrupt_context(bool flag)
+{
+#ifdef CONFIG_ARCH_HAVE_MULTICPU
+ g_interrupt_context[up_cpu_index()] = flag;
+#else
+ g_interrupt_context[0] = flag;
+#endif
+}
+
#define up_switch_context(tcb, rtcb) \
do { \
if (!up_interrupt_context()) \
diff --git a/arch/arm/src/common/arm_initialize.c
b/arch/arm/src/common/arm_initialize.c
index d7c0b5a257..9265f2722b 100644
--- a/arch/arm/src/common/arm_initialize.c
+++ b/arch/arm/src/common/arm_initialize.c
@@ -34,9 +34,7 @@
/* g_interrupt_context store irq status */
-#if defined(CONFIG_ARCH_ARM)
volatile bool g_interrupt_context[CONFIG_SMP_NCPUS];
-#endif
/****************************************************************************
* Private Functions
diff --git a/arch/arm/src/common/arm_internal.h
b/arch/arm/src/common/arm_internal.h
index 1e4e13ea3a..6303c6fc96 100644
--- a/arch/arm/src/common/arm_internal.h
+++ b/arch/arm/src/common/arm_internal.h
@@ -410,14 +410,6 @@ uint32_t *arm_prefetchabort(uint32_t *regs, uint32_t ifar,
uint32_t ifsr);
uint32_t *arm_syscall(uint32_t *regs);
uint32_t *arm_undefinedinsn(uint32_t *regs);
-/* IRQ Flag */
-
-noinstrument_function
-static inline_function void up_set_interrupt_context(bool flag)
-{
- CP15_SET(TPIDRPRW, flag);
-}
-
/* Exception handling logic common to other ARM7 and ARM9 family. */
#else /* ARM7 | ARM9 */
@@ -439,14 +431,6 @@ void arm_prefetchabort(uint32_t *regs);
uint32_t *arm_syscall(uint32_t *regs);
void arm_undefinedinsn(uint32_t *regs);
-/* IRQ Flag */
-
-noinstrument_function
-static inline_function void up_set_interrupt_context(bool flag)
-{
- g_interrupt_context[this_cpu()] = flag;
-}
-
#endif /* CONFIG_ARCH_ARMV[6-8]M */
void arm_vectorundefinsn(void);