11 #include <nih/command.h>
12 #include <nih/option.h>
15 #include "bcacheadm-assemble.h"
17 NihOption opts_assemble[] = {
21 int cmd_assemble(NihCommand *command, char *const *args)
23 unsigned nr_devs = nr_args(args);
25 struct bch_ioctl_assemble *assemble =
26 alloca(sizeof(*assemble) + sizeof(__u64) * nr_devs);
28 memset(assemble, 0, sizeof(*assemble));
29 assemble->nr_devs = nr_devs;
31 for (unsigned i = 0; i < nr_devs; i++)
32 assemble->devs[i] = (__u64) args[i];
34 int ret = ioctl(bcachectl_open(), BCH_IOCTL_ASSEMBLE, assemble);
36 die("BCH_IOCTL_ASSEMBLE error: %s", strerror(errno));
41 NihOption opts_incremental[] = {
45 int cmd_incremental(NihCommand *command, char *const *args)
47 if (nr_args(args) != 1)
48 die("Please supply exactly one device");
50 struct bch_ioctl_incremental incremental = {
51 .dev = (__u64) args[0],
54 int ret = ioctl(bcachectl_open(), BCH_IOCTL_INCREMENTAL, &incremental);
56 die("BCH_IOCTL_INCREMENTAL error: %s", strerror(errno));