svn commit: trunk/uClibc/libc/sysdeps/linux/i386/bits

vapier at uclibc.org vapier at uclibc.org
Thu Jan 5 00:51:48 UTC 2006


Author: vapier
Date: 2006-01-04 16:51:47 -0800 (Wed, 04 Jan 2006)
New Revision: 13088

Log:
implement syscall6

Modified:
   trunk/uClibc/libc/sysdeps/linux/i386/bits/syscalls.h


Changeset:
Modified: trunk/uClibc/libc/sysdeps/linux/i386/bits/syscalls.h
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/i386/bits/syscalls.h	2006-01-05 00:51:36 UTC (rev 13087)
+++ trunk/uClibc/libc/sysdeps/linux/i386/bits/syscalls.h	2006-01-05 00:51:47 UTC (rev 13088)
@@ -101,6 +101,14 @@
 return (type) (INLINE_SYSCALL(name, 5, arg1, arg2, arg3, arg4, arg5)); \
 }
 
+#undef _syscall6
+#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
+	  type5,arg5,type6,arg6) \
+type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, type6 arg6) \
+{ \
+return (type) (INLINE_SYSCALL(name, 6, arg1, arg2, arg3, arg4, arg5, arg6)); \
+}
+
 #define INLINE_SYSCALL(name, nr, args...) \
   ({									      \
     unsigned int resultvar;						      \
@@ -126,6 +134,7 @@
 #define LOADARGS_3	LOADARGS_1
 #define LOADARGS_4	LOADARGS_1
 #define LOADARGS_5	LOADARGS_1
+#define LOADARGS_6	LOADARGS_1 "push %%ebp ; movl %7, %%ebp\n\t"
 
 #define RESTOREARGS_0
 #define RESTOREARGS_1 \
@@ -134,6 +143,7 @@
 #define RESTOREARGS_3	RESTOREARGS_1
 #define RESTOREARGS_4	RESTOREARGS_1
 #define RESTOREARGS_5	RESTOREARGS_1
+#define RESTOREARGS_6	"pop %%ebp\n\t" RESTOREARGS_1
 
 #define ASMFMT_0()
 #define ASMFMT_1(arg1) \
@@ -146,6 +156,8 @@
 	, "aD" (arg1), "c" (arg2), "d" (arg3), "S" (arg4)
 #define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \
 	, "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5)
+#define ASMFMT_6(arg1, arg2, arg3, arg4, arg5, arg6) \
+	, "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "m" (arg6)
 
 #endif /* __ASSEMBLER__ */
 #endif /* _BITS_SYSCALLS_H */




More information about the uClibc-cvs mailing list