summary refs log tree commit diff stats
path: root/hw/semihosting/console.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/semihosting/console.c')
-rw-r--r--hw/semihosting/console.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/hw/semihosting/console.c b/hw/semihosting/console.c
index 01826bd687..466ea6dade 100644
--- a/hw/semihosting/console.c
+++ b/hw/semihosting/console.c
@@ -17,13 +17,20 @@
 
 #include "qemu/osdep.h"
 #include "cpu.h"
+#include "hw/semihosting/semihost.h"
 #include "hw/semihosting/console.h"
 #include "exec/gdbstub.h"
 #include "qemu/log.h"
+#include "chardev/char.h"
 
 int qemu_semihosting_log_out(const char *s, int len)
 {
-    return write(STDERR_FILENO, s, len);
+    Chardev *chardev = semihosting_get_chardev();
+    if (chardev) {
+        return qemu_chr_write_all(chardev, (uint8_t *) s, len);
+    } else {
+        return write(STDERR_FILENO, s, len);
+    }
 }
 
 /*