diff options
Diffstat (limited to 'include/asm-ppc/smp.h')
-rw-r--r-- | include/asm-ppc/smp.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/include/asm-ppc/smp.h b/include/asm-ppc/smp.h new file mode 100644 index 000000000000..ebfb614f55f6 --- /dev/null +++ b/include/asm-ppc/smp.h | |||
@@ -0,0 +1,70 @@ | |||
1 | /* smp.h: PPC specific SMP stuff. | ||
2 | * | ||
3 | * Original was a copy of sparc smp.h. Now heavily modified | ||
4 | * for PPC. | ||
5 | * | ||
6 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) | ||
7 | * Copyright (C) 1996-2001 Cort Dougan <cort@fsmlabs.com> | ||
8 | */ | ||
9 | #ifdef __KERNEL__ | ||
10 | #ifndef _PPC_SMP_H | ||
11 | #define _PPC_SMP_H | ||
12 | |||
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/bitops.h> | ||
16 | #include <linux/errno.h> | ||
17 | #include <linux/cpumask.h> | ||
18 | #include <linux/threads.h> | ||
19 | |||
20 | #ifdef CONFIG_SMP | ||
21 | |||
22 | #ifndef __ASSEMBLY__ | ||
23 | |||
24 | struct cpuinfo_PPC { | ||
25 | unsigned long loops_per_jiffy; | ||
26 | unsigned long pvr; | ||
27 | unsigned long *pgd_cache; | ||
28 | unsigned long *pte_cache; | ||
29 | unsigned long pgtable_cache_sz; | ||
30 | }; | ||
31 | |||
32 | extern struct cpuinfo_PPC cpu_data[]; | ||
33 | extern cpumask_t cpu_online_map; | ||
34 | extern cpumask_t cpu_possible_map; | ||
35 | extern unsigned long smp_proc_in_lock[]; | ||
36 | extern volatile unsigned long cpu_callin_map[]; | ||
37 | extern int smp_tb_synchronized; | ||
38 | |||
39 | extern void smp_send_tlb_invalidate(int); | ||
40 | extern void smp_send_xmon_break(int cpu); | ||
41 | struct pt_regs; | ||
42 | extern void smp_message_recv(int, struct pt_regs *); | ||
43 | |||
44 | #define NO_PROC_ID 0xFF /* No processor magic marker */ | ||
45 | #define PROC_CHANGE_PENALTY 20 | ||
46 | |||
47 | #define smp_processor_id() (current_thread_info()->cpu) | ||
48 | |||
49 | extern int __cpu_up(unsigned int cpu); | ||
50 | |||
51 | extern int smp_hw_index[]; | ||
52 | #define hard_smp_processor_id() (smp_hw_index[smp_processor_id()]) | ||
53 | |||
54 | struct klock_info_struct { | ||
55 | unsigned long kernel_flag; | ||
56 | unsigned char akp; | ||
57 | }; | ||
58 | |||
59 | extern struct klock_info_struct klock_info; | ||
60 | #define KLOCK_HELD 0xffffffff | ||
61 | #define KLOCK_CLEAR 0x0 | ||
62 | |||
63 | #endif /* __ASSEMBLY__ */ | ||
64 | |||
65 | #else /* !(CONFIG_SMP) */ | ||
66 | |||
67 | #endif /* !(CONFIG_SMP) */ | ||
68 | |||
69 | #endif /* !(_PPC_SMP_H) */ | ||
70 | #endif /* __KERNEL__ */ | ||