Commit | Line | Data |
---|---|---|
79a43187 JA |
1 | #ifndef BINJECT_H |
2 | #define BINJECT_H | |
3 | ||
4 | #include <linux/types.h> | |
5 | ||
6 | #define BINJECT_MAGIC 0x89 | |
7 | #define BINJECT_VER 0x01 | |
8 | #define BINJECT_MAGIC_SHIFT 8 | |
9 | #define BINJECT_VER_MASK ((1 << BINJECT_MAGIC_SHIFT) - 1) | |
10 | ||
11 | struct b_user_cmd { | |
12 | __u16 magic; /* INPUT */ | |
13 | __u16 type; /* INPUT */ | |
14 | __u32 error; /* OUTPUT */ | |
15 | __u32 flags; /* INPUT */ | |
16 | __u32 len; /* INPUT */ | |
17 | __u64 offset; /* INPUT */ | |
18 | __u64 buf; /* INPUT */ | |
19 | __u64 usr_ptr; /* PASSED THROUGH */ | |
20 | __u64 nsec; /* OUTPUT */ | |
21 | }; | |
22 | ||
23 | struct b_ioctl_cmd { | |
24 | int fd; | |
25 | int minor; | |
26 | }; | |
27 | ||
28 | enum { | |
29 | B_TYPE_READ = 0, | |
30 | B_TYPE_WRITE, | |
31 | B_TYPE_DISCARD, | |
32 | B_TYPE_READVOID, | |
33 | B_TYPE_WRITEZERO, | |
d01c404b JA |
34 | B_TYPE_READBARRIER, |
35 | B_TYPE_WRITEBARRIER, | |
79a43187 JA |
36 | B_TYPE_NR |
37 | }; | |
38 | ||
39 | enum { | |
40 | __B_FLAG_SYNC = 0, | |
41 | __B_FLAG_UNPLUG, | |
42 | __B_FLAG_NOIDLE, | |
43 | __B_FLAG_BARRIER, | |
44 | __B_FLAG_META, | |
45 | __B_FLAG_RAHEAD, | |
46 | __B_FLAG_FAILFAST_DEV, | |
47 | __B_FLAG_FAILFAST_TRANSPORT, | |
48 | __B_FLAG_FAILFAST_DRIVER, | |
49 | __B_FLAG_NR, | |
50 | ||
51 | B_FLAG_SYNC = 1 << __B_FLAG_SYNC, | |
52 | B_FLAG_UNPLUG = 1 << __B_FLAG_UNPLUG, | |
53 | B_FLAG_NOIDLE = 1 << __B_FLAG_NOIDLE, | |
54 | B_FLAG_BARRIER = 1 << __B_FLAG_BARRIER, | |
55 | B_FLAG_META = 1 << __B_FLAG_META, | |
56 | B_FLAG_RAHEAD = 1 << __B_FLAG_RAHEAD, | |
57 | B_FLAG_FAILFAST_DEV = 1 << __B_FLAG_FAILFAST_DEV, | |
58 | B_FLAG_FAILFAST_TRANSPORT = 1 << __B_FLAG_FAILFAST_TRANSPORT, | |
59 | B_FLAG_FAILFAST_DRIVER = 1 << __B_FLAG_FAILFAST_DRIVER, | |
60 | }; | |
61 | ||
62 | static inline void binject_buc_set_magic(struct b_user_cmd *buc) | |
63 | { | |
64 | buc->magic = (BINJECT_MAGIC << BINJECT_MAGIC_SHIFT) | BINJECT_VER; | |
65 | } | |
66 | ||
67 | #endif |