From 3242614d92130639ea55c2457a17ae313662f0c4 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 31 May 2016 09:44:49 +0200 Subject: Fix rtems_print_printer_fprintf() We must use vfprintf(). --- cpukit/include/rtems/bspIo.h | 17 +++++++++++++++-- cpukit/libcsupport/src/print_fprintf.c | 7 ++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/cpukit/include/rtems/bspIo.h b/cpukit/include/rtems/bspIo.h index 403b857e43..a7fd9590ee 100644 --- a/cpukit/include/rtems/bspIo.h +++ b/cpukit/include/rtems/bspIo.h @@ -144,7 +144,7 @@ typedef int (*rtems_print_plugin_t)(void *, const char *format, va_list ap); /** * @brief Reporting Methods printk() Plugin * - * @param[in] context points to a user defined context. + * @param[in] context Unused. * @param[in] fmt is a printf()-style format string * * @return The number of characters printed. @@ -157,13 +157,26 @@ extern int printk_plugin(void *context, const char *fmt, va_list ap); * This is a standard plug-in to support using printf() for output * instead of printk(). * - * @param[in] context points to a user defined context. + * @param[in] context Unused. * @param[in] fmt is a printf()-style format string * * @return The number of characters printed. */ extern int rtems_printf_plugin(void *context, const char *fmt, va_list ap); +/** + * @brief Reporting Methods fprintf() Plugin + * + * This is a standard plug-in to support using fprintf() for output + * instead of printk(). + * + * @param[in] context The file stream. + * @param[in] fmt is a printf()-style format string + * + * @return The number of characters printed. + */ +extern int rtems_fprintf_plugin(void *context, const char *fmt, va_list ap); + /**@}*/ #ifdef __cplusplus diff --git a/cpukit/libcsupport/src/print_fprintf.c b/cpukit/libcsupport/src/print_fprintf.c index 5e46d1c959..757293e4c7 100644 --- a/cpukit/libcsupport/src/print_fprintf.c +++ b/cpukit/libcsupport/src/print_fprintf.c @@ -22,8 +22,13 @@ #include +int rtems_fprintf_plugin(void *context, const char *fmt, va_list ap) +{ + return vfprintf(context, fmt, ap); +} + void rtems_print_printer_fprintf(rtems_printer *printer, FILE *file) { printer->context = file; - printer->printer = (rtems_print_plugin_t) fprintf; + printer->printer = rtems_fprintf_plugin; } -- cgit v1.2.3