[PATCH v3 12/13] sandbox: hostfile: improve --image parameter to support "dev=file"

Marc Kleine-Budde mkl at pengutronix.de
Tue Mar 3 04:14:58 PST 2015


This patch makes it possible to specify the device name of a file added to the
sandbox via the --image paramter, e.g.:

    barebox --image foo=bar.image

This means the file "bar.image" is added as "/dev/foo" to the sandbox.

Signed-off-by: Marc Kleine-Budde <mkl at pengutronix.de>
---
 arch/sandbox/os/common.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/arch/sandbox/os/common.c b/arch/sandbox/os/common.c
index 64a4b26ea6fd..7aa0f5d3f2e0 100644
--- a/arch/sandbox/os/common.c
+++ b/arch/sandbox/os/common.c
@@ -225,9 +225,15 @@ static int add_image(char *str, char *devname_template, int *devname_number)
 			readonly = 1;
 	}
 
-	snprintf(tmp, sizeof(tmp),
-		 devname_template, (*devname_number)++);
-	devname = strdup(tmp);
+	/* parses: "devname=filename" */
+	devname = strtok(filename, "=");
+	filename = strtok(NULL, "=");
+	if (!filename) {
+		filename = devname;
+		snprintf(tmp, sizeof(tmp),
+			 devname_template, (*devname_number)++);
+		devname = strdup(tmp);
+	}
 
 	printf("add %s backed by file %s%s\n", devname,
 	       filename, readonly ? "(ro)" : "");
@@ -444,6 +450,9 @@ static void print_usage(const char *prgname)
 "  -i, --image=<file>   Map an image file to barebox. This option can be given\n"
 "                       multiple times. The files will show up as\n"
 "                       /dev/fd0 ... /dev/fdx under barebox.\n"
+"  -i, --image=<dev>=<file>\n"
+"                       Same as above, the files will show up as\n"
+"                       /dev/<dev>\n"
 "  -e, --env=<file>     Map a file with an environment to barebox. With this \n"
 "                       option, files are mapped as /dev/env0 ... /dev/envx\n"
 "                       and thus are used as the default environment.\n"
-- 
2.1.4




More information about the barebox mailing list