Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/x86/kernel/cpu/mcheck/mce-internal.h
10775 views
1
#include <linux/sysdev.h>
2
#include <asm/mce.h>
3
4
enum severity_level {
5
MCE_NO_SEVERITY,
6
MCE_KEEP_SEVERITY,
7
MCE_SOME_SEVERITY,
8
MCE_AO_SEVERITY,
9
MCE_UC_SEVERITY,
10
MCE_AR_SEVERITY,
11
MCE_PANIC_SEVERITY,
12
};
13
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
24
int mce_severity(struct mce *a, int tolerant, char **msg);
25
struct dentry *mce_get_debugfs_dir(void);
26
27
extern int mce_ser;
28
29
extern struct mce_bank *mce_banks;
30
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
54
55