Description: Fix mips/mipsel syscall wrappers to return correct error values.
|
|
Author: Jurica Stanojkovic <Jurica.Stanojkovic@rt-rk.com>
|
|
Forwarded: no
|
|
Last-Update: 2012-09-24
|
|
|
|
|
|
diff -upNr a/src/syscall-mips.h b/src/syscall-mips.h
|
|
--- a/src/syscall-mips.h 2012-09-13 11:46:35.652286733 +0200
|
|
+++ b/src/syscall-mips.h 2012-09-13 16:09:17.964407909 +0200
|
|
@@ -76,7 +76,7 @@ type fname(atype a) \
|
|
\
|
|
if (__a3 == 0) \
|
|
return (type) __v0; \
|
|
- return (type) -1; \
|
|
+ return (type) 0 - __v0; \
|
|
}
|
|
|
|
#define io_syscall2(type,fname,sname,atype,a,btype,b) \
|
|
@@ -100,7 +100,7 @@ type fname(atype a, btype b) \
|
|
\
|
|
if (__a3 == 0) \
|
|
return (type) __v0; \
|
|
- return (type) -1; \
|
|
+ return (type) 0 - __v0; \
|
|
}
|
|
|
|
#define io_syscall3(type,fname,sname,atype,a,btype,b,ctype,c) \
|
|
@@ -125,7 +125,7 @@ type fname(atype a, btype b, ctype c) \
|
|
\
|
|
if (__a3 == 0) \
|
|
return (type) __v0; \
|
|
- return (type) -1; \
|
|
+ return (type) 0 - __v0; \
|
|
}
|
|
|
|
#define io_syscall4(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d) \
|
|
@@ -150,7 +150,7 @@ type fname(atype a, btype b, ctype c, dt
|
|
\
|
|
if (__a3 == 0) \
|
|
return (type) __v0; \
|
|
- return (type) -1; \
|
|
+ return (type) 0 - __v0; \
|
|
}
|
|
|
|
#if (_MIPS_SIM == _MIPS_SIM_ABI32)
|
|
@@ -186,7 +186,7 @@ type fname(atype a, btype b, ctype c, dt
|
|
\
|
|
if (__a3 == 0) \
|
|
return (type) __v0; \
|
|
- return (type) -1; \
|
|
+ return (type) 0 - __v0; \
|
|
}
|
|
|
|
#endif /* (_MIPS_SIM == _MIPS_SIM_ABI32) */
|
|
@@ -216,7 +216,7 @@ type fname (atype a,btype b,ctype c,dtyp
|
|
\
|
|
if (__a3 == 0) \
|
|
return (type) __v0; \
|
|
- return (type) -1; \
|
|
+ return (type) 0 - __v0; \
|
|
}
|
|
|
|
#endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */
|