X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-arm%2Fsmp.h;h=f21fd8f6bcdd04fc721bd6f4b0648d5778b77073;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=5ca771631fd8de1701c0e76af28c71794c02dd21;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/include/asm-arm/smp.h b/include/asm-arm/smp.h index 5ca771631..f21fd8f6b 100644 --- a/include/asm-arm/smp.h +++ b/include/asm-arm/smp.h @@ -1,10 +1,58 @@ -#ifndef __ASM_SMP_H -#define __ASM_SMP_H +/* + * linux/include/asm-arm/smp.h + * + * Copyright (C) 2004-2005 ARM Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#ifndef __ASM_ARM_SMP_H +#define __ASM_ARM_SMP_H #include +#include +#include +#include -#ifdef CONFIG_SMP -#error SMP not supported -#endif +#include +#ifndef CONFIG_SMP +# error " included in non-SMP build" #endif + +#define smp_processor_id() (current_thread_info()->cpu) + +extern cpumask_t cpu_present_mask; +#define cpu_possible_map cpu_present_mask + +/* + * at the moment, there's not a big penalty for changing CPUs + * (the >big< penalty is running SMP in the first place) + */ +#define PROC_CHANGE_PENALTY 15 + +struct seq_file; + +/* + * generate IPI list text + */ +extern void show_ipi_list(struct seq_file *p); + +/* + * Move global data into per-processor storage. + */ +extern void smp_store_cpu_info(unsigned int cpuid); + +/* + * Raise an IPI cross call on CPUs in callmap. + */ +extern void smp_cross_call(cpumask_t callmap); + +/* + * Boot a secondary CPU, and assign it the specified idle task. + * This also gives us the initial stack to use for this CPU. + */ +extern int boot_secondary(unsigned int cpu, struct task_struct *); + +#endif /* ifndef __ASM_ARM_SMP_H */