diff options
Diffstat (limited to 'include/asm-parisc/smp.h')
-rw-r--r-- | include/asm-parisc/smp.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/include/asm-parisc/smp.h b/include/asm-parisc/smp.h new file mode 100644 index 00000000000..fde77ac3546 --- /dev/null +++ b/include/asm-parisc/smp.h | |||
@@ -0,0 +1,69 @@ | |||
1 | #ifndef __ASM_SMP_H | ||
2 | #define __ASM_SMP_H | ||
3 | |||
4 | #include <linux/config.h> | ||
5 | |||
6 | #if defined(CONFIG_SMP) | ||
7 | |||
8 | /* Page Zero Location PDC will look for the address to branch to when we poke | ||
9 | ** slave CPUs still in "Icache loop". | ||
10 | */ | ||
11 | #define PDC_OS_BOOT_RENDEZVOUS 0x10 | ||
12 | #define PDC_OS_BOOT_RENDEZVOUS_HI 0x28 | ||
13 | |||
14 | #ifndef ASSEMBLY | ||
15 | #include <linux/bitops.h> | ||
16 | #include <linux/threads.h> /* for NR_CPUS */ | ||
17 | #include <linux/cpumask.h> | ||
18 | typedef unsigned long address_t; | ||
19 | |||
20 | extern cpumask_t cpu_online_map; | ||
21 | |||
22 | |||
23 | /* | ||
24 | * Private routines/data | ||
25 | * | ||
26 | * physical and logical are equivalent until we support CPU hotplug. | ||
27 | */ | ||
28 | #define cpu_number_map(cpu) (cpu) | ||
29 | #define cpu_logical_map(cpu) (cpu) | ||
30 | |||
31 | extern void smp_send_reschedule(int cpu); | ||
32 | |||
33 | #endif /* !ASSEMBLY */ | ||
34 | |||
35 | /* | ||
36 | * This magic constant controls our willingness to transfer | ||
37 | * a process across CPUs. Such a transfer incurs cache and tlb | ||
38 | * misses. The current value is inherited from i386. Still needs | ||
39 | * to be tuned for parisc. | ||
40 | */ | ||
41 | |||
42 | #define PROC_CHANGE_PENALTY 15 /* Schedule penalty */ | ||
43 | |||
44 | #undef ENTRY_SYS_CPUS | ||
45 | #ifdef ENTRY_SYS_CPUS | ||
46 | #define STATE_RENDEZVOUS 0 | ||
47 | #define STATE_STOPPED 1 | ||
48 | #define STATE_RUNNING 2 | ||
49 | #define STATE_HALTED 3 | ||
50 | #endif | ||
51 | |||
52 | extern unsigned long cpu_present_mask; | ||
53 | |||
54 | #define smp_processor_id() (current_thread_info()->cpu) | ||
55 | |||
56 | #endif /* CONFIG_SMP */ | ||
57 | |||
58 | #define NO_PROC_ID 0xFF /* No processor magic marker */ | ||
59 | #define ANY_PROC_ID 0xFF /* Any processor magic marker */ | ||
60 | static inline int __cpu_disable (void) { | ||
61 | return 0; | ||
62 | } | ||
63 | static inline void __cpu_die (unsigned int cpu) { | ||
64 | while(1) | ||
65 | ; | ||
66 | } | ||
67 | extern int __cpu_up (unsigned int cpu); | ||
68 | |||
69 | #endif /* __ASM_SMP_H */ | ||