diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-06-14 14:00:38 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-17 13:09:49 +0200 |
commit | 39e51758c86754cef5ba4521c0c36578521f73d0 (patch) | |
tree | a87255c5c0592b876106da50b939dedd471b7d5a /c/src/lib/libbsp/sparc | |
parent | smp: Delete RTEMS_BSP_SMP_CONTEXT_SWITCH_NECESSARY (diff) | |
download | rtems-39e51758c86754cef5ba4521c0c36578521f73d0.tar.bz2 |
smp: Add and use _CPU_SMP_Get_current_processor()
Add and use _SMP_Get_current_processor() and
rtems_smp_get_current_processor().
Delete bsp_smp_interrupt_cpu().
Change type of current processor index from int to uint32_t to match
_SMP_Processor_count type.
Diffstat (limited to 'c/src/lib/libbsp/sparc')
-rw-r--r-- | c/src/lib/libbsp/sparc/leon3/smp/getcpuid.c | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c | 10 |
2 files changed, 9 insertions, 7 deletions
diff --git a/c/src/lib/libbsp/sparc/leon3/smp/getcpuid.c b/c/src/lib/libbsp/sparc/leon3/smp/getcpuid.c index 5678fd4962..824278db61 100644 --- a/c/src/lib/libbsp/sparc/leon3/smp/getcpuid.c +++ b/c/src/lib/libbsp/sparc/leon3/smp/getcpuid.c @@ -13,9 +13,11 @@ * http://www.rtems.com/license/LICENSE. */ -int bsp_smp_processor_id(void) +#include <rtems/score/cpu.h> + +uint32_t _CPU_SMP_Get_current_processor( void ) { - unsigned int id; + uint32_t id; __asm__ __volatile__( "rd %%asr17,%0\n\t" : "=r" (id) : ); return ((id >> 28) & 0xff); 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 7dbd5bb12a..39fc9f9dfa 100644 --- a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c +++ b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c @@ -43,7 +43,7 @@ static rtems_isr bsp_ap_ipi_isr( static void leon3_secondary_cpu_initialize(void) { - int cpu = bsp_smp_processor_id(); + uint32_t cpu = rtems_smp_get_current_processor(); sparc_leon3_set_cctrl( 0x80000F ); LEON_Unmask_interrupt(LEON3_MP_IRQ); @@ -125,11 +125,11 @@ void bsp_smp_interrupt_cpu( void bsp_smp_broadcast_interrupt(void) { - int dest_cpu; - int cpu; - int max_cpus; + uint32_t dest_cpu; + uint32_t cpu; + uint32_t max_cpus; - cpu = bsp_smp_processor_id(); + cpu = rtems_smp_get_current_processor(); max_cpus = rtems_smp_get_processor_count(); for ( dest_cpu=0 ; dest_cpu < max_cpus ; dest_cpu++ ) { |