Support For Creating / Removing UBI Blocks

Metin Kaya kayameti at gmail.com
Tue Aug 2 07:38:48 UTC 2016


Please see the attached patch. It handles your comments.
Thanks.

On Mon, Aug 1, 2016 at 8:31 PM, Baruch Siach <baruch at tkos.co.il> wrote:

> Hi Metin Kaya,
>
> On Mon, Aug 01, 2016 at 01:54:38PM +0300, Metin Kaya wrote:
> > The attached patch supports -c and -r command line arguments like
> ubiblock
> > of mtd-utils.
>
> > @@ -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",
>
> This part is not needed.
>
> >                               &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"
>
> Following the usual convention it should be: "-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"
>
> 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/20160802/c6126989/attachment.html>
-------------- next part --------------
--- ubi_tools.c.orig	2016-05-26 20:42:44.000000000 +0300
+++ ubi_tools.c	2016-08-02 10:32:11.624956060 +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,6 +143,8 @@
 #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:",
@@ -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