random small size optimizations

This commit is contained in:
Denis Vlasenko
2007-01-12 22:10:34 +00:00
parent 21b080daa8
commit 3a34d0c08a
8 changed files with 34 additions and 23 deletions

View File

@ -2025,28 +2025,28 @@ static void process_dev(char *devname)
#ifdef CONFIG_FEATURE_HDPARM_GET_IDENTITY
static int fromhex(unsigned char c)
{
if (c >= 'a' && c <= 'f')
return 10 + (c - 'a');
if (c >= '0' && c <= '9')
if (isdigit(c))
return (c - '0');
if (c >= 'a' && c <= 'f')
return (c - ('a' - 10));
bb_error_msg_and_die("bad char: '%c' 0x%02x", c, c);
}
static void identify_from_stdin(void)
{
uint16_t sbuf[256];
unsigned char buf[1280], *b = (unsigned char *)buf;
int i, count = read(0, buf, 1280);
unsigned char buf[1280];
unsigned char *b = (unsigned char *)buf;
int i;
if (count != 1280)
bb_error_msg_and_die("read(%d bytes) failed (rc=%d)", 1280, count);
xread(0, buf, 1280);
// Convert the newline-separated hex data into an identify block.
for (i = 0; i<256; i++) {
int j;
for (j = 0; j < 4; j++)
sbuf[i] = (sbuf[i] <<4) + fromhex(*(b++));
sbuf[i] = (sbuf[i] << 4) + fromhex(*(b++));
}
// Parse the data.