view 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 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);
}