summaryrefslogtreecommitdiffstats
path: root/rtemsbsd/rtems/rtems-kernel-vprintf.c
diff options
context:
space:
mode:
Diffstat (limited to 'rtemsbsd/rtems/rtems-kernel-vprintf.c')
-rw-r--r--rtemsbsd/rtems/rtems-kernel-vprintf.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/rtemsbsd/rtems/rtems-kernel-vprintf.c b/rtemsbsd/rtems/rtems-kernel-vprintf.c
index 6d0cf59f..7364ec6d 100644
--- a/rtemsbsd/rtems/rtems-kernel-vprintf.c
+++ b/rtemsbsd/rtems/rtems-kernel-vprintf.c
@@ -103,12 +103,16 @@ default_vprintf_handler(int level, const char *fmt, va_list ap)
static int (*vprintf_handler)(int, const char *, va_list) =
default_vprintf_handler;
-void
-rtems_bsd_set_vprintf_handler(int (*new_vprintf_handler)
- (int, const char *, va_list))
+rtems_bsd_vprintf_handler
+rtems_bsd_set_vprintf_handler(rtems_bsd_vprintf_handler new_handler)
{
+ rtems_bsd_vprintf_handler old_handler;
- vprintf_handler = new_vprintf_handler;
+ VPRINTF_LOCK();
+ old_handler = vprintf_handler;
+ vprintf_handler = new_handler;
+ VPRINTF_UNLOCK();
+ return (old_handler);
}
int