| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #ifndef _ASM_S390_TOPOLOGY_H
 | 
					
						
							|  |  |  | #define _ASM_S390_TOPOLOGY_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-04-17 07:46:12 +02:00
										 |  |  | #include <linux/cpumask.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-03 14:11:32 +02:00
										 |  |  | struct sysinfo_15_1_x; | 
					
						
							| 
									
										
										
										
											2011-12-27 11:27:09 +01:00
										 |  |  | struct cpu; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_SCHED_BOOK
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-12 10:03:25 +01:00
										 |  |  | struct cpu_topology_s390 { | 
					
						
							|  |  |  | 	unsigned short core_id; | 
					
						
							|  |  |  | 	unsigned short socket_id; | 
					
						
							|  |  |  | 	unsigned short book_id; | 
					
						
							|  |  |  | 	cpumask_t core_mask; | 
					
						
							|  |  |  | 	cpumask_t book_mask; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern struct cpu_topology_s390 cpu_topology[NR_CPUS]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define topology_physical_package_id(cpu)	(cpu_topology[cpu].socket_id)
 | 
					
						
							|  |  |  | #define topology_core_id(cpu)			(cpu_topology[cpu].core_id)
 | 
					
						
							|  |  |  | #define topology_core_cpumask(cpu)		(&cpu_topology[cpu].core_mask)
 | 
					
						
							|  |  |  | #define topology_book_id(cpu)			(cpu_topology[cpu].book_id)
 | 
					
						
							|  |  |  | #define topology_book_cpumask(cpu)		(&cpu_topology[cpu].book_mask)
 | 
					
						
							| 
									
										
										
										
											2012-11-10 11:04:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-12 10:03:25 +01:00
										 |  |  | #define mc_capable() 1
 | 
					
						
							| 
									
										
										
										
											2008-04-30 13:38:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-26 09:48:27 +02:00
										 |  |  | static inline const struct cpumask *cpu_coregroup_mask(int cpu) | 
					
						
							| 
									
										
										
										
											2010-08-31 10:28:18 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2012-11-12 10:03:25 +01:00
										 |  |  | 	return &cpu_topology[cpu].core_mask; | 
					
						
							| 
									
										
										
										
											2010-08-31 10:28:18 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-26 09:48:27 +02:00
										 |  |  | static inline const struct cpumask *cpu_book_mask(int cpu) | 
					
						
							| 
									
										
										
										
											2010-08-31 10:28:18 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2012-11-12 10:03:25 +01:00
										 |  |  | 	return &cpu_topology[cpu].book_mask; | 
					
						
							| 
									
										
										
										
											2010-08-31 10:28:18 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-27 11:27:09 +01:00
										 |  |  | int topology_cpu_init(struct cpu *); | 
					
						
							| 
									
										
										
										
											2008-04-17 07:46:13 +02:00
										 |  |  | int topology_set_cpu_management(int fc); | 
					
						
							|  |  |  | void topology_schedule_update(void); | 
					
						
							| 
									
										
										
										
											2010-10-25 16:10:54 +02:00
										 |  |  | void store_topology(struct sysinfo_15_1_x *info); | 
					
						
							| 
									
										
										
										
											2011-12-27 11:27:16 +01:00
										 |  |  | void topology_expect_change(void); | 
					
						
							| 
									
										
										
										
											2008-04-17 07:46:13 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-27 11:27:09 +01:00
										 |  |  | #else /* CONFIG_SCHED_BOOK */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline void topology_schedule_update(void) { } | 
					
						
							|  |  |  | static inline int topology_cpu_init(struct cpu *cpu) { return 0; } | 
					
						
							| 
									
										
										
										
											2011-12-27 11:27:16 +01:00
										 |  |  | static inline void topology_expect_change(void) { } | 
					
						
							| 
									
										
										
										
											2011-12-27 11:27:09 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif /* CONFIG_SCHED_BOOK */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define POLARIZATION_UNKNOWN	(-1)
 | 
					
						
							| 
									
										
										
										
											2008-04-17 07:46:13 +02:00
										 |  |  | #define POLARIZATION_HRZ	(0)
 | 
					
						
							|  |  |  | #define POLARIZATION_VL		(1)
 | 
					
						
							|  |  |  | #define POLARIZATION_VM		(2)
 | 
					
						
							|  |  |  | #define POLARIZATION_VH		(3)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-27 11:27:09 +01:00
										 |  |  | #ifdef CONFIG_SCHED_BOOK
 | 
					
						
							| 
									
										
										
										
											2008-04-17 07:46:12 +02:00
										 |  |  | void s390_init_cpu_topology(void); | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | static inline void s390_init_cpu_topology(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-31 10:28:18 +02:00
										 |  |  | #define SD_BOOK_INIT	SD_CPU_INIT
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #include <asm-generic/topology.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* _ASM_S390_TOPOLOGY_H */
 |