composite: use REQUEST_HEAD_STRUCT and REQUEST_FIELD_* macros
Use the new macros to make request struct parsing / field swapping much easier. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
parent
8ca929a021
commit
7baf8767a0
|
@ -44,6 +44,7 @@
|
|||
#include <dix-config.h>
|
||||
|
||||
#include "dix/dix_priv.h"
|
||||
#include "dix/request_priv.h"
|
||||
#include "Xext/panoramiXsrv.h"
|
||||
|
||||
#include "compint.h"
|
||||
|
@ -99,6 +100,10 @@ FreeCompositeClientOverlay(void *value, XID ccwid)
|
|||
static int
|
||||
ProcCompositeQueryVersion(ClientPtr client)
|
||||
{
|
||||
REQUEST_HEAD_STRUCT(xCompositeQueryVersionReq);
|
||||
REQUEST_FIELD_CARD32(majorVersion);
|
||||
REQUEST_FIELD_CARD32(minorVersion);
|
||||
|
||||
CompositeClientPtr pCompositeClient = GetCompositeClient(client);
|
||||
xCompositeQueryVersionReply rep = {
|
||||
.type = X_Reply,
|
||||
|
@ -106,9 +111,6 @@ ProcCompositeQueryVersion(ClientPtr client)
|
|||
.length = 0
|
||||
};
|
||||
|
||||
REQUEST(xCompositeQueryVersionReq);
|
||||
|
||||
REQUEST_SIZE_MATCH(xCompositeQueryVersionReq);
|
||||
if (stuff->majorVersion < SERVER_COMPOSITE_MAJOR_VERSION) {
|
||||
rep.majorVersion = stuff->majorVersion;
|
||||
rep.minorVersion = stuff->minorVersion;
|
||||
|
@ -187,13 +189,14 @@ SingleCompositeUnredirectSubwindows(ClientPtr client, xCompositeUnredirectSubwin
|
|||
static int
|
||||
ProcCompositeCreateRegionFromBorderClip(ClientPtr client)
|
||||
{
|
||||
REQUEST_HEAD_STRUCT(xCompositeCreateRegionFromBorderClipReq);
|
||||
REQUEST_FIELD_CARD32(region);
|
||||
REQUEST_FIELD_CARD32(window);
|
||||
|
||||
WindowPtr pWin;
|
||||
CompWindowPtr cw;
|
||||
RegionPtr pBorderClip, pRegion;
|
||||
|
||||
REQUEST(xCompositeCreateRegionFromBorderClipReq);
|
||||
|
||||
REQUEST_SIZE_MATCH(xCompositeCreateRegionFromBorderClipReq);
|
||||
VERIFY_WINDOW(pWin, stuff->window, client, DixGetAttrAccess);
|
||||
LEGAL_NEW_RESOURCE(stuff->region, client);
|
||||
|
||||
|
@ -375,118 +378,6 @@ ProcCompositeDispatch(ClientPtr client)
|
|||
}
|
||||
}
|
||||
|
||||
static int _X_COLD
|
||||
SProcCompositeQueryVersion(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeQueryVersionReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeQueryVersionReq);
|
||||
swapl(&stuff->majorVersion);
|
||||
swapl(&stuff->minorVersion);
|
||||
return ProcCompositeQueryVersion(client);
|
||||
}
|
||||
|
||||
static int _X_COLD
|
||||
SProcCompositeRedirectWindow(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeRedirectWindowReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeRedirectWindowReq);
|
||||
swapl(&stuff->window);
|
||||
return ProcCompositeRedirectWindow(client);
|
||||
}
|
||||
|
||||
static int _X_COLD
|
||||
SProcCompositeRedirectSubwindows(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeRedirectSubwindowsReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeRedirectSubwindowsReq);
|
||||
swapl(&stuff->window);
|
||||
return ProcCompositeRedirectSubwindows(client);
|
||||
}
|
||||
|
||||
static int _X_COLD
|
||||
SProcCompositeUnredirectWindow(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeUnredirectWindowReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeUnredirectWindowReq);
|
||||
swapl(&stuff->window);
|
||||
return ProcCompositeUnredirectWindow(client);
|
||||
}
|
||||
|
||||
static int _X_COLD
|
||||
SProcCompositeUnredirectSubwindows(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeUnredirectSubwindowsReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeUnredirectSubwindowsReq);
|
||||
swapl(&stuff->window);
|
||||
return ProcCompositeUnredirectSubwindows(client);
|
||||
}
|
||||
|
||||
static int _X_COLD
|
||||
SProcCompositeCreateRegionFromBorderClip(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeCreateRegionFromBorderClipReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeCreateRegionFromBorderClipReq);
|
||||
swapl(&stuff->region);
|
||||
swapl(&stuff->window);
|
||||
return ProcCompositeCreateRegionFromBorderClip(client);
|
||||
}
|
||||
|
||||
static int _X_COLD
|
||||
SProcCompositeNameWindowPixmap(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeNameWindowPixmapReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeNameWindowPixmapReq);
|
||||
swapl(&stuff->window);
|
||||
swapl(&stuff->pixmap);
|
||||
return ProcCompositeNameWindowPixmap(client);
|
||||
}
|
||||
|
||||
static int _X_COLD
|
||||
SProcCompositeGetOverlayWindow(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeGetOverlayWindowReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeGetOverlayWindowReq);
|
||||
swapl(&stuff->window);
|
||||
return ProcCompositeGetOverlayWindow(client);
|
||||
}
|
||||
|
||||
static int _X_COLD
|
||||
SProcCompositeReleaseOverlayWindow(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeReleaseOverlayWindowReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeReleaseOverlayWindowReq);
|
||||
swapl(&stuff->window);
|
||||
return ProcCompositeReleaseOverlayWindow(client);
|
||||
}
|
||||
|
||||
static int _X_COLD
|
||||
SProcCompositeDispatch(ClientPtr client)
|
||||
{
|
||||
REQUEST(xReq);
|
||||
switch (stuff->data) {
|
||||
case X_CompositeQueryVersion:
|
||||
return SProcCompositeQueryVersion(client);
|
||||
case X_CompositeRedirectWindow:
|
||||
return SProcCompositeRedirectWindow(client);
|
||||
case X_CompositeRedirectSubwindows:
|
||||
return SProcCompositeRedirectSubwindows(client);
|
||||
case X_CompositeUnredirectWindow:
|
||||
return SProcCompositeUnredirectWindow(client);
|
||||
case X_CompositeUnredirectSubwindows:
|
||||
return SProcCompositeUnredirectSubwindows(client);
|
||||
case X_CompositeCreateRegionFromBorderClip:
|
||||
return SProcCompositeCreateRegionFromBorderClip(client);
|
||||
case X_CompositeNameWindowPixmap:
|
||||
return SProcCompositeNameWindowPixmap(client);
|
||||
case X_CompositeGetOverlayWindow:
|
||||
return SProcCompositeGetOverlayWindow(client);
|
||||
case X_CompositeReleaseOverlayWindow:
|
||||
return SProcCompositeReleaseOverlayWindow(client);
|
||||
default:
|
||||
return BadRequest;
|
||||
}
|
||||
}
|
||||
|
||||
/** @see GetDefaultBytes */
|
||||
static SizeType coreGetWindowBytes;
|
||||
|
||||
|
@ -564,7 +455,7 @@ CompositeExtensionInit(void)
|
|||
return;
|
||||
|
||||
extEntry = AddExtension(COMPOSITE_NAME, 0, 0,
|
||||
ProcCompositeDispatch, SProcCompositeDispatch,
|
||||
ProcCompositeDispatch, ProcCompositeDispatch,
|
||||
NULL, StandardMinorOpcode);
|
||||
if (!extEntry)
|
||||
return;
|
||||
|
@ -581,8 +472,8 @@ int (*PanoramiXSaveCompositeVector[CompositeNumberRequests]) (ClientPtr);
|
|||
static int
|
||||
ProcCompositeRedirectWindow(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeRedirectWindowReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeRedirectWindowReq);
|
||||
REQUEST_HEAD_STRUCT(xCompositeRedirectWindowReq);
|
||||
REQUEST_FIELD_CARD32(window);
|
||||
|
||||
#ifdef XINERAMA
|
||||
if (!compositeUseXinerama)
|
||||
|
@ -613,8 +504,8 @@ ProcCompositeRedirectWindow(ClientPtr client)
|
|||
static int
|
||||
ProcCompositeRedirectSubwindows(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeRedirectSubwindowsReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeRedirectSubwindowsReq);
|
||||
REQUEST_HEAD_STRUCT(xCompositeRedirectSubwindowsReq);
|
||||
REQUEST_FIELD_CARD32(window);
|
||||
|
||||
#ifdef XINERAMA
|
||||
if (!compositeUseXinerama)
|
||||
|
@ -645,8 +536,8 @@ ProcCompositeRedirectSubwindows(ClientPtr client)
|
|||
static int
|
||||
ProcCompositeUnredirectWindow(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeUnredirectWindowReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeUnredirectWindowReq);
|
||||
REQUEST_HEAD_STRUCT(xCompositeUnredirectWindowReq);
|
||||
REQUEST_FIELD_CARD32(window);
|
||||
|
||||
#ifdef XINERAMA
|
||||
if (!compositeUseXinerama)
|
||||
|
@ -677,8 +568,8 @@ ProcCompositeUnredirectWindow(ClientPtr client)
|
|||
static int
|
||||
ProcCompositeUnredirectSubwindows(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeUnredirectSubwindowsReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeUnredirectSubwindowsReq);
|
||||
REQUEST_HEAD_STRUCT(xCompositeUnredirectSubwindowsReq);
|
||||
REQUEST_FIELD_CARD32(window);
|
||||
|
||||
#ifdef XINERAMA
|
||||
if (!compositeUseXinerama)
|
||||
|
@ -709,8 +600,9 @@ ProcCompositeUnredirectSubwindows(ClientPtr client)
|
|||
static int
|
||||
ProcCompositeNameWindowPixmap(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeNameWindowPixmapReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeNameWindowPixmapReq);
|
||||
REQUEST_HEAD_STRUCT(xCompositeNameWindowPixmapReq);
|
||||
REQUEST_FIELD_CARD32(window);
|
||||
REQUEST_FIELD_CARD32(pixmap);
|
||||
|
||||
#ifdef XINERAMA
|
||||
if (!compositeUseXinerama)
|
||||
|
@ -783,8 +675,8 @@ ProcCompositeNameWindowPixmap(ClientPtr client)
|
|||
static int
|
||||
ProcCompositeGetOverlayWindow(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeGetOverlayWindowReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeGetOverlayWindowReq);
|
||||
REQUEST_HEAD_STRUCT(xCompositeGetOverlayWindowReq);
|
||||
REQUEST_FIELD_CARD32(window);
|
||||
|
||||
#ifdef XINERAMA
|
||||
if (!compositeUseXinerama)
|
||||
|
@ -890,8 +782,8 @@ ProcCompositeGetOverlayWindow(ClientPtr client)
|
|||
static int
|
||||
ProcCompositeReleaseOverlayWindow(ClientPtr client)
|
||||
{
|
||||
REQUEST(xCompositeReleaseOverlayWindowReq);
|
||||
REQUEST_SIZE_MATCH(xCompositeReleaseOverlayWindowReq);
|
||||
REQUEST_HEAD_STRUCT(xCompositeReleaseOverlayWindowReq);
|
||||
REQUEST_FIELD_CARD32(window);
|
||||
|
||||
#ifdef XINERAMA
|
||||
if (!compositeUseXinerama)
|
||||
|
|
Loading…
Reference in New Issue