mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 12:08:19 +00:00 
			
		
		
		
	At present panic() is in the vsprintf.h header file. That does not seem like an obvious choice for hang(), even though it relates to panic(). So let's put hang() in its own header. Signed-off-by: Simon Glass <sjg@chromium.org> [trini: Migrate a few more files] Signed-off-by: Tom Rini <trini@konsulko.com>
		
			
				
	
	
		
			57 lines
		
	
	
		
			1009 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1009 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *  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>
 | |
| #include <hang.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, ...)
 | |
| {
 | |
| #if CONFIG_IS_ENABLED(PRINTF)
 | |
| 	va_list args;
 | |
| 	va_start(args, fmt);
 | |
| 	vprintf(fmt, args);
 | |
| 	va_end(args);
 | |
| #endif
 | |
| 	panic_finish();
 | |
| }
 | |
| 
 | |
| void __assert_fail(const char *assertion, const char *file, unsigned int line,
 | |
| 		   const char *function)
 | |
| {
 | |
| 	/* This will not return */
 | |
| 	panic("%s:%u: %s: Assertion `%s' failed.", file, line, function,
 | |
| 	      assertion);
 | |
| }
 |