10 #include <linux/sched.h>
13 #include <asm/processor.h>
14 #include <asm/sn/arch.h>
16 #include <asm/sn/intr.h>
17 #include <asm/sn/klconfig.h>
21 #include <asm/sn/types.h>
30 static void alloc_cpupda(
cpuid_t cpu,
int cpunum)
59 static int tot_cpus_found = 0;
72 if (get_actual_nasid(brd) == brd->
brd_nasid)
80 alloc_cpupda(cpuid, tot_cpus_found);
124 highest = do_cpumask(i, nasid, highest);
139 for (i = 0; i < 128; i++)
143 static void ip27_send_ipi_single(
int destid,
unsigned int action)
168 static void ip27_send_ipi_mask(
const struct cpumask *
mask,
unsigned int action)
173 ip27_send_ipi_single(i, action);
176 static
void __cpuinit ip27_init_secondary(
void)
181 static void __cpuinit ip27_smp_finish(
void)
189 static void __init ip27_cpus_done(
void)
205 0, (
void *) sp, (
void *) gp);
208 static void __init ip27_smp_setup(
void)
229 static void __init ip27_prepare_cpus(
unsigned int max_cpus)
235 .send_ipi_single = ip27_send_ipi_single,
236 .send_ipi_mask = ip27_send_ipi_mask,
237 .init_secondary = ip27_init_secondary,
238 .smp_finish = ip27_smp_finish,
239 .cpus_done = ip27_cpus_done,
240 .boot_secondary = ip27_boot_secondary,
241 .smp_setup = ip27_smp_setup,
242 .prepare_cpus = ip27_prepare_cpus,