diff options
author | Tom Rini <trini@konsulko.com> | 2015-12-16 14:50:03 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2015-12-16 14:50:03 -0500 |
commit | 35065cdd94a41dee4882b921f9763742e44d1c58 (patch) | |
tree | aaa4a4ecdad344cb50427eb79f3a91c3311b2d3f /lib/panic.c | |
parent | 52bc7c7e2b31d6ba8d394f3d22b551abfa365363 (diff) | |
parent | 47b4c228b5ae72598dc38ca2764c11ea1c6693cc (diff) | |
download | u-boot-35065cdd94a41dee4882b921f9763742e44d1c58.zip u-boot-35065cdd94a41dee4882b921f9763742e44d1c58.tar.gz u-boot-35065cdd94a41dee4882b921f9763742e44d1c58.tar.bz2 |
Merge git://git.denx.de/u-boot-rockchip
Diffstat (limited to 'lib/panic.c')
-rw-r--r-- | lib/panic.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/panic.c b/lib/panic.c new file mode 100644 index 0000000..e2b8b74 --- /dev/null +++ b/lib/panic.c @@ -0,0 +1,45 @@ +/* + * linux/lib/vsprintf.c + * + * Copyright (C) 1991, 1992 Linus Torvalds + */ + +/* vsprintf.c -- Lars Wirzenius & Linus Torvalds. */ +/* + * Wirzenius wrote this portably, Torvalds fucked it up :-) + */ + +#include <common.h> +#if !defined(CONFIG_PANIC_HANG) +#include <command.h> +#endif + +static void panic_finish(void) __attribute__ ((noreturn)); + +static void panic_finish(void) +{ + putc('\n'); +#if defined(CONFIG_PANIC_HANG) + hang(); +#else + udelay(100000); /* allow messages to go out */ + do_reset(NULL, 0, 0, NULL); +#endif + while (1) + ; +} + +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(); +} |