Support For Creating / Removing UBI Blocks

Baruch Siach baruch at tkos.co.il
Tue Aug 2 18:18:11 UTC 2016


Hi Metin Kaya,

On Tue, Aug 02, 2016 at 10:38:48AM +0300, Metin Kaya wrote:
> Please see the attached patch. It handles your comments.

The patch looks good to me now.

Thanks for your persistence.

baruch

> --- 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"


-- 
     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 -


More information about the busybox mailing list