summary refs log tree commit diff stats
path: root/util/log.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2025-06-11 10:16:10 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2025-07-10 18:33:51 +0200
commited7f6da282e263403badb507b2532f51f8ed31cf (patch)
tree9aad5c69f9f88f2a0017de8c3f66988ebd9fd7e2 /util/log.c
parenta721d9a9f3dd7bb9d6ed81ea1a11a1157755741c (diff)
downloadfocaccia-qemu-ed7f6da282e263403badb507b2532f51f8ed31cf.tar.gz
focaccia-qemu-ed7f6da282e263403badb507b2532f51f8ed31cf.zip
rust/qemu-api: log: implement io::Write
This makes it possible to lock the log file; it also makes log_mask_ln!
not allocate memory when logging a constant string.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'util/log.c')
-rw-r--r--util/log.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/util/log.c b/util/log.c
index b87d399e4c..58d24de48a 100644
--- a/util/log.c
+++ b/util/log.c
@@ -558,3 +558,15 @@ void qemu_print_log_usage(FILE *f)
     fprintf(f, "\nUse \"-d trace:help\" to get a list of trace events.\n\n");
 #endif
 }
+
+#ifdef CONFIG_HAVE_RUST
+ssize_t rust_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
+{
+    /*
+     * Same as fwrite, but return -errno because Rust libc does not provide
+     * portable access to errno. :(
+     */
+    int ret = fwrite(ptr, size, nmemb, stream);
+    return ret < 0 ? -errno : 0;
+}
+#endif