MCPcopy Create free account
hub / github.com/coreboot/coreboot / hexstrtobin

Function hexstrtobin

src/lib/hexstrtobin.c:6–33  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4#include <lib.h>
5
6size_t hexstrtobin(const char *str, uint8_t *buf, size_t len)
7{
8 size_t count, ptr = 0;
9 uint8_t byte;
10
11 for (byte = count = 0; str && *str; str++) {
12 uint8_t c = *str;
13
14 if (!isxdigit(c))
15 continue;
16 if (isdigit(c))
17 c -= '0';
18 else
19 c = tolower(c) - 'a' + 10;
20
21 byte <<= 4;
22 byte |= c;
23
24 if (++count > 1) {
25 if (ptr >= len)
26 return ptr;
27 buf[ptr++] = byte;
28 byte = count = 0;
29 }
30 }
31
32 return ptr;
33}

Callers 6

acpigen_write_uuidFunction · 0.85
wifi_hextostrFunction · 0.85
parse_uuidFunction · 0.85
transfer_memory_infoFunction · 0.85
transfer_memory_infoFunction · 0.85
test_hexstrtobinFunction · 0.85

Calls 3

isxdigitFunction · 0.50
isdigitFunction · 0.50
tolowerFunction · 0.50

Tested by 1

test_hexstrtobinFunction · 0.68