[PATCH 13/16] add generic uncompress command

Sascha Hauer s.hauer at pengutronix.de
Mon Nov 28 17:10:06 EST 2011


Using the new uncompress function we can now implement a command which
can uncompress all known compression types. This supplements the unlzo
command.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 commands/Kconfig                   |   10 +++++-----
 commands/Makefile                  |    2 +-
 commands/{unlzo.c => uncompress.c} |   23 ++++++++++++-----------
 3 files changed, 18 insertions(+), 17 deletions(-)
 rename commands/{unlzo.c => uncompress.c} (73%)

diff --git a/commands/Kconfig b/commands/Kconfig
index e5c0fb5..890be78 100644
--- a/commands/Kconfig
+++ b/commands/Kconfig
@@ -402,13 +402,13 @@ config CMD_GPIO
 	  include gpio_set_value, gpio_get_value, gpio_direction_input and
 	  gpio_direction_output commands to control gpios.
 
-config CMD_UNLZO
+config CMD_UNCOMPRESS
 	bool
-	select LZO_DECOMPRESS
-	prompt "unlzo"
+	prompt "uncompress"
 	help
-	  Say yes here to get the unlzo command. lzo is a fast compression
-	  algorithm by Markus Franz Xaver Johannes Oberhumer.
+	  Say yes here to get the uncompress command. uncompress handles
+	  lzo, gzip and bzip2 compressed files depending on the compiled
+	  in compression libraries
 
 config CMD_I2C
 	bool
diff --git a/commands/Makefile b/commands/Makefile
index 5c51916..0aae666 100644
--- a/commands/Makefile
+++ b/commands/Makefile
@@ -47,7 +47,7 @@ obj-$(CONFIG_CMD_INSMOD)	+= insmod.o
 obj-$(CONFIG_CMD_BMP)		+= bmp.o
 obj-$(CONFIG_USB_GADGET_DFU)	+= dfu.o
 obj-$(CONFIG_CMD_GPIO)		+= gpio.o
-obj-$(CONFIG_CMD_UNLZO)		+= unlzo.o
+obj-$(CONFIG_CMD_UNCOMPRESS)	+= uncompress.o
 obj-$(CONFIG_CMD_I2C)		+= i2c.o
 obj-$(CONFIG_CMD_UBI)		+= ubi.o
 obj-$(CONFIG_CMD_MENU)		+= menu.o
diff --git a/commands/unlzo.c b/commands/uncompress.c
similarity index 73%
rename from commands/unlzo.c
rename to commands/uncompress.c
index 0b6dd4b..fff6227 100644
--- a/commands/unlzo.c
+++ b/commands/uncompress.c
@@ -1,5 +1,5 @@
 /*
- * unlzo.c - uncompress a lzo compressed file
+ * uncompress.c - uncompress a lzo compressed file
  *
  * Copyright (c) 2010 Sascha Hauer <s.hauer at pengutronix.de>, Pengutronix
  *
@@ -25,11 +25,11 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <fs.h>
-#include <lzo.h>
+#include <uncompress.h>
 
-static int do_unlzo(struct command *cmdtp, int argc, char *argv[])
+static int do_uncompress(struct command *cmdtp, int argc, char *argv[])
 {
-	int from, to, ret, retlen;
+	int from, to, ret;
 
 	if (argc != 3)
 		return COMMAND_ERROR_USAGE;
@@ -47,7 +47,8 @@ static int do_unlzo(struct command *cmdtp, int argc, char *argv[])
 		goto exit_close;
 	}
 
-	ret = unlzo(from, to, &retlen);
+	ret = uncompress_fd_to_fd(from, to, uncompress_err_stdout);
+
 	if (ret)
 		printf("failed to decompress\n");
 
@@ -57,13 +58,13 @@ exit_close:
 	return ret;
 }
 
-static const __maybe_unused char cmd_unlzo_help[] =
-"Usage: unlzo <infile> <outfile>\n"
-"Uncompress a lzo compressed file\n";
+static const __maybe_unused char cmd_uncompress_help[] =
+"Usage: uncompress <infile> <outfile>\n"
+"Uncompress a compressed file\n";
 
-BAREBOX_CMD_START(unlzo)
-        .cmd            = do_unlzo,
+BAREBOX_CMD_START(uncompress)
+        .cmd            = do_uncompress,
         .usage          = "lzop <infile> <outfile>",
-        BAREBOX_CMD_HELP(cmd_unlzo_help)
+        BAREBOX_CMD_HELP(cmd_uncompress_help)
 BAREBOX_CMD_END
 
-- 
1.7.7.1




More information about the barebox mailing list