Commit | Line | Data |
---|---|---|
cebe1820 | 1 | #include <linux/sysdev.h> |
817f32d0 AK |
2 | #include <asm/mce.h> |
3 | ||
4 | enum severity_level { | |
5 | MCE_NO_SEVERITY, | |
ed7290d0 | 6 | MCE_KEEP_SEVERITY, |
817f32d0 | 7 | MCE_SOME_SEVERITY, |
ed7290d0 | 8 | MCE_AO_SEVERITY, |
817f32d0 | 9 | MCE_UC_SEVERITY, |
ed7290d0 | 10 | MCE_AR_SEVERITY, |
817f32d0 AK |
11 | MCE_PANIC_SEVERITY, |
12 | }; | |
13 | ||
cebe1820 AK |
14 | #define ATTR_LEN 16 |
15 | ||
16 | /* One object for each MCE bank, shared by all CPUs */ | |
17 | struct mce_bank { | |
18 | u64 ctl; /* subevents to enable */ | |
19 | unsigned char init; /* initialise bank? */ | |
20 | struct sysdev_attribute attr; /* sysdev attribute */ | |
21 | char attrname[ATTR_LEN]; /* attribute name */ | |
22 | }; | |
23 | ||
817f32d0 | 24 | int mce_severity(struct mce *a, int tolerant, char **msg); |
5be9ed25 | 25 | struct dentry *mce_get_debugfs_dir(void); |
ed7290d0 AK |
26 | |
27 | extern int mce_ser; | |
cebe1820 AK |
28 | |
29 | extern struct mce_bank *mce_banks; | |
30 | ||
482908b4 HY |
31 | #ifdef CONFIG_ACPI_APEI |
32 | int apei_write_mce(struct mce *m); | |
33 | ssize_t apei_read_mce(struct mce *m, u64 *record_id); | |
34 | int apei_check_mce(void); | |
35 | int apei_clear_mce(u64 record_id); | |
36 | #else | |
37 | static inline int apei_write_mce(struct mce *m) | |
38 | { | |
39 | return -EINVAL; | |
40 | } | |
41 | static inline ssize_t apei_read_mce(struct mce *m, u64 *record_id) | |
42 | { | |
43 | return 0; | |
44 | } | |
45 | static inline int apei_check_mce(void) | |
46 | { | |
47 | return 0; | |
48 | } | |
49 | static inline int apei_clear_mce(u64 record_id) | |
50 | { | |
51 | return -EINVAL; | |
52 | } | |
53 | #endif |