gdbstub: Convert GDB error numbers to host error numbers
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>
This commit is contained in:
parent
9814483d63
commit
c805e11875
31
gdbstub.c
31
gdbstub.c
@ -1886,6 +1886,37 @@ static void handle_file_io(GArray *params, void *user_ctx)
|
|||||||
} else {
|
} else {
|
||||||
err = 0;
|
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(gdbserver_state.c_cpu, ret, err);
|
||||||
gdbserver_state.current_syscall_cb = NULL;
|
gdbserver_state.current_syscall_cb = NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user