Support For Creating / Removing UBI Blocks
Metin Kaya
kayameti at gmail.com
Mon Aug 1 10:54:38 UTC 2016
Hi Baruch Siach,
The attached patch supports -c and -r command line arguments like ubiblock
of mtd-utils.
Regards.
On Mon, Jul 25, 2016 at 11:07 AM, Baruch Siach <baruch at tkos.co.il> wrote:
> Hi Metin Kaya,
>
> On Mon, Jul 25, 2016 at 10:56:41AM +0300, Metin Kaya wrote:
> > do_rmvol also has the same problem.
> > If I use mkblock and rmblock, then they can't be unique.
> > Hence, I renamed ubimkblock as ubicrblock and ubirmblock as ubidlblock.
> > Please see the attached patch.
>
> Now I see that upstream (mtd-utils) name for this utility is just
> 'ubiblock',
> with -c and -r command line parameters for create and remove, respectively.
> Busybox tries to match upstream command line interface as much as
> possible, so
> please use the same name and parameters. As an added bonus 'ubiblock'
> uniquely
> identifies with
>
> applet_name[3] == 'b'.
>
> Thanks,
> baruch
>
> --
> http://baruch.siach.name/blog/ ~. .~ Tk Open
> Systems
> =}------------------------------------------------ooO--U--Ooo------------{=
> - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/busybox/attachments/20160801/126aa62b/attachment.html>
-------------- next part --------------
--- ubi_tools.c.orig 2016-05-26 20:42:44.000000000 +0300
+++ ubi_tools.c 2016-08-01 13:50:20.444077944 +0300
@@ -17,6 +17,13 @@
//config: help
//config: Detach MTD device from an UBI device.
//config:
+//config:config UBIBLOCK
+//config: bool "ubiblock"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Create or remove a block device on top of an UBI volume.
+//config:
//config:config UBIMKVOL
//config: bool "ubimkvol"
//config: default y
@@ -47,6 +54,7 @@
//applet:IF_UBIATTACH(APPLET_ODDNAME(ubiattach, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubiattach))
//applet:IF_UBIDETACH(APPLET_ODDNAME(ubidetach, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubidetach))
+//applet:IF_UBIBLOCK(APPLET_ODDNAME(ubiblock, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubiblock))
//applet:IF_UBIMKVOL(APPLET_ODDNAME(ubimkvol, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubimkvol))
//applet:IF_UBIRMVOL(APPLET_ODDNAME(ubirmvol, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubirmvol))
//applet:IF_UBIRSVOL(APPLET_ODDNAME(ubirsvol, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubirsvol))
@@ -54,6 +62,7 @@
//kbuild:lib-$(CONFIG_UBIATTACH) += ubi_tools.o
//kbuild:lib-$(CONFIG_UBIDETACH) += ubi_tools.o
+//kbuild:lib-$(CONFIG_UBIBLOCK) += ubi_tools.o
//kbuild:lib-$(CONFIG_UBIMKVOL) += ubi_tools.o
//kbuild:lib-$(CONFIG_UBIRMVOL) += ubi_tools.o
//kbuild:lib-$(CONFIG_UBIRSVOL) += ubi_tools.o
@@ -68,6 +77,7 @@
#define do_attach (ENABLE_UBIATTACH && applet_name[3] == 'a')
#define do_detach (ENABLE_UBIDETACH && applet_name[3] == 'd')
+#define do_block (ENABLE_UBIBLOCK && applet_name[3] == 'b')
#define do_mkvol (ENABLE_UBIMKVOL && applet_name[3] == 'm')
#define do_rmvol (ENABLE_UBIRMVOL && applet_name[4] == 'm')
#define do_rsvol (ENABLE_UBIRSVOL && applet_name[4] == 's')
@@ -133,9 +143,11 @@
#define OPTION_s (1 << 4)
#define OPTION_a (1 << 5)
#define OPTION_t (1 << 6)
+#define OPTION_c (1 << 7)
+#define OPTION_r (1 << 8)
if (do_mkvol) {
opt_complementary = "-1:d+:n+:a+:O+";
- opts = getopt32(argv, "md:n:N:s:a:t:O:",
+ opts = getopt32(argv, "md:n:N:s:a:t:O:cr",
&dev_num, &vol_id,
&vol_name, &size_bytes_str, &alignment, &type,
&vid_hdr_offset
@@ -147,7 +159,7 @@
opts *= OPTION_s;
} else {
opt_complementary = "-1:m+:d+:n+:a+";
- opts = getopt32(argv, "m:d:n:N:s:a:t:",
+ opts = getopt32(argv, "m:d:n:N:s:a:t:cr",
&mtd_num, &dev_num, &vol_id,
&vol_name, &size_bytes_str, &alignment, &type
);
@@ -194,6 +206,19 @@
xioctl(fd, UBI_IOCDET, &dev_num);
} else
+//usage:#define ubiblock_trivial_usage
+//usage: "-c / -r UBI_CTRL_DEV"
+//usage:#define ubiblock_full_usage "\n\n"
+//usage: "Create or remove an MTD block\n"
+//usage: "\n -c UBI_CTRL_DEV create an MTD block"
+//usage: "\n -r UBI_CTRL_DEV remove an MTD block"
+ if (do_block) {
+ if (opts & OPTION_c)
+ xioctl(fd, UBI_IOCVOLCRBLK, NULL);
+ else if (opts & OPTION_r)
+ xioctl(fd, UBI_IOCVOLRMBLK, NULL);
+ } else
+
//usage:#define ubimkvol_trivial_usage
//usage: "-N NAME [-s SIZE | -m] UBI_DEVICE"
//usage:#define ubimkvol_full_usage "\n\n"
More information about the busybox
mailing list