[U-Boot] [PATCH 1/1] efi_loader: eliminate duplicate function hex2mem()

Heinrich Schuchardt xypron.glpk at gmx.de
Fri Jan 18 11:31:54 UTC 2019


Use existing inline function hex2bin() instead of defining a new one.

Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
---
 lib/efi_loader/efi_variable.c | 44 +++--------------------------------
 1 file changed, 3 insertions(+), 41 deletions(-)

diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c
index fd4c5dc40d..1e43a8585e 100644
--- a/lib/efi_loader/efi_variable.c
+++ b/lib/efi_loader/efi_variable.c
@@ -9,6 +9,7 @@
 #include <charset.h>
 #include <efi_loader.h>
 #include <environment.h>
+#include <hexdump.h>
 #include <search.h>
 #include <uuid.h>
 
@@ -49,45 +50,6 @@
 
 #define PREFIX_LEN (strlen("efi_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_"))
 
-static int hex(int ch)
-{
-	if (ch >= 'a' && ch <= 'f')
-		return ch-'a'+10;
-	if (ch >= '0' && ch <= '9')
-		return ch-'0';
-	if (ch >= 'A' && ch <= 'F')
-		return ch-'A'+10;
-	return -1;
-}
-
-static int hex2mem(u8 *mem, const char *hexstr, int size)
-{
-	int nibble;
-	int i;
-
-	for (i = 0; i < size; i++) {
-		if (*hexstr == '\0')
-			break;
-
-		nibble = hex(*hexstr);
-		if (nibble < 0)
-			return -1;
-
-		*mem = nibble;
-		hexstr++;
-
-		nibble = hex(*hexstr);
-		if (nibble < 0)
-			return -1;
-
-		*mem = (*mem << 4) | nibble;
-		hexstr++;
-		mem++;
-	}
-
-	return i;
-}
-
 static char *mem2hex(char *hexstr, const u8 *mem, int count)
 {
 	static const char hexchars[] = "0123456789abcdef";
@@ -198,7 +160,7 @@ efi_status_t EFIAPI efi_get_variable(u16 *variable_name,
 	in_size = *data_size;
 
 	if ((s = prefix(val, "(blob)"))) {
-		unsigned len = strlen(s);
+		size_t len = strlen(s);
 
 		/* number of hexadecimal digits must be even */
 		if (len & 1)
@@ -214,7 +176,7 @@ efi_status_t EFIAPI efi_get_variable(u16 *variable_name,
 		if (!data)
 			return EFI_EXIT(EFI_INVALID_PARAMETER);
 
-		if (hex2mem(data, s, len) != len)
+		if (hex2bin(data, s, len))
 			return EFI_EXIT(EFI_DEVICE_ERROR);
 
 		debug("%s: got value: \"%s\"\n", __func__, s);
-- 
2.20.1



More information about the U-Boot mailing list