Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #ifndef _ASM_S390_TOPOLOGY_H |
2 | #define _ASM_S390_TOPOLOGY_H | |
3 | ||
dbd70fb4 HC |
4 | #include <linux/cpumask.h> |
5 | ||
78609132 | 6 | struct sysinfo_15_1_x; |
83a24e32 HC |
7 | struct cpu; |
8 | ||
9 | #ifdef CONFIG_SCHED_BOOK | |
10 | ||
d1e57508 | 11 | struct cpu_topology_s390 { |
10ad34bc | 12 | unsigned short thread_id; |
d1e57508 HC |
13 | unsigned short core_id; |
14 | unsigned short socket_id; | |
15 | unsigned short book_id; | |
10ad34bc | 16 | cpumask_t thread_mask; |
d1e57508 HC |
17 | cpumask_t core_mask; |
18 | cpumask_t book_mask; | |
19 | }; | |
20 | ||
da0c636e HC |
21 | DECLARE_PER_CPU(struct cpu_topology_s390, cpu_topology); |
22 | ||
23 | #define topology_physical_package_id(cpu) (per_cpu(cpu_topology, cpu).socket_id) | |
24 | #define topology_thread_id(cpu) (per_cpu(cpu_topology, cpu).thread_id) | |
25 | #define topology_thread_cpumask(cpu) (&per_cpu(cpu_topology, cpu).thread_mask) | |
26 | #define topology_core_id(cpu) (per_cpu(cpu_topology, cpu).core_id) | |
27 | #define topology_core_cpumask(cpu) (&per_cpu(cpu_topology, cpu).core_mask) | |
28 | #define topology_book_id(cpu) (per_cpu(cpu_topology, cpu).book_id) | |
29 | #define topology_book_cpumask(cpu) (&per_cpu(cpu_topology, cpu).book_mask) | |
658e5ce7 | 30 | |
d1e57508 | 31 | #define mc_capable() 1 |
d00aa4e7 | 32 | |
83a24e32 | 33 | int topology_cpu_init(struct cpu *); |
c10fde0d HC |
34 | int topology_set_cpu_management(int fc); |
35 | void topology_schedule_update(void); | |
96f4a70d | 36 | void store_topology(struct sysinfo_15_1_x *info); |
d68bddb7 | 37 | void topology_expect_change(void); |
2dfd7476 | 38 | const struct cpumask *cpu_coregroup_mask(int cpu); |
c10fde0d | 39 | |
83a24e32 HC |
40 | #else /* CONFIG_SCHED_BOOK */ |
41 | ||
42 | static inline void topology_schedule_update(void) { } | |
43 | static inline int topology_cpu_init(struct cpu *cpu) { return 0; } | |
d68bddb7 | 44 | static inline void topology_expect_change(void) { } |
83a24e32 HC |
45 | |
46 | #endif /* CONFIG_SCHED_BOOK */ | |
47 | ||
48 | #define POLARIZATION_UNKNOWN (-1) | |
c10fde0d HC |
49 | #define POLARIZATION_HRZ (0) |
50 | #define POLARIZATION_VL (1) | |
51 | #define POLARIZATION_VM (2) | |
52 | #define POLARIZATION_VH (3) | |
53 | ||
1da177e4 LT |
54 | #include <asm-generic/topology.h> |
55 | ||
56 | #endif /* _ASM_S390_TOPOLOGY_H */ |