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);

Reply via email to