Commit | Line | Data |
---|---|---|
aa24f7f0 CB |
1 | /* |
2 | * definition for store system information stsi | |
3 | * | |
a53c8fab | 4 | * Copyright IBM Corp. 2001, 2008 |
aa24f7f0 CB |
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 | ||
f291e172 HC |
14 | #ifndef __ASM_S390_SYSINFO_H |
15 | #define __ASM_S390_SYSINFO_H | |
16 | ||
c30f91b6 | 17 | #include <asm/bitsperlong.h> |
f3d0bd6c | 18 | #include <linux/uuid.h> |
c30f91b6 | 19 | |
aa24f7f0 | 20 | struct sysinfo_1_1_1 { |
25502f00 HC |
21 | unsigned char p:1; |
22 | unsigned char :6; | |
23 | unsigned char t:1; | |
24 | unsigned char :8; | |
7aca2eda HC |
25 | unsigned char ccr; |
26 | unsigned char cai; | |
27 | char reserved_0[28]; | |
aa24f7f0 CB |
28 | char manufacturer[16]; |
29 | char type[4]; | |
30 | char reserved_1[12]; | |
31 | char model_capacity[16]; | |
32 | char sequence[16]; | |
33 | char plant[4]; | |
34 | char model[16]; | |
cbce70e6 MS |
35 | char model_perm_cap[16]; |
36 | char model_temp_cap[16]; | |
25502f00 HC |
37 | unsigned int model_cap_rating; |
38 | unsigned int model_perm_cap_rating; | |
39 | unsigned int model_temp_cap_rating; | |
40 | unsigned char typepct[5]; | |
41 | unsigned char reserved_2[3]; | |
42 | unsigned int ncr; | |
43 | unsigned int npr; | |
44 | unsigned int ntr; | |
aa24f7f0 CB |
45 | }; |
46 | ||
47 | struct sysinfo_1_2_1 { | |
48 | char reserved_0[80]; | |
49 | char sequence[16]; | |
50 | char plant[4]; | |
51 | char reserved_1[2]; | |
52 | unsigned short cpu_address; | |
53 | }; | |
54 | ||
55 | struct sysinfo_1_2_2 { | |
56 | char format; | |
57 | char reserved_0[1]; | |
58 | unsigned short acc_offset; | |
25502f00 HC |
59 | char reserved_1[20]; |
60 | unsigned int nominal_cap; | |
61 | unsigned int secondary_cap; | |
aa24f7f0 CB |
62 | unsigned int capability; |
63 | unsigned short cpus_total; | |
64 | unsigned short cpus_configured; | |
65 | unsigned short cpus_standby; | |
66 | unsigned short cpus_reserved; | |
67 | unsigned short adjustment[0]; | |
68 | }; | |
69 | ||
70 | struct sysinfo_1_2_2_extension { | |
71 | unsigned int alt_capability; | |
72 | unsigned short alt_adjustment[0]; | |
73 | }; | |
74 | ||
75 | struct sysinfo_2_2_1 { | |
76 | char reserved_0[80]; | |
77 | char sequence[16]; | |
78 | char plant[4]; | |
79 | unsigned short cpu_id; | |
80 | unsigned short cpu_address; | |
81 | }; | |
82 | ||
83 | struct sysinfo_2_2_2 { | |
84 | char reserved_0[32]; | |
85 | unsigned short lpar_number; | |
86 | char reserved_1; | |
87 | unsigned char characteristics; | |
88 | unsigned short cpus_total; | |
89 | unsigned short cpus_configured; | |
90 | unsigned short cpus_standby; | |
91 | unsigned short cpus_reserved; | |
92 | char name[8]; | |
93 | unsigned int caf; | |
10ad34bc MS |
94 | char reserved_2[8]; |
95 | unsigned char mt_installed; | |
96 | unsigned char mt_general; | |
97 | unsigned char mt_psmtid; | |
98 | char reserved_3[5]; | |
aa24f7f0 CB |
99 | unsigned short cpus_dedicated; |
100 | unsigned short cpus_shared; | |
101 | }; | |
102 | ||
103 | #define LPAR_CHAR_DEDICATED (1 << 7) | |
104 | #define LPAR_CHAR_SHARED (1 << 6) | |
105 | #define LPAR_CHAR_LIMITED (1 << 5) | |
106 | ||
107 | struct sysinfo_3_2_2 { | |
108 | char reserved_0[31]; | |
8387c736 HC |
109 | unsigned char :4; |
110 | unsigned char count:4; | |
aa24f7f0 CB |
111 | struct { |
112 | char reserved_0[4]; | |
113 | unsigned short cpus_total; | |
114 | unsigned short cpus_configured; | |
115 | unsigned short cpus_standby; | |
116 | unsigned short cpus_reserved; | |
117 | char name[8]; | |
118 | unsigned int caf; | |
119 | char cpi[16]; | |
f3d0bd6c ET |
120 | char reserved_1[3]; |
121 | char ext_name_encoding; | |
122 | unsigned int reserved_2; | |
123 | uuid_be uuid; | |
aa24f7f0 | 124 | } vm[8]; |
f3d0bd6c ET |
125 | char reserved_3[1504]; |
126 | char ext_names[8][256]; | |
aa24f7f0 CB |
127 | }; |
128 | ||
fade4dc4 HC |
129 | extern int topology_max_mnest; |
130 | ||
10ad34bc | 131 | #define TOPOLOGY_CORE_BITS 64 |
c30f91b6 HC |
132 | #define TOPOLOGY_NR_MAG 6 |
133 | ||
10ad34bc MS |
134 | struct topology_core { |
135 | unsigned char nl; | |
136 | unsigned char reserved0[3]; | |
c30f91b6 HC |
137 | unsigned char :6; |
138 | unsigned char pp:2; | |
139 | unsigned char reserved1; | |
140 | unsigned short origin; | |
10ad34bc | 141 | unsigned long mask[TOPOLOGY_CORE_BITS / BITS_PER_LONG]; |
c30f91b6 HC |
142 | }; |
143 | ||
144 | struct topology_container { | |
10ad34bc MS |
145 | unsigned char nl; |
146 | unsigned char reserved[6]; | |
c30f91b6 HC |
147 | unsigned char id; |
148 | }; | |
149 | ||
150 | union topology_entry { | |
151 | unsigned char nl; | |
10ad34bc | 152 | struct topology_core cpu; |
c30f91b6 HC |
153 | struct topology_container container; |
154 | }; | |
155 | ||
156 | struct sysinfo_15_1_x { | |
157 | unsigned char reserved0[2]; | |
158 | unsigned short length; | |
159 | unsigned char mag[TOPOLOGY_NR_MAG]; | |
160 | unsigned char reserved1; | |
161 | unsigned char mnest; | |
162 | unsigned char reserved2[4]; | |
163 | union topology_entry tle[0]; | |
164 | }; | |
165 | ||
caf757c6 | 166 | int stsi(void *sysinfo, int fc, int sel1, int sel2); |
f291e172 | 167 | |
6bcac508 MS |
168 | /* |
169 | * Service level reporting interface. | |
170 | */ | |
171 | struct service_level { | |
172 | struct list_head list; | |
173 | void (*seq_print)(struct seq_file *, struct service_level *); | |
174 | }; | |
175 | ||
176 | int register_service_level(struct service_level *); | |
177 | int unregister_service_level(struct service_level *); | |
178 | ||
f291e172 | 179 | #endif /* __ASM_S390_SYSINFO_H */ |