diff options
Diffstat (limited to 'arch/arm/include/asm/smp.h')
-rw-r--r-- | arch/arm/include/asm/smp.h | 33 |
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); | |||
93 | extern void arch_send_call_function_single_ipi(int cpu); | 93 | extern void arch_send_call_function_single_ipi(int cpu); |
94 | extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); | 94 | extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); |
95 | 95 | ||
96 | struct 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 | */ | ||
127 | extern void smp_set_ops(struct smp_operations *); | ||
128 | |||
96 | #endif /* ifndef __ASM_ARM_SMP_H */ | 129 | #endif /* ifndef __ASM_ARM_SMP_H */ |