[LinuxBIOS] r474 - LinuxBIOSv3/util/lar
svn at openbios.org
svn at openbios.org
Mon Aug 20 02:08:18 CEST 2007
Author: stepan
Date: 2007-08-20 02:08:18 +0200 (Mon, 20 Aug 2007)
New Revision: 474
Modified:
LinuxBIOSv3/util/lar/lar.c
Log:
Add another field to the filename specified for create and add
operations to specify the intended pathname for the blob.
Signed-off-by: Jordan Crouse <jordan.crouse at amd.com>
Acked-by: Stefan Reinauer <stepan at coresystems.de>
Modified: LinuxBIOSv3/util/lar/lar.c
===================================================================
--- LinuxBIOSv3/util/lar/lar.c 2007-08-19 23:53:16 UTC (rev 473)
+++ LinuxBIOSv3/util/lar/lar.c 2007-08-20 00:08:18 UTC (rev 474)
@@ -46,7 +46,7 @@
printf("\nLAR - the LinuxBIOS Archiver " VERSION "\n" COPYRIGHT "\n\n"
"Usage: %s [-cxal] archive.lar [[[file1] file2] ...]\n\n", name);
printf("Examples:\n");
- printf(" lar -c -s 32768 -b bootblock myrom.lar foo nocompress:bar\n");
+ printf(" lar -c -s 32k -b bootblock myrom.lar foo nocompress:bar\n");
printf(" lar -a myrom.lar foo blob:baz\n");
printf(" lar -l myrom.lar\n\n");
@@ -61,7 +61,9 @@
printf(" * Pathname is the name to use in the LAR header.\n\n");
printf("Create options:\n");
- printf(" -s [size]\tSpecify the size of the archive (in bytes)\n");
+ printf(" -s [size] \tSpecify the size of the archive.\n");
+ printf(" \tUse a 'k' suffix to multiply the size by 1024 or\n");
+ printf(" \ta 'm' suffix to multiple the size by 1024*1024.\n");
printf(" -b [bootblock]\tSpecify the bootblock blob\n");
printf(" -C [lzma|nrv2b]\tSpecify the compression method to use\n\n");
@@ -73,6 +75,29 @@
}
+/* Add a human touch to the LAR size by allowing suffixes:
+ * XX[KkMm] where k = XX * 1024 and m or M = xx * 1024 * 1024
+ */
+
+static void parse_larsize(char *str)
+{
+ char *p = NULL;
+ unsigned int size = strtoul(str, &p, 0);
+
+ if (p != NULL) {
+ if (*p == 'k' || *p == 'K')
+ size *= 1024;
+ else if (*p == 'm' || *p == 'M')
+ size *= (1024 * 1024);
+ else if (*p) {
+ fprintf(stderr, "Unknown LAR size suffix '%c'\n", *p);
+ exit(1);
+ }
+ }
+
+ larsize = size;
+}
+
int verbose(void)
{
return isverbose;
@@ -219,7 +244,7 @@
larmode = EXTRACT;
break;
case 's':
- larsize = strtol(optarg, (char **)NULL, 10);
+ parse_larsize(optarg);
break;
case 'b':
bootblock = strdup(optarg);
More information about the coreboot
mailing list