diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-11-21 11:29:01 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-11-22 09:40:23 +0100 |
commit | 15e19273b2a6ebda3b2d55b28d693e7b8a0740b2 (patch) | |
tree | 4fb0c67c21f6f9f947e5400fc0a40e03acff00eb /cpukit/libcsupport | |
parent | INTERNAL_ERROR_POSIX_INIT_THREAD_ENTRY_IS_NULL (diff) | |
download | rtems-15e19273b2a6ebda3b2d55b28d693e7b8a0740b2.tar.bz2 |
sapi: New implementation of rtems_panic()
The previous rtems_panic() implementation was quite heavy weight. It
depended on _exit() which calls the global destructors. It used
fprintf(stderr, ...) for output which depends on an initialized console
device and the complex fprintf().
Introduce a new fatal source RTEMS_FATAL_SOURCE_PANIC for rtems_panic()
and output via vprintk().
Update #3244.
Diffstat (limited to 'cpukit/libcsupport')
-rw-r--r-- | cpukit/libcsupport/include/rtems/error.h | 10 | ||||
-rw-r--r-- | cpukit/libcsupport/src/error.c | 15 |
2 files changed, 1 insertions, 24 deletions
diff --git a/cpukit/libcsupport/include/rtems/error.h b/cpukit/libcsupport/include/rtems/error.h index f72d78c700..617f59642b 100644 --- a/cpukit/libcsupport/include/rtems/error.h +++ b/cpukit/libcsupport/include/rtems/error.h @@ -48,7 +48,7 @@ #define _RTEMS_RTEMS_ERROR_H #include <rtems/rtems/status.h> -#include <rtems/score/interr.h> +#include <rtems/fatal.h> #include <stdarg.h> @@ -124,14 +124,6 @@ int rtems_verror( va_list arglist ); -/** - * rtems_panic is shorthand for rtems_error(RTEMS_ERROR_PANIC, ...) - */ -void rtems_panic( - const char *printf_format, - ... -) RTEMS_NO_RETURN; - extern int rtems_panic_in_progress; #ifdef __cplusplus diff --git a/cpukit/libcsupport/src/error.c b/cpukit/libcsupport/src/error.c index 44cc1ee688..0e65f8929b 100644 --- a/cpukit/libcsupport/src/error.c +++ b/cpukit/libcsupport/src/error.c @@ -98,18 +98,3 @@ int rtems_error( return chars_written; } - -void rtems_panic( - const char *printf_format, - ... -) -{ - va_list arglist; - - va_start(arglist, printf_format); - (void) rtems_verror(RTEMS_ERROR_PANIC, printf_format, arglist); - va_end(arglist); - - rtems_error(0, "fatal error, exiting"); - _exit(errno); -} |