| 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]; | |
| } | |
| } |