29
30
#include <asm/percpu.h>
31
32
extern int boot_cpuid;
33
extern int boot_cpu_count;
33
35
extern void cpu_die(void);
37
extern void smp_send_debugger_break(int cpu);
38
extern void smp_message_recv(int);
40
void (*message_pass)(int cpu, int msg);
41
#ifdef CONFIG_PPC_SMP_MUXED_IPI
42
void (*cause_ipi)(int cpu, unsigned long data);
45
int (*kick_cpu)(int nr);
46
void (*setup_cpu)(int nr);
47
void (*bringup_done)(void);
48
void (*take_timebase)(void);
49
void (*give_timebase)(void);
50
int (*cpu_disable)(void);
51
void (*cpu_die)(unsigned int nr);
52
int (*cpu_bootable)(unsigned int nr);
55
extern void smp_send_debugger_break(void);
56
extern void start_secondary_resume(void);
57
extern void __devinit smp_generic_give_timebase(void);
58
extern void __devinit smp_generic_take_timebase(void);
40
60
DECLARE_PER_CPU(unsigned int, cpu_pvr);
42
62
#ifdef CONFIG_HOTPLUG_CPU
43
extern void fixup_irqs(const struct cpumask *map);
63
extern void migrate_irqs(void);
44
64
int generic_cpu_disable(void);
45
int generic_cpu_enable(unsigned int cpu);
46
65
void generic_cpu_die(unsigned int cpu);
47
66
void generic_mach_cpu_die(void);
67
void generic_set_cpu_dead(unsigned int cpu);
50
70
#ifdef CONFIG_PPC64
92
112
#define PPC_MSG_CALL_FUNC_SINGLE 2
93
113
#define PPC_MSG_DEBUGGER_BREAK 3
96
* irq controllers that have dedicated ipis per message and don't
97
* need additional code in the action handler may use this
115
/* for irq controllers that have dedicated ipis per message (4) */
99
116
extern int smp_request_message_ipi(int virq, int message);
100
117
extern const char *smp_ipi_name[];
119
/* for irq controllers with only a single ipi */
120
extern void smp_muxed_ipi_set_data(int cpu, unsigned long data);
121
extern void smp_muxed_ipi_message_pass(int cpu, int msg);
122
extern void smp_muxed_ipi_resend(void);
123
extern irqreturn_t smp_ipi_demux(void);
102
125
void smp_init_iSeries(void);
103
126
void smp_init_pSeries(void);
104
127
void smp_init_cell(void);
149
172
extern int smp_mpic_probe(void);
150
173
extern void smp_mpic_setup_cpu(int cpu);
151
extern void smp_generic_kick_cpu(int nr);
174
extern int smp_generic_kick_cpu(int nr);
153
176
extern void smp_generic_give_timebase(void);
154
177
extern void smp_generic_take_timebase(void);