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 /c | |
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 'c')
-rw-r--r-- | c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/shared/smp/smp-imps.c | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/qoriq/startup/smp.c | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/smp/smp_stub.c | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c | 8 |
5 files changed, 11 insertions, 16 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 e647b4fa92..3005bcf95f 100644 --- a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c +++ b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c @@ -56,11 +56,11 @@ void bsp_smp_broadcast_interrupt(void) ); } -void bsp_smp_interrupt_cpu(int cpu) +void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ) { rtems_status_code sc = arm_gic_irq_generate_software_irq( ARM_GIC_IRQ_SGI_0, ARM_GIC_IRQ_SOFTWARE_IRQ_TO_ALL_IN_LIST, - (uint8_t) (1U << cpu) + (uint8_t) (1U << target_processor_index) ); } 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 916379ed02..806cfb93f4 100644 --- a/c/src/lib/libbsp/i386/shared/smp/smp-imps.c +++ b/c/src/lib/libbsp/i386/shared/smp/smp-imps.c @@ -803,11 +803,9 @@ uint32_t bsp_smp_initialize( uint32_t configured_cpu_count ) return cores; } -void bsp_smp_interrupt_cpu( - int cpu -) +void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ) { - send_ipi( cpu, 0x30 ); + send_ipi( target_processor_index, 0x30 ); } void bsp_smp_broadcast_interrupt(void) diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c b/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c index 4634eef76d..30bcb7bc28 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c +++ b/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c @@ -167,8 +167,9 @@ void bsp_smp_broadcast_interrupt(void) qoriq.pic.per_cpu [self].ipidr [IPI_INDEX].reg = ALL_CORES; } -void bsp_smp_interrupt_cpu(int core) +void _CPU_SMP_Send_interrupt(uint32_t target_processor_index) { uint32_t self = ppc_processor_id(); - qoriq.pic.per_cpu [self].ipidr [IPI_INDEX].reg = ONE_CORE(core); + qoriq.pic.per_cpu [self].ipidr [IPI_INDEX].reg = + ONE_CORE(target_processor_index); } diff --git a/c/src/lib/libbsp/shared/smp/smp_stub.c b/c/src/lib/libbsp/shared/smp/smp_stub.c index 62338b91df..175af9d8d7 100644 --- a/c/src/lib/libbsp/shared/smp/smp_stub.c +++ b/c/src/lib/libbsp/shared/smp/smp_stub.c @@ -31,9 +31,7 @@ void bsp_smp_broadcast_message( { } -void bsp_smp_interrupt_cpu( - int cpu -) +void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ) { } 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 39fc9f9dfa..8862ca5f7a 100644 --- a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c +++ b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c @@ -115,12 +115,10 @@ uint32_t bsp_smp_initialize( uint32_t configured_cpu_count ) return found_cpus; } -void bsp_smp_interrupt_cpu( - int cpu -) +void _CPU_SMP_Send_interrupt(uint32_t target_processor_index) { /* send interrupt to destination CPU */ - LEON3_IrqCtrl_Regs->force[cpu] = 1 << LEON3_MP_IRQ; + LEON3_IrqCtrl_Regs->force[target_processor_index] = 1 << LEON3_MP_IRQ; } void bsp_smp_broadcast_interrupt(void) @@ -135,7 +133,7 @@ void bsp_smp_broadcast_interrupt(void) for ( dest_cpu=0 ; dest_cpu < max_cpus ; dest_cpu++ ) { if ( cpu == dest_cpu ) continue; - bsp_smp_interrupt_cpu( dest_cpu ); + _CPU_SMP_Send_interrupt( dest_cpu ); /* this is likely needed due to the ISR code not being SMP aware yet */ bsp_smp_delay( 100000 ); } |