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 | |
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')
-rw-r--r-- | c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/shared/irq/irq_asm.S | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/shared/smp/getcpuid.c | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/qoriq/startup/smp.c | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/smp/getcpuid.c | 5 | ||||
-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 |
7 files changed, 16 insertions, 21 deletions
diff --git a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c index b94bcec81c..e647b4fa92 100644 --- a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c +++ b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c @@ -20,11 +20,6 @@ #include <bsp/irq.h> -int bsp_smp_processor_id(void) -{ - return (int) arm_cortex_a9_get_multiprocessor_cpu_id(); -} - static void ipi_handler(void *arg) { rtems_smp_process_interrupt(); diff --git a/c/src/lib/libbsp/i386/shared/irq/irq_asm.S b/c/src/lib/libbsp/i386/shared/irq/irq_asm.S index d07ae2cb6b..2b16234622 100644 --- a/c/src/lib/libbsp/i386/shared/irq/irq_asm.S +++ b/c/src/lib/libbsp/i386/shared/irq/irq_asm.S @@ -100,7 +100,7 @@ SYM (_ISR_Handler): movl esp, ebp /* ebp = previous stack pointer */ #if defined(RTEMS_SMP) && defined(BSP_HAS_SMP) movl $SYM(_Per_CPU_Information_p), ebx - call SYM(bsp_smp_processor_id) + call SYM(_CPU_SMP_Get_current_processor) mov (ebx,eax,4), ebx pushl ecx call SYM(_ISR_SMP_Enter) diff --git a/c/src/lib/libbsp/i386/shared/smp/getcpuid.c b/c/src/lib/libbsp/i386/shared/smp/getcpuid.c index dc82d3f883..dec816698d 100644 --- a/c/src/lib/libbsp/i386/shared/smp/getcpuid.c +++ b/c/src/lib/libbsp/i386/shared/smp/getcpuid.c @@ -7,13 +7,15 @@ * http://www.rtems.com/license/LICENSE. */ +#include <rtems/score/cpu.h> + #include <bsp/apic.h> #include <bsp/smp-imps.h> static int lapic_dummy = 0; unsigned imps_lapic_addr = ((unsigned)(&lapic_dummy)) - LAPIC_ID; -int bsp_smp_processor_id(void) +uint32_t _CPU_SMP_Get_current_processor( void ) { return APIC_ID(IMPS_LAPIC_READ(LAPIC_ID)); } diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c b/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c index 352d7d44cc..4634eef76d 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c +++ b/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c @@ -43,11 +43,6 @@ void _start_core_1(void); #define TLB_COUNT (TLB_END - TLB_BEGIN) -int bsp_smp_processor_id(void) -{ - return (int) ppc_processor_id(); -} - /* * These values can be obtained with the debugger or a look into the * U-Boot sources (arch/powerpc/cpu/mpc85xx/release.S). diff --git a/c/src/lib/libbsp/shared/smp/getcpuid.c b/c/src/lib/libbsp/shared/smp/getcpuid.c index c1806c8916..8d57b780d3 100644 --- a/c/src/lib/libbsp/shared/smp/getcpuid.c +++ b/c/src/lib/libbsp/shared/smp/getcpuid.c @@ -7,8 +7,9 @@ * 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 ) { return 0; } - 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++ ) { |