summaryrefslogtreecommitdiffstats
path: root/arch/sandbox/os
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2015-03-03 13:14:57 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2015-03-06 07:42:22 +0100
commit1d3cc3ac5c6685eb9b3fecb037f34c13b9f5d3ed (patch)
tree0fd68b07e4d39e9187bf5dc389aadd9adf8c8e9c /arch/sandbox/os
parent8d9a8349cc01398b52ccd4285c3640e89f1d3001 (diff)
downloadbarebox-1d3cc3ac5c6685eb9b3fecb037f34c13b9f5d3ed.tar.gz
barebox-1d3cc3ac5c6685eb9b3fecb037f34c13b9f5d3ed.tar.xz
sandbox: move device name generation for image/env into add_image()
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/sandbox/os')
-rw-r--r--arch/sandbox/os/common.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/arch/sandbox/os/common.c b/arch/sandbox/os/common.c
index 3fa0370dfb..64a4b26ea6 100644
--- a/arch/sandbox/os/common.c
+++ b/arch/sandbox/os/common.c
@@ -206,9 +206,10 @@ int linux_execve(const char * filename, char *const argv[], char *const envp[])
extern void start_barebox(void);
extern void mem_malloc_init(void *start, void *end);
-static int add_image(char *str, char *devname)
+static int add_image(char *str, char *devname_template, int *devname_number)
{
- char *filename;
+ char *filename, *devname;
+ char tmp[16];
int readonly = 0;
struct stat s;
char *opt;
@@ -224,7 +225,12 @@ static int add_image(char *str, char *devname)
readonly = 1;
}
- printf("add file %s(%s)\n", filename, readonly ? "ro" : "");
+ snprintf(tmp, sizeof(tmp),
+ devname_template, (*devname_number)++);
+ devname = strdup(tmp);
+
+ printf("add %s backed by file %s%s\n", devname,
+ filename, readonly ? "(ro)" : "");
fd = open(filename, readonly ? O_RDONLY : O_RDWR);
hf->fd = fd;
@@ -319,7 +325,6 @@ int main(int argc, char *argv[])
void *ram;
int opt, ret, fd;
int malloc_size = CONFIG_MALLOC_SIZE;
- char str[6];
int fdno = 0, envno = 0, option_index = 0;
while (1) {
@@ -401,18 +406,14 @@ int main(int argc, char *argv[])
switch (opt) {
case 'i':
- sprintf(str, "fd%d", fdno);
- ret = add_image(optarg, str);
+ ret = add_image(optarg, "fd%d", &fdno);
if (ret)
exit(1);
- fdno++;
break;
case 'e':
- sprintf(str, "env%d", envno);
- ret = add_image(optarg, str);
+ ret = add_image(optarg, "env%d", &envno);
if (ret)
exit(1);
- envno++;
break;
default:
break;