~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/s390/include/asm/sysinfo.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 /*
  3  * definition for store system information stsi
  4  *
  5  * Copyright IBM Corp. 2001, 2008
  6  *
  7  *    Author(s): Ulrich Weigand <weigand@de.ibm.com>
  8  *               Christian Borntraeger <borntraeger@de.ibm.com>
  9  */
 10 
 11 #ifndef __ASM_S390_SYSINFO_H
 12 #define __ASM_S390_SYSINFO_H
 13 
 14 #include <asm/bitsperlong.h>
 15 #include <linux/uuid.h>
 16 
 17 struct sysinfo_1_1_1 {
 18         unsigned char p:1;
 19         unsigned char :6;
 20         unsigned char t:1;
 21         unsigned char :8;
 22         unsigned char ccr;
 23         unsigned char cai;
 24         char reserved_0[20];
 25         unsigned long lic;
 26         char manufacturer[16];
 27         char type[4];
 28         char reserved_1[12];
 29         char model_capacity[16];
 30         char sequence[16];
 31         char plant[4];
 32         char model[16];
 33         char model_perm_cap[16];
 34         char model_temp_cap[16];
 35         unsigned int model_cap_rating;
 36         unsigned int model_perm_cap_rating;
 37         unsigned int model_temp_cap_rating;
 38         unsigned char typepct[5];
 39         unsigned char reserved_2[3];
 40         unsigned int ncr;
 41         unsigned int npr;
 42         unsigned int ntr;
 43         char reserved_3[4];
 44         char model_var_cap[16];
 45         unsigned int model_var_cap_rating;
 46         unsigned int nvr;
 47 };
 48 
 49 struct sysinfo_1_2_1 {
 50         char reserved_0[80];
 51         char sequence[16];
 52         char plant[4];
 53         char reserved_1[2];
 54         unsigned short cpu_address;
 55 };
 56 
 57 struct sysinfo_1_2_2 {
 58         char format;
 59         char reserved_0[1];
 60         unsigned short acc_offset;
 61         unsigned char mt_installed :1;
 62         unsigned char :2;
 63         unsigned char mt_stid :5;
 64         unsigned char :3;
 65         unsigned char mt_gtid :5;
 66         char reserved_1[18];
 67         unsigned int nominal_cap;
 68         unsigned int secondary_cap;
 69         unsigned int capability;
 70         unsigned short cpus_total;
 71         unsigned short cpus_configured;
 72         unsigned short cpus_standby;
 73         unsigned short cpus_reserved;
 74         unsigned short adjustment[];
 75 };
 76 
 77 struct sysinfo_1_2_2_extension {
 78         unsigned int alt_capability;
 79         unsigned short alt_adjustment[];
 80 };
 81 
 82 struct sysinfo_2_2_1 {
 83         char reserved_0[80];
 84         char sequence[16];
 85         char plant[4];
 86         unsigned short cpu_id;
 87         unsigned short cpu_address;
 88 };
 89 
 90 struct sysinfo_2_2_2 {
 91         char reserved_0[32];
 92         unsigned short lpar_number;
 93         char reserved_1;
 94         unsigned char characteristics;
 95         unsigned short cpus_total;
 96         unsigned short cpus_configured;
 97         unsigned short cpus_standby;
 98         unsigned short cpus_reserved;
 99         char name[8];
100         unsigned int caf;
101         char reserved_2[8];
102         unsigned char mt_installed :1;
103         unsigned char :2;
104         unsigned char mt_stid :5;
105         unsigned char :3;
106         unsigned char mt_gtid :5;
107         unsigned char :3;
108         unsigned char mt_psmtid :5;
109         char reserved_3[5];
110         unsigned short cpus_dedicated;
111         unsigned short cpus_shared;
112         char reserved_4[3];
113         unsigned char vsne;
114         uuid_t uuid;
115         char reserved_5[160];
116         char ext_name[256];
117 };
118 
119 #define LPAR_CHAR_DEDICATED     (1 << 7)
120 #define LPAR_CHAR_SHARED        (1 << 6)
121 #define LPAR_CHAR_LIMITED       (1 << 5)
122 
123 struct sysinfo_3_2_2 {
124         char reserved_0[31];
125         unsigned char :4;
126         unsigned char count:4;
127         struct {
128                 char reserved_0[4];
129                 unsigned short cpus_total;
130                 unsigned short cpus_configured;
131                 unsigned short cpus_standby;
132                 unsigned short cpus_reserved;
133                 char name[8];
134                 unsigned int caf;
135                 char cpi[16];
136                 char reserved_1[3];
137                 unsigned char evmne;
138                 unsigned int reserved_2;
139                 uuid_t uuid;
140         } vm[8];
141         char reserved_3[1504];
142         char ext_names[8][256];
143 };
144 
145 extern int topology_max_mnest;
146 
147 /*
148  * Returns the maximum nesting level supported by the cpu topology code.
149  * The current maximum level is 4 which is the drawer level.
150  */
151 static inline unsigned char topology_mnest_limit(void)
152 {
153         return min(topology_max_mnest, 4);
154 }
155 
156 #define TOPOLOGY_NR_MAG         6
157 
158 struct topology_core {
159         unsigned char nl;
160         unsigned char reserved0[3];
161         unsigned char :5;
162         unsigned char d:1;
163         unsigned char pp:2;
164         unsigned char reserved1;
165         unsigned short origin;
166         unsigned long mask;
167 };
168 
169 struct topology_container {
170         unsigned char nl;
171         unsigned char reserved[6];
172         unsigned char id;
173 };
174 
175 union topology_entry {
176         unsigned char nl;
177         struct topology_core cpu;
178         struct topology_container container;
179 };
180 
181 struct sysinfo_15_1_x {
182         unsigned char reserved0[2];
183         unsigned short length;
184         unsigned char mag[TOPOLOGY_NR_MAG];
185         unsigned char reserved1;
186         unsigned char mnest;
187         unsigned char reserved2[4];
188         union topology_entry tle[];
189 };
190 
191 int stsi(void *sysinfo, int fc, int sel1, int sel2);
192 
193 /*
194  * Service level reporting interface.
195  */
196 struct service_level {
197         struct list_head list;
198         void (*seq_print)(struct seq_file *, struct service_level *);
199 };
200 
201 int register_service_level(struct service_level *);
202 int unregister_service_level(struct service_level *);
203 
204 int sthyi_fill(void *dst, u64 *rc);
205 #endif /* __ASM_S390_SYSINFO_H */
206 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php