summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-06-13 15:41:21 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-17 13:09:50 +0200
commitca63ae2ec0b7831d533497078c0982ba758eec81 (patch)
tree3ee772f6fe21474a07e1ddf7ac9b09b66d1a6b69 /c
parentsmp: Add and use _CPU_SMP_Get_current_processor() (diff)
downloadrtems-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.c4
-rw-r--r--c/src/lib/libbsp/i386/shared/smp/smp-imps.c6
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/smp.c5
-rw-r--r--c/src/lib/libbsp/shared/smp/smp_stub.c4
-rw-r--r--c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c8
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 );
}