11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef __ASM_SMP_H
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define __ASM_SMP_H
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#if defined(CONFIG_SMP)
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Page Zero Location PDC will look for the address to branch to when we poke
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** slave CPUs still in "Icache loop".
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds*/
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define PDC_OS_BOOT_RENDEZVOUS     0x10
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define PDC_OS_BOOT_RENDEZVOUS_HI  0x28
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef ASSEMBLY
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/bitops.h>
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/threads.h>	/* for NR_CPUS */
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/cpumask.h>
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef unsigned long address_t;
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *	Private routines/data
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *	physical and logical are equivalent until we support CPU hotplug.
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define cpu_number_map(cpu)	(cpu)
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define cpu_logical_map(cpu)	(cpu)
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
28d911aed8adf74e1fae88d082b8474b2175b7f1daJames Bottomleyextern void smp_send_all_nop(void);
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
30dbcf4787d816a4694ec83b5fde1a947c3ce74d57Jens Axboeextern void arch_send_call_function_single_ipi(int cpu);
3191887a362984324e254473e92820758c8e658f78Rusty Russellextern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
32dbcf4787d816a4694ec83b5fde1a947c3ce74d57Jens Axboe
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* !ASSEMBLY */
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3539c715b71740c4a78ba4769fb54826929bac03cbIngo Molnar#define raw_smp_processor_id()	(current_thread_info()->cpu)
361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
371d4c452a85503cdb4bca5925cf698b61d3aa43a0Kyle McMartin#else /* CONFIG_SMP */
381d4c452a85503cdb4bca5925cf698b61d3aa43a0Kyle McMartin
391d4c452a85503cdb4bca5925cf698b61d3aa43a0Kyle McMartinstatic inline void smp_send_all_nop(void) { return; }
401d4c452a85503cdb4bca5925cf698b61d3aa43a0Kyle McMartin
411d4c452a85503cdb4bca5925cf698b61d3aa43a0Kyle McMartin#endif
421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NO_PROC_ID		0xFF		/* No processor magic marker */
441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ANY_PROC_ID		0xFF		/* Any processor magic marker */
451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstatic inline int __cpu_disable (void) {
461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  return 0;
471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}
481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstatic inline void __cpu_die (unsigned int cpu) {
491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  while(1)
501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    ;
511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}
521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /*  __ASM_SMP_H */
54