[PATCH 3/3] i386/smp: Export _CPU_SMP_Prepare_start_multitasking as a function

Amaan Cheval amaan.cheval at gmail.com
Sat Mar 10 14:11:39 UTC 2018


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 1ed504ccf9..2ba36804cb 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 b8ac218acc..81cab231b5 100644
--- a/cpukit/score/cpu/i386/include/rtems/score/cpu.h
+++ b/cpukit/score/cpu/i386/include/rtems/score/cpu.h
@@ -464,8 +464,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 );
 
-- 
2.13.0



More information about the devel mailing list