summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-05-31 09:44:49 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-05-31 10:10:36 +0200
commit3242614d92130639ea55c2457a17ae313662f0c4 (patch)
treeacf3525d67d61917d5ca76df1c243c0d73d581d4
parenta9cff51b055c9d123a5154f0eea72405da1dccf3 (diff)
Fix rtems_print_printer_fprintf()
We must use vfprintf().
-rw-r--r--cpukit/include/rtems/bspIo.h17
-rw-r--r--cpukit/libcsupport/src/print_fprintf.c7
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 <stdio.h>
+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;
}