From 2110196958579fd26112ed358106edb2ef952b19 Mon Sep 17 00:00:00 2001 From: Pali Rohár Date: Sat, 23 Jun 2012 17:01:48 +0200 Subject: Fiasco image: Allow to specify device string without hw revision (then image is valid for all hw revisions). Generating images should be complete! --- src/fiasco.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'src/fiasco.c') diff --git a/src/fiasco.c b/src/fiasco.c index 31b59df..c767407 100644 --- a/src/fiasco.c +++ b/src/fiasco.c @@ -459,22 +459,24 @@ int fiasco_add(int fd, const char *name, const char *file, const char *layout, c write(fd, device, len); for (i=0; i<16-len; ++i) write(fd, "\x00", 1); - ptr = hwrevs; - oldptr = hwrevs; - while ((ptr = strchr(ptr, ','))) { - len = ptr-oldptr; + if (hwrevs) { + ptr = hwrevs; + oldptr = hwrevs; + while ((ptr = strchr(ptr, ','))) { + len = ptr-oldptr; + if (len > 8) len = 8; + write(fd, oldptr, len); + for (i=0; i<8-len; ++i) + write(fd, "\x00", 1); + ++ptr; + oldptr = ptr; + } + len = strlen(oldptr); if (len > 8) len = 8; write(fd, oldptr, len); for (i=0; i<8-len; ++i) write(fd, "\x00", 1); - ++ptr; - oldptr = ptr; } - len = strlen(oldptr); - if (len > 8) len = 8; - write(fd, oldptr, len); - for (i=0; i<8-len; ++i) - write(fd, "\x00", 1); } /* append layout subsection */ @@ -554,7 +556,7 @@ int fiasco_pack(int optind, char *argv[]) if (strncmp(arg, "version:", strlen("version:"))==0) continue; -// format: [[[[dev:hw:]ver:]type:]file[%layout] +// format: [[[[dev:[hw:]]ver:]type:]file[%layout] ptr = strdup(arg); layout = strchr(ptr, '%'); if (layout) { @@ -576,10 +578,9 @@ int fiasco_pack(int optind, char *argv[]) if (version) { *(version++) = 0; hwrevs = strchr(ptr, ':'); - if (hwrevs) { + if (hwrevs) *(hwrevs++) = 0; - device = ptr; - } + device = ptr; } else { version = ptr; } -- cgit v1.2.3