ati: Updated 8.35.5 -> 8.37.6 (thanks to tilman)
This commit is contained in:
parent
39d38edfce
commit
31f9a0114d
@ -46,6 +46,8 @@ drwxr-xr-x root/root usr/lib/xorg/
|
||||
drwxr-xr-x root/root usr/lib/xorg/modules/
|
||||
drwxr-xr-x root/root usr/lib/xorg/modules/drivers/
|
||||
-rwxr-xr-x root/root usr/lib/xorg/modules/drivers/fglrx_drv.so
|
||||
-rw-r--r-- root/root usr/lib/xorg/modules/esut.a
|
||||
-rwxr-xr-x root/root usr/lib/xorg/modules/glesx.so
|
||||
drwxr-xr-x root/root usr/lib/xorg/modules/linux/
|
||||
-rwxr-xr-x root/root usr/lib/xorg/modules/linux/libfglrxdrm.so
|
||||
drwxr-xr-x root/root usr/man/
|
||||
|
@ -1,4 +1,2 @@
|
||||
5c4e56501fc8a698cdfce8a475eb51ae ati-2.6.20.patch
|
||||
0df9894e970fee8be2bfba4352bf0806 ati-8.35.5-2.6.20.patch
|
||||
c580c83cbf99007a4256fd40368cb2d9 ati-driver-installer-8.35.5-x86.x86_64.run
|
||||
e4d8a8b28ae298b673c492c34799d515 atieventsd.sh
|
||||
ebad4685199a9b3704237bc165de00d4 ati-driver-installer-8.37.6-x86.x86_64.run
|
||||
ff77a2be2912534c687b61f5e8888944 atieventsd
|
||||
|
104
ati/Pkgfile
104
ati/Pkgfile
@ -5,67 +5,51 @@
|
||||
# Depends on: mesa3d, gl-select
|
||||
|
||||
name=ati
|
||||
version=8.35.5
|
||||
version=8.37.6
|
||||
release=1
|
||||
source=(http://www2.ati.com/drivers/linux/$name-driver-installer-$version-x86.x86_64.run \
|
||||
ati-2.6.20.patch \
|
||||
ati-$version-2.6.20.patch \
|
||||
atieventsd.sh)
|
||||
atieventsd)
|
||||
|
||||
build() {
|
||||
march=x86
|
||||
# xorg-server 1.1 and its prereleases correspond to xorg 7.1
|
||||
if [ `pkg-config --modversion xorg-server | cut -d'.' -f2` -gt 0 ]; then
|
||||
xversion=x710
|
||||
else
|
||||
xversion=x690
|
||||
fi
|
||||
|
||||
chmod +x $name-driver-installer-$version-x86.x86_64.run
|
||||
./$name-driver-installer-$version-x86.x86_64.run --extract $SRC/tmp
|
||||
|
||||
# patch
|
||||
if [ "`uname -r | cut -d'.' -f1,2,3`" == "2.6.20" ]; then
|
||||
cd $SRC/tmp
|
||||
patch -Np0 -i $SRC/ati-2.6.20.patch
|
||||
patch `find $SRC -type f -name 'firegl_public.c'` \
|
||||
$SRC/ati-$version-2.6.20.patch
|
||||
fi
|
||||
|
||||
# make
|
||||
cd $SRC/tmp/common/lib/modules/fglrx/build_mod
|
||||
ln -s $SRC/tmp/arch/$march/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC4 .
|
||||
chmod +x make.sh
|
||||
./make.sh
|
||||
|
||||
# install kernel module
|
||||
install -d $PKG/lib/modules/`uname -r`/kernel/drivers/char/drm
|
||||
install -m 644 $SRC/tmp/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko \
|
||||
$PKG/lib/modules/`uname -r`/kernel/drivers/char/drm
|
||||
|
||||
# install xorg
|
||||
install -d $PKG/usr/{bin,sbin}
|
||||
install -m 0755 $SRC/tmp/arch/$march/usr/X11R6/bin/* $PKG/usr/bin
|
||||
install -m 0755 $SRC/tmp/arch/$march/usr/sbin/* $PKG/usr/sbin
|
||||
install -d $PKG/usr/lib/{dri,xorg/modules}
|
||||
install -m 0755 $SRC/tmp/arch/$march/usr/X11R6/lib/modules/dri/* \
|
||||
$PKG/usr/lib/dri
|
||||
rm -rf $SRC/tmp/arch/$march/usr/X11R6/lib/modules
|
||||
install -m 0775 $SRC/tmp/arch/$march/usr/X11R6/lib/* $PKG/usr/lib
|
||||
install -d $PKG/etc
|
||||
mv $SRC/tmp/common/etc/ati $PKG/etc/
|
||||
rm -f $PKG/etc/ati/logo*
|
||||
mv $SRC/tmp/common/usr/X11R6/include $PKG/usr/
|
||||
cp -a $SRC/tmp/common/usr/include/* $PKG/usr/include/
|
||||
install -m 0755 $SRC/tmp/common/usr/sbin/atigetsysteminfo.sh $PKG/usr/sbin
|
||||
mv $SRC/tmp/common/usr/share/man $PKG/usr/
|
||||
mv $SRC/tmp/$xversion/usr/X11R6/lib/modules/* $PKG/usr/lib/xorg/modules/
|
||||
# tune installation
|
||||
ln -sf /usr/lib/libfglrx_pp.so.1.0 $PKG/usr/lib/libfglrx_pp.so.1
|
||||
ln -sf /usr/lib/libfglrx_gamma.so.1.0 $PKG/usr/lib/libfglrx_gamma.so.1
|
||||
install -D -m 0755 $SRC/atieventsd.sh $PKG/etc/rc.d/atieventsd
|
||||
#install -D -m 0644 $SRC/tmp/common/usr/share/icons/ati.xpm \
|
||||
# $PKG/usr/share/icons/ati.xpm
|
||||
# required for use xorg-gl-select
|
||||
mv -v $PKG/usr/lib/libGL.so.1.2 $PKG/usr/lib/libGL_so_1_2_ati
|
||||
build() {
|
||||
chmod +x $name-driver-installer-$version-x86.x86_64.run
|
||||
./$name-driver-installer-${version}-x86.x86_64.run --extract ${SRC}/tmp
|
||||
|
||||
# make
|
||||
cd ${SRC}/tmp/common/lib/modules/fglrx/build_mod
|
||||
ln -s ${SRC}/tmp/arch/x86/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC4 .
|
||||
chmod +x make.sh
|
||||
./make.sh
|
||||
|
||||
# install kernel module
|
||||
install -D -m 0644 ${SRC}/tmp/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko \
|
||||
${PKG}/lib/modules/`uname -r`/kernel/drivers/char/drm/fglrx.ko
|
||||
|
||||
# install xorg
|
||||
install -d ${PKG}/usr/{bin,sbin}
|
||||
install -m 0755 ${SRC}/tmp/arch/x86/usr/X11R6/bin/* ${PKG}/usr/bin
|
||||
install -m 0755 ${SRC}/tmp/arch/x86/usr/sbin/* ${PKG}/usr/sbin
|
||||
install -d ${PKG}/usr/lib/{dri,xorg/modules}
|
||||
install -m 0755 ${SRC}/tmp/arch/x86/usr/X11R6/lib/modules/dri/* \
|
||||
${PKG}/usr/lib/dri
|
||||
rm -rf ${SRC}/tmp/arch/x86/usr/X11R6/lib/modules
|
||||
install -m 0775 ${SRC}/tmp/arch/x86/usr/X11R6/lib/* ${PKG}/usr/lib
|
||||
install -d ${PKG}/etc
|
||||
mv ${SRC}/tmp/common/etc/ati ${PKG}/etc/
|
||||
rm -f ${PKG}/etc/ati/logo*
|
||||
mv ${SRC}/tmp/common/usr/X11R6/include ${PKG}/usr/
|
||||
cp -a ${SRC}/tmp/common/usr/include/* ${PKG}/usr/include/
|
||||
install -m 0755 ${SRC}/tmp/common/usr/sbin/atigetsysteminfo.sh ${PKG}/usr/sbin
|
||||
mv ${SRC}/tmp/common/usr/share/man ${PKG}/usr/
|
||||
mv ${SRC}/tmp/x710/usr/X11R6/lib/modules/* ${PKG}/usr/lib/xorg/modules/
|
||||
|
||||
# finetune the installation
|
||||
ln -sf /usr/lib/libfglrx_pp.so.1.0 ${PKG}/usr/lib/libfglrx_pp.so.1
|
||||
ln -sf /usr/lib/libfglrx_gamma.so.1.0 ${PKG}/usr/lib/libfglrx_gamma.so.1
|
||||
install -D -m 0755 ${SRC}/atieventsd ${PKG}/etc/rc.d/atieventsd
|
||||
|
||||
# required for use xorg-gl-select
|
||||
mv -v ${PKG}/usr/lib/libGL.so.1.2 ${PKG}/usr/lib/libGL_so_1_2_ati
|
||||
# patching file to avoid X11R6 paths
|
||||
perl -pi -e "s/\0\/usr\/X11R6\/lib\/modules\/dri\0/\0\/usr\/lib\/dri\0padpadpadpadpa/" \
|
||||
${PKG}/usr/lib/libGL_so_1_2_ati
|
||||
}
|
||||
|
@ -1,73 +0,0 @@
|
||||
--- common/lib/modules/fglrx/build_mod/firegl_public.c 2006-12-18 10:58:15.000000000 -0500
|
||||
+++ common/lib/modules/fglrx/build_mod/firegl_public.c 2006-12-18 11:14:04.000000000 -0500
|
||||
@@ -181,6 +181,70 @@
|
||||
int errno;
|
||||
#endif // __ia64__
|
||||
|
||||
+#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
|
||||
+
|
||||
// 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);
|
@ -1,163 +0,0 @@
|
||||
-- firegl_public.c-orig 2007-02-21 19:56:45.000000000 -0500
|
||||
+++ firegl_public.c 2007-02-25 12:31:59.000000000 -0500
|
||||
@@ -119,6 +119,7 @@
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/delay.h>
|
||||
+#include <linux/freezer.h>
|
||||
#include <linux/console.h>
|
||||
|
||||
//#include <linux/signal.h>
|
||||
@@ -204,6 +205,70 @@
|
||||
int errno;
|
||||
#endif // __ia64__
|
||||
|
||||
+#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
|
||||
+
|
||||
// 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);
|
||||
@@ -4341,24 +4406,6 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
-/** \brief Freeze the thread if kernel requested so because of going to suspend
|
||||
- *
|
||||
- * \return Nonzero if freeze has been performed, zero otherwise
|
||||
- *
|
||||
- */
|
||||
-unsigned int kas_try_to_freeze(void)
|
||||
-{
|
||||
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,10)
|
||||
- return 0;
|
||||
-#else
|
||||
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,12)
|
||||
- return try_to_freeze(PF_FREEZE);
|
||||
-#else
|
||||
- return try_to_freeze();
|
||||
-#endif
|
||||
-#endif
|
||||
-}
|
||||
-
|
||||
/** \brief Storage for execution level(s) */
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
|
||||
/* SMP support for 2.6.0 and higher */
|
||||
@@ -4985,28 +5032,13 @@
|
||||
unsigned int ret = 0;
|
||||
kasSlabCache_t* slabcache_obj = (kasSlabCache_t*)hSlabCache;
|
||||
|
||||
- DBG_ENTER("0x%08X", hSlabCache);
|
||||
-
|
||||
- if (!(slabcache_obj->cache))
|
||||
- {
|
||||
- DBG_ERROR("slab object '%s' is not initialized");
|
||||
- DBG_LEAVE("0");
|
||||
- return 0;
|
||||
- }
|
||||
-
|
||||
- DBG_TRACE("destroying slab object '%s'", slabcache_obj->name);
|
||||
-
|
||||
- if (kmem_cache_destroy(slabcache_obj->cache) == 0)
|
||||
+ if (slabcache_obj->cache)
|
||||
{
|
||||
- ret = 1;
|
||||
+ kmem_cache_destroy(slabcache_obj->cache);
|
||||
slabcache_obj->cache = NULL;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- DBG_ERROR("destroying failed");
|
||||
+ ret = 1;
|
||||
}
|
||||
|
||||
- DBG_LEAVE("%d", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -5190,6 +5222,24 @@
|
||||
return 1;
|
||||
}
|
||||
|
||||
+/** \brief Freeze the thread if kernel requested so because of going to suspend
|
||||
+ *
|
||||
+ * \return Nonzero if freeze has been performed, zero otherwise
|
||||
+ *
|
||||
+ */
|
||||
+unsigned int kas_try_to_freeze(void)
|
||||
+{
|
||||
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,10)
|
||||
+ return 0;
|
||||
+#else
|
||||
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,12)
|
||||
+ return try_to_freeze(PF_FREEZE);
|
||||
+#else
|
||||
+ return try_to_freeze();
|
||||
+#endif
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
/** \brief Wait for the event
|
||||
*
|
||||
* If event is already signalled, return right away.
|
23
ati/atieventsd
Normal file
23
ati/atieventsd
Normal file
@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# /etc/rc.d/atieventsd: start/stop ATI external events daemon
|
||||
#
|
||||
|
||||
case $1 in
|
||||
start)
|
||||
/usr/sbin/atieventsd
|
||||
;;
|
||||
stop)
|
||||
killall -q /usr/sbin/atieventsd
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
sleep 2
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
echo "usage: $0 [start|stop|restart]"
|
||||
;;
|
||||
esac
|
||||
|
||||
# End of File
|
@ -1,23 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# /etc/rc.d/atieventsd: start/stop ATI external events daemon
|
||||
#
|
||||
|
||||
case $1 in
|
||||
start)
|
||||
/usr/sbin/atieventsd
|
||||
;;
|
||||
stop)
|
||||
killall -q /usr/sbin/atieventsd
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
sleep 2
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
echo "usage: $0 [start|stop|restart]"
|
||||
;;
|
||||
esac
|
||||
|
||||
# End of File
|
@ -1,85 +0,0 @@
|
||||
--- common/lib/modules/fglrx/build_mod/firegl_public.c 2006-12-18 10:58:15.000000000 -0500
|
||||
+++ common/lib/modules/fglrx/build_mod/firegl_public.c 2006-12-18 11:14:04.000000000 -0500
|
||||
@@ -181,6 +181,70 @@
|
||||
int errno;
|
||||
#endif // __ia64__
|
||||
|
||||
+#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
|
||||
+
|
||||
// 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);
|
||||
|
||||
--- common/lib/modules/fglrx/build_mod/firegl_public.c-orig 2007-01-21 23:09:10.027497362 -0600
|
||||
+++ common/lib/modules/fglrx/build_mod/firegl_public.c 2007-01-21 23:09:25.219179776 -0600
|
||||
@@ -5256,7 +5256,7 @@
|
||||
kasThread_t* thread_obj = (kasThread_t*)hThread;
|
||||
init_MUTEX(&(thread_obj->sleep_finished));
|
||||
init_waitqueue_head(&(thread_obj->wq_head));
|
||||
- INIT_WORK(&(thread_obj->work), routine, pcontext);
|
||||
+ INIT_WORK(&(thread_obj->work), routine);
|
||||
schedule_work(&(thread_obj->work));
|
||||
return 1;
|
||||
}
|
Loading…
Reference in New Issue
Block a user