mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 09:44:18 +08:00
sh: smp: Hook up a timer IPI stub.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
c7936b9abc
commit
6f52707e68
@ -21,19 +21,26 @@ extern int __cpu_number_map[NR_CPUS];
|
||||
extern int __cpu_logical_map[NR_CPUS];
|
||||
#define cpu_logical_map(cpu) __cpu_logical_map[cpu]
|
||||
|
||||
#define SMP_MSG_FUNCTION 0
|
||||
#define SMP_MSG_RESCHEDULE 1
|
||||
#define SMP_MSG_FUNCTION_SINGLE 2
|
||||
#define SMP_MSG_NR 3
|
||||
enum {
|
||||
SMP_MSG_FUNCTION,
|
||||
SMP_MSG_RESCHEDULE,
|
||||
SMP_MSG_FUNCTION_SINGLE,
|
||||
SMP_MSG_TIMER,
|
||||
|
||||
SMP_MSG_NR, /* must be last */
|
||||
};
|
||||
|
||||
void smp_message_recv(unsigned int msg);
|
||||
void smp_timer_broadcast(cpumask_t mask);
|
||||
|
||||
void plat_smp_setup(void);
|
||||
void plat_prepare_cpus(unsigned int max_cpus);
|
||||
int plat_smp_processor_id(void);
|
||||
void plat_start_cpu(unsigned int cpu, unsigned long entry_point);
|
||||
void plat_send_ipi(unsigned int cpu, unsigned int message);
|
||||
extern void arch_send_call_function_single_ipi(int cpu);
|
||||
extern void arch_send_call_function_ipi(cpumask_t mask);
|
||||
|
||||
void arch_send_call_function_single_ipi(int cpu);
|
||||
void arch_send_call_function_ipi(cpumask_t mask);
|
||||
|
||||
#else
|
||||
|
||||
|
@ -184,6 +184,21 @@ void arch_send_call_function_single_ipi(int cpu)
|
||||
plat_send_ipi(cpu, SMP_MSG_FUNCTION_SINGLE);
|
||||
}
|
||||
|
||||
void smp_timer_broadcast(cpumask_t mask)
|
||||
{
|
||||
int cpu;
|
||||
|
||||
for_each_cpu_mask(cpu, mask)
|
||||
plat_send_ipi(cpu, SMP_MSG_TIMER);
|
||||
}
|
||||
|
||||
static void ipi_timer(void)
|
||||
{
|
||||
irq_enter();
|
||||
/* XXX ... */
|
||||
irq_exit();
|
||||
}
|
||||
|
||||
void smp_message_recv(unsigned int msg)
|
||||
{
|
||||
switch (msg) {
|
||||
@ -195,6 +210,9 @@ void smp_message_recv(unsigned int msg)
|
||||
case SMP_MSG_FUNCTION_SINGLE:
|
||||
generic_smp_call_function_single_interrupt();
|
||||
break;
|
||||
case SMP_MSG_TIMER:
|
||||
ipi_timer();
|
||||
break;
|
||||
default:
|
||||
printk(KERN_WARNING "SMP %d: %s(): unknown IPI %d\n",
|
||||
smp_processor_id(), __func__, msg);
|
||||
|
Loading…
Reference in New Issue
Block a user