PERFORCE change 105346 for review
Oleksandr Tymoshenko
gonzo at FreeBSD.org
Wed Aug 30 18:39:26 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=105346
Change 105346 by gonzo at gonzo_hq on 2006/08/30 18:38:29
o Reorder defines that is we will have __sys_xxx as a syscall entry
point and _xxx, xxx as weak aliases for __sys_xxx.
Affected files ...
.. //depot/projects/mips2/src/lib/libc/mips/SYS.h#4 edit
Differences ...
==== //depot/projects/mips2/src/lib/libc/mips/SYS.h#4 (text+ko) ====
@@ -86,43 +86,44 @@
# define PIC_CALL(l,sr) j _C_LABEL(l)
#endif
-# define SYSTRAP(x) li v0,SYS_ ## x; syscall;
+# define SYSTRAP(x) li v0, SYS_ ## x; syscall;
/*
* Do a syscall that cannot fail (sync, get{p,u,g,eu,eg)id)
*/
#define RSYSCALL_NOERROR(x) \
- PSEUDO_NOERROR(x,x)
+ PSEUDO_NOERROR(x)
/*
* Do a normal syscall.
*/
#define RSYSCALL(x) \
- PSEUDO(x,x)
+ PSEUDO(x)
/*
- * Do a syscall that has an internal name and a weak external alias.
- */
-#define WSYSCALL(weak,strong) \
- WEAK_ALIAS(weak,strong); \
- PSEUDO(strong,weak)
-
-/*
* Do a renamed or pseudo syscall (e.g., _exit()), where the entrypoint
* and syscall name are not the same.
*/
-#define PSEUDO_NOERROR(x,y) \
-LEAF(x); \
- SYSTRAP(y); \
+#define PSEUDO_NOERROR(x) \
+LEAF(__sys_ ## x); \
+ .weak _C_LABEL(x); \
+ _C_LABEL(x) = _C_LABEL(__CONCAT(__sys_,x)); \
+ .weak _C_LABEL(__CONCAT(_,x)); \
+ _C_LABEL(__CONCAT(_,x)) = _C_LABEL(__CONCAT(__sys_,x)); \
+ SYSTRAP(x); \
j ra; \
- END(x)
+ END(__sys_ ## x)
-#define PSEUDO(x,y) \
-LEAF(x); \
+#define PSEUDO(x) \
+LEAF(__sys_ ## x); \
+ .weak _C_LABEL(x); \
+ _C_LABEL(x) = _C_LABEL(__CONCAT(__sys_,x)); \
+ .weak _C_LABEL(__CONCAT(_,x)); \
+ _C_LABEL(__CONCAT(_,x)) = _C_LABEL(__CONCAT(__sys_,x)); \
PIC_PROLOGUE(x,t9); \
- SYSTRAP(y); \
+ SYSTRAP(x); \
bne a3,zero,err; \
j ra; \
err: \
PIC_CALL(__cerror,t9); \
- END(x)
+ END(__sys_ ## x)
More information about the p4-projects
mailing list