view target-utils/libcommon/hexstrings.c @ 999:30fad2b3afd2

doc/Flash-write-protection: document flash lock-state retrieval
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 04 Dec 2023 20:40:50 +0000
parents 0da2cf5a999c
children
line wrap: on
line source

/*
 * 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);
}