34 lines · 556 B · C
RawDownload
#include "string.h" static int hex(char ch){	if ((ch >= '0') && (ch <= '9'))		return ch - '0';	if ((ch >= 'a') && (ch <= 'f'))		return ch - 'a' + 10;	if ((ch >= 'A') && (ch <= 'F'))		return ch - 'A' + 10;	return -1;} /* * While we find nice hex chars, build a long_val. * Return number of chars processed. */int hex2u64(const char *ptr, u64 *long_val){	const char *p = ptr;	*long_val = 0; 	while (*p) {		const int hex_val = hex(*p); 		if (hex_val < 0)			break; 		*long_val = (*long_val << 4) | hex_val;		p++;	} 	return p - ptr;}