mce.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef _UAPI_ASM_X86_MCE_H
  2. #define _UAPI_ASM_X86_MCE_H
  3. #include <linux/types.h>
  4. #include <linux/ioctl.h>
  5. /* Fields are zero when not available */
  6. struct mce {
  7. __u64 status;
  8. __u64 misc;
  9. __u64 addr;
  10. __u64 mcgstatus;
  11. __u64 ip;
  12. __u64 tsc; /* cpu time stamp counter */
  13. __u64 time; /* wall time_t when error was detected */
  14. __u8 cpuvendor; /* cpu vendor as encoded in system.h */
  15. __u8 inject_flags; /* software inject flags */
  16. __u8 severity;
  17. __u8 usable_addr;
  18. __u32 cpuid; /* CPUID 1 EAX */
  19. __u8 cs; /* code segment */
  20. __u8 bank; /* machine check bank */
  21. __u8 cpu; /* cpu number; obsolete; use extcpu now */
  22. __u8 finished; /* entry is valid */
  23. __u32 extcpu; /* linux cpu number that detected the error */
  24. __u32 socketid; /* CPU socket ID */
  25. __u32 apicid; /* CPU initial apic ID */
  26. __u64 mcgcap; /* MCGCAP MSR: machine check capabilities of CPU */
  27. };
  28. #define MCE_GET_RECORD_LEN _IOR('M', 1, int)
  29. #define MCE_GET_LOG_LEN _IOR('M', 2, int)
  30. #define MCE_GETCLEAR_FLAGS _IOR('M', 3, int)
  31. #endif /* _UAPI_ASM_X86_MCE_H */