xref: /openbmc/linux/arch/s390/include/asm/topology.h (revision 261a9af6)
1 #ifndef _ASM_S390_TOPOLOGY_H
2 #define _ASM_S390_TOPOLOGY_H
3 
4 #include <linux/cpumask.h>
5 #include <asm/sysinfo.h>
6 
7 extern unsigned char cpu_core_id[NR_CPUS];
8 extern cpumask_t cpu_core_map[NR_CPUS];
9 
10 static inline const struct cpumask *cpu_coregroup_mask(int cpu)
11 {
12 	return &cpu_core_map[cpu];
13 }
14 
15 #define topology_core_id(cpu)		(cpu_core_id[cpu])
16 #define topology_core_cpumask(cpu)	(&cpu_core_map[cpu])
17 #define mc_capable()			(1)
18 
19 #ifdef CONFIG_SCHED_BOOK
20 
21 extern unsigned char cpu_book_id[NR_CPUS];
22 extern cpumask_t cpu_book_map[NR_CPUS];
23 
24 static inline const struct cpumask *cpu_book_mask(int cpu)
25 {
26 	return &cpu_book_map[cpu];
27 }
28 
29 #define topology_book_id(cpu)		(cpu_book_id[cpu])
30 #define topology_book_cpumask(cpu)	(&cpu_book_map[cpu])
31 
32 #endif /* CONFIG_SCHED_BOOK */
33 
34 int topology_set_cpu_management(int fc);
35 void topology_schedule_update(void);
36 void store_topology(struct sysinfo_15_1_x *info);
37 
38 #define POLARIZATION_UNKNWN	(-1)
39 #define POLARIZATION_HRZ	(0)
40 #define POLARIZATION_VL		(1)
41 #define POLARIZATION_VM		(2)
42 #define POLARIZATION_VH		(3)
43 
44 #ifdef CONFIG_SMP
45 void s390_init_cpu_topology(void);
46 #else
47 static inline void s390_init_cpu_topology(void)
48 {
49 };
50 #endif
51 
52 #define SD_BOOK_INIT	SD_CPU_INIT
53 
54 #include <asm-generic/topology.h>
55 
56 #endif /* _ASM_S390_TOPOLOGY_H */
57