summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel/linux-headers/files/unistd.h-i386-pic.patch')
-rw-r--r--sys-kernel/linux-headers/files/unistd.h-i386-pic.patch163
1 files changed, 163 insertions, 0 deletions
diff --git a/sys-kernel/linux-headers/files/unistd.h-i386-pic.patch b/sys-kernel/linux-headers/files/unistd.h-i386-pic.patch
new file mode 100644
index 000000000000..ab0b8ee31d0d
--- /dev/null
+++ b/sys-kernel/linux-headers/files/unistd.h-i386-pic.patch
@@ -0,0 +1,163 @@
+--- ./include/asm-i386/unistd.h.orig 2005-01-29 12:15:26.000000000 +0100
++++ ./include/asm-i386/unistd.h 2005-01-29 14:41:17.445762872 +0100
+@@ -314,6 +314,21 @@
+ __syscall_return(type,__res); \
+ }
+
++#ifdef __PIC__
++#define _syscall1(type,name,type1,arg1) \
++type name(type1 arg1) \
++{ \
++long __res; \
++__asm__ volatile (\
++ "pushl %%ebx\n\t" \
++ "movl %2,%%ebx\n\t" \
++ "int $0x80\n\t" \
++ "popl %%ebx\n\t" \
++ : "=a" (__res) \
++ : "0" (__NR_##name),"r" ((long)(arg1))); \
++__syscall_return(type,__res); \
++}
++#else
+ #define _syscall1(type,name,type1,arg1) \
+ type name(type1 arg1) \
+ { \
+@@ -323,7 +338,23 @@
+ : "0" (__NR_##name),"b" ((long)(arg1))); \
+ __syscall_return(type,__res); \
+ }
++#endif
+
++#ifdef __PIC__
++#define _syscall2(type,name,type1,arg1,type2,arg2) \
++type name(type1 arg1,type2 arg2) \
++{ \
++long __res; \
++__asm__ volatile (\
++ "pushl %%ebx\n\t" \
++ "movl %2,%%ebx\n\t" \
++ "int $0x80\n\t" \
++ "popl %%ebx\n\t" \
++ : "=a" (__res) \
++ : "0" (__NR_##name),"r" ((long)(arg1)),"c" ((long)(arg2))); \
++__syscall_return(type,__res); \
++}
++#else
+ #define _syscall2(type,name,type1,arg1,type2,arg2) \
+ type name(type1 arg1,type2 arg2) \
+ { \
+@@ -333,7 +364,24 @@
+ : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2))); \
+ __syscall_return(type,__res); \
+ }
++#endif
+
++#ifdef __PIC__
++#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
++type name(type1 arg1,type2 arg2,type3 arg3) \
++{ \
++long __res; \
++__asm__ volatile (\
++ "pushl %%ebx\n\t" \
++ "movl %2,%%ebx\n\t" \
++ "int $0x80\n\t" \
++ "popl %%ebx\n\t" \
++ : "=a" (__res) \
++ : "0" (__NR_##name),"r" ((long)(arg1)),"c" ((long)(arg2)), \
++ "d" ((long)(arg3))); \
++__syscall_return(type,__res); \
++}
++#else
+ #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
+ type name(type1 arg1,type2 arg2,type3 arg3) \
+ { \
+@@ -344,7 +392,24 @@
+ "d" ((long)(arg3))); \
+ __syscall_return(type,__res); \
+ }
++#endif
+
++#ifdef __PIC__
++#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
++type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
++{ \
++long __res; \
++__asm__ volatile (\
++ "pushl %%ebx\n\t" \
++ "movl %2,%%ebx\n\t" \
++ "int $0x80\n\t" \
++ "popl %%ebx\n\t" \
++ : "=a" (__res) \
++ : "0" (__NR_##name),"r" ((long)(arg1)),"c" ((long)(arg2)), \
++ "d" ((long)(arg3)),"S" ((long)(arg4))); \
++__syscall_return(type,__res); \
++}
++#else
+ #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
+ type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+ { \
+@@ -355,7 +420,25 @@
+ "d" ((long)(arg3)),"S" ((long)(arg4))); \
+ __syscall_return(type,__res); \
+ }
++#endif
+
++#ifdef __PIC__
++#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
++ type5,arg5) \
++type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
++{ \
++long __res; \
++__asm__ volatile (\
++ "pushl %%ebx\n\t" \
++ "movl %2,%%ebx\n\t" \
++ "int $0x80\n\t" \
++ "popl %%ebx\n\t" \
++ : "=a" (__res) \
++ : "0" (__NR_##name),"m" ((long)(arg1)),"c" ((long)(arg2)), \
++ "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \
++__syscall_return(type,__res); \
++}
++#else
+ #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
+ type5,arg5) \
+ type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
+@@ -367,7 +450,30 @@
+ "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \
+ __syscall_return(type,__res); \
+ }
++#endif
+
++#ifdef __PIC__
++#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) \
++{ \
++long __res; \
++__asm__ volatile (\
++ "pushl %%ebp\n\t" \
++ "movl %%eax,%%ebp\n\t" \
++ "movl %1,%%eax\n\t" \
++ "pushl %%ebx\n\t" \
++ "movl %2,%%ebx\n\t" \
++ "int $0x80\n\t" \
++ "popl %%ebx\n\t" \
++ "popl %%ebp\n\t" \
++ : "=a" (__res) \
++ : "i" (__NR_##name),"m" ((long)(arg1)),"c" ((long)(arg2)), \
++ "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5)), \
++ "0" ((long)(arg6))); \
++__syscall_return(type,__res); \
++}
++#else
+ #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) \
+@@ -380,6 +486,7 @@
+ "0" ((long)(arg6))); \
+ __syscall_return(type,__res); \
+ }
++#endif
+
+ #ifdef __KERNEL__
+ #define __ARCH_WANT_IPC_PARSE_VERSION