From fc7f191a1a0f290a4e808dd8f9bd58ba1dbd2be4 Mon Sep 17 00:00:00 2001
From: Otavio Salvador <otavio@ossystems.com.br>
Date: Sat, 29 Dec 2012 18:00:36 -0200
Subject: [PATCH 1/2] ext: Update to newer swap macros

The swap macros now use an internal temporary variable so we need to
adapt the code according.

Upstream-Status: Pending

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
 src/imx_ext.c |   16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/src/imx_ext.c b/src/imx_ext.c
index f12469a..710cba4 100644
--- a/src/imx_ext.c
+++ b/src/imx_ext.c
@@ -57,8 +57,6 @@ void imxExtInit()
 static int
 Proc_IMX_EXT_GetPixmapPhysAddr(ClientPtr client)
 {
-	int n;
-
 	REQUEST(xIMX_EXT_GetPixmapPhysAddrReq);
 	REQUEST_SIZE_MATCH(xIMX_EXT_GetPixmapPhysAddrReq);
 
@@ -96,10 +94,10 @@ Proc_IMX_EXT_GetPixmapPhysAddr(ClientPtr client)
 	/* Check if any reply values need byte swapping */
 	if (client->swapped) {
 
-		swaps(&rep.sequenceNumber, n);
-		swapl(&rep.length, n);
-		swapl(&rep.pixmapPhysAddr, n);
-		swapl(&rep.pixmapPitch, n);
+		swaps(&rep.sequenceNumber);
+		swapl(&rep.length);
+		swapl(&rep.pixmapPhysAddr);
+		swapl(&rep.pixmapPitch);
 	}
 
 	/* Reply to client */
@@ -123,16 +121,14 @@ Proc_IMX_EXT_Dispatch(ClientPtr client)
 static int
 SProc_IMX_EXT_GetPixmapPhysAddr(ClientPtr client)
 {
-	int n;
-
 	REQUEST(xIMX_EXT_GetPixmapPhysAddrReq);
 
 	/* Swap request message length and verify it is correct. */
-	swaps(&stuff->length, n);
+	swaps(&stuff->length);
 	REQUEST_SIZE_MATCH(xIMX_EXT_GetPixmapPhysAddrReq);
 
 	/* Swap remaining request message parameters. */
-	swapl(&stuff->pixmap, n);
+	swapl(&stuff->pixmap);
 
 	return Proc_IMX_EXT_GetPixmapPhysAddr(client);
 }
-- 
1.7.10.4

