1 /* smp.h: PPC specific SMP stuff.
2 *
3 * Taken from asm-sparc/smp.h
4 */
5
6 #ifdef __KERNEL__
7 #ifndef _PPC_SMP_H
8 #define _PPC_SMP_H
9
10 #include <linux/config.h>
11 #include <linux/kernel.h>
12
13 #ifdef CONFIG_SMP
14
15 #ifndef __ASSEMBLY__
16
17 struct cpuinfo_PPC {
18 unsigned long loops_per_sec;
19 unsigned long pvr;
20 unsigned long *pgd_cache;
21 unsigned long *pte_cache;
22 unsigned long pgtable_cache_sz;
23 };
24 extern struct cpuinfo_PPC cpu_data[NR_CPUS];
25
26 extern unsigned long smp_proc_in_lock[NR_CPUS];
27
28 extern void smp_store_cpu_info(int id);
29 extern void smp_send_tlb_invalidate(int);
30 extern void smp_send_xmon_break(int cpu);
31 struct pt_regs;
32 extern void smp_message_recv(int, struct pt_regs *);
33
34 #define NO_PROC_ID 0xFF /* No processor magic marker */
35 #define PROC_CHANGE_PENALTY 20
36
37 /* 1 to 1 mapping on PPC -- Cort */
38 #define cpu_logical_map(cpu) (cpu)
39 #define cpu_number_map(x) (x)
40 extern volatile unsigned long cpu_callin_map[NR_CPUS];
41
42 #define smp_processor_id() (current->processor)
43
44 extern int smp_hw_index[NR_CPUS];
45 #define hard_smp_processor_id() (smp_hw_index[smp_processor_id()])
46
47 struct klock_info_struct {
48 unsigned long kernel_flag;
49 unsigned char akp;
50 };
51
52 extern struct klock_info_struct klock_info;
53 #define KLOCK_HELD 0xffffffff
54 #define KLOCK_CLEAR 0x0
55
56 #endif /* __ASSEMBLY__ */
57
58 #else /* !(CONFIG_SMP) */
59
60 #endif /* !(CONFIG_SMP) */
61
62 #endif /* !(_PPC_SMP_H) */
63 #endif /* __KERNEL__ */
64
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.