/* | |
* 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(); | |
} |