[rtems commit] i386/smp: Export _CPU_SMP_Prepare_start_multitasking as a function

Joel Sherrill joel at rtems.org
Fri Mar 16 16:02:11 UTC 2018


Module:    rtems
Branch:    master
Commit:    efa0039ee94416e98636ae8228c04b1fafb42c90
Changeset: http://git.rtems.org/rtems/commit/?id=efa0039ee94416e98636ae8228c04b1fafb42c90

Author:    Amaan Cheval <amaan.cheval at gmail.com>
Date:      Tue Mar 13 22:02:15 2018 +0530

i386/smp: Export _CPU_SMP_Prepare_start_multitasking as a function

When it's a macro, a function declaration causes a compiler error due to the
macro being expanded.

Partial log showing error:
https://gist.github.com/AmaanC/ab3521141479aa6f61ea25f5d74ebb4d

Closes #3331

---

 c/src/lib/libbsp/i386/shared/smp/smp-imps.c     | 5 +++++
 cpukit/score/cpu/i386/include/rtems/score/cpu.h | 3 +--
 2 files changed, 6 insertions(+), 2 deletions(-)

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 1ed504c..2ba3680 100644
--- a/c/src/lib/libbsp/i386/shared/smp/smp-imps.c
+++ b/c/src/lib/libbsp/i386/shared/smp/smp-imps.c
@@ -804,6 +804,11 @@ uint32_t _CPU_SMP_Initialize( void )
   return (uint32_t) imps_probe();
 }
 
+void _CPU_SMP_Prepare_start_multitasking( void )
+{
+  /* Do nothing */
+}
+
 bool _CPU_SMP_Start_processor( uint32_t cpu_index )
 {
   (void) cpu_index;
diff --git a/cpukit/score/cpu/i386/include/rtems/score/cpu.h b/cpukit/score/cpu/i386/include/rtems/score/cpu.h
index 311a781..777439c 100644
--- a/cpukit/score/cpu/i386/include/rtems/score/cpu.h
+++ b/cpukit/score/cpu/i386/include/rtems/score/cpu.h
@@ -473,8 +473,7 @@ void _CPU_Context_Initialize(
 
   void _CPU_SMP_Finalize_initialization( uint32_t cpu_count );
 
-  /* Nothing to do */
-  #define _CPU_SMP_Prepare_start_multitasking() do { } while ( 0 )
+  void _CPU_SMP_Prepare_start_multitasking( void );
 
   uint32_t _CPU_SMP_Get_current_processor( void );
 



More information about the vc mailing list