/* Have the same behavior of parse_uint(), but with an additional check for additional data after the parsed number. If extra characters are present after the parsed number, the function will return -EINVAL, and *@v will be set to 0.  */
int parse_uint_full(const char *s, unsigned long long *value, int base)
/* Have the same behavior of parse_uint(), but with an additional check for additional data after the parsed number. If extra characters are present after the parsed number, the function will return -EINVAL, and *@v will be set to 0.  */
int parse_uint_full(const char *s, unsigned long long *value, int base)
{
    char *endp;
    int r;
    r = parse_uint(s, value, &endp, base);
    if (r < 0) {
        return r;
    }
    if (*endp) {
        *value = 0;
        return -EINVAL;
    }
    return 0;
}