semihosting: add O_BINARY flag in host_open for NT compatibility
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> Message-Id: <20230124180127.1881110-25-alex.bennee@linaro.org>
This commit is contained in:
parent
978c2bf97b
commit
0bccdb42df
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user