diff options
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.patch | 163 |
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 |