1*4882a593Smuzhiyun /*****************************************************************
2*4882a593Smuzhiyun Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
3*4882a593Smuzhiyun Permission is hereby granted, free of charge, to any person obtaining a copy
4*4882a593Smuzhiyun of this software and associated documentation files (the "Software"), to deal
5*4882a593Smuzhiyun in the Software without restriction, including without limitation the rights
6*4882a593Smuzhiyun to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7*4882a593Smuzhiyun copies of the Software.
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun The above copyright notice and this permission notice shall be included in
10*4882a593Smuzhiyun all copies or substantial portions of the Software.
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13*4882a593Smuzhiyun IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14*4882a593Smuzhiyun FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
15*4882a593Smuzhiyun DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
16*4882a593Smuzhiyun BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
17*4882a593Smuzhiyun WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
18*4882a593Smuzhiyun IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun Except as contained in this notice, the name of Digital Equipment Corporation
21*4882a593Smuzhiyun shall not be used in advertising or otherwise to promote the sale, use or other
22*4882a593Smuzhiyun dealings in this Software without prior written authorization from Digital
23*4882a593Smuzhiyun Equipment Corporation.
24*4882a593Smuzhiyun ******************************************************************/
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun #ifdef HAVE_DIX_CONFIG_H
27*4882a593Smuzhiyun #include <dix-config.h>
28*4882a593Smuzhiyun #endif
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun #include <stdio.h>
31*4882a593Smuzhiyun #include <X11/X.h>
32*4882a593Smuzhiyun #include <X11/Xproto.h>
33*4882a593Smuzhiyun #include "misc.h"
34*4882a593Smuzhiyun #include "cursor.h"
35*4882a593Smuzhiyun #include "cursorstr.h"
36*4882a593Smuzhiyun #include "extnsionst.h"
37*4882a593Smuzhiyun #include "dixstruct.h"
38*4882a593Smuzhiyun #include "gc.h"
39*4882a593Smuzhiyun #include "gcstruct.h"
40*4882a593Smuzhiyun #include "scrnintstr.h"
41*4882a593Smuzhiyun #include "window.h"
42*4882a593Smuzhiyun #include "windowstr.h"
43*4882a593Smuzhiyun #include "pixmapstr.h"
44*4882a593Smuzhiyun #include "panoramiX.h"
45*4882a593Smuzhiyun #include <X11/extensions/panoramiXproto.h>
46*4882a593Smuzhiyun #include "panoramiXsrv.h"
47*4882a593Smuzhiyun #include "globals.h"
48*4882a593Smuzhiyun #include "panoramiXh.h"
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun static int _X_COLD
SProcPanoramiXQueryVersion(ClientPtr client)51*4882a593Smuzhiyun SProcPanoramiXQueryVersion(ClientPtr client)
52*4882a593Smuzhiyun {
53*4882a593Smuzhiyun REQUEST(xPanoramiXQueryVersionReq);
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun swaps(&stuff->length);
56*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xPanoramiXQueryVersionReq);
57*4882a593Smuzhiyun return ProcPanoramiXQueryVersion(client);
58*4882a593Smuzhiyun }
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun static int _X_COLD
SProcPanoramiXGetState(ClientPtr client)61*4882a593Smuzhiyun SProcPanoramiXGetState(ClientPtr client)
62*4882a593Smuzhiyun {
63*4882a593Smuzhiyun REQUEST(xPanoramiXGetStateReq);
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun swaps(&stuff->length);
66*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xPanoramiXGetStateReq);
67*4882a593Smuzhiyun swapl(&stuff->window);
68*4882a593Smuzhiyun return ProcPanoramiXGetState(client);
69*4882a593Smuzhiyun }
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun static int _X_COLD
SProcPanoramiXGetScreenCount(ClientPtr client)72*4882a593Smuzhiyun SProcPanoramiXGetScreenCount(ClientPtr client)
73*4882a593Smuzhiyun {
74*4882a593Smuzhiyun REQUEST(xPanoramiXGetScreenCountReq);
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun swaps(&stuff->length);
77*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xPanoramiXGetScreenCountReq);
78*4882a593Smuzhiyun swapl(&stuff->window);
79*4882a593Smuzhiyun return ProcPanoramiXGetScreenCount(client);
80*4882a593Smuzhiyun }
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun static int _X_COLD
SProcPanoramiXGetScreenSize(ClientPtr client)83*4882a593Smuzhiyun SProcPanoramiXGetScreenSize(ClientPtr client)
84*4882a593Smuzhiyun {
85*4882a593Smuzhiyun REQUEST(xPanoramiXGetScreenSizeReq);
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun swaps(&stuff->length);
88*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
89*4882a593Smuzhiyun swapl(&stuff->window);
90*4882a593Smuzhiyun swapl(&stuff->screen);
91*4882a593Smuzhiyun return ProcPanoramiXGetScreenSize(client);
92*4882a593Smuzhiyun }
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun static int _X_COLD
SProcXineramaIsActive(ClientPtr client)95*4882a593Smuzhiyun SProcXineramaIsActive(ClientPtr client)
96*4882a593Smuzhiyun {
97*4882a593Smuzhiyun REQUEST(xXineramaIsActiveReq);
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun swaps(&stuff->length);
100*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xXineramaIsActiveReq);
101*4882a593Smuzhiyun return ProcXineramaIsActive(client);
102*4882a593Smuzhiyun }
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun static int _X_COLD
SProcXineramaQueryScreens(ClientPtr client)105*4882a593Smuzhiyun SProcXineramaQueryScreens(ClientPtr client)
106*4882a593Smuzhiyun {
107*4882a593Smuzhiyun REQUEST(xXineramaQueryScreensReq);
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun swaps(&stuff->length);
110*4882a593Smuzhiyun REQUEST_SIZE_MATCH(xXineramaQueryScreensReq);
111*4882a593Smuzhiyun return ProcXineramaQueryScreens(client);
112*4882a593Smuzhiyun }
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun int _X_COLD
SProcPanoramiXDispatch(ClientPtr client)115*4882a593Smuzhiyun SProcPanoramiXDispatch(ClientPtr client)
116*4882a593Smuzhiyun {
117*4882a593Smuzhiyun REQUEST(xReq);
118*4882a593Smuzhiyun switch (stuff->data) {
119*4882a593Smuzhiyun case X_PanoramiXQueryVersion:
120*4882a593Smuzhiyun return SProcPanoramiXQueryVersion(client);
121*4882a593Smuzhiyun case X_PanoramiXGetState:
122*4882a593Smuzhiyun return SProcPanoramiXGetState(client);
123*4882a593Smuzhiyun case X_PanoramiXGetScreenCount:
124*4882a593Smuzhiyun return SProcPanoramiXGetScreenCount(client);
125*4882a593Smuzhiyun case X_PanoramiXGetScreenSize:
126*4882a593Smuzhiyun return SProcPanoramiXGetScreenSize(client);
127*4882a593Smuzhiyun case X_XineramaIsActive:
128*4882a593Smuzhiyun return SProcXineramaIsActive(client);
129*4882a593Smuzhiyun case X_XineramaQueryScreens:
130*4882a593Smuzhiyun return SProcXineramaQueryScreens(client);
131*4882a593Smuzhiyun }
132*4882a593Smuzhiyun return BadRequest;
133*4882a593Smuzhiyun }
134