[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 19/60] gdbstub: Convert GDB error numbers to host error numbers
From: |
Richard Henderson |
Subject: |
[PULL 19/60] gdbstub: Convert GDB error numbers to host error numbers |
Date: |
Tue, 28 Jun 2022 10:23:22 +0530 |
Provide the callback with consistent state -- always use
host error numbers. The individual callback can then
decide if the errno requires conversion for the guest.
Reviewed-by: Luc Michel <lmichel@kalray.eu>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
gdbstub.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/gdbstub.c b/gdbstub.c
index 88a34c8f52..f3a4664453 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -1886,6 +1886,37 @@ static void handle_file_io(GArray *params, void
*user_ctx)
} else {
err = 0;
}
+
+ /* Convert GDB error numbers back to host error numbers. */
+#define E(X) case GDB_E##X: err = E##X; break
+ switch (err) {
+ case 0:
+ break;
+ E(PERM);
+ E(NOENT);
+ E(INTR);
+ E(BADF);
+ E(ACCES);
+ E(FAULT);
+ E(BUSY);
+ E(EXIST);
+ E(NODEV);
+ E(NOTDIR);
+ E(ISDIR);
+ E(INVAL);
+ E(NFILE);
+ E(MFILE);
+ E(FBIG);
+ E(NOSPC);
+ E(SPIPE);
+ E(ROFS);
+ E(NAMETOOLONG);
+ default:
+ err = EINVAL;
+ break;
+ }
+#undef E
+
gdbserver_state.current_syscall_cb(gdbserver_state.c_cpu, ret, err);
gdbserver_state.current_syscall_cb = NULL;
}
--
2.34.1
- [PULL 08/60] semihosting: Split out guestfd.c, (continued)
- [PULL 08/60] semihosting: Split out guestfd.c, Richard Henderson, 2022/06/28
- [PULL 09/60] semihosting: Inline set_swi_errno into common_semi_cb, Richard Henderson, 2022/06/28
- [PULL 10/60] semihosting: Adjust error checking in common_semi_cb, Richard Henderson, 2022/06/28
- [PULL 11/60] semihosting: Clean up common_semi_flen_cb, Richard Henderson, 2022/06/28
- [PULL 12/60] semihosting: Clean up common_semi_open_cb, Richard Henderson, 2022/06/28
- [PULL 13/60] semihosting: Return void from do_common_semihosting, Richard Henderson, 2022/06/28
- [PULL 14/60] semihosting: Move common-semi.h to include/semihosting/, Richard Henderson, 2022/06/28
- [PULL 15/60] semihosting: Remove GDB_O_BINARY, Richard Henderson, 2022/06/28
- [PULL 16/60] include/exec: Move gdb open flags to gdbstub.h, Richard Henderson, 2022/06/28
- [PULL 17/60] include/exec: Move gdb_stat and gdb_timeval to gdbstub.h, Richard Henderson, 2022/06/28
- [PULL 19/60] gdbstub: Convert GDB error numbers to host error numbers,
Richard Henderson <=
- [PULL 22/60] semihosting: Split common_semi_flen_buf per target, Richard Henderson, 2022/06/28
- [PULL 18/60] include/exec: Define errno values in gdbstub.h, Richard Henderson, 2022/06/28
- [PULL 20/60] semihosting: Use struct gdb_stat in common_semi_flen_cb, Richard Henderson, 2022/06/28
- [PULL 24/60] semihosting: Split out common-semi-target.h, Richard Henderson, 2022/06/28
- [PULL 26/60] semihosting: Move GET_ARG/SET_ARG earlier in the file, Richard Henderson, 2022/06/28
- [PULL 25/60] semihosting: Use env more often in do_common_semihosting, Richard Henderson, 2022/06/28
- [PULL 29/60] semihosting: Split out semihost_sys_read, Richard Henderson, 2022/06/28
- [PULL 21/60] semihosting: Split is_64bit_semihosting per target, Richard Henderson, 2022/06/28
- [PULL 32/60] semihosting: Split out semihost_sys_lseek, Richard Henderson, 2022/06/28
- [PULL 33/60] semihosting: Split out semihost_sys_isatty, Richard Henderson, 2022/06/28