diff --git a/cpukit/libcsupport/include/rtems/error.h b/cpukit/libcsupport/include/rtems/error.h index 4eae14f912..95567631c0 100644 --- a/cpukit/libcsupport/include/rtems/error.h +++ b/cpukit/libcsupport/include/rtems/error.h @@ -5,8 +5,6 @@ * * Defines and externs for rtems error reporting * - * Currently just used by RTEMS monitor. - * * These routines provide general purpose error reporting. * rtems_error reports an error to stderr and allows use of * printf style formatting. A newline is appended to all messages. @@ -52,6 +50,8 @@ #include #include +#include + #ifdef __cplusplus extern "C" { #endif @@ -67,7 +67,7 @@ extern "C" { typedef Internal_errors_t rtems_error_code_t; /* - * rtems_error() and rtems_panic() support + * rtems_error(), rtems_verror() and rtems_panic() support */ #if 0 @@ -105,6 +105,27 @@ int rtems_error( ... ); +/** + * @brief Report an Error + * + * @param[in] error_code can be specified as any of the following: + * RTEMS_ERROR_ERRNO -- include errno text in output + * RTEMS_ERROR_PANIC -- halts local system after output + * RTEMS_ERROR_ABORT -- abort after output + * + * @param[in] printf_format is a normal printf(3) format string, + * with its concommitant arguments + * @param[in] @p arglist is a varargs list corresponding to + * printf_format + * + * @return the number of characters written. + */ +int rtems_verror( + rtems_error_code_t error_code, + const char *printf_format, + va_list arglist +); + /** * rtems_panic is shorthand for rtems_error(RTEMS_ERROR_PANIC, ...) */ diff --git a/cpukit/libcsupport/src/error.c b/cpukit/libcsupport/src/error.c index 1a682c0352..0e63fa4022 100644 --- a/cpukit/libcsupport/src/error.c +++ b/cpukit/libcsupport/src/error.c @@ -66,7 +66,7 @@ const char *rtems_status_text( } -static int rtems_verror( +int rtems_verror( rtems_error_code_t error_flag, const char *printf_format, va_list arglist