1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Callers outside of misc.c need access to the error reporting routines, 4 * but the *_putstr() functions need to stay in misc.c because of how 5 * memcpy() and memmove() are defined for the compressed boot environment. 6 */ 7#include "misc.h" 8#include "error.h" 9 10void warn(const char *m) 11{ 12 error_putstr("\n\n"); 13 error_putstr(m); 14 error_putstr("\n\n"); 15} 16 17void error(char *m) 18{ 19 warn(m); 20 error_putstr(" -- System halted"); 21 22 while (1) 23 asm("hlt"); 24} 25 26/* EFI libstub provides vsnprintf() */ 27#ifdef CONFIG_EFI_STUB 28void panic(const char *fmt, ...) 29{ 30 static char buf[1024]; 31 va_list args; 32 int len; 33 34 va_start(args, fmt); 35 len = vsnprintf(buf, sizeof(buf), fmt, args); 36 va_end(args); 37 38 if (len && buf[len - 1] == '\n') 39 buf[len - 1] = '\0'; 40 41 error(buf); 42} 43#endif 44