svn commit: trunk/busybox: coreutils libbb miscutils

vda at busybox.net vda at busybox.net
Thu Aug 16 10:37:49 UTC 2007


Author: vda
Date: 2007-08-16 03:37:49 -0700 (Thu, 16 Aug 2007)
New Revision: 19526

Log:
hdparm: shrink rodata by ~250 bytes



Modified:
   trunk/busybox/coreutils/dos2unix.c
   trunk/busybox/libbb/getopt32.c
   trunk/busybox/miscutils/hdparm.c


Changeset:
Modified: trunk/busybox/coreutils/dos2unix.c
===================================================================
--- trunk/busybox/coreutils/dos2unix.c	2007-08-16 10:35:17 UTC (rev 19525)
+++ trunk/busybox/coreutils/dos2unix.c	2007-08-16 10:37:49 UTC (rev 19526)
@@ -91,7 +91,7 @@
 	}
 
 	/* -u convert to unix, -d convert to dos */
-	opt_complementary = "u--d:d--u"; /* mutally exclusive */
+	opt_complementary = "u--d:d--u"; /* mutually exclusive */
 	o = getopt32(argc, argv, "du");
 
 	/* Do the conversion requested by an argument else do the default

Modified: trunk/busybox/libbb/getopt32.c
===================================================================
--- trunk/busybox/libbb/getopt32.c	2007-08-16 10:35:17 UTC (rev 19525)
+++ trunk/busybox/libbb/getopt32.c	2007-08-16 10:37:49 UTC (rev 19526)
@@ -211,7 +211,7 @@
 
         For example:
         The cut applet must have only one type of list specified, so
-        -b, -c and -f are mutally exclusive and should raise an error
+        -b, -c and -f are mutually exclusive and should raise an error
         if specified together.  In this case you must set
         opt_complementary = "b--cf:c--bf:f--bc".  If two of the
         mutually exclusive options are found, getopt32 will call

Modified: trunk/busybox/miscutils/hdparm.c
===================================================================
--- trunk/busybox/miscutils/hdparm.c	2007-08-16 10:35:17 UTC (rev 19525)
+++ trunk/busybox/miscutils/hdparm.c	2007-08-16 10:37:49 UTC (rev 19526)
@@ -1416,62 +1416,33 @@
 	printf(")\n");
 }
 
-struct xfermode_entry {
-	int val;
-	const char *name;
+static const uint8_t xfermode_val[] ALIGN1 = {
+	 8,      9,     10,     11,     12,     13,     14,     15,
+	16,     17,     18,     19,     20,     21,     22,     23,
+	32,     33,     34,     35,     36,     37,     38,     39,
+	64,     65,     66,     67,     68,     69,     70,     71
 };
-
-static const struct xfermode_entry xfermode_table[] = {
-	{ 8,    "pio0" },
-	{ 9,    "pio1" },
-	{ 10,   "pio2" },
-	{ 11,   "pio3" },
-	{ 12,   "pio4" },
-	{ 13,   "pio5" },
-	{ 14,   "pio6" },
-	{ 15,   "pio7" },
-	{ 16,   "sdma0" },
-	{ 17,   "sdma1" },
-	{ 18,   "sdma2" },
-	{ 19,   "sdma3" },
-	{ 20,   "sdma4" },
-	{ 21,   "sdma5" },
-	{ 22,   "sdma6" },
-	{ 23,   "sdma7" },
-	{ 32,   "mdma0" },
-	{ 33,   "mdma1" },
-	{ 34,   "mdma2" },
-	{ 35,   "mdma3" },
-	{ 36,   "mdma4" },
-	{ 37,   "mdma5" },
-	{ 38,   "mdma6" },
-	{ 39,   "mdma7" },
-	{ 64,   "udma0" },
-	{ 65,   "udma1" },
-	{ 66,   "udma2" },
-	{ 67,   "udma3" },
-	{ 68,   "udma4" },
-	{ 69,   "udma5" },
-	{ 70,   "udma6" },
-	{ 71,   "udma7" },
-	{ 0, NULL }
+/* NB: we save size by _not_ storing terninating NUL! */
+static const char xfermode_name[][5] ALIGN1 = {
+	"pio0", "pio1", "pio2", "pio3", "pio4", "pio5", "pio6", "pio7",
+	"sdma0","sdma1","sdma2","sdma3","sdma4","sdma5","sdma6","sdma7",
+	"mdma0","mdma1","mdma2","mdma3","mdma4","mdma5","mdma6","mdma7",
+	"udma0","udma1","udma2","udma3","udma4","udma5","udma6","udma7"
 };
 
-static int translate_xfermode(char * name)
+static int translate_xfermode(const char *name)
 {
-	const struct xfermode_entry *tmp;
-	char *endptr;
-	int val = -1;
+	int val, i;
 
-	for (tmp = xfermode_table; tmp->name != NULL; ++tmp) {
-		if (!strcmp(name, tmp->name))
-			return tmp->val;
+	for (i = 0; i < ARRAY_SIZE(xfermode_val); i++) {
+		if (!strncmp(name, xfermode_name[i], 5))
+			if (strlen(name) <= 5)
+				return xfermode_val[i];
 	}
-
-	val = strtol(name, &endptr, 10);
-	if (*endptr == '\0')
+	/* Negative numbers are invalid and are caught later */
+	val = bb_strtoi(name, NULL, 10);
+	if (!errno)
 		return val;
-
 	return -1;
 }
 
@@ -1483,13 +1454,13 @@
 	else if (xfermode == 1)
 		printf("default PIO mode, disable IORDY");
 	else if (xfermode >= 8 && xfermode <= 15)
-		printf("PIO flow control mode%u", xfermode-8);
+		printf("PIO flow control mode%u", xfermode - 8);
 	else if (xfermode >= 16 && xfermode <= 23)
-		printf("singleword DMA mode%u", xfermode-16);
+		printf("singleword DMA mode%u", xfermode - 16);
 	else if (xfermode >= 32 && xfermode <= 39)
-		printf("multiword DMA mode%u", xfermode-32);
+		printf("multiword DMA mode%u", xfermode - 32);
 	else if (xfermode >= 64 && xfermode <= 71)
-		printf("UltraDMA mode%u", xfermode-64);
+		printf("UltraDMA mode%u", xfermode - 64);
 	else
 		printf("Unknown");
 	printf(")\n");




More information about the busybox-cvs mailing list