uboot/lib/panic.c
<<
>>
Prefs
   1/*
   2 *  linux/lib/vsprintf.c
   3 *
   4 *  Copyright (C) 1991, 1992  Linus Torvalds
   5 */
   6
   7/* vsprintf.c -- Lars Wirzenius & Linus Torvalds. */
   8/*
   9 * Wirzenius wrote this portably, Torvalds fucked it up :-)
  10 */
  11
  12#include <common.h>
  13#if !defined(CONFIG_PANIC_HANG)
  14#include <command.h>
  15#endif
  16
  17static void panic_finish(void) __attribute__ ((noreturn));
  18
  19static void panic_finish(void)
  20{
  21        putc('\n');
  22#if defined(CONFIG_PANIC_HANG)
  23        hang();
  24#else
  25        udelay(100000); /* allow messages to go out */
  26        do_reset(NULL, 0, 0, NULL);
  27#endif
  28        while (1)
  29                ;
  30}
  31
  32void panic_str(const char *str)
  33{
  34        puts(str);
  35        panic_finish();
  36}
  37
  38void panic(const char *fmt, ...)
  39{
  40        va_list args;
  41        va_start(args, fmt);
  42        vprintf(fmt, args);
  43        va_end(args);
  44        panic_finish();
  45}
  46