]> git.sesse.net Git - bcachefs-tools-debian/blob - bcache-ioctl.h
d02377ed4c0af8198d6bd507c562b848ede01704
[bcachefs-tools-debian] / bcache-ioctl.h
1 #ifndef _BCACHE_TOOLS_IOCTL_H
2 #define _BCACHE_TOOLS_IOCTL_H
3
4 #include <linux/uuid.h>
5
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9
10 /* global control dev: */
11
12 #define BCH_FORCE_IF_DATA_MISSING       (1 << 0)
13 #define BCH_FORCE_IF_METADATA_MISSING   (1 << 1)
14
15 #define BCH_IOCTL_ASSEMBLE      _IOW('r', 1, struct bch_ioctl_assemble)
16 #define BCH_IOCTL_INCREMENTAL   _IOW('r', 1, struct bch_ioctl_incremental)
17
18 /* cache set control dev: */
19
20 #define BCH_IOCTL_RUN           _IO('r', 2)
21 #define BCH_IOCTL_STOP          _IO('r', 3)
22
23 #define BCH_IOCTL_DISK_ADD      _IOW('r', 4, struct bch_ioctl_disk_add)
24 #define BCH_IOCTL_DISK_REMOVE   _IOW('r', 5, struct bch_ioctl_disk_remove)
25 #define BCH_IOCTL_DISK_FAIL     _IOW('r', 6, struct bch_ioctl_disk_fail)
26
27 #define BCH_IOCTL_DISK_REMOVE_BY_UUID                                   \
28         _IOW('r', 5, struct bch_ioctl_disk_remove_by_uuid)
29 #define BCH_IOCTL_DISK_FAIL_BY_UUID                                     \
30         _IOW('r', 6, struct bch_ioctl_disk_fail_by_uuid)
31
32 struct bch_ioctl_assemble {
33         __u32                   flags;
34         __u32                   nr_devs;
35         __u64                   pad;
36         __u64                   devs[];
37 };
38
39 struct bch_ioctl_incremental {
40         __u32                   flags;
41         __u64                   pad;
42         __u64                   dev;
43 };
44
45 struct bch_ioctl_disk_add {
46         __u32                   flags;
47         __u32                   pad;
48         __u64                   dev;
49 };
50
51 struct bch_ioctl_disk_remove {
52         __u32                   flags;
53         __u32                   pad;
54         __u64                   dev;
55 };
56
57 struct bch_ioctl_disk_fail {
58         __u32                   flags;
59         __u32                   pad;
60         __u64                   dev;
61 };
62
63 struct bch_ioctl_disk_remove_by_uuid {
64         __u32                   flags;
65         __u32                   pad;
66         uuid_le                 dev;
67 };
68
69 struct bch_ioctl_disk_fail_by_uuid {
70         __u32                   flags;
71         __u32                   pad;
72         uuid_le                 dev;
73 };
74
75 #ifdef __cplusplus
76 }
77 #endif
78
79 #endif /* _BCACHE_TOOLS_IOCTL_H */