+++ /dev/null
---- xorg-driver-video-fglrx-8.34.8/common/lib/modules/fglrx/build_mod/firegl_public.c.orig 2007-02-20 19:23:07.000000000 +0100
-+++ xorg-driver-video-fglrx-8.34.8/common/lib/modules/fglrx/build_mod/firegl_public.c 2007-02-23 12:55:25.645523715 +0100
-@@ -200,6 +200,72 @@
- int errno;
- #endif // __ia64__
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
-+#if defined(__i386__)
-+#define __syscall_return(type, res) \
-+do { \
-+ if ((unsigned long)(res) >= (unsigned long)(-(128 + 1))) { \
-+ errno = -(res); \
-+ res = -1; \
-+ } \
-+ return (type) (res); \
-+} while (0)
-+#define _syscall2(type,name,type1,arg1,type2,arg2) \
-+type name(type1 arg1,type2 arg2) \
-+{ \
-+long __res; \
-+__asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \
-+ : "=a" (__res) \
-+ : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)) \
-+ : "memory"); \
-+__syscall_return(type,__res); \
-+}
-+
-+#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
-+type name(type1 arg1,type2 arg2,type3 arg3) \
-+{ \
-+long __res; \
-+__asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \
-+ : "=a" (__res) \
-+ : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)), \
-+ "d" ((long)(arg3)) : "memory"); \
-+__syscall_return(type,__res); \
-+}
-+#elif defined(__x86_64__)
-+#define __syscall_clobber "r11","rcx","memory"
-+#define __syscall "syscall"
-+
-+#define __syscall_return(type, res) \
-+do { \
-+ if ((unsigned long)(res) >= (unsigned long)(-127)) { \
-+ errno = -(res); \
-+ res = -1; \
-+ } \
-+ return (type) (res); \
-+} while (0)
-+#define _syscall2(type,name,type1,arg1,type2,arg2) \
-+type name(type1 arg1,type2 arg2) \
-+{ \
-+long __res; \
-+__asm__ volatile (__syscall \
-+ : "=a" (__res) \
-+ : "0" (__NR_##name),"D" ((long)(arg1)),"S" ((long)(arg2)) : __syscall_clobber ); \
-+__syscall_return(type,__res); \
-+}
-+
-+#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
-+type name(type1 arg1,type2 arg2,type3 arg3) \
-+{ \
-+long __res; \
-+__asm__ volatile (__syscall \
-+ : "=a" (__res) \
-+ : "0" (__NR_##name),"D" ((long)(arg1)),"S" ((long)(arg2)), \
-+ "d" ((long)(arg3)) : __syscall_clobber); \
-+__syscall_return(type,__res); \
-+}
-+#endif
-+#endif
-+
- // int mlock(const void *addr, size_t len);
- _syscall2(int, mlock, const void *, addr, size_t, len )
- // int munlock(const void *addr, size_t len);