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-config.h>
|
||||||
|
|
||||||
#include "dix/dix_priv.h"
|
#include "dix/dix_priv.h"
|
||||||
|
#include "dix/request_priv.h"
|
||||||
#include "Xext/panoramiXsrv.h"
|
#include "Xext/panoramiXsrv.h"
|
||||||
|
|
||||||
#include "compint.h"
|
#include "compint.h"
|
||||||
|
@ -99,6 +100,10 @@ FreeCompositeClientOverlay(void *value, XID ccwid)
|
||||||
static int
|
static int
|
||||||
ProcCompositeQueryVersion(ClientPtr client)
|
ProcCompositeQueryVersion(ClientPtr client)
|
||||||
{
|
{
|
||||||
|
REQUEST_HEAD_STRUCT(xCompositeQueryVersionReq);
|
||||||
|
REQUEST_FIELD_CARD32(majorVersion);
|
||||||
|
REQUEST_FIELD_CARD32(minorVersion);
|
||||||
|
|
||||||
CompositeClientPtr pCompositeClient = GetCompositeClient(client);
|
CompositeClientPtr pCompositeClient = GetCompositeClient(client);
|
||||||
xCompositeQueryVersionReply rep = {
|
xCompositeQueryVersionReply rep = {
|
||||||
.type = X_Reply,
|
.type = X_Reply,
|
||||||
|
@ -106,9 +111,6 @@ ProcCompositeQueryVersion(ClientPtr client)
|
||||||
.length = 0
|
.length = 0
|
||||||
};
|
};
|
||||||
|
|
||||||
REQUEST(xCompositeQueryVersionReq);
|
|
||||||
|
|
||||||
REQUEST_SIZE_MATCH(xCompositeQueryVersionReq);
|
|
||||||
if (stuff->majorVersion < SERVER_COMPOSITE_MAJOR_VERSION) {
|
if (stuff->majorVersion < SERVER_COMPOSITE_MAJOR_VERSION) {
|
||||||
rep.majorVersion = stuff->majorVersion;
|
rep.majorVersion = stuff->majorVersion;
|
||||||
rep.minorVersion = stuff->minorVersion;
|
rep.minorVersion = stuff->minorVersion;
|
||||||
|
@ -187,13 +189,14 @@ SingleCompositeUnredirectSubwindows(ClientPtr client, xCompositeUnredirectSubwin
|
||||||
static int
|
static int
|
||||||
ProcCompositeCreateRegionFromBorderClip(ClientPtr client)
|
ProcCompositeCreateRegionFromBorderClip(ClientPtr client)
|
||||||
{
|
{
|
||||||
|
REQUEST_HEAD_STRUCT(xCompositeCreateRegionFromBorderClipReq);
|
||||||
|
REQUEST_FIELD_CARD32(region);
|
||||||
|
REQUEST_FIELD_CARD32(window);
|
||||||
|
|
||||||
WindowPtr pWin;
|
WindowPtr pWin;
|
||||||
CompWindowPtr cw;
|
CompWindowPtr cw;
|
||||||
RegionPtr pBorderClip, pRegion;
|
RegionPtr pBorderClip, pRegion;
|
||||||
|
|
||||||
REQUEST(xCompositeCreateRegionFromBorderClipReq);
|
|
||||||
|
|
||||||
REQUEST_SIZE_MATCH(xCompositeCreateRegionFromBorderClipReq);
|
|
||||||
VERIFY_WINDOW(pWin, stuff->window, client, DixGetAttrAccess);
|
VERIFY_WINDOW(pWin, stuff->window, client, DixGetAttrAccess);
|
||||||
LEGAL_NEW_RESOURCE(stuff->region, client);
|
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 */
|
/** @see GetDefaultBytes */
|
||||||
static SizeType coreGetWindowBytes;
|
static SizeType coreGetWindowBytes;
|
||||||
|
|
||||||
|
@ -564,7 +455,7 @@ CompositeExtensionInit(void)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
extEntry = AddExtension(COMPOSITE_NAME, 0, 0,
|
extEntry = AddExtension(COMPOSITE_NAME, 0, 0,
|
||||||
ProcCompositeDispatch, SProcCompositeDispatch,
|
ProcCompositeDispatch, ProcCompositeDispatch,
|
||||||
NULL, StandardMinorOpcode);
|
NULL, StandardMinorOpcode);
|
||||||
if (!extEntry)
|
if (!extEntry)
|
||||||
return;
|
return;
|
||||||
|
@ -581,8 +472,8 @@ int (*PanoramiXSaveCompositeVector[CompositeNumberRequests]) (ClientPtr);
|
||||||
static int
|
static int
|
||||||
ProcCompositeRedirectWindow(ClientPtr client)
|
ProcCompositeRedirectWindow(ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xCompositeRedirectWindowReq);
|
REQUEST_HEAD_STRUCT(xCompositeRedirectWindowReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeRedirectWindowReq);
|
REQUEST_FIELD_CARD32(window);
|
||||||
|
|
||||||
#ifdef XINERAMA
|
#ifdef XINERAMA
|
||||||
if (!compositeUseXinerama)
|
if (!compositeUseXinerama)
|
||||||
|
@ -613,8 +504,8 @@ ProcCompositeRedirectWindow(ClientPtr client)
|
||||||
static int
|
static int
|
||||||
ProcCompositeRedirectSubwindows(ClientPtr client)
|
ProcCompositeRedirectSubwindows(ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xCompositeRedirectSubwindowsReq);
|
REQUEST_HEAD_STRUCT(xCompositeRedirectSubwindowsReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeRedirectSubwindowsReq);
|
REQUEST_FIELD_CARD32(window);
|
||||||
|
|
||||||
#ifdef XINERAMA
|
#ifdef XINERAMA
|
||||||
if (!compositeUseXinerama)
|
if (!compositeUseXinerama)
|
||||||
|
@ -645,8 +536,8 @@ ProcCompositeRedirectSubwindows(ClientPtr client)
|
||||||
static int
|
static int
|
||||||
ProcCompositeUnredirectWindow(ClientPtr client)
|
ProcCompositeUnredirectWindow(ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xCompositeUnredirectWindowReq);
|
REQUEST_HEAD_STRUCT(xCompositeUnredirectWindowReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeUnredirectWindowReq);
|
REQUEST_FIELD_CARD32(window);
|
||||||
|
|
||||||
#ifdef XINERAMA
|
#ifdef XINERAMA
|
||||||
if (!compositeUseXinerama)
|
if (!compositeUseXinerama)
|
||||||
|
@ -677,8 +568,8 @@ ProcCompositeUnredirectWindow(ClientPtr client)
|
||||||
static int
|
static int
|
||||||
ProcCompositeUnredirectSubwindows(ClientPtr client)
|
ProcCompositeUnredirectSubwindows(ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xCompositeUnredirectSubwindowsReq);
|
REQUEST_HEAD_STRUCT(xCompositeUnredirectSubwindowsReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeUnredirectSubwindowsReq);
|
REQUEST_FIELD_CARD32(window);
|
||||||
|
|
||||||
#ifdef XINERAMA
|
#ifdef XINERAMA
|
||||||
if (!compositeUseXinerama)
|
if (!compositeUseXinerama)
|
||||||
|
@ -709,8 +600,9 @@ ProcCompositeUnredirectSubwindows(ClientPtr client)
|
||||||
static int
|
static int
|
||||||
ProcCompositeNameWindowPixmap(ClientPtr client)
|
ProcCompositeNameWindowPixmap(ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xCompositeNameWindowPixmapReq);
|
REQUEST_HEAD_STRUCT(xCompositeNameWindowPixmapReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeNameWindowPixmapReq);
|
REQUEST_FIELD_CARD32(window);
|
||||||
|
REQUEST_FIELD_CARD32(pixmap);
|
||||||
|
|
||||||
#ifdef XINERAMA
|
#ifdef XINERAMA
|
||||||
if (!compositeUseXinerama)
|
if (!compositeUseXinerama)
|
||||||
|
@ -783,8 +675,8 @@ ProcCompositeNameWindowPixmap(ClientPtr client)
|
||||||
static int
|
static int
|
||||||
ProcCompositeGetOverlayWindow(ClientPtr client)
|
ProcCompositeGetOverlayWindow(ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xCompositeGetOverlayWindowReq);
|
REQUEST_HEAD_STRUCT(xCompositeGetOverlayWindowReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeGetOverlayWindowReq);
|
REQUEST_FIELD_CARD32(window);
|
||||||
|
|
||||||
#ifdef XINERAMA
|
#ifdef XINERAMA
|
||||||
if (!compositeUseXinerama)
|
if (!compositeUseXinerama)
|
||||||
|
@ -890,8 +782,8 @@ ProcCompositeGetOverlayWindow(ClientPtr client)
|
||||||
static int
|
static int
|
||||||
ProcCompositeReleaseOverlayWindow(ClientPtr client)
|
ProcCompositeReleaseOverlayWindow(ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xCompositeReleaseOverlayWindowReq);
|
REQUEST_HEAD_STRUCT(xCompositeReleaseOverlayWindowReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeReleaseOverlayWindowReq);
|
REQUEST_FIELD_CARD32(window);
|
||||||
|
|
||||||
#ifdef XINERAMA
|
#ifdef XINERAMA
|
||||||
if (!compositeUseXinerama)
|
if (!compositeUseXinerama)
|
||||||
|
|
Loading…
Reference in New Issue