diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-06-13 15:41:21 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-17 13:09:50 +0200 |
commit | ca63ae2ec0b7831d533497078c0982ba758eec81 (patch) | |
tree | 3ee772f6fe21474a07e1ddf7ac9b09b66d1a6b69 /cpukit/score/cpu | |
parent | smp: Add and use _CPU_SMP_Get_current_processor() (diff) | |
download | rtems-ca63ae2ec0b7831d533497078c0982ba758eec81.tar.bz2 |
smp: Add and use _CPU_SMP_Send_interrupt()
Delete bsp_smp_interrupt_cpu().
Diffstat (limited to 'cpukit/score/cpu')
-rw-r--r-- | cpukit/score/cpu/arm/rtems/score/cpu.h | 2 | ||||
-rw-r--r-- | cpukit/score/cpu/i386/rtems/score/cpu.h | 2 | ||||
-rw-r--r-- | cpukit/score/cpu/no_cpu/rtems/score/cpu.h | 10 | ||||
-rw-r--r-- | cpukit/score/cpu/powerpc/rtems/score/cpu.h | 1 | ||||
-rw-r--r-- | cpukit/score/cpu/sparc/rtems/score/cpu.h | 2 |
5 files changed, 17 insertions, 0 deletions
diff --git a/cpukit/score/cpu/arm/rtems/score/cpu.h b/cpukit/score/cpu/arm/rtems/score/cpu.h index ed1b605d09..519d486b12 100644 --- a/cpukit/score/cpu/arm/rtems/score/cpu.h +++ b/cpukit/score/cpu/arm/rtems/score/cpu.h @@ -457,6 +457,8 @@ void _CPU_Context_validate( uintptr_t pattern ); return mpidr & 0xffU; } + void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); + static inline void _ARM_Data_memory_barrier( void ) { __asm__ volatile ( "dmb" : : : "memory" ); diff --git a/cpukit/score/cpu/i386/rtems/score/cpu.h b/cpukit/score/cpu/i386/rtems/score/cpu.h index b00ae3bfd8..092ba995d3 100644 --- a/cpukit/score/cpu/i386/rtems/score/cpu.h +++ b/cpukit/score/cpu/i386/rtems/score/cpu.h @@ -457,6 +457,8 @@ uint32_t _CPU_ISR_Get_level( void ); RTEMS_COMPILER_PURE_ATTRIBUTE uint32_t _CPU_SMP_Get_current_processor( void ); + void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); + static inline void _CPU_Processor_event_broadcast( void ) { __asm__ volatile ( "" : : : "memory" ); diff --git a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h index d368e51c5f..dc48d2bbc8 100644 --- a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h +++ b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h @@ -1417,6 +1417,16 @@ static inline uint32_t CPU_swap_u32( } /** + * @brief Sends an inter-processor interrupt to the specified target + * processor. + * + * This operation is undefined for target processor indices out of range. + * + * @param[in] target_processor_index The target processor index. + */ + void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); + + /** * @brief Broadcasts a processor event. * * Some architectures provide a low-level synchronization primitive for diff --git a/cpukit/score/cpu/powerpc/rtems/score/cpu.h b/cpukit/score/cpu/powerpc/rtems/score/cpu.h index 8362c64b3f..17f2d39ce0 100644 --- a/cpukit/score/cpu/powerpc/rtems/score/cpu.h +++ b/cpukit/score/cpu/powerpc/rtems/score/cpu.h @@ -1014,6 +1014,7 @@ void _CPU_Context_validate( uintptr_t pattern ); return pir; } + void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); static inline void _CPU_Processor_event_broadcast( void ) { diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h b/cpukit/score/cpu/sparc/rtems/score/cpu.h index e4eb65e88a..8ba7a41044 100644 --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h @@ -1188,6 +1188,8 @@ void _CPU_Context_restore( RTEMS_COMPILER_PURE_ATTRIBUTE uint32_t _CPU_SMP_Get_current_processor( void ); + void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); + static inline void _CPU_Processor_event_broadcast( void ) { __asm__ volatile ( "" : : : "memory" ); |