X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=cmd%2Fbinop.c;h=6d2df5f3dd4fafc9a865f504038e38a36b9b9545;hb=5266ccf957e999d128978328737103f6e522c977;hp=0002c66609e58e921c7d8a2b183cc655218b2fe6;hpb=ebca902aeb3af3eaedd2787928184ad84a86b98f;p=oweals%2Fu-boot.git diff --git a/cmd/binop.c b/cmd/binop.c index 0002c66609..6d2df5f3dd 100644 --- a/cmd/binop.c +++ b/cmd/binop.c @@ -1,9 +1,9 @@ -/* - * SPDX-License-Identifier: GPL-2.0+ - */ +// SPDX-License-Identifier: GPL-2.0+ #include #include +#include +#include #include #include #include @@ -28,43 +28,20 @@ void write_to_env_var(char *varname, u8 *result, ulong len) str_ptr += 2; } *str_ptr = '\0'; - setenv(varname, str_output); + env_set(varname, str_output); free(str_output); } -void decode_hexstring(char *hexstr, u8 *result) -{ - int i; - int acc = 0; - - for (i = 0; i < strlen(hexstr); ++i) { - char d = hexstr[i]; - int value; - - if (isdigit(d)) - value = (d - '0'); - else - value = (islower(d) ? toupper(d) : d) - 'A' + 10; - - if (i % 2 == 0) { - acc = value * 16; - } else { - result[i / 2] = acc + value; - acc = 0; - } - } -} - void read_from_env_var(char *varname, u8 *result) { char *str_value; - str_value = getenv(varname); + str_value = env_get(varname); if (str_value) - decode_hexstring(str_value, result); + hex2bin(result, str_value, strlen(str_value) / 2); else - decode_hexstring(varname, result); + hex2bin(result, varname, strlen(varname) / 2); } void read_from_mem(ulong addr, u8 *result, ulong len)