1 /* vi: set sw=4 ts=4: */
3 * Mini losetup implementation for busybox
5 * Copyright (C) 2002 Matt Kraai.
7 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
14 int losetup_main(int argc
, char **argv
) MAIN_EXTERNALLY_VISIBLE
;
15 int losetup_main(int argc
, char **argv
)
17 char dev
[] = LOOP_NAME
"0";
21 unsigned long long offset
= 0;
23 /* max 2 args, all opts are mutially exclusive */
24 opt_complementary
= "?2:d--of:o--df:f-do";
25 opt
= getopt32(argv
, "do:f", &opt_o
);
30 offset
= xatoull(opt_o
);
32 if (opt
== 0x4 && argc
) // -f does not take any argument
35 if (opt
== 0x1) { // -d
36 /* detach takes exactly one argument */
39 if (del_loop(argv
[0]))
40 bb_perror_nomsg_and_die();
46 if (set_loop(&argv
[0], argv
[1], offset
) < 0)
47 bb_perror_nomsg_and_die();
53 s
= query_loop(argv
[0]);
55 bb_perror_nomsg_and_die();
56 printf("%s: %s\n", argv
[0], s
);
57 if (ENABLE_FEATURE_CLEAN_UP
)
62 /* -o, -f or no option */
72 printf("%s: %s\n", dev
, s
);
73 if (ENABLE_FEATURE_CLEAN_UP
)
77 if (++dev
[sizeof(dev
) - 2] > '9')