[PATCH 16/17] score: Rename rtems_smp_secondary_cpu_initialize()
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Feb 17 15:51:41 UTC 2014
Rename rtems_smp_secondary_cpu_initialize() into
_SMP_Start_multitasking_on_secondary_processor(). Move declaration to
<rtems/score/smpimpl.h>.
---
.../libbsp/arm/shared/include/arm-a9mpcore-start.h | 3 +-
c/src/lib/libbsp/i386/shared/smp/smp-imps.c | 3 +-
c/src/lib/libbsp/powerpc/qoriq/startup/smp.c | 3 +-
c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c | 3 +-
cpukit/score/include/rtems/bspsmp.h | 25 ------------------
cpukit/score/include/rtems/score/smpimpl.h | 27 ++++++++++++++++++++
cpukit/score/src/smp.c | 2 +-
7 files changed, 36 insertions(+), 30 deletions(-)
diff --git a/c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h b/c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h
index 9ebc5a5..e11bc71 100644
--- a/c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h
+++ b/c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h
@@ -24,6 +24,7 @@
#define LIBBSP_ARM_SHARED_ARM_A9MPCORE_START_H
#include <rtems/bspsmp.h>
+#include <rtems/score/smpimpl.h>
#include <libcpu/arm-cp15.h>
@@ -109,7 +110,7 @@ BSP_START_TEXT_SECTION static inline arm_a9mpcore_start_hook_0(void)
ctrl |= ARM_CP15_CTRL_I | ARM_CP15_CTRL_C | ARM_CP15_CTRL_M;
arm_cp15_set_control(ctrl);
- rtems_smp_secondary_cpu_initialize();
+ _SMP_Start_multitasking_on_secondary_processor();
} else {
/* FIXME: Shutdown processor */
while (1) {
diff --git a/c/src/lib/libbsp/i386/shared/smp/smp-imps.c b/c/src/lib/libbsp/i386/shared/smp/smp-imps.c
index 6170beb..1ed5d41 100644
--- a/c/src/lib/libbsp/i386/shared/smp/smp-imps.c
+++ b/c/src/lib/libbsp/i386/shared/smp/smp-imps.c
@@ -56,6 +56,7 @@
#include <bsp/apic.h>
#include <bsp/smp-imps.h>
#include <bsp/irq.h>
+#include <rtems/score/smpimpl.h>
/*
* XXXXX The following absolutely must be defined!!!
@@ -783,7 +784,7 @@ static void secondary_cpu_initialize(void)
enable_sse();
#endif
- rtems_smp_secondary_cpu_initialize();
+ _SMP_Start_multitasking_on_secondary_processor();
}
#include <rtems/bspsmp.h>
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c b/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c
index d124303..4260c2b 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c
@@ -15,6 +15,7 @@
#include <assert.h>
#include <rtems/bspsmp.h>
+#include <rtems/score/smpimpl.h>
#include <libcpu/powerpc-utility.h>
@@ -133,7 +134,7 @@ void qoriq_secondary_cpu_initialize(void)
bsp_interrupt_vector_enable(QORIQ_IRQ_IPI_0);
- rtems_smp_secondary_cpu_initialize();
+ _SMP_Start_multitasking_on_secondary_processor();
}
static void ipi_handler(void *arg)
diff --git a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c
index dccca81..aac0396 100644
--- a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c
+++ b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c
@@ -17,6 +17,7 @@
#include <leon.h>
#include <rtems/bspIo.h>
#include <rtems/bspsmp.h>
+#include <rtems/score/smpimpl.h>
#include <stdlib.h>
static inline void sparc_leon3_set_cctrl( unsigned int val )
@@ -44,7 +45,7 @@ void leon3_secondary_cpu_initialize(uint32_t cpu)
LEON_Unmask_interrupt(LEON3_MP_IRQ);
LEON3_IrqCtrl_Regs->mask[cpu] |= 1 << LEON3_MP_IRQ;
- rtems_smp_secondary_cpu_initialize();
+ _SMP_Start_multitasking_on_secondary_processor();
}
uint32_t _CPU_SMP_Initialize( uint32_t configured_cpu_count )
diff --git a/cpukit/score/include/rtems/bspsmp.h b/cpukit/score/include/rtems/bspsmp.h
index c7502ec..37c0380 100644
--- a/cpukit/score/include/rtems/bspsmp.h
+++ b/cpukit/score/include/rtems/bspsmp.h
@@ -52,31 +52,6 @@ extern "C" {
#ifndef ASM
/**
- * @brief Performs high-level initialization of a secondary processor and runs
- * the application threads.
- *
- * The low-level initialization code must call this function to hand over the
- * control of this processor to RTEMS. Interrupts must be disabled. It must
- * be possible to send inter-processor interrupts to this processor. Since
- * interrupts are disabled the inter-processor interrupt delivery is postponed
- * until interrupts are enabled the first time. Interrupts are enabled during
- * the execution begin of threads in case they have interrupt level zero (this
- * is the default).
- *
- * The pre-requisites for the call to this function are
- * - disabled interrupts,
- * - delivery of inter-processor interrupts is possible,
- * - a valid stack pointer and enough stack space,
- * - a valid code memory, and
- * - a valid BSS section.
- *
- * This function must not be called by the main processor. This function does
- * not return to the caller.
- */
-void rtems_smp_secondary_cpu_initialize( void )
- RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
-
-/**
* @brief Process the incoming interprocessor request.
*
* This is the method called by the BSP's interrupt handler
diff --git a/cpukit/score/include/rtems/score/smpimpl.h b/cpukit/score/include/rtems/score/smpimpl.h
index 59f2b10..dc51cdf 100644
--- a/cpukit/score/include/rtems/score/smpimpl.h
+++ b/cpukit/score/include/rtems/score/smpimpl.h
@@ -63,6 +63,33 @@ typedef enum {
#if defined( RTEMS_SMP )
/**
+ * @brief Performs high-level initialization of a secondary processor and runs
+ * the application threads.
+ *
+ * The low-level initialization code must call this function to hand over the
+ * control of this processor to RTEMS. Interrupts must be disabled. It must
+ * be possible to send inter-processor interrupts to this processor. Since
+ * interrupts are disabled the inter-processor interrupt delivery is postponed
+ * until interrupts are enabled the first time. Interrupts are enabled during
+ * the execution begin of threads in case they have interrupt level zero (this
+ * is the default).
+ *
+ * The pre-requisites for the call to this function are
+ * - disabled interrupts,
+ * - delivery of inter-processor interrupts is possible,
+ * - a valid stack pointer and enough stack space,
+ * - a valid code memory, and
+ * - a valid BSS section.
+ *
+ * This function must not be called by the main processor. The main processor
+ * uses _Thread_Start_multitasking() instead.
+ *
+ * This function does not return to the caller.
+ */
+void _SMP_Start_multitasking_on_secondary_processor( void )
+ RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
+
+/**
* @brief Sends a SMP message to a processor.
*
* The target processor may be the sending processor.
diff --git a/cpukit/score/src/smp.c b/cpukit/score/src/smp.c
index 6c2f78b..86e9cd2 100644
--- a/cpukit/score/src/smp.c
+++ b/cpukit/score/src/smp.c
@@ -30,7 +30,7 @@
#include <rtems/bspIo.h>
#endif
-void rtems_smp_secondary_cpu_initialize( void )
+void _SMP_Start_multitasking_on_secondary_processor( void )
{
Per_CPU_Control *self_cpu = _Per_CPU_Get();
--
1.7.7
More information about the devel
mailing list