aboutsummaryrefslogtreecommitdiff
path: root/include/hw/semihosting
diff options
context:
space:
mode:
authorAlex Bennée <alex.bennee@linaro.org>2019-05-30 15:35:14 +0100
committerAlex Bennée <alex.bennee@linaro.org>2019-06-12 17:53:22 +0100
commit78e24848f6a2923f356d15d8751c644f94a39fd8 (patch)
treef9a6d5636870a08f820e9186ade7738dd656487f /include/hw/semihosting
parent3ace9be6d267b2f876ebb34096fe5d9b64a82d9a (diff)
semihosting: split console_out into string and char versions
This is ostensibly to avoid the weirdness of len looking like it might come from a guest and sometimes being used. While we are at it fix up the error checking for the arm-linux-user implementation of the API which got flagged up by Coverity (CID 1401700). Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Diffstat (limited to 'include/hw/semihosting')
-rw-r--r--include/hw/semihosting/console.h25
1 files changed, 19 insertions, 6 deletions
diff --git a/include/hw/semihosting/console.h b/include/hw/semihosting/console.h
index 9eb45b7c53..cfab572c0c 100644
--- a/include/hw/semihosting/console.h
+++ b/include/hw/semihosting/console.h
@@ -10,17 +10,30 @@
#define SEMIHOST_CONSOLE_H
/**
- * qemu_semihosting_console_out:
+ * qemu_semihosting_console_outs:
* @env: CPUArchState
- * @s: host address of guest string
- * @len: length of string or 0 (string is null terminated)
+ * @s: host address of null terminated guest string
*
- * Send a guest string to the debug console. This may be the remote
- * gdb session if a softmmu guest is currently being debugged.
+ * Send a null terminated guest string to the debug console. This may
+ * be the remote gdb session if a softmmu guest is currently being
+ * debugged.
*
* Returns: number of bytes written.
*/
-int qemu_semihosting_console_out(CPUArchState *env, target_ulong s, int len);
+int qemu_semihosting_console_outs(CPUArchState *env, target_ulong s);
+
+/**
+ * qemu_semihosting_console_outc:
+ * @env: CPUArchState
+ * @s: host address of null terminated guest string
+ *
+ * Send single character from guest memory to the debug console. This
+ * may be the remote gdb session if a softmmu guest is currently being
+ * debugged.
+ *
+ * Returns: nothing
+ */
+void qemu_semihosting_console_outc(CPUArchState *env, target_ulong c);
/**
* qemu_semihosting_log_out: