[rtems-libbsd commit] vprintf: Avoid printf() to avoid FPU usage

Sebastian Huber sebh at rtems.org
Mon Sep 10 13:24:36 UTC 2018


Module:    rtems-libbsd
Branch:    master
Commit:    f56067e26c932273ddfae3eb9023f2801672d88c
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=f56067e26c932273ddfae3eb9023f2801672d88c

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Sep 10 15:07:57 2018 +0200

vprintf: Avoid printf() to avoid FPU usage

---

 rtemsbsd/rtems/rtems-kernel-vprintf.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/rtemsbsd/rtems/rtems-kernel-vprintf.c b/rtemsbsd/rtems/rtems-kernel-vprintf.c
index 29dc1ff..b9ef5ba 100644
--- a/rtemsbsd/rtems/rtems-kernel-vprintf.c
+++ b/rtemsbsd/rtems/rtems-kernel-vprintf.c
@@ -48,8 +48,6 @@
 
 #include <rtems/bsd/bsd.h>
 
-#undef printf
-
 #define	VPRINTF_LOCK() _Mutex_Acquire(&vprintf_mtx)
 #define	VPRINTF_UNLOCK() _Mutex_Release(&vprintf_mtx)
 
@@ -86,7 +84,17 @@ default_vprintf_handler(int level, const char *fmt, va_list ap)
 	VPRINTF_LOCK();
 
 	if (level != LOG_PRINTF) {
-		printf("%s: ", log_priorities[LOG_PRI(level)]);
+		const char *p;
+
+		p = log_priorities[LOG_PRI(level)];
+
+		while (*p != '\0') {
+			putchar(*p);
+			++p;
+		}
+
+		putchar(':');
+		putchar(' ');
 	}
 
 	last = -1;



More information about the vc mailing list