1*4882a593Smuzhiyun /************************************************************
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun Copyright 1987, 1998 The Open Group
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun Permission to use, copy, modify, distribute, and sell this software and its
6*4882a593Smuzhiyun documentation for any purpose is hereby granted without fee, provided that
7*4882a593Smuzhiyun the above copyright notice appear in all copies and that both that
8*4882a593Smuzhiyun copyright notice and this permission notice appear in supporting
9*4882a593Smuzhiyun documentation.
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun The above copyright notice and this permission notice shall be included in
12*4882a593Smuzhiyun all copies or substantial portions of the Software.
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15*4882a593Smuzhiyun IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*4882a593Smuzhiyun FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17*4882a593Smuzhiyun OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18*4882a593Smuzhiyun AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19*4882a593Smuzhiyun CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun Except as contained in this notice, the name of The Open Group shall not be
22*4882a593Smuzhiyun used in advertising or otherwise to promote the sale, use or other dealings
23*4882a593Smuzhiyun in this Software without prior written authorization from The Open Group.
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun All Rights Reserved
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun Permission to use, copy, modify, and distribute this software and its
30*4882a593Smuzhiyun documentation for any purpose and without fee is hereby granted,
31*4882a593Smuzhiyun provided that the above copyright notice appear in all copies and that
32*4882a593Smuzhiyun both that copyright notice and this permission notice appear in
33*4882a593Smuzhiyun supporting documentation, and that the name of Digital not be
34*4882a593Smuzhiyun used in advertising or publicity pertaining to distribution of the
35*4882a593Smuzhiyun software without specific, written prior permission.
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
38*4882a593Smuzhiyun ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
39*4882a593Smuzhiyun DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
40*4882a593Smuzhiyun ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
41*4882a593Smuzhiyun WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
42*4882a593Smuzhiyun ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
43*4882a593Smuzhiyun SOFTWARE.
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun ********************************************************/
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun #ifdef HAVE_DIX_CONFIG_H
48*4882a593Smuzhiyun #include <dix-config.h>
49*4882a593Smuzhiyun #endif
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun #include <X11/X.h>
52*4882a593Smuzhiyun #include <X11/Xproto.h>
53*4882a593Smuzhiyun #include <X11/Xprotostr.h>
54*4882a593Smuzhiyun #include "misc.h"
55*4882a593Smuzhiyun #include "dixstruct.h"
56*4882a593Smuzhiyun #include "extnsionst.h" /* for SendEvent */
57*4882a593Smuzhiyun #include "swapreq.h"
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun /* Thanks to Jack Palevich for testing and subsequently rewriting all this */
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun /* Byte swap a list of longs */
62*4882a593Smuzhiyun void
SwapLongs(CARD32 * list,unsigned long count)63*4882a593Smuzhiyun SwapLongs(CARD32 *list, unsigned long count)
64*4882a593Smuzhiyun {
65*4882a593Smuzhiyun while (count >= 8) {
66*4882a593Smuzhiyun swapl(list + 0);
67*4882a593Smuzhiyun swapl(list + 1);
68*4882a593Smuzhiyun swapl(list + 2);
69*4882a593Smuzhiyun swapl(list + 3);
70*4882a593Smuzhiyun swapl(list + 4);
71*4882a593Smuzhiyun swapl(list + 5);
72*4882a593Smuzhiyun swapl(list + 6);
73*4882a593Smuzhiyun swapl(list + 7);
74*4882a593Smuzhiyun list += 8;
75*4882a593Smuzhiyun count -= 8;
76*4882a593Smuzhiyun }
77*4882a593Smuzhiyun if (count != 0) {
78*4882a593Smuzhiyun do {
79*4882a593Smuzhiyun swapl(list);
80*4882a593Smuzhiyun list++;
81*4882a593Smuzhiyun } while (--count != 0);
82*4882a593Smuzhiyun }
83*4882a593Smuzhiyun }
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun /* Byte swap a list of shorts */
86*4882a593Smuzhiyun void
SwapShorts(short * list,unsigned long count)87*4882a593Smuzhiyun SwapShorts(short *list, unsigned long count)
88*4882a593Smuzhiyun {
89*4882a593Smuzhiyun while (count >= 16) {
90*4882a593Smuzhiyun swaps(list + 0);
91*4882a593Smuzhiyun swaps(list + 1);
92*4882a593Smuzhiyun swaps(list + 2);
93*4882a593Smuzhiyun swaps(list + 3);
94*4882a593Smuzhiyun swaps(list + 4);
95*4882a593Smuzhiyun swaps(list + 5);
96*4882a593Smuzhiyun swaps(list + 6);
97*4882a593Smuzhiyun swaps(list + 7);
98*4882a593Smuzhiyun swaps(list + 8);
99*4882a593Smuzhiyun swaps(list + 9);
100*4882a593Smuzhiyun swaps(list + 10);
101*4882a593Smuzhiyun swaps(list + 11);
102*4882a593Smuzhiyun swaps(list + 12);
103*4882a593Smuzhiyun swaps(list + 13);
104*4882a593Smuzhiyun swaps(list + 14);
105*4882a593Smuzhiyun swaps(list + 15);
106*4882a593Smuzhiyun list += 16;
107*4882a593Smuzhiyun count -= 16;
108*4882a593Smuzhiyun }
109*4882a593Smuzhiyun if (count != 0) {
110*4882a593Smuzhiyun do {
111*4882a593Smuzhiyun swaps(list);
112*4882a593Smuzhiyun list++;
113*4882a593Smuzhiyun } while (--count != 0);
114*4882a593Smuzhiyun }
115*4882a593Smuzhiyun }
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun /* The following is used for all requests that have
118*4882a593Smuzhiyun no fields to be swapped (except "length") */
119*4882a593Smuzhiyun int _X_COLD
SProcSimpleReq(ClientPtr client)120*4882a593Smuzhiyun SProcSimpleReq(ClientPtr client)
121*4882a593Smuzhiyun {
122*4882a593Smuzhiyun REQUEST(xReq);
123*4882a593Smuzhiyun swaps(&stuff->length);
124*4882a593Smuzhiyun return (*ProcVector[stuff->reqType]) (client);
125*4882a593Smuzhiyun }
126*4882a593Smuzhiyun
127*4882a593Smuzhiyun /* The following is used for all requests that have
128*4882a593Smuzhiyun only a single 32-bit field to be swapped, coming
129*4882a593Smuzhiyun right after the "length" field */
130*4882a593Smuzhiyun int _X_COLD
SProcResourceReq(ClientPtr client)131*4882a593Smuzhiyun SProcResourceReq(ClientPtr client)
132*4882a593Smuzhiyun {
133*4882a593Smuzhiyun REQUEST(xResourceReq);
134*4882a593Smuzhiyun swaps(&stuff->length);
135*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xResourceReq); /* not EXACT */
136*4882a593Smuzhiyun swapl(&stuff->id);
137*4882a593Smuzhiyun return (*ProcVector[stuff->reqType]) (client);
138*4882a593Smuzhiyun }
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun int _X_COLD
SProcCreateWindow(ClientPtr client)141*4882a593Smuzhiyun SProcCreateWindow(ClientPtr client)
142*4882a593Smuzhiyun {
143*4882a593Smuzhiyun REQUEST(xCreateWindowReq);
144*4882a593Smuzhiyun swaps(&stuff->length);
145*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xCreateWindowReq);
146*4882a593Smuzhiyun swapl(&stuff->wid);
147*4882a593Smuzhiyun swapl(&stuff->parent);
148*4882a593Smuzhiyun swaps(&stuff->x);
149*4882a593Smuzhiyun swaps(&stuff->y);
150*4882a593Smuzhiyun swaps(&stuff->width);
151*4882a593Smuzhiyun swaps(&stuff->height);
152*4882a593Smuzhiyun swaps(&stuff->borderWidth);
153*4882a593Smuzhiyun swaps(&stuff->class);
154*4882a593Smuzhiyun swapl(&stuff->visual);
155*4882a593Smuzhiyun swapl(&stuff->mask);
156*4882a593Smuzhiyun SwapRestL(stuff);
157*4882a593Smuzhiyun return ((*ProcVector[X_CreateWindow]) (client));
158*4882a593Smuzhiyun }
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun int _X_COLD
SProcChangeWindowAttributes(ClientPtr client)161*4882a593Smuzhiyun SProcChangeWindowAttributes(ClientPtr client)
162*4882a593Smuzhiyun {
163*4882a593Smuzhiyun REQUEST(xChangeWindowAttributesReq);
164*4882a593Smuzhiyun swaps(&stuff->length);
165*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xChangeWindowAttributesReq);
166*4882a593Smuzhiyun swapl(&stuff->window);
167*4882a593Smuzhiyun swapl(&stuff->valueMask);
168*4882a593Smuzhiyun SwapRestL(stuff);
169*4882a593Smuzhiyun return ((*ProcVector[X_ChangeWindowAttributes]) (client));
170*4882a593Smuzhiyun }
171*4882a593Smuzhiyun
172*4882a593Smuzhiyun int _X_COLD
SProcReparentWindow(ClientPtr client)173*4882a593Smuzhiyun SProcReparentWindow(ClientPtr client)
174*4882a593Smuzhiyun {
175*4882a593Smuzhiyun REQUEST(xReparentWindowReq);
176*4882a593Smuzhiyun swaps(&stuff->length);
177*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xReparentWindowReq);
178*4882a593Smuzhiyun swapl(&stuff->window);
179*4882a593Smuzhiyun swapl(&stuff->parent);
180*4882a593Smuzhiyun swaps(&stuff->x);
181*4882a593Smuzhiyun swaps(&stuff->y);
182*4882a593Smuzhiyun return ((*ProcVector[X_ReparentWindow]) (client));
183*4882a593Smuzhiyun }
184*4882a593Smuzhiyun
185*4882a593Smuzhiyun int _X_COLD
SProcConfigureWindow(ClientPtr client)186*4882a593Smuzhiyun SProcConfigureWindow(ClientPtr client)
187*4882a593Smuzhiyun {
188*4882a593Smuzhiyun REQUEST(xConfigureWindowReq);
189*4882a593Smuzhiyun swaps(&stuff->length);
190*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xConfigureWindowReq);
191*4882a593Smuzhiyun swapl(&stuff->window);
192*4882a593Smuzhiyun swaps(&stuff->mask);
193*4882a593Smuzhiyun SwapRestL(stuff);
194*4882a593Smuzhiyun return ((*ProcVector[X_ConfigureWindow]) (client));
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun }
197*4882a593Smuzhiyun
198*4882a593Smuzhiyun int _X_COLD
SProcInternAtom(ClientPtr client)199*4882a593Smuzhiyun SProcInternAtom(ClientPtr client)
200*4882a593Smuzhiyun {
201*4882a593Smuzhiyun REQUEST(xInternAtomReq);
202*4882a593Smuzhiyun swaps(&stuff->length);
203*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xInternAtomReq);
204*4882a593Smuzhiyun swaps(&stuff->nbytes);
205*4882a593Smuzhiyun return ((*ProcVector[X_InternAtom]) (client));
206*4882a593Smuzhiyun }
207*4882a593Smuzhiyun
208*4882a593Smuzhiyun int _X_COLD
SProcChangeProperty(ClientPtr client)209*4882a593Smuzhiyun SProcChangeProperty(ClientPtr client)
210*4882a593Smuzhiyun {
211*4882a593Smuzhiyun REQUEST(xChangePropertyReq);
212*4882a593Smuzhiyun swaps(&stuff->length);
213*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xChangePropertyReq);
214*4882a593Smuzhiyun swapl(&stuff->window);
215*4882a593Smuzhiyun swapl(&stuff->property);
216*4882a593Smuzhiyun swapl(&stuff->type);
217*4882a593Smuzhiyun swapl(&stuff->nUnits);
218*4882a593Smuzhiyun switch (stuff->format) {
219*4882a593Smuzhiyun case 8:
220*4882a593Smuzhiyun break;
221*4882a593Smuzhiyun case 16:
222*4882a593Smuzhiyun SwapRestS(stuff);
223*4882a593Smuzhiyun break;
224*4882a593Smuzhiyun case 32:
225*4882a593Smuzhiyun SwapRestL(stuff);
226*4882a593Smuzhiyun break;
227*4882a593Smuzhiyun }
228*4882a593Smuzhiyun return ((*ProcVector[X_ChangeProperty]) (client));
229*4882a593Smuzhiyun }
230*4882a593Smuzhiyun
231*4882a593Smuzhiyun int _X_COLD
SProcDeleteProperty(ClientPtr client)232*4882a593Smuzhiyun SProcDeleteProperty(ClientPtr client)
233*4882a593Smuzhiyun {
234*4882a593Smuzhiyun REQUEST(xDeletePropertyReq);
235*4882a593Smuzhiyun swaps(&stuff->length);
236*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xDeletePropertyReq);
237*4882a593Smuzhiyun swapl(&stuff->window);
238*4882a593Smuzhiyun swapl(&stuff->property);
239*4882a593Smuzhiyun return ((*ProcVector[X_DeleteProperty]) (client));
240*4882a593Smuzhiyun
241*4882a593Smuzhiyun }
242*4882a593Smuzhiyun
243*4882a593Smuzhiyun int _X_COLD
SProcGetProperty(ClientPtr client)244*4882a593Smuzhiyun SProcGetProperty(ClientPtr client)
245*4882a593Smuzhiyun {
246*4882a593Smuzhiyun REQUEST(xGetPropertyReq);
247*4882a593Smuzhiyun swaps(&stuff->length);
248*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xGetPropertyReq);
249*4882a593Smuzhiyun swapl(&stuff->window);
250*4882a593Smuzhiyun swapl(&stuff->property);
251*4882a593Smuzhiyun swapl(&stuff->type);
252*4882a593Smuzhiyun swapl(&stuff->longOffset);
253*4882a593Smuzhiyun swapl(&stuff->longLength);
254*4882a593Smuzhiyun return ((*ProcVector[X_GetProperty]) (client));
255*4882a593Smuzhiyun }
256*4882a593Smuzhiyun
257*4882a593Smuzhiyun int _X_COLD
SProcSetSelectionOwner(ClientPtr client)258*4882a593Smuzhiyun SProcSetSelectionOwner(ClientPtr client)
259*4882a593Smuzhiyun {
260*4882a593Smuzhiyun REQUEST(xSetSelectionOwnerReq);
261*4882a593Smuzhiyun swaps(&stuff->length);
262*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xSetSelectionOwnerReq);
263*4882a593Smuzhiyun swapl(&stuff->window);
264*4882a593Smuzhiyun swapl(&stuff->selection);
265*4882a593Smuzhiyun swapl(&stuff->time);
266*4882a593Smuzhiyun return ((*ProcVector[X_SetSelectionOwner]) (client));
267*4882a593Smuzhiyun }
268*4882a593Smuzhiyun
269*4882a593Smuzhiyun int _X_COLD
SProcConvertSelection(ClientPtr client)270*4882a593Smuzhiyun SProcConvertSelection(ClientPtr client)
271*4882a593Smuzhiyun {
272*4882a593Smuzhiyun REQUEST(xConvertSelectionReq);
273*4882a593Smuzhiyun swaps(&stuff->length);
274*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xConvertSelectionReq);
275*4882a593Smuzhiyun swapl(&stuff->requestor);
276*4882a593Smuzhiyun swapl(&stuff->selection);
277*4882a593Smuzhiyun swapl(&stuff->target);
278*4882a593Smuzhiyun swapl(&stuff->property);
279*4882a593Smuzhiyun swapl(&stuff->time);
280*4882a593Smuzhiyun return ((*ProcVector[X_ConvertSelection]) (client));
281*4882a593Smuzhiyun }
282*4882a593Smuzhiyun
283*4882a593Smuzhiyun int _X_COLD
SProcSendEvent(ClientPtr client)284*4882a593Smuzhiyun SProcSendEvent(ClientPtr client)
285*4882a593Smuzhiyun {
286*4882a593Smuzhiyun xEvent eventT = { .u.u.type = 0 };
287*4882a593Smuzhiyun EventSwapPtr proc;
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun REQUEST(xSendEventReq);
290*4882a593Smuzhiyun swaps(&stuff->length);
291*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xSendEventReq);
292*4882a593Smuzhiyun swapl(&stuff->destination);
293*4882a593Smuzhiyun swapl(&stuff->eventMask);
294*4882a593Smuzhiyun
295*4882a593Smuzhiyun /* Generic events can have variable size, but SendEvent request holds
296*4882a593Smuzhiyun exactly 32B of event data. */
297*4882a593Smuzhiyun if (stuff->event.u.u.type == GenericEvent) {
298*4882a593Smuzhiyun client->errorValue = stuff->event.u.u.type;
299*4882a593Smuzhiyun return BadValue;
300*4882a593Smuzhiyun }
301*4882a593Smuzhiyun
302*4882a593Smuzhiyun /* Swap event */
303*4882a593Smuzhiyun proc = EventSwapVector[stuff->event.u.u.type & 0177];
304*4882a593Smuzhiyun if (!proc || proc == NotImplemented) /* no swapping proc; invalid event type? */
305*4882a593Smuzhiyun return BadValue;
306*4882a593Smuzhiyun (*proc) (&stuff->event, &eventT);
307*4882a593Smuzhiyun stuff->event = eventT;
308*4882a593Smuzhiyun
309*4882a593Smuzhiyun return ((*ProcVector[X_SendEvent]) (client));
310*4882a593Smuzhiyun }
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun int _X_COLD
SProcGrabPointer(ClientPtr client)313*4882a593Smuzhiyun SProcGrabPointer(ClientPtr client)
314*4882a593Smuzhiyun {
315*4882a593Smuzhiyun REQUEST(xGrabPointerReq);
316*4882a593Smuzhiyun swaps(&stuff->length);
317*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xGrabPointerReq);
318*4882a593Smuzhiyun swapl(&stuff->grabWindow);
319*4882a593Smuzhiyun swaps(&stuff->eventMask);
320*4882a593Smuzhiyun swapl(&stuff->confineTo);
321*4882a593Smuzhiyun swapl(&stuff->cursor);
322*4882a593Smuzhiyun swapl(&stuff->time);
323*4882a593Smuzhiyun return ((*ProcVector[X_GrabPointer]) (client));
324*4882a593Smuzhiyun }
325*4882a593Smuzhiyun
326*4882a593Smuzhiyun int _X_COLD
SProcGrabButton(ClientPtr client)327*4882a593Smuzhiyun SProcGrabButton(ClientPtr client)
328*4882a593Smuzhiyun {
329*4882a593Smuzhiyun REQUEST(xGrabButtonReq);
330*4882a593Smuzhiyun swaps(&stuff->length);
331*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xGrabButtonReq);
332*4882a593Smuzhiyun swapl(&stuff->grabWindow);
333*4882a593Smuzhiyun swaps(&stuff->eventMask);
334*4882a593Smuzhiyun swapl(&stuff->confineTo);
335*4882a593Smuzhiyun swapl(&stuff->cursor);
336*4882a593Smuzhiyun swaps(&stuff->modifiers);
337*4882a593Smuzhiyun return ((*ProcVector[X_GrabButton]) (client));
338*4882a593Smuzhiyun }
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun int _X_COLD
SProcUngrabButton(ClientPtr client)341*4882a593Smuzhiyun SProcUngrabButton(ClientPtr client)
342*4882a593Smuzhiyun {
343*4882a593Smuzhiyun REQUEST(xUngrabButtonReq);
344*4882a593Smuzhiyun swaps(&stuff->length);
345*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xUngrabButtonReq);
346*4882a593Smuzhiyun swapl(&stuff->grabWindow);
347*4882a593Smuzhiyun swaps(&stuff->modifiers);
348*4882a593Smuzhiyun return ((*ProcVector[X_UngrabButton]) (client));
349*4882a593Smuzhiyun }
350*4882a593Smuzhiyun
351*4882a593Smuzhiyun int _X_COLD
SProcChangeActivePointerGrab(ClientPtr client)352*4882a593Smuzhiyun SProcChangeActivePointerGrab(ClientPtr client)
353*4882a593Smuzhiyun {
354*4882a593Smuzhiyun REQUEST(xChangeActivePointerGrabReq);
355*4882a593Smuzhiyun swaps(&stuff->length);
356*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xChangeActivePointerGrabReq);
357*4882a593Smuzhiyun swapl(&stuff->cursor);
358*4882a593Smuzhiyun swapl(&stuff->time);
359*4882a593Smuzhiyun swaps(&stuff->eventMask);
360*4882a593Smuzhiyun return ((*ProcVector[X_ChangeActivePointerGrab]) (client));
361*4882a593Smuzhiyun }
362*4882a593Smuzhiyun
363*4882a593Smuzhiyun int _X_COLD
SProcGrabKeyboard(ClientPtr client)364*4882a593Smuzhiyun SProcGrabKeyboard(ClientPtr client)
365*4882a593Smuzhiyun {
366*4882a593Smuzhiyun REQUEST(xGrabKeyboardReq);
367*4882a593Smuzhiyun swaps(&stuff->length);
368*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xGrabKeyboardReq);
369*4882a593Smuzhiyun swapl(&stuff->grabWindow);
370*4882a593Smuzhiyun swapl(&stuff->time);
371*4882a593Smuzhiyun return ((*ProcVector[X_GrabKeyboard]) (client));
372*4882a593Smuzhiyun }
373*4882a593Smuzhiyun
374*4882a593Smuzhiyun int _X_COLD
SProcGrabKey(ClientPtr client)375*4882a593Smuzhiyun SProcGrabKey(ClientPtr client)
376*4882a593Smuzhiyun {
377*4882a593Smuzhiyun REQUEST(xGrabKeyReq);
378*4882a593Smuzhiyun swaps(&stuff->length);
379*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xGrabKeyReq);
380*4882a593Smuzhiyun swapl(&stuff->grabWindow);
381*4882a593Smuzhiyun swaps(&stuff->modifiers);
382*4882a593Smuzhiyun return ((*ProcVector[X_GrabKey]) (client));
383*4882a593Smuzhiyun }
384*4882a593Smuzhiyun
385*4882a593Smuzhiyun int _X_COLD
SProcUngrabKey(ClientPtr client)386*4882a593Smuzhiyun SProcUngrabKey(ClientPtr client)
387*4882a593Smuzhiyun {
388*4882a593Smuzhiyun REQUEST(xUngrabKeyReq);
389*4882a593Smuzhiyun swaps(&stuff->length);
390*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xUngrabKeyReq);
391*4882a593Smuzhiyun swapl(&stuff->grabWindow);
392*4882a593Smuzhiyun swaps(&stuff->modifiers);
393*4882a593Smuzhiyun return ((*ProcVector[X_UngrabKey]) (client));
394*4882a593Smuzhiyun }
395*4882a593Smuzhiyun
396*4882a593Smuzhiyun int _X_COLD
SProcGetMotionEvents(ClientPtr client)397*4882a593Smuzhiyun SProcGetMotionEvents(ClientPtr client)
398*4882a593Smuzhiyun {
399*4882a593Smuzhiyun REQUEST(xGetMotionEventsReq);
400*4882a593Smuzhiyun swaps(&stuff->length);
401*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xGetMotionEventsReq);
402*4882a593Smuzhiyun swapl(&stuff->window);
403*4882a593Smuzhiyun swapl(&stuff->start);
404*4882a593Smuzhiyun swapl(&stuff->stop);
405*4882a593Smuzhiyun return ((*ProcVector[X_GetMotionEvents]) (client));
406*4882a593Smuzhiyun }
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun int _X_COLD
SProcTranslateCoords(ClientPtr client)409*4882a593Smuzhiyun SProcTranslateCoords(ClientPtr client)
410*4882a593Smuzhiyun {
411*4882a593Smuzhiyun REQUEST(xTranslateCoordsReq);
412*4882a593Smuzhiyun swaps(&stuff->length);
413*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xTranslateCoordsReq);
414*4882a593Smuzhiyun swapl(&stuff->srcWid);
415*4882a593Smuzhiyun swapl(&stuff->dstWid);
416*4882a593Smuzhiyun swaps(&stuff->srcX);
417*4882a593Smuzhiyun swaps(&stuff->srcY);
418*4882a593Smuzhiyun return ((*ProcVector[X_TranslateCoords]) (client));
419*4882a593Smuzhiyun }
420*4882a593Smuzhiyun
421*4882a593Smuzhiyun int _X_COLD
SProcWarpPointer(ClientPtr client)422*4882a593Smuzhiyun SProcWarpPointer(ClientPtr client)
423*4882a593Smuzhiyun {
424*4882a593Smuzhiyun REQUEST(xWarpPointerReq);
425*4882a593Smuzhiyun swaps(&stuff->length);
426*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xWarpPointerReq);
427*4882a593Smuzhiyun swapl(&stuff->srcWid);
428*4882a593Smuzhiyun swapl(&stuff->dstWid);
429*4882a593Smuzhiyun swaps(&stuff->srcX);
430*4882a593Smuzhiyun swaps(&stuff->srcY);
431*4882a593Smuzhiyun swaps(&stuff->srcWidth);
432*4882a593Smuzhiyun swaps(&stuff->srcHeight);
433*4882a593Smuzhiyun swaps(&stuff->dstX);
434*4882a593Smuzhiyun swaps(&stuff->dstY);
435*4882a593Smuzhiyun return ((*ProcVector[X_WarpPointer]) (client));
436*4882a593Smuzhiyun }
437*4882a593Smuzhiyun
438*4882a593Smuzhiyun int _X_COLD
SProcSetInputFocus(ClientPtr client)439*4882a593Smuzhiyun SProcSetInputFocus(ClientPtr client)
440*4882a593Smuzhiyun {
441*4882a593Smuzhiyun REQUEST(xSetInputFocusReq);
442*4882a593Smuzhiyun swaps(&stuff->length);
443*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xSetInputFocusReq);
444*4882a593Smuzhiyun swapl(&stuff->focus);
445*4882a593Smuzhiyun swapl(&stuff->time);
446*4882a593Smuzhiyun return ((*ProcVector[X_SetInputFocus]) (client));
447*4882a593Smuzhiyun }
448*4882a593Smuzhiyun
449*4882a593Smuzhiyun int _X_COLD
SProcOpenFont(ClientPtr client)450*4882a593Smuzhiyun SProcOpenFont(ClientPtr client)
451*4882a593Smuzhiyun {
452*4882a593Smuzhiyun REQUEST(xOpenFontReq);
453*4882a593Smuzhiyun swaps(&stuff->length);
454*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xOpenFontReq);
455*4882a593Smuzhiyun swapl(&stuff->fid);
456*4882a593Smuzhiyun swaps(&stuff->nbytes);
457*4882a593Smuzhiyun return ((*ProcVector[X_OpenFont]) (client));
458*4882a593Smuzhiyun }
459*4882a593Smuzhiyun
460*4882a593Smuzhiyun int _X_COLD
SProcListFonts(ClientPtr client)461*4882a593Smuzhiyun SProcListFonts(ClientPtr client)
462*4882a593Smuzhiyun {
463*4882a593Smuzhiyun REQUEST(xListFontsReq);
464*4882a593Smuzhiyun swaps(&stuff->length);
465*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xListFontsReq);
466*4882a593Smuzhiyun swaps(&stuff->maxNames);
467*4882a593Smuzhiyun swaps(&stuff->nbytes);
468*4882a593Smuzhiyun return ((*ProcVector[X_ListFonts]) (client));
469*4882a593Smuzhiyun }
470*4882a593Smuzhiyun
471*4882a593Smuzhiyun int _X_COLD
SProcListFontsWithInfo(ClientPtr client)472*4882a593Smuzhiyun SProcListFontsWithInfo(ClientPtr client)
473*4882a593Smuzhiyun {
474*4882a593Smuzhiyun REQUEST(xListFontsWithInfoReq);
475*4882a593Smuzhiyun swaps(&stuff->length);
476*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xListFontsWithInfoReq);
477*4882a593Smuzhiyun swaps(&stuff->maxNames);
478*4882a593Smuzhiyun swaps(&stuff->nbytes);
479*4882a593Smuzhiyun return ((*ProcVector[X_ListFontsWithInfo]) (client));
480*4882a593Smuzhiyun }
481*4882a593Smuzhiyun
482*4882a593Smuzhiyun int _X_COLD
SProcSetFontPath(ClientPtr client)483*4882a593Smuzhiyun SProcSetFontPath(ClientPtr client)
484*4882a593Smuzhiyun {
485*4882a593Smuzhiyun REQUEST(xSetFontPathReq);
486*4882a593Smuzhiyun swaps(&stuff->length);
487*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xSetFontPathReq);
488*4882a593Smuzhiyun swaps(&stuff->nFonts);
489*4882a593Smuzhiyun return ((*ProcVector[X_SetFontPath]) (client));
490*4882a593Smuzhiyun }
491*4882a593Smuzhiyun
492*4882a593Smuzhiyun int _X_COLD
SProcCreatePixmap(ClientPtr client)493*4882a593Smuzhiyun SProcCreatePixmap(ClientPtr client)
494*4882a593Smuzhiyun {
495*4882a593Smuzhiyun REQUEST(xCreatePixmapReq);
496*4882a593Smuzhiyun
497*4882a593Smuzhiyun swaps(&stuff->length);
498*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xCreatePixmapReq);
499*4882a593Smuzhiyun swapl(&stuff->pid);
500*4882a593Smuzhiyun swapl(&stuff->drawable);
501*4882a593Smuzhiyun swaps(&stuff->width);
502*4882a593Smuzhiyun swaps(&stuff->height);
503*4882a593Smuzhiyun return ((*ProcVector[X_CreatePixmap]) (client));
504*4882a593Smuzhiyun }
505*4882a593Smuzhiyun
506*4882a593Smuzhiyun int _X_COLD
SProcCreateGC(ClientPtr client)507*4882a593Smuzhiyun SProcCreateGC(ClientPtr client)
508*4882a593Smuzhiyun {
509*4882a593Smuzhiyun REQUEST(xCreateGCReq);
510*4882a593Smuzhiyun swaps(&stuff->length);
511*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xCreateGCReq);
512*4882a593Smuzhiyun swapl(&stuff->gc);
513*4882a593Smuzhiyun swapl(&stuff->drawable);
514*4882a593Smuzhiyun swapl(&stuff->mask);
515*4882a593Smuzhiyun SwapRestL(stuff);
516*4882a593Smuzhiyun return ((*ProcVector[X_CreateGC]) (client));
517*4882a593Smuzhiyun }
518*4882a593Smuzhiyun
519*4882a593Smuzhiyun int _X_COLD
SProcChangeGC(ClientPtr client)520*4882a593Smuzhiyun SProcChangeGC(ClientPtr client)
521*4882a593Smuzhiyun {
522*4882a593Smuzhiyun REQUEST(xChangeGCReq);
523*4882a593Smuzhiyun swaps(&stuff->length);
524*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xChangeGCReq);
525*4882a593Smuzhiyun swapl(&stuff->gc);
526*4882a593Smuzhiyun swapl(&stuff->mask);
527*4882a593Smuzhiyun SwapRestL(stuff);
528*4882a593Smuzhiyun return ((*ProcVector[X_ChangeGC]) (client));
529*4882a593Smuzhiyun }
530*4882a593Smuzhiyun
531*4882a593Smuzhiyun int _X_COLD
SProcCopyGC(ClientPtr client)532*4882a593Smuzhiyun SProcCopyGC(ClientPtr client)
533*4882a593Smuzhiyun {
534*4882a593Smuzhiyun REQUEST(xCopyGCReq);
535*4882a593Smuzhiyun swaps(&stuff->length);
536*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xCopyGCReq);
537*4882a593Smuzhiyun swapl(&stuff->srcGC);
538*4882a593Smuzhiyun swapl(&stuff->dstGC);
539*4882a593Smuzhiyun swapl(&stuff->mask);
540*4882a593Smuzhiyun return ((*ProcVector[X_CopyGC]) (client));
541*4882a593Smuzhiyun }
542*4882a593Smuzhiyun
543*4882a593Smuzhiyun int _X_COLD
SProcSetDashes(ClientPtr client)544*4882a593Smuzhiyun SProcSetDashes(ClientPtr client)
545*4882a593Smuzhiyun {
546*4882a593Smuzhiyun REQUEST(xSetDashesReq);
547*4882a593Smuzhiyun swaps(&stuff->length);
548*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xSetDashesReq);
549*4882a593Smuzhiyun swapl(&stuff->gc);
550*4882a593Smuzhiyun swaps(&stuff->dashOffset);
551*4882a593Smuzhiyun swaps(&stuff->nDashes);
552*4882a593Smuzhiyun return ((*ProcVector[X_SetDashes]) (client));
553*4882a593Smuzhiyun
554*4882a593Smuzhiyun }
555*4882a593Smuzhiyun
556*4882a593Smuzhiyun int _X_COLD
SProcSetClipRectangles(ClientPtr client)557*4882a593Smuzhiyun SProcSetClipRectangles(ClientPtr client)
558*4882a593Smuzhiyun {
559*4882a593Smuzhiyun REQUEST(xSetClipRectanglesReq);
560*4882a593Smuzhiyun swaps(&stuff->length);
561*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xSetClipRectanglesReq);
562*4882a593Smuzhiyun swapl(&stuff->gc);
563*4882a593Smuzhiyun swaps(&stuff->xOrigin);
564*4882a593Smuzhiyun swaps(&stuff->yOrigin);
565*4882a593Smuzhiyun SwapRestS(stuff);
566*4882a593Smuzhiyun return ((*ProcVector[X_SetClipRectangles]) (client));
567*4882a593Smuzhiyun }
568*4882a593Smuzhiyun
569*4882a593Smuzhiyun int _X_COLD
SProcClearToBackground(ClientPtr client)570*4882a593Smuzhiyun SProcClearToBackground(ClientPtr client)
571*4882a593Smuzhiyun {
572*4882a593Smuzhiyun REQUEST(xClearAreaReq);
573*4882a593Smuzhiyun swaps(&stuff->length);
574*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xClearAreaReq);
575*4882a593Smuzhiyun swapl(&stuff->window);
576*4882a593Smuzhiyun swaps(&stuff->x);
577*4882a593Smuzhiyun swaps(&stuff->y);
578*4882a593Smuzhiyun swaps(&stuff->width);
579*4882a593Smuzhiyun swaps(&stuff->height);
580*4882a593Smuzhiyun return ((*ProcVector[X_ClearArea]) (client));
581*4882a593Smuzhiyun }
582*4882a593Smuzhiyun
583*4882a593Smuzhiyun int _X_COLD
SProcCopyArea(ClientPtr client)584*4882a593Smuzhiyun SProcCopyArea(ClientPtr client)
585*4882a593Smuzhiyun {
586*4882a593Smuzhiyun REQUEST(xCopyAreaReq);
587*4882a593Smuzhiyun swaps(&stuff->length);
588*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xCopyAreaReq);
589*4882a593Smuzhiyun swapl(&stuff->srcDrawable);
590*4882a593Smuzhiyun swapl(&stuff->dstDrawable);
591*4882a593Smuzhiyun swapl(&stuff->gc);
592*4882a593Smuzhiyun swaps(&stuff->srcX);
593*4882a593Smuzhiyun swaps(&stuff->srcY);
594*4882a593Smuzhiyun swaps(&stuff->dstX);
595*4882a593Smuzhiyun swaps(&stuff->dstY);
596*4882a593Smuzhiyun swaps(&stuff->width);
597*4882a593Smuzhiyun swaps(&stuff->height);
598*4882a593Smuzhiyun return ((*ProcVector[X_CopyArea]) (client));
599*4882a593Smuzhiyun }
600*4882a593Smuzhiyun
601*4882a593Smuzhiyun int _X_COLD
SProcCopyPlane(ClientPtr client)602*4882a593Smuzhiyun SProcCopyPlane(ClientPtr client)
603*4882a593Smuzhiyun {
604*4882a593Smuzhiyun REQUEST(xCopyPlaneReq);
605*4882a593Smuzhiyun swaps(&stuff->length);
606*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xCopyPlaneReq);
607*4882a593Smuzhiyun swapl(&stuff->srcDrawable);
608*4882a593Smuzhiyun swapl(&stuff->dstDrawable);
609*4882a593Smuzhiyun swapl(&stuff->gc);
610*4882a593Smuzhiyun swaps(&stuff->srcX);
611*4882a593Smuzhiyun swaps(&stuff->srcY);
612*4882a593Smuzhiyun swaps(&stuff->dstX);
613*4882a593Smuzhiyun swaps(&stuff->dstY);
614*4882a593Smuzhiyun swaps(&stuff->width);
615*4882a593Smuzhiyun swaps(&stuff->height);
616*4882a593Smuzhiyun swapl(&stuff->bitPlane);
617*4882a593Smuzhiyun return ((*ProcVector[X_CopyPlane]) (client));
618*4882a593Smuzhiyun }
619*4882a593Smuzhiyun
620*4882a593Smuzhiyun /* The following routine is used for all Poly drawing requests
621*4882a593Smuzhiyun (except FillPoly, which uses a different request format) */
622*4882a593Smuzhiyun int _X_COLD
SProcPoly(ClientPtr client)623*4882a593Smuzhiyun SProcPoly(ClientPtr client)
624*4882a593Smuzhiyun {
625*4882a593Smuzhiyun REQUEST(xPolyPointReq);
626*4882a593Smuzhiyun swaps(&stuff->length);
627*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xPolyPointReq);
628*4882a593Smuzhiyun swapl(&stuff->drawable);
629*4882a593Smuzhiyun swapl(&stuff->gc);
630*4882a593Smuzhiyun SwapRestS(stuff);
631*4882a593Smuzhiyun return ((*ProcVector[stuff->reqType]) (client));
632*4882a593Smuzhiyun }
633*4882a593Smuzhiyun
634*4882a593Smuzhiyun /* cannot use SProcPoly for this one, because xFillPolyReq
635*4882a593Smuzhiyun is longer than xPolyPointReq, and we don't want to swap
636*4882a593Smuzhiyun the difference as shorts! */
637*4882a593Smuzhiyun int _X_COLD
SProcFillPoly(ClientPtr client)638*4882a593Smuzhiyun SProcFillPoly(ClientPtr client)
639*4882a593Smuzhiyun {
640*4882a593Smuzhiyun REQUEST(xFillPolyReq);
641*4882a593Smuzhiyun swaps(&stuff->length);
642*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xFillPolyReq);
643*4882a593Smuzhiyun swapl(&stuff->drawable);
644*4882a593Smuzhiyun swapl(&stuff->gc);
645*4882a593Smuzhiyun SwapRestS(stuff);
646*4882a593Smuzhiyun return ((*ProcVector[X_FillPoly]) (client));
647*4882a593Smuzhiyun }
648*4882a593Smuzhiyun
649*4882a593Smuzhiyun int _X_COLD
SProcPutImage(ClientPtr client)650*4882a593Smuzhiyun SProcPutImage(ClientPtr client)
651*4882a593Smuzhiyun {
652*4882a593Smuzhiyun REQUEST(xPutImageReq);
653*4882a593Smuzhiyun swaps(&stuff->length);
654*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xPutImageReq);
655*4882a593Smuzhiyun swapl(&stuff->drawable);
656*4882a593Smuzhiyun swapl(&stuff->gc);
657*4882a593Smuzhiyun swaps(&stuff->width);
658*4882a593Smuzhiyun swaps(&stuff->height);
659*4882a593Smuzhiyun swaps(&stuff->dstX);
660*4882a593Smuzhiyun swaps(&stuff->dstY);
661*4882a593Smuzhiyun /* Image should already be swapped */
662*4882a593Smuzhiyun return ((*ProcVector[X_PutImage]) (client));
663*4882a593Smuzhiyun
664*4882a593Smuzhiyun }
665*4882a593Smuzhiyun
666*4882a593Smuzhiyun int _X_COLD
SProcGetImage(ClientPtr client)667*4882a593Smuzhiyun SProcGetImage(ClientPtr client)
668*4882a593Smuzhiyun {
669*4882a593Smuzhiyun REQUEST(xGetImageReq);
670*4882a593Smuzhiyun swaps(&stuff->length);
671*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xGetImageReq);
672*4882a593Smuzhiyun swapl(&stuff->drawable);
673*4882a593Smuzhiyun swaps(&stuff->x);
674*4882a593Smuzhiyun swaps(&stuff->y);
675*4882a593Smuzhiyun swaps(&stuff->width);
676*4882a593Smuzhiyun swaps(&stuff->height);
677*4882a593Smuzhiyun swapl(&stuff->planeMask);
678*4882a593Smuzhiyun return ((*ProcVector[X_GetImage]) (client));
679*4882a593Smuzhiyun }
680*4882a593Smuzhiyun
681*4882a593Smuzhiyun /* ProcPolyText used for both PolyText8 and PolyText16 */
682*4882a593Smuzhiyun
683*4882a593Smuzhiyun int _X_COLD
SProcPolyText(ClientPtr client)684*4882a593Smuzhiyun SProcPolyText(ClientPtr client)
685*4882a593Smuzhiyun {
686*4882a593Smuzhiyun REQUEST(xPolyTextReq);
687*4882a593Smuzhiyun swaps(&stuff->length);
688*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xPolyTextReq);
689*4882a593Smuzhiyun swapl(&stuff->drawable);
690*4882a593Smuzhiyun swapl(&stuff->gc);
691*4882a593Smuzhiyun swaps(&stuff->x);
692*4882a593Smuzhiyun swaps(&stuff->y);
693*4882a593Smuzhiyun return ((*ProcVector[stuff->reqType]) (client));
694*4882a593Smuzhiyun }
695*4882a593Smuzhiyun
696*4882a593Smuzhiyun /* ProcImageText used for both ImageText8 and ImageText16 */
697*4882a593Smuzhiyun
698*4882a593Smuzhiyun int _X_COLD
SProcImageText(ClientPtr client)699*4882a593Smuzhiyun SProcImageText(ClientPtr client)
700*4882a593Smuzhiyun {
701*4882a593Smuzhiyun REQUEST(xImageTextReq);
702*4882a593Smuzhiyun swaps(&stuff->length);
703*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xImageTextReq);
704*4882a593Smuzhiyun swapl(&stuff->drawable);
705*4882a593Smuzhiyun swapl(&stuff->gc);
706*4882a593Smuzhiyun swaps(&stuff->x);
707*4882a593Smuzhiyun swaps(&stuff->y);
708*4882a593Smuzhiyun return ((*ProcVector[stuff->reqType]) (client));
709*4882a593Smuzhiyun }
710*4882a593Smuzhiyun
711*4882a593Smuzhiyun int _X_COLD
SProcCreateColormap(ClientPtr client)712*4882a593Smuzhiyun SProcCreateColormap(ClientPtr client)
713*4882a593Smuzhiyun {
714*4882a593Smuzhiyun REQUEST(xCreateColormapReq);
715*4882a593Smuzhiyun swaps(&stuff->length);
716*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xCreateColormapReq);
717*4882a593Smuzhiyun swapl(&stuff->mid);
718*4882a593Smuzhiyun swapl(&stuff->window);
719*4882a593Smuzhiyun swapl(&stuff->visual);
720*4882a593Smuzhiyun return ((*ProcVector[X_CreateColormap]) (client));
721*4882a593Smuzhiyun }
722*4882a593Smuzhiyun
723*4882a593Smuzhiyun int _X_COLD
SProcCopyColormapAndFree(ClientPtr client)724*4882a593Smuzhiyun SProcCopyColormapAndFree(ClientPtr client)
725*4882a593Smuzhiyun {
726*4882a593Smuzhiyun REQUEST(xCopyColormapAndFreeReq);
727*4882a593Smuzhiyun swaps(&stuff->length);
728*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xCopyColormapAndFreeReq);
729*4882a593Smuzhiyun swapl(&stuff->mid);
730*4882a593Smuzhiyun swapl(&stuff->srcCmap);
731*4882a593Smuzhiyun return ((*ProcVector[X_CopyColormapAndFree]) (client));
732*4882a593Smuzhiyun
733*4882a593Smuzhiyun }
734*4882a593Smuzhiyun
735*4882a593Smuzhiyun int _X_COLD
SProcAllocColor(ClientPtr client)736*4882a593Smuzhiyun SProcAllocColor(ClientPtr client)
737*4882a593Smuzhiyun {
738*4882a593Smuzhiyun REQUEST(xAllocColorReq);
739*4882a593Smuzhiyun swaps(&stuff->length);
740*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xAllocColorReq);
741*4882a593Smuzhiyun swapl(&stuff->cmap);
742*4882a593Smuzhiyun swaps(&stuff->red);
743*4882a593Smuzhiyun swaps(&stuff->green);
744*4882a593Smuzhiyun swaps(&stuff->blue);
745*4882a593Smuzhiyun return ((*ProcVector[X_AllocColor]) (client));
746*4882a593Smuzhiyun }
747*4882a593Smuzhiyun
748*4882a593Smuzhiyun int _X_COLD
SProcAllocNamedColor(ClientPtr client)749*4882a593Smuzhiyun SProcAllocNamedColor(ClientPtr client)
750*4882a593Smuzhiyun {
751*4882a593Smuzhiyun REQUEST(xAllocNamedColorReq);
752*4882a593Smuzhiyun swaps(&stuff->length);
753*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xAllocNamedColorReq);
754*4882a593Smuzhiyun swapl(&stuff->cmap);
755*4882a593Smuzhiyun swaps(&stuff->nbytes);
756*4882a593Smuzhiyun return ((*ProcVector[X_AllocNamedColor]) (client));
757*4882a593Smuzhiyun }
758*4882a593Smuzhiyun
759*4882a593Smuzhiyun int _X_COLD
SProcAllocColorCells(ClientPtr client)760*4882a593Smuzhiyun SProcAllocColorCells(ClientPtr client)
761*4882a593Smuzhiyun {
762*4882a593Smuzhiyun REQUEST(xAllocColorCellsReq);
763*4882a593Smuzhiyun swaps(&stuff->length);
764*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xAllocColorCellsReq);
765*4882a593Smuzhiyun swapl(&stuff->cmap);
766*4882a593Smuzhiyun swaps(&stuff->colors);
767*4882a593Smuzhiyun swaps(&stuff->planes);
768*4882a593Smuzhiyun return ((*ProcVector[X_AllocColorCells]) (client));
769*4882a593Smuzhiyun }
770*4882a593Smuzhiyun
771*4882a593Smuzhiyun int _X_COLD
SProcAllocColorPlanes(ClientPtr client)772*4882a593Smuzhiyun SProcAllocColorPlanes(ClientPtr client)
773*4882a593Smuzhiyun {
774*4882a593Smuzhiyun REQUEST(xAllocColorPlanesReq);
775*4882a593Smuzhiyun swaps(&stuff->length);
776*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xAllocColorPlanesReq);
777*4882a593Smuzhiyun swapl(&stuff->cmap);
778*4882a593Smuzhiyun swaps(&stuff->colors);
779*4882a593Smuzhiyun swaps(&stuff->red);
780*4882a593Smuzhiyun swaps(&stuff->green);
781*4882a593Smuzhiyun swaps(&stuff->blue);
782*4882a593Smuzhiyun return ((*ProcVector[X_AllocColorPlanes]) (client));
783*4882a593Smuzhiyun }
784*4882a593Smuzhiyun
785*4882a593Smuzhiyun int _X_COLD
SProcFreeColors(ClientPtr client)786*4882a593Smuzhiyun SProcFreeColors(ClientPtr client)
787*4882a593Smuzhiyun {
788*4882a593Smuzhiyun REQUEST(xFreeColorsReq);
789*4882a593Smuzhiyun swaps(&stuff->length);
790*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xFreeColorsReq);
791*4882a593Smuzhiyun swapl(&stuff->cmap);
792*4882a593Smuzhiyun swapl(&stuff->planeMask);
793*4882a593Smuzhiyun SwapRestL(stuff);
794*4882a593Smuzhiyun return ((*ProcVector[X_FreeColors]) (client));
795*4882a593Smuzhiyun
796*4882a593Smuzhiyun }
797*4882a593Smuzhiyun
798*4882a593Smuzhiyun void _X_COLD
SwapColorItem(xColorItem * pItem)799*4882a593Smuzhiyun SwapColorItem(xColorItem * pItem)
800*4882a593Smuzhiyun {
801*4882a593Smuzhiyun swapl(&pItem->pixel);
802*4882a593Smuzhiyun swaps(&pItem->red);
803*4882a593Smuzhiyun swaps(&pItem->green);
804*4882a593Smuzhiyun swaps(&pItem->blue);
805*4882a593Smuzhiyun }
806*4882a593Smuzhiyun
807*4882a593Smuzhiyun int _X_COLD
SProcStoreColors(ClientPtr client)808*4882a593Smuzhiyun SProcStoreColors(ClientPtr client)
809*4882a593Smuzhiyun {
810*4882a593Smuzhiyun long count;
811*4882a593Smuzhiyun xColorItem *pItem;
812*4882a593Smuzhiyun
813*4882a593Smuzhiyun REQUEST(xStoreColorsReq);
814*4882a593Smuzhiyun swaps(&stuff->length);
815*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xStoreColorsReq);
816*4882a593Smuzhiyun swapl(&stuff->cmap);
817*4882a593Smuzhiyun pItem = (xColorItem *) &stuff[1];
818*4882a593Smuzhiyun for (count = LengthRestB(stuff) / sizeof(xColorItem); --count >= 0;)
819*4882a593Smuzhiyun SwapColorItem(pItem++);
820*4882a593Smuzhiyun return ((*ProcVector[X_StoreColors]) (client));
821*4882a593Smuzhiyun }
822*4882a593Smuzhiyun
823*4882a593Smuzhiyun int _X_COLD
SProcStoreNamedColor(ClientPtr client)824*4882a593Smuzhiyun SProcStoreNamedColor(ClientPtr client)
825*4882a593Smuzhiyun {
826*4882a593Smuzhiyun REQUEST(xStoreNamedColorReq);
827*4882a593Smuzhiyun swaps(&stuff->length);
828*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xStoreNamedColorReq);
829*4882a593Smuzhiyun swapl(&stuff->cmap);
830*4882a593Smuzhiyun swapl(&stuff->pixel);
831*4882a593Smuzhiyun swaps(&stuff->nbytes);
832*4882a593Smuzhiyun return ((*ProcVector[X_StoreNamedColor]) (client));
833*4882a593Smuzhiyun }
834*4882a593Smuzhiyun
835*4882a593Smuzhiyun int _X_COLD
SProcQueryColors(ClientPtr client)836*4882a593Smuzhiyun SProcQueryColors(ClientPtr client)
837*4882a593Smuzhiyun {
838*4882a593Smuzhiyun REQUEST(xQueryColorsReq);
839*4882a593Smuzhiyun swaps(&stuff->length);
840*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xQueryColorsReq);
841*4882a593Smuzhiyun swapl(&stuff->cmap);
842*4882a593Smuzhiyun SwapRestL(stuff);
843*4882a593Smuzhiyun return ((*ProcVector[X_QueryColors]) (client));
844*4882a593Smuzhiyun }
845*4882a593Smuzhiyun
846*4882a593Smuzhiyun int _X_COLD
SProcLookupColor(ClientPtr client)847*4882a593Smuzhiyun SProcLookupColor(ClientPtr client)
848*4882a593Smuzhiyun {
849*4882a593Smuzhiyun REQUEST(xLookupColorReq);
850*4882a593Smuzhiyun swaps(&stuff->length);
851*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xLookupColorReq);
852*4882a593Smuzhiyun swapl(&stuff->cmap);
853*4882a593Smuzhiyun swaps(&stuff->nbytes);
854*4882a593Smuzhiyun return ((*ProcVector[X_LookupColor]) (client));
855*4882a593Smuzhiyun }
856*4882a593Smuzhiyun
857*4882a593Smuzhiyun int _X_COLD
SProcCreateCursor(ClientPtr client)858*4882a593Smuzhiyun SProcCreateCursor(ClientPtr client)
859*4882a593Smuzhiyun {
860*4882a593Smuzhiyun REQUEST(xCreateCursorReq);
861*4882a593Smuzhiyun swaps(&stuff->length);
862*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xCreateCursorReq);
863*4882a593Smuzhiyun swapl(&stuff->cid);
864*4882a593Smuzhiyun swapl(&stuff->source);
865*4882a593Smuzhiyun swapl(&stuff->mask);
866*4882a593Smuzhiyun swaps(&stuff->foreRed);
867*4882a593Smuzhiyun swaps(&stuff->foreGreen);
868*4882a593Smuzhiyun swaps(&stuff->foreBlue);
869*4882a593Smuzhiyun swaps(&stuff->backRed);
870*4882a593Smuzhiyun swaps(&stuff->backGreen);
871*4882a593Smuzhiyun swaps(&stuff->backBlue);
872*4882a593Smuzhiyun swaps(&stuff->x);
873*4882a593Smuzhiyun swaps(&stuff->y);
874*4882a593Smuzhiyun return ((*ProcVector[X_CreateCursor]) (client));
875*4882a593Smuzhiyun }
876*4882a593Smuzhiyun
877*4882a593Smuzhiyun int _X_COLD
SProcCreateGlyphCursor(ClientPtr client)878*4882a593Smuzhiyun SProcCreateGlyphCursor(ClientPtr client)
879*4882a593Smuzhiyun {
880*4882a593Smuzhiyun REQUEST(xCreateGlyphCursorReq);
881*4882a593Smuzhiyun swaps(&stuff->length);
882*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xCreateGlyphCursorReq);
883*4882a593Smuzhiyun swapl(&stuff->cid);
884*4882a593Smuzhiyun swapl(&stuff->source);
885*4882a593Smuzhiyun swapl(&stuff->mask);
886*4882a593Smuzhiyun swaps(&stuff->sourceChar);
887*4882a593Smuzhiyun swaps(&stuff->maskChar);
888*4882a593Smuzhiyun swaps(&stuff->foreRed);
889*4882a593Smuzhiyun swaps(&stuff->foreGreen);
890*4882a593Smuzhiyun swaps(&stuff->foreBlue);
891*4882a593Smuzhiyun swaps(&stuff->backRed);
892*4882a593Smuzhiyun swaps(&stuff->backGreen);
893*4882a593Smuzhiyun swaps(&stuff->backBlue);
894*4882a593Smuzhiyun return ((*ProcVector[X_CreateGlyphCursor]) (client));
895*4882a593Smuzhiyun }
896*4882a593Smuzhiyun
897*4882a593Smuzhiyun int _X_COLD
SProcRecolorCursor(ClientPtr client)898*4882a593Smuzhiyun SProcRecolorCursor(ClientPtr client)
899*4882a593Smuzhiyun {
900*4882a593Smuzhiyun REQUEST(xRecolorCursorReq);
901*4882a593Smuzhiyun swaps(&stuff->length);
902*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xRecolorCursorReq);
903*4882a593Smuzhiyun swapl(&stuff->cursor);
904*4882a593Smuzhiyun swaps(&stuff->foreRed);
905*4882a593Smuzhiyun swaps(&stuff->foreGreen);
906*4882a593Smuzhiyun swaps(&stuff->foreBlue);
907*4882a593Smuzhiyun swaps(&stuff->backRed);
908*4882a593Smuzhiyun swaps(&stuff->backGreen);
909*4882a593Smuzhiyun swaps(&stuff->backBlue);
910*4882a593Smuzhiyun return ((*ProcVector[X_RecolorCursor]) (client));
911*4882a593Smuzhiyun }
912*4882a593Smuzhiyun
913*4882a593Smuzhiyun int _X_COLD
SProcQueryBestSize(ClientPtr client)914*4882a593Smuzhiyun SProcQueryBestSize(ClientPtr client)
915*4882a593Smuzhiyun {
916*4882a593Smuzhiyun REQUEST(xQueryBestSizeReq);
917*4882a593Smuzhiyun swaps(&stuff->length);
918*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xQueryBestSizeReq);
919*4882a593Smuzhiyun swapl(&stuff->drawable);
920*4882a593Smuzhiyun swaps(&stuff->width);
921*4882a593Smuzhiyun swaps(&stuff->height);
922*4882a593Smuzhiyun return ((*ProcVector[X_QueryBestSize]) (client));
923*4882a593Smuzhiyun
924*4882a593Smuzhiyun }
925*4882a593Smuzhiyun
926*4882a593Smuzhiyun int _X_COLD
SProcQueryExtension(ClientPtr client)927*4882a593Smuzhiyun SProcQueryExtension(ClientPtr client)
928*4882a593Smuzhiyun {
929*4882a593Smuzhiyun REQUEST(xQueryExtensionReq);
930*4882a593Smuzhiyun swaps(&stuff->length);
931*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xQueryExtensionReq);
932*4882a593Smuzhiyun swaps(&stuff->nbytes);
933*4882a593Smuzhiyun return ((*ProcVector[X_QueryExtension]) (client));
934*4882a593Smuzhiyun }
935*4882a593Smuzhiyun
936*4882a593Smuzhiyun int _X_COLD
SProcChangeKeyboardMapping(ClientPtr client)937*4882a593Smuzhiyun SProcChangeKeyboardMapping(ClientPtr client)
938*4882a593Smuzhiyun {
939*4882a593Smuzhiyun REQUEST(xChangeKeyboardMappingReq);
940*4882a593Smuzhiyun swaps(&stuff->length);
941*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xChangeKeyboardMappingReq);
942*4882a593Smuzhiyun SwapRestL(stuff);
943*4882a593Smuzhiyun return ((*ProcVector[X_ChangeKeyboardMapping]) (client));
944*4882a593Smuzhiyun }
945*4882a593Smuzhiyun
946*4882a593Smuzhiyun int _X_COLD
SProcChangeKeyboardControl(ClientPtr client)947*4882a593Smuzhiyun SProcChangeKeyboardControl(ClientPtr client)
948*4882a593Smuzhiyun {
949*4882a593Smuzhiyun REQUEST(xChangeKeyboardControlReq);
950*4882a593Smuzhiyun swaps(&stuff->length);
951*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xChangeKeyboardControlReq);
952*4882a593Smuzhiyun swapl(&stuff->mask);
953*4882a593Smuzhiyun SwapRestL(stuff);
954*4882a593Smuzhiyun return ((*ProcVector[X_ChangeKeyboardControl]) (client));
955*4882a593Smuzhiyun }
956*4882a593Smuzhiyun
957*4882a593Smuzhiyun int _X_COLD
SProcChangePointerControl(ClientPtr client)958*4882a593Smuzhiyun SProcChangePointerControl(ClientPtr client)
959*4882a593Smuzhiyun {
960*4882a593Smuzhiyun REQUEST(xChangePointerControlReq);
961*4882a593Smuzhiyun swaps(&stuff->length);
962*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xChangePointerControlReq);
963*4882a593Smuzhiyun swaps(&stuff->accelNum);
964*4882a593Smuzhiyun swaps(&stuff->accelDenum);
965*4882a593Smuzhiyun swaps(&stuff->threshold);
966*4882a593Smuzhiyun return ((*ProcVector[X_ChangePointerControl]) (client));
967*4882a593Smuzhiyun }
968*4882a593Smuzhiyun
969*4882a593Smuzhiyun int _X_COLD
SProcSetScreenSaver(ClientPtr client)970*4882a593Smuzhiyun SProcSetScreenSaver(ClientPtr client)
971*4882a593Smuzhiyun {
972*4882a593Smuzhiyun REQUEST(xSetScreenSaverReq);
973*4882a593Smuzhiyun swaps(&stuff->length);
974*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xSetScreenSaverReq);
975*4882a593Smuzhiyun swaps(&stuff->timeout);
976*4882a593Smuzhiyun swaps(&stuff->interval);
977*4882a593Smuzhiyun return ((*ProcVector[X_SetScreenSaver]) (client));
978*4882a593Smuzhiyun }
979*4882a593Smuzhiyun
980*4882a593Smuzhiyun int _X_COLD
SProcChangeHosts(ClientPtr client)981*4882a593Smuzhiyun SProcChangeHosts(ClientPtr client)
982*4882a593Smuzhiyun {
983*4882a593Smuzhiyun REQUEST(xChangeHostsReq);
984*4882a593Smuzhiyun swaps(&stuff->length);
985*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xChangeHostsReq);
986*4882a593Smuzhiyun swaps(&stuff->hostLength);
987*4882a593Smuzhiyun return ((*ProcVector[X_ChangeHosts]) (client));
988*4882a593Smuzhiyun
989*4882a593Smuzhiyun }
990*4882a593Smuzhiyun
991*4882a593Smuzhiyun int _X_COLD
SProcRotateProperties(ClientPtr client)992*4882a593Smuzhiyun SProcRotateProperties(ClientPtr client)
993*4882a593Smuzhiyun {
994*4882a593Smuzhiyun REQUEST(xRotatePropertiesReq);
995*4882a593Smuzhiyun swaps(&stuff->length);
996*4882a593Smuzhiyun REQUEST_AT_LEAST_SIZE(xRotatePropertiesReq);
997*4882a593Smuzhiyun swapl(&stuff->window);
998*4882a593Smuzhiyun swaps(&stuff->nAtoms);
999*4882a593Smuzhiyun swaps(&stuff->nPositions);
1000*4882a593Smuzhiyun SwapRestL(stuff);
1001*4882a593Smuzhiyun return ((*ProcVector[X_RotateProperties]) (client));
1002*4882a593Smuzhiyun }
1003*4882a593Smuzhiyun
1004*4882a593Smuzhiyun int _X_COLD
SProcNoOperation(ClientPtr client)1005*4882a593Smuzhiyun SProcNoOperation(ClientPtr client)
1006*4882a593Smuzhiyun {
1007*4882a593Smuzhiyun REQUEST(xReq);
1008*4882a593Smuzhiyun swaps(&stuff->length);
1009*4882a593Smuzhiyun return ((*ProcVector[X_NoOperation]) (client));
1010*4882a593Smuzhiyun }
1011*4882a593Smuzhiyun
1012*4882a593Smuzhiyun void _X_COLD
SwapConnClientPrefix(xConnClientPrefix * pCCP)1013*4882a593Smuzhiyun SwapConnClientPrefix(xConnClientPrefix * pCCP)
1014*4882a593Smuzhiyun {
1015*4882a593Smuzhiyun swaps(&pCCP->majorVersion);
1016*4882a593Smuzhiyun swaps(&pCCP->minorVersion);
1017*4882a593Smuzhiyun swaps(&pCCP->nbytesAuthProto);
1018*4882a593Smuzhiyun swaps(&pCCP->nbytesAuthString);
1019*4882a593Smuzhiyun }
1020