1#ifndef __ASM_SMP_H
2#define __ASM_SMP_H
3
4
5#if defined(CONFIG_SMP)
6
7/* Page Zero Location PDC will look for the address to branch to when we poke
8** slave CPUs still in "Icache loop".
9*/
10#define PDC_OS_BOOT_RENDEZVOUS     0x10
11#define PDC_OS_BOOT_RENDEZVOUS_HI  0x28
12
13#ifndef ASSEMBLY
14#include <linux/bitops.h>
15#include <linux/threads.h>	/* for NR_CPUS */
16#include <linux/cpumask.h>
17typedef unsigned long address_t;
18
19
20/*
21 *	Private routines/data
22 *
23 *	physical and logical are equivalent until we support CPU hotplug.
24 */
25#define cpu_number_map(cpu)	(cpu)
26#define cpu_logical_map(cpu)	(cpu)
27
28extern void smp_send_all_nop(void);
29
30extern void arch_send_call_function_single_ipi(int cpu);
31extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
32
33#endif /* !ASSEMBLY */
34
35#define raw_smp_processor_id()	(current_thread_info()->cpu)
36
37#else /* CONFIG_SMP */
38
39static inline void smp_send_all_nop(void) { return; }
40
41#endif
42
43#define NO_PROC_ID		0xFF		/* No processor magic marker */
44#define ANY_PROC_ID		0xFF		/* Any processor magic marker */
45static inline int __cpu_disable (void) {
46  return 0;
47}
48static inline void __cpu_die (unsigned int cpu) {
49  while(1)
50    ;
51}
52
53#endif /*  __ASM_SMP_H */
54