X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=lib%2Fvsprintf.c;h=a9b8a3ae67fa0817deefa3f1d5d559b97056eeb7;hb=6658d0164910c38d2d36bea245e495d2f0481193;hp=e0f264850f7fa75bc6cbeaad2537d3fffc4a318d;hpb=1fc4e6f486cc1e9d2dcf0ba86e6021c3d83dce51;p=karo-tx-uboot.git diff --git a/lib/vsprintf.c b/lib/vsprintf.c index e0f264850f..a9b8a3ae67 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -842,13 +842,11 @@ int sprintf(char *buf, const char *fmt, ...) return i; } -void panic(const char *fmt, ...) +static void panic_finish(void) __attribute__ ((noreturn)); + +static void panic_finish(void) { - va_list args; - va_start(args, fmt); - vprintf(fmt, args); putc('\n'); - va_end(args); #if defined(CONFIG_PANIC_HANG) hang(); #else @@ -859,6 +857,21 @@ void panic(const char *fmt, ...) ; } +void panic_str(const char *str) +{ + puts(str); + panic_finish(); +} + +void panic(const char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + vprintf(fmt, args); + va_end(args); + panic_finish(); +} + void __assert_fail(const char *assertion, const char *file, unsigned line, const char *function) { @@ -896,3 +909,19 @@ void print_grouped_ull(unsigned long long int_val, int digits) grab = 3; } } + +bool str2off(const char *p, loff_t *num) +{ + char *endptr; + + *num = simple_strtoull(p, &endptr, 16); + return *p != '\0' && *endptr == '\0'; +} + +bool str2long(const char *p, ulong *num) +{ + char *endptr; + + *num = simple_strtoul(p, &endptr, 16); + return *p != '\0' && *endptr == '\0'; +}