aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm/smp.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/include/asm/smp.h')
-rw-r--r--arch/arm/include/asm/smp.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h
index ae29293270a..f79a9f51e32 100644
--- a/arch/arm/include/asm/smp.h
+++ b/arch/arm/include/asm/smp.h
@@ -93,4 +93,37 @@ extern void platform_cpu_enable(unsigned int cpu);
93extern void arch_send_call_function_single_ipi(int cpu); 93extern void arch_send_call_function_single_ipi(int cpu);
94extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); 94extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
95 95
96struct smp_operations {
97#ifdef CONFIG_SMP
98 /*
99 * Setup the set of possible CPUs (via set_cpu_possible)
100 */
101 void (*smp_init_cpus)(void);
102 /*
103 * Initialize cpu_possible map, and enable coherency
104 */
105 void (*smp_prepare_cpus)(unsigned int max_cpus);
106
107 /*
108 * Perform platform specific initialisation of the specified CPU.
109 */
110 void (*smp_secondary_init)(unsigned int cpu);
111 /*
112 * Boot a secondary CPU, and assign it the specified idle task.
113 * This also gives us the initial stack to use for this CPU.
114 */
115 int (*smp_boot_secondary)(unsigned int cpu, struct task_struct *idle);
116#ifdef CONFIG_HOTPLUG_CPU
117 int (*cpu_kill)(unsigned int cpu);
118 void (*cpu_die)(unsigned int cpu);
119 int (*cpu_disable)(unsigned int cpu);
120#endif
121#endif
122};
123
124/*
125 * set platform specific SMP operations
126 */
127extern void smp_set_ops(struct smp_operations *);
128
96#endif /* ifndef __ASM_ARM_SMP_H */ 129#endif /* ifndef __ASM_ARM_SMP_H */