Go to the documentation of this file.
30 #ifndef __XEN_PUBLIC_ARCH_X86_MCA_H__
31 #define __XEN_PUBLIC_ARCH_X86_MCA_H__
34 #define __HYPERVISOR_mca __HYPERVISOR_arch_0
36 #define XEN_MCA_INTERFACE_VERSION 0x01ecc003
39 #define XEN_MC_NONURGENT 0x1
41 #define XEN_MC_URGENT 0x2
43 #define XEN_MC_ACK 0x4
48 #define XEN_MC_FETCHFAILED 0x1
50 #define XEN_MC_NODATA 0x2
54 #define VIRQ_MCA VIRQ_ARCH_0
62 #define MC_TYPE_GLOBAL 0
63 #define MC_TYPE_BANK 1
64 #define MC_TYPE_EXTENDED 2
65 #define MC_TYPE_RECOVERY 3
72 #define MC_FLAG_CORRECTABLE (1 << 0)
73 #define MC_FLAG_UNCORRECTABLE (1 << 1)
74 #define MC_FLAG_RECOVERABLE (1 << 2)
75 #define MC_FLAG_POLLED (1 << 3)
76 #define MC_FLAG_RESET (1 << 4)
77 #define MC_FLAG_CMCI (1 << 5)
78 #define MC_FLAG_MCE (1 << 6)
127 #define REC_ACTION_RECOVERED (0x1 << 0)
129 #define REC_ACTION_NONE (0x1 << 1)
131 #define REC_ACTION_NEED_RESET (0x1 << 2)
139 #define MC_ACTION_PAGE_OFFLINE (0x1 << 0)
141 #define MC_ACTION_CPU_OFFLINE (0x1 << 1)
143 #define MC_ACTION_CACHE_SHRINK (0x1 << 2)
162 #define MAX_UNION_SIZE 16
176 #define MCINFO_MAXSIZE 768
185 #define __MC_MSR_ARRAYSIZE 8
186 #define __MC_MSR_MCGCAP 0
218 #define x86_mcinfo_nentries(_mi) \
224 #define x86_mcinfo_first(_mi) \
225 ((struct mcinfo_common *)(_mi)->mi_data)
230 #define x86_mcinfo_next(_mic) \
231 ((struct mcinfo_common *)((uint8_t *)(_mic) + (_mic)->size))
249 if (mic->
type == type) {
256 *ret = found ? mic :
NULL;
262 #define XEN_MC_fetch 1
283 #define XEN_MC_notifydomain 2
294 #define XEN_MC_physcpuinfo 3
303 #define XEN_MC_msrinject 4
304 #define MC_MSRINJ_MAXMSRS 8
315 #define MC_MSRINJ_F_INTERPOSE 0x1
317 #define XEN_MC_mceinject 5
326 struct xen_mc_fetch mc_fetch;
365 #define XEN_MCE_LOG_LEN 32
376 #define XEN_MCE_OVERFLOW 0
378 #define XEN_MCE_LOG_SIGNATURE "MACHINECHECK"
380 #define MCE_GET_RECORD_LEN _IOR('M', 1, int)
381 #define MCE_GET_LOG_LEN _IOR('M', 2, int)
382 #define MCE_GETCLEAR_FLAGS _IOR('M', 3, int)