summaryrefslogtreecommitdiff
path: root/tools/intel_l3_parity.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/intel_l3_parity.h')
-rw-r--r--tools/intel_l3_parity.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/tools/intel_l3_parity.h b/tools/intel_l3_parity.h
new file mode 100644
index 00000000..65697c4f
--- /dev/null
+++ b/tools/intel_l3_parity.h
@@ -0,0 +1,31 @@
+#ifndef INTEL_L3_PARITY_H_
+#define INTEL_L3_PARITY_H_
+
+#include <stdint.h>
+#include <stdbool.h>
+
+struct l3_parity {
+ struct udev *udev;
+ struct udev_monitor *uevent_monitor;
+ int fd;
+ fd_set fdset;
+};
+
+struct l3_location {
+ uint8_t slice;
+ uint16_t row;
+ uint8_t bank;
+ uint8_t subbank;
+};
+
+#if HAVE_UDEV
+int l3_uevent_setup(struct l3_parity *par);
+/* Listens (blocks) for an l3 parity event. Returns the location of the error. */
+int l3_listen(struct l3_parity *par, bool daemon, struct l3_location *loc);
+#define l3_uevent_teardown(par) {}
+#else
+#define l3_uevent_setup(par, daemon, loc) -1
+#define l3_listen(par) -1
+#endif
+
+#endif