static void get_error(struct tcb *tcp, const bool check_errno) { /* * The system call convention specifies that r2 contains the return * value on success or a positive error number on failure. A flag * indicating successful completion is written to r7; r7=0 indicates * the system call success, r7=1 indicates an error. The positive * errno value written in r2. */ if (nios2_regs.regs[7]) { tcp->u_rval = -1; tcp->u_error = nios2_regs.regs[2]; } else { tcp->u_rval = nios2_regs.regs[2]; } }