#ifndef _UAPI_ASM_X86_MCE_H#define _UAPI_ASM_X86_MCE_H#include <linux/types.h>#include <asm/ioctls.h>/* Fields are zero when not available */structmce{__u64status;__u64misc;__u64addr;__u64mcgstatus;__u64ip;__u64tsc;/* cpu time stamp counter */__u64time;/* wall time_t when error was detected */__u8cpuvendor;/* cpu vendor as encoded in system.h */__u8inject_flags;/* software inject flags */__u16pad;__u32cpuid;/* CPUID 1 EAX */__u8cs;/* code segment */__u8bank;/* machine check bank */__u8cpu;/* cpu number; obsolete; use extcpu now */__u8finished;/* entry is valid */__u32extcpu;/* linux cpu number that detected the error */__u32socketid;/* CPU socket ID */__u32apicid;/* CPU initial apic ID */__u64mcgcap;/* MCGCAP MSR: machine check capabilities of CPU */};#define MCE_GET_RECORD_LEN _IOR('M', 1, int)#define MCE_GET_LOG_LEN _IOR('M', 2, int)#define MCE_GETCLEAR_FLAGS _IOR('M', 3, int)#endif /* _UAPI_ASM_X86_MCE_H */