1 /* 2 * definition for store system information stsi 3 * 4 * Copyright IBM Corp. 2001, 2008 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License (version 2 only) 8 * as published by the Free Software Foundation. 9 * 10 * Author(s): Ulrich Weigand <weigand@de.ibm.com> 11 * Christian Borntraeger <borntraeger@de.ibm.com> 12 */ 13 14 #ifndef __ASM_S390_SYSINFO_H 15 #define __ASM_S390_SYSINFO_H 16 17 #include <asm/bitsperlong.h> 18 19 struct sysinfo_1_1_1 { 20 unsigned char p:1; 21 unsigned char :6; 22 unsigned char t:1; 23 unsigned char :8; 24 unsigned char ccr; 25 unsigned char cai; 26 char reserved_0[28]; 27 char manufacturer[16]; 28 char type[4]; 29 char reserved_1[12]; 30 char model_capacity[16]; 31 char sequence[16]; 32 char plant[4]; 33 char model[16]; 34 char model_perm_cap[16]; 35 char model_temp_cap[16]; 36 unsigned int model_cap_rating; 37 unsigned int model_perm_cap_rating; 38 unsigned int model_temp_cap_rating; 39 unsigned char typepct[5]; 40 unsigned char reserved_2[3]; 41 unsigned int ncr; 42 unsigned int npr; 43 unsigned int ntr; 44 }; 45 46 struct sysinfo_1_2_1 { 47 char reserved_0[80]; 48 char sequence[16]; 49 char plant[4]; 50 char reserved_1[2]; 51 unsigned short cpu_address; 52 }; 53 54 struct sysinfo_1_2_2 { 55 char format; 56 char reserved_0[1]; 57 unsigned short acc_offset; 58 char reserved_1[20]; 59 unsigned int nominal_cap; 60 unsigned int secondary_cap; 61 unsigned int capability; 62 unsigned short cpus_total; 63 unsigned short cpus_configured; 64 unsigned short cpus_standby; 65 unsigned short cpus_reserved; 66 unsigned short adjustment[0]; 67 }; 68 69 struct sysinfo_1_2_2_extension { 70 unsigned int alt_capability; 71 unsigned short alt_adjustment[0]; 72 }; 73 74 struct sysinfo_2_2_1 { 75 char reserved_0[80]; 76 char sequence[16]; 77 char plant[4]; 78 unsigned short cpu_id; 79 unsigned short cpu_address; 80 }; 81 82 struct sysinfo_2_2_2 { 83 char reserved_0[32]; 84 unsigned short lpar_number; 85 char reserved_1; 86 unsigned char characteristics; 87 unsigned short cpus_total; 88 unsigned short cpus_configured; 89 unsigned short cpus_standby; 90 unsigned short cpus_reserved; 91 char name[8]; 92 unsigned int caf; 93 char reserved_2[16]; 94 unsigned short cpus_dedicated; 95 unsigned short cpus_shared; 96 }; 97 98 #define LPAR_CHAR_DEDICATED (1 << 7) 99 #define LPAR_CHAR_SHARED (1 << 6) 100 #define LPAR_CHAR_LIMITED (1 << 5) 101 102 struct sysinfo_3_2_2 { 103 char reserved_0[31]; 104 unsigned char :4; 105 unsigned char count:4; 106 struct { 107 char reserved_0[4]; 108 unsigned short cpus_total; 109 unsigned short cpus_configured; 110 unsigned short cpus_standby; 111 unsigned short cpus_reserved; 112 char name[8]; 113 unsigned int caf; 114 char cpi[16]; 115 char reserved_1[24]; 116 117 } vm[8]; 118 char reserved_544[3552]; 119 }; 120 121 extern int topology_max_mnest; 122 123 #define TOPOLOGY_CPU_BITS 64 124 #define TOPOLOGY_NR_MAG 6 125 126 struct topology_cpu { 127 unsigned char reserved0[4]; 128 unsigned char :6; 129 unsigned char pp:2; 130 unsigned char reserved1; 131 unsigned short origin; 132 unsigned long mask[TOPOLOGY_CPU_BITS / BITS_PER_LONG]; 133 }; 134 135 struct topology_container { 136 unsigned char reserved[7]; 137 unsigned char id; 138 }; 139 140 union topology_entry { 141 unsigned char nl; 142 struct topology_cpu cpu; 143 struct topology_container container; 144 }; 145 146 struct sysinfo_15_1_x { 147 unsigned char reserved0[2]; 148 unsigned short length; 149 unsigned char mag[TOPOLOGY_NR_MAG]; 150 unsigned char reserved1; 151 unsigned char mnest; 152 unsigned char reserved2[4]; 153 union topology_entry tle[0]; 154 }; 155 156 int stsi(void *sysinfo, int fc, int sel1, int sel2); 157 158 /* 159 * Service level reporting interface. 160 */ 161 struct service_level { 162 struct list_head list; 163 void (*seq_print)(struct seq_file *, struct service_level *); 164 }; 165 166 int register_service_level(struct service_level *); 167 int unregister_service_level(struct service_level *); 168 169 #endif /* __ASM_S390_SYSINFO_H */ 170