.. | .. |
---|
183 | 183 | DEFINE_GUEST_HANDLE_STRUCT(mc_info); |
---|
184 | 184 | |
---|
185 | 185 | #define __MC_MSR_ARRAYSIZE 8 |
---|
186 | | -#define __MC_MSR_MCGCAP 0 |
---|
187 | 186 | #define __MC_NMSRS 1 |
---|
188 | 187 | #define MC_NCAPS 7 |
---|
189 | 188 | struct mcinfo_logical_cpu { |
---|
.. | .. |
---|
332 | 331 | }; |
---|
333 | 332 | DEFINE_GUEST_HANDLE_STRUCT(xen_mc); |
---|
334 | 333 | |
---|
335 | | -/* Fields are zero when not available */ |
---|
| 334 | +/* |
---|
| 335 | + * Fields are zero when not available. Also, this struct is shared with |
---|
| 336 | + * userspace mcelog and thus must keep existing fields at current offsets. |
---|
| 337 | + * Only add new fields to the end of the structure |
---|
| 338 | + */ |
---|
336 | 339 | struct xen_mce { |
---|
337 | 340 | __u64 status; |
---|
338 | 341 | __u64 misc; |
---|
.. | .. |
---|
353 | 356 | __u32 socketid; /* CPU socket ID */ |
---|
354 | 357 | __u32 apicid; /* CPU initial apic ID */ |
---|
355 | 358 | __u64 mcgcap; /* MCGCAP MSR: machine check capabilities of CPU */ |
---|
| 359 | + __u64 synd; /* MCA_SYND MSR: only valid on SMCA systems */ |
---|
| 360 | + __u64 ipid; /* MCA_IPID MSR: only valid on SMCA systems */ |
---|
| 361 | + __u64 ppin; /* Protected Processor Inventory Number */ |
---|
356 | 362 | }; |
---|
357 | 363 | |
---|
358 | 364 | /* |
---|