Support For Creating / Removing UBI Blocks
Metin Kaya
kayameti at gmail.com
Mon Jul 25 06:53:55 UTC 2016
Hi all,
I have added support for creating/removing UBI blocks to the ubi_tools.
Please see the attached patch. It is based on busybox-1.25.0.
Any feedback would be appreciated.
Regards.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/busybox/attachments/20160725/12655c07/attachment.html>
-------------- next part --------------
--- ubi_tools.c.orig 2016-05-26 20:42:44.000000000 +0300
+++ ubi_tools.c 2016-07-25 09:42:15.637465194 +0300
@@ -17,6 +17,20 @@
//config: help
//config: Detach MTD device from an UBI device.
//config:
+//config:config UBIMKBLOCK
+//config: bool "ubimkblock"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Create a block device on top of a UBI volume.
+//config:
+//config:config UBIRMBLOCK
+//config: bool "ubirmblock"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Remove a block device from a UBI volume.
+//config:
//config:config UBIMKVOL
//config: bool "ubimkvol"
//config: default y
@@ -47,6 +61,8 @@
//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_UBIMKBLOCK(APPLET_ODDNAME(ubimkblock, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubimkblock))
+//applet:IF_UBIRMBLOCK(APPLET_ODDNAME(ubirmblock, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubirmblock))
//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 +70,8 @@
//kbuild:lib-$(CONFIG_UBIATTACH) += ubi_tools.o
//kbuild:lib-$(CONFIG_UBIDETACH) += ubi_tools.o
+//kbuild:lib-$(CONFIG_UBIMKBLOCK) += ubi_tools.o
+//kbuild:lib-$(CONFIG_UBIRMBLOCK) += 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 +86,8 @@
#define do_attach (ENABLE_UBIATTACH && applet_name[3] == 'a')
#define do_detach (ENABLE_UBIDETACH && applet_name[3] == 'd')
+#define do_mkblock (ENABLE_UBIMKBLOCK && applet_name[4] == 'k')
+#define do_rmblock (ENABLE_UBIRMBLOCK && applet_name[3] == 'r')
#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')
@@ -194,6 +214,21 @@
xioctl(fd, UBI_IOCDET, &dev_num);
} else
+//usage:#define ubimkblock_trivial_usage
+//usage: "UBI_DEVICE"
+//usage:#define ubimkblock_full_usage "\n\n"
+//usage: "Create a block device on top of a UBI volume\n"
+ if (do_mkblock) {
+ xioctl(fd, UBI_IOCVOLCRBLK, NULL);
+ } else
+//usage:#define ubirmblock_trivial_usage
+//usage: "UBI_DEVICE"
+//usage:#define ubirmblock_full_usage "\n\n"
+//usage: "Remove a block device from a UBI volume\n"
+//usage: "\n UBI_DEVICE"
+ if (do_rmblock) {
+ 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