Sophie

Sophie

distrib > Mageia > 5 > x86_64 > by-pkgid > a5bd362e947dc28b69b7d28454104e86 > files > 6

libdrm-2.4.59-1.mga5.src.rpm

---
 xf86drm.h |   24 	23 +	1 -	0 !
 1 file changed, 23 insertions(+), 1 deletion(-)

Index: libdrm-2.4.9/xf86drm.h
===================================================================
--- libdrm-2.4.9.orig/xf86drm.h	2009-06-02 08:03:08.000000000 -0400
+++ libdrm-2.4.9/xf86drm.h	2009-06-02 08:10:38.000000000 -0400
@@ -422,6 +422,28 @@ do {	register unsigned int __old __asm("
 		: "cr0", "memory");			\
 	} while (0)
 
+#elif defined(__mips__)
+
+#define  DRM_CAS(lock, old, new, ret)				\
+	do {							\
+		__asm__ __volatile__(				\
+			"	.set mips3;.set noreorder;\n"	\
+			"	sync; \n"			\
+			"	ll	%1, %0;\n"		\
+			"	bne	%1, %2, 1f;\n"		\
+			"	li	%1, 1;\n"		\
+			"	move	%1, %3;\n"		\
+			"	sc	%1, %0;\n"		\
+			"	xori	%1, %1, 1;\n"		\
+			"1:\n"					\
+			"	.set mips0; .set reorder;\n"	\
+		: "=m" (__drm_dummy_lock(lock)),		\
+			"=&r" (ret)				\
+		: "r" (old),					\
+			"r" (new)				\
+		:"memory");					\
+	} while(0)
+
 #endif /* architecture */
 #endif /* __GNUC__ >= 2 */
 
@@ -431,7 +453,7 @@ do {	register unsigned int __old __asm("
 
 #if defined(__alpha__)
 #define DRM_CAS_RESULT(_result)		long _result
-#elif defined(__powerpc__)
+#elif defined(__powerpc__) || defined(__mips__)
 #define DRM_CAS_RESULT(_result)		int _result
 #else
 #define DRM_CAS_RESULT(_result)		char _result