random small size optimizations
This commit is contained in:
		@@ -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.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user