[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 24/35] semihosting: add O_BINARY flag in host_open for NT comp
From: |
Alex Bennée |
Subject: |
[PATCH v2 24/35] semihosting: add O_BINARY flag in host_open for NT compatibility |
Date: |
Tue, 24 Jan 2023 18:01:16 +0000 |
From: Evgeny Iakovlev <eiakovlev@linux.microsoft.com>
Windows open(2) implementation opens files in text mode by default and
needs a Windows-only O_BINARY flag to open files as binary. QEMU already
knows about that flag in osdep and it is defined to 0 on non-Windows,
so we can just add it to the host_flags for better compatibility.
Signed-off-by: Evgeny Iakovlev <eiakovlev@linux.microsoft.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Message-Id: <20230106102018.20520-1-eiakovlev@linux.microsoft.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
semihosting/syscalls.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/semihosting/syscalls.c b/semihosting/syscalls.c
index ba28194b59..e89992cf90 100644
--- a/semihosting/syscalls.c
+++ b/semihosting/syscalls.c
@@ -253,7 +253,7 @@ static void host_open(CPUState *cs, gdb_syscall_complete_cb
complete,
{
CPUArchState *env G_GNUC_UNUSED = cs->env_ptr;
char *p;
- int ret, host_flags;
+ int ret, host_flags = O_BINARY;
ret = validate_lock_user_string(&p, cs, fname, fname_len);
if (ret < 0) {
@@ -262,11 +262,11 @@ static void host_open(CPUState *cs,
gdb_syscall_complete_cb complete,
}
if (gdb_flags & GDB_O_WRONLY) {
- host_flags = O_WRONLY;
+ host_flags |= O_WRONLY;
} else if (gdb_flags & GDB_O_RDWR) {
- host_flags = O_RDWR;
+ host_flags |= O_RDWR;
} else {
- host_flags = O_RDONLY;
+ host_flags |= O_RDONLY;
}
if (gdb_flags & GDB_O_CREAT) {
host_flags |= O_CREAT;
--
2.34.1
- [PATCH v2 07/35] meson: replace Perl usage with Python, (continued)
- [PATCH v2 07/35] meson: replace Perl usage with Python, Alex Bennée, 2023/01/24
- [PATCH v2 09/35] gitlab: add lsan suppression file to workaround tcmalloc issues, Alex Bennée, 2023/01/24
- [PATCH v2 10/35] Update lcitool and fedora to 37, Alex Bennée, 2023/01/24
- [PATCH v2 26/35] cpu: free cpu->tb_jmp_cache with RCU, Alex Bennée, 2023/01/24
- [PATCH v2 14/35] tests/docker: drop debian-tricore-cross's partial status, Alex Bennée, 2023/01/24
- [PATCH v2 22/35] docs: add an introduction to the system docs, Alex Bennée, 2023/01/24
- [PATCH v2 13/35] tests/docker: Install flex in debian-tricore-cross, Alex Bennée, 2023/01/24
- [PATCH v2 24/35] semihosting: add O_BINARY flag in host_open for NT compatibility,
Alex Bennée <=
- [PATCH v2 32/35] translator: always pair plugin_gen_insn_{start, end} calls, Alex Bennée, 2023/01/24
- [PATCH v2 30/35] plugins: make qemu_plugin_user_exit's locking order consistent with fork_start's, Alex Bennée, 2023/01/24
- [PATCH v2 19/35] docs: add hotlinks to about preface text, Alex Bennée, 2023/01/24
- [PATCH v2 35/35] plugins: Iterate on cb_lists in qemu_plugin_user_exit, Alex Bennée, 2023/01/24
- [PATCH v2 27/35] util/qht: add missing atomic_set(hashes[i]), Alex Bennée, 2023/01/24
- [PATCH v2 31/35] plugins: fix optimization in plugin_gen_disable_mem_helpers, Alex Bennée, 2023/01/24
- [PATCH v2 28/35] thread: de-const qemu_spin_destroy, Alex Bennée, 2023/01/24
- [PATCH v2 18/35] MAINTAINERS: Fix the entry for tests/tcg/nios2, Alex Bennée, 2023/01/24