summaryrefslogtreecommitdiff
path: root/tools/intel_l3_parity.h
blob: 759c4f4b63286b25b64f8f3b3e0fef56a1d6c4e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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;
};

#ifdef 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