diff options
| -rw-r--r-- | libc/sysdeps/linux/mips/bits/syscalls.h | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/mips/bits/syscalls.h b/libc/sysdeps/linux/mips/bits/syscalls.h index 787bb7d55..b8f80597e 100644 --- a/libc/sysdeps/linux/mips/bits/syscalls.h +++ b/libc/sysdeps/linux/mips/bits/syscalls.h @@ -29,6 +29,16 @@         }								\       result_var; }) +#define INLINE_SYSCALL_NOERR_NCS(name, nr, args...)			\ +({									\ +	INTERNAL_SYSCALL_DECL(err);					\ +	long res = INTERNAL_SYSCALL_NCS(name, err, nr, args);		\ +	if (unlikely(INTERNAL_SYSCALL_ERROR_P(res, err))) {		\ +	    res = -res;							\ +	}								\ +        res;								\ +}) +  #define INTERNAL_SYSCALL_DECL(err) long err attribute_unused  #define INTERNAL_SYSCALL_ERROR_P(val, err)   ((long) (err))  | 
