From a8ef3bf053db66abdbb24b3e1ac95ca1be254b95 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 11 Jun 2013 09:29:45 +0200 Subject: smp: Add and use _Per_CPU_Lock_acquire() Add and use _Per_CPU_Lock_release(). --- cpukit/score/include/rtems/score/percpu.h | 6 ++++++ cpukit/score/src/smp.c | 12 ++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) (limited to 'cpukit') diff --git a/cpukit/score/include/rtems/score/percpu.h b/cpukit/score/include/rtems/score/percpu.h index a91e6dc682..bb565d92c0 100644 --- a/cpukit/score/include/rtems/score/percpu.h +++ b/cpukit/score/include/rtems/score/percpu.h @@ -268,6 +268,12 @@ void _Per_CPU_Wait_for_state( Per_CPU_State desired_state ); +#define _Per_CPU_Lock_acquire( per_cpu, isr_cookie ) \ + _SMP_lock_ISR_disable_and_acquire( &( per_cpu )->lock, isr_cookie ) + +#define _Per_CPU_Lock_release( per_cpu, isr_cookie ) \ + _SMP_lock_Release_and_ISR_enable( &( per_cpu )->lock, isr_cookie ) + #endif /* diff --git a/cpukit/score/src/smp.c b/cpukit/score/src/smp.c index 21b39d3bb2..a8d8f4986f 100644 --- a/cpukit/score/src/smp.c +++ b/cpukit/score/src/smp.c @@ -70,10 +70,10 @@ void rtems_smp_process_interrupt( void ) ISR_Level level; - _SMP_lock_ISR_disable_and_acquire( &per_cpu->lock, level ); + _Per_CPU_Lock_acquire( per_cpu, level ); message = per_cpu->message; per_cpu->message = 0; - _SMP_lock_Release_and_ISR_enable( &per_cpu->lock, level ); + _Per_CPU_Lock_release( per_cpu, level ); #if defined(RTEMS_DEBUG) { @@ -116,9 +116,9 @@ void _SMP_Send_message( int cpu, uint32_t message ) printk( "Send 0x%x to %d\n", message, cpu ); #endif - _SMP_lock_ISR_disable_and_acquire( &per_cpu->lock, level ); + _Per_CPU_Lock_acquire( per_cpu, level ); per_cpu->message |= message; - _SMP_lock_Release_and_ISR_enable( &per_cpu->lock, level ); + _Per_CPU_Lock_release( per_cpu, level ); bsp_smp_interrupt_cpu( cpu ); } @@ -134,9 +134,9 @@ void _SMP_Broadcast_message( uint32_t message ) Per_CPU_Control *per_cpu = &_Per_CPU_Information[ cpu ]; ISR_Level level; - _SMP_lock_ISR_disable_and_acquire( &per_cpu->lock, level ); + _Per_CPU_Lock_acquire( per_cpu, level ); per_cpu->message |= message; - _SMP_lock_Release_and_ISR_enable( &per_cpu->lock, level ); + _Per_CPU_Lock_release( per_cpu, level ); } } -- cgit v1.2.3