diff target-utils/libcommon/hexstrings.c @ 658:0da2cf5a999c

target-utils: libload eliminated
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 03 Mar 2020 06:06:17 +0000
parents target-utils/libload/hexstrings.c@e7502631a0f9
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/target-utils/libcommon/hexstrings.c	Tue Mar 03 06:06:17 2020 +0000
@@ -0,0 +1,33 @@
+/*
+ * The decode_hex_digits() function contained in this module
+ * will be used by the XRAM and flash loading commands
+ * which take SREC-like long hex string arguments.
+ */
+
+#include <ctype.h>
+#include "types.h"
+
+decode_hex_digits(str, ndigits, valp)
+	char *str;
+	int ndigits;
+	u32 *valp;
+{
+	u32 accum;
+	int i, c;
+
+	accum = 0;
+	for (i = 0; i < ndigits; i++) {
+		c = *str++;
+		if (!isxdigit(c))
+			return(-1);
+		accum <<= 4;
+		if (isdigit(c))
+			accum += c - '0';
+		else if (islower(c))
+			accum += c - 'a' + 10;
+		else
+			accum += c - 'A' + 10;
+	}
+	*valp = accum;
+	return(0);
+}