allwinner_a64/android/external/strace/linux/ia64/get_error.c
2018-08-08 16:14:42 +08:00

20 lines
390 B
C

static void
get_error(struct tcb *tcp, const bool check_errno)
{
if (ia64_ia32mode) {
int err = ia64_regs.gr[8];
if (check_errno && is_negated_errno(err)) {
tcp->u_rval = -1;
tcp->u_error = -err;
} else {
tcp->u_rval = err;
}
} else {
if (ia64_regs.gr[10]) {
tcp->u_rval = -1;
tcp->u_error = ia64_regs.gr[8];
} else {
tcp->u_rval = ia64_regs.gr[8];
}
}
}