118 lines
3.5 KiB
Diff
118 lines
3.5 KiB
Diff
From c66ae235700f5efe64eb168327551b8f1d153c9c Mon Sep 17 00:00:00 2001
|
|
From: Michel Dänzer <michel.daenzer@amd.com>
|
|
Date: Mon, 13 Feb 2012 09:43:58 +0000
|
|
Subject: Handle new xorg_list API.
|
|
|
|
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=45937
|
|
|
|
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
|
|
---
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 29f129a..0083325 100644
|
|
--- configure.ac
|
|
+++ configure.ac
|
|
@@ -234,10 +234,18 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
|
|
[#include "xorg-server.h"])
|
|
|
|
AC_CHECK_HEADERS([list.h],
|
|
- [], [],
|
|
+ [have_list_h="yes"], [have_list_h="no"],
|
|
[#include <X11/Xdefs.h>
|
|
#include "xorg-server.h"])
|
|
|
|
+if test "x$have_list_h" = xyes; then
|
|
+ AC_CHECK_DECL(xorg_list_init,
|
|
+ [AC_DEFINE(HAVE_XORG_LIST, 1, [Have xorg_list API])], [],
|
|
+ [#include <X11/Xdefs.h>
|
|
+ #include "xorg-server.h"
|
|
+ #include "list.h"])
|
|
+fi
|
|
+
|
|
CPPFLAGS="$SAVE_CPPFLAGS"
|
|
|
|
AM_CONDITIONAL(USE_EXA, test "x$USE_EXA" = xyes)
|
|
diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
|
|
index 835575f..cf905a1 100644
|
|
--- src/radeon_dri2.c
|
|
+++ src/radeon_dri2.c
|
|
@@ -40,6 +40,13 @@
|
|
|
|
#if HAVE_LIST_H
|
|
#include "list.h"
|
|
+#if !HAVE_XORG_LIST
|
|
+#define xorg_list list
|
|
+#define xorg_list_init list_init
|
|
+#define xorg_list_add list_add
|
|
+#define xorg_list_del list_del
|
|
+#define xorg_list_for_each_entry list_for_each_entry
|
|
+#endif
|
|
#endif
|
|
|
|
#ifdef RADEON_DRI2
|
|
@@ -515,11 +522,11 @@ typedef struct _DRI2FrameEvent {
|
|
|
|
Bool valid;
|
|
|
|
- struct list link;
|
|
+ struct xorg_list link;
|
|
} DRI2FrameEventRec, *DRI2FrameEventPtr;
|
|
|
|
typedef struct _DRI2ClientEvents {
|
|
- struct list reference_list;
|
|
+ struct xorg_list reference_list;
|
|
} DRI2ClientEventsRec, *DRI2ClientEventsPtr;
|
|
|
|
#if HAS_DEVPRIVATEKEYREC
|
|
@@ -538,7 +545,7 @@ DevPrivateKey DRI2ClientEventsPrivateKey = &DRI2ClientEventsPrivateKeyIndex;
|
|
dixLookupPrivate(&(pClient)->devPrivates, DRI2ClientEventsPrivateKey))
|
|
|
|
static int
|
|
-ListAddDRI2ClientEvents(ClientPtr client, struct list *entry)
|
|
+ListAddDRI2ClientEvents(ClientPtr client, struct xorg_list *entry)
|
|
{
|
|
DRI2ClientEventsPtr pClientPriv;
|
|
pClientPriv = GetDRI2ClientEvents(client);
|
|
@@ -547,12 +554,12 @@ ListAddDRI2ClientEvents(ClientPtr client, struct list *entry)
|
|
return BadAlloc;
|
|
}
|
|
|
|
- list_add(entry, &pClientPriv->reference_list);
|
|
+ xorg_list_add(entry, &pClientPriv->reference_list);
|
|
return 0;
|
|
}
|
|
|
|
static void
|
|
-ListDelDRI2ClientEvents(ClientPtr client, struct list *entry)
|
|
+ListDelDRI2ClientEvents(ClientPtr client, struct xorg_list *entry)
|
|
{
|
|
DRI2ClientEventsPtr pClientPriv;
|
|
pClientPriv = GetDRI2ClientEvents(client);
|
|
@@ -560,7 +567,7 @@ ListDelDRI2ClientEvents(ClientPtr client, struct list *entry)
|
|
if (!pClientPriv) {
|
|
return;
|
|
}
|
|
- list_del(entry);
|
|
+ xorg_list_del(entry);
|
|
}
|
|
|
|
static void
|
|
@@ -574,7 +581,7 @@ radeon_dri2_client_state_changed(CallbackListPtr *ClientStateCallback, pointer d
|
|
|
|
switch (pClient->clientState) {
|
|
case ClientStateInitial:
|
|
- list_init(&pClientEventsPriv->reference_list);
|
|
+ xorg_list_init(&pClientEventsPriv->reference_list);
|
|
break;
|
|
case ClientStateRunning:
|
|
break;
|
|
@@ -582,7 +589,7 @@ radeon_dri2_client_state_changed(CallbackListPtr *ClientStateCallback, pointer d
|
|
case ClientStateRetained:
|
|
case ClientStateGone:
|
|
if (pClientEventsPriv) {
|
|
- list_for_each_entry(ref, &pClientEventsPriv->reference_list, link) {
|
|
+ xorg_list_for_each_entry(ref, &pClientEventsPriv->reference_list, link) {
|
|
ref->valid = FALSE;
|
|
}
|
|
}
|
|
--
|
|
cgit v0.9.0.2-2-gbebe
|