117ca54c3Smrg/*
217ca54c3Smrg
317ca54c3SmrgCopyright 1995  Kaleb S. KEITHLEY
417ca54c3Smrg
517ca54c3SmrgPermission is hereby granted, free of charge, to any person obtaining
617ca54c3Smrga copy of this software and associated documentation files (the
717ca54c3Smrg"Software"), to deal in the Software without restriction, including
817ca54c3Smrgwithout limitation the rights to use, copy, modify, merge, publish,
917ca54c3Smrgdistribute, sublicense, and/or sell copies of the Software, and to
1017ca54c3Smrgpermit persons to whom the Software is furnished to do so, subject to
1117ca54c3Smrgthe following conditions:
1217ca54c3Smrg
1317ca54c3SmrgThe above copyright notice and this permission notice shall be
1417ca54c3Smrgincluded in all copies or substantial portions of the Software.
1517ca54c3Smrg
1617ca54c3SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1717ca54c3SmrgEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1817ca54c3SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19ea1d6981SmrgIN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES
2017ca54c3SmrgOR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
2117ca54c3SmrgARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
2217ca54c3SmrgOTHER DEALINGS IN THE SOFTWARE.
2317ca54c3Smrg
24ea1d6981SmrgExcept as contained in this notice, the name of Kaleb S. KEITHLEY
25ea1d6981Smrgshall not be used in advertising or otherwise to promote the sale, use
2617ca54c3Smrgor other dealings in this Software without prior written authorization
2717ca54c3Smrgfrom Kaleb S. KEITHLEY
2817ca54c3Smrg
2917ca54c3Smrg*/
3017ca54c3Smrg
3117ca54c3Smrg/* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */
3217ca54c3Smrg
3317ca54c3Smrg#ifndef _XF86VIDMODEPROTO_H_
3417ca54c3Smrg#define _XF86VIDMODEPROTO_H_
3517ca54c3Smrg
3617ca54c3Smrg#include <X11/extensions/xf86vm.h>
3717ca54c3Smrg
3817ca54c3Smrg#define XF86VIDMODENAME "XFree86-VidModeExtension"
3917ca54c3Smrg
4017ca54c3Smrg#define XF86VIDMODE_MAJOR_VERSION	2	/* current version numbers */
4117ca54c3Smrg#define XF86VIDMODE_MINOR_VERSION	2
4217ca54c3Smrg
4317ca54c3Smrg#define X_XF86VidModeQueryVersion	0
4417ca54c3Smrg#define X_XF86VidModeGetModeLine	1
4517ca54c3Smrg#define X_XF86VidModeModModeLine	2
4617ca54c3Smrg#define X_XF86VidModeSwitchMode		3
4717ca54c3Smrg#define X_XF86VidModeGetMonitor		4
4817ca54c3Smrg#define X_XF86VidModeLockModeSwitch	5
4917ca54c3Smrg#define X_XF86VidModeGetAllModeLines	6
5017ca54c3Smrg#define X_XF86VidModeAddModeLine	7
5117ca54c3Smrg#define X_XF86VidModeDeleteModeLine	8
5217ca54c3Smrg#define X_XF86VidModeValidateModeLine	9
5317ca54c3Smrg#define X_XF86VidModeSwitchToMode	10
5417ca54c3Smrg#define X_XF86VidModeGetViewPort	11
5517ca54c3Smrg#define X_XF86VidModeSetViewPort	12
5617ca54c3Smrg/* new for version 2.x of this extension */
5717ca54c3Smrg#define X_XF86VidModeGetDotClocks	13
5817ca54c3Smrg#define X_XF86VidModeSetClientVersion	14
5917ca54c3Smrg#define X_XF86VidModeSetGamma		15
6017ca54c3Smrg#define X_XF86VidModeGetGamma		16
6117ca54c3Smrg#define X_XF86VidModeGetGammaRamp	17
6217ca54c3Smrg#define X_XF86VidModeSetGammaRamp	18
6317ca54c3Smrg#define X_XF86VidModeGetGammaRampSize	19
6417ca54c3Smrg#define X_XF86VidModeGetPermissions	20
6517ca54c3Smrg/*
6617ca54c3Smrg * major version 0 == uses parameter-to-wire functions in XFree86 libXxf86vm.
6717ca54c3Smrg * major version 1 == uses parameter-to-wire functions hard-coded in xvidtune
6817ca54c3Smrg *                    client.
6917ca54c3Smrg * major version 2 == uses new protocol version in XFree86 4.0.
7017ca54c3Smrg */
7117ca54c3Smrg
7217ca54c3Smrgtypedef struct _XF86VidModeQueryVersion {
7317ca54c3Smrg    CARD8	reqType;		/* always XF86VidModeReqCode */
7417ca54c3Smrg    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeQueryVersion */
75ea1d6981Smrg    CARD16	length;
7617ca54c3Smrg} xXF86VidModeQueryVersionReq;
7717ca54c3Smrg#define sz_xXF86VidModeQueryVersionReq	4
7817ca54c3Smrg
7917ca54c3Smrgtypedef struct {
8017ca54c3Smrg    BYTE	type;			/* X_Reply */
8117ca54c3Smrg    BOOL	pad1;
82ea1d6981Smrg    CARD16	sequenceNumber;
83ea1d6981Smrg    CARD32	length;
84ea1d6981Smrg    CARD16	majorVersion;		/* major version of XF86VidMode */
85ea1d6981Smrg    CARD16	minorVersion;		/* minor version of XF86VidMode */
86ea1d6981Smrg    CARD32	pad2;
87ea1d6981Smrg    CARD32	pad3;
88ea1d6981Smrg    CARD32	pad4;
89ea1d6981Smrg    CARD32	pad5;
90ea1d6981Smrg    CARD32	pad6;
9117ca54c3Smrg} xXF86VidModeQueryVersionReply;
9217ca54c3Smrg#define sz_xXF86VidModeQueryVersionReply	32
9317ca54c3Smrg
9417ca54c3Smrgtypedef struct _XF86VidModeGetModeLine {
9517ca54c3Smrg    CARD8	reqType;		/* always XF86VidModeReqCode */
9617ca54c3Smrg    CARD8	xf86vidmodeReqType;
97ea1d6981Smrg    CARD16	length;
98ea1d6981Smrg    CARD16	screen;
99ea1d6981Smrg    CARD16	pad;
10017ca54c3Smrg} xXF86VidModeGetModeLineReq,
10117ca54c3Smrg  xXF86VidModeGetAllModeLinesReq,
10217ca54c3Smrg  xXF86VidModeGetMonitorReq,
10317ca54c3Smrg  xXF86VidModeGetViewPortReq,
10417ca54c3Smrg  xXF86VidModeGetDotClocksReq,
10517ca54c3Smrg  xXF86VidModeGetPermissionsReq;
10617ca54c3Smrg#define sz_xXF86VidModeGetModeLineReq		8
10717ca54c3Smrg#define sz_xXF86VidModeGetAllModeLinesReq	8
10817ca54c3Smrg#define sz_xXF86VidModeGetMonitorReq		8
10917ca54c3Smrg#define sz_xXF86VidModeGetViewPortReq		8
11017ca54c3Smrg#define sz_xXF86VidModeGetDotClocksReq		8
11117ca54c3Smrg#define sz_xXF86VidModeGetPermissionsReq	8
11217ca54c3Smrg
11317ca54c3Smrgtypedef struct {
11417ca54c3Smrg    BYTE	type;			/* X_Reply */
11517ca54c3Smrg    BOOL	pad1;
116ea1d6981Smrg    CARD16	sequenceNumber;
117ea1d6981Smrg    CARD32	length;
118ea1d6981Smrg    CARD32	dotclock;
119ea1d6981Smrg    CARD16	hdisplay;
120ea1d6981Smrg    CARD16	hsyncstart;
121ea1d6981Smrg    CARD16	hsyncend;
122ea1d6981Smrg    CARD16	htotal;
123ea1d6981Smrg    CARD16	hskew;
124ea1d6981Smrg    CARD16	vdisplay;
125ea1d6981Smrg    CARD16	vsyncstart;
126ea1d6981Smrg    CARD16	vsyncend;
127ea1d6981Smrg    CARD16	vtotal;
128ea1d6981Smrg    CARD16	pad2;
129ea1d6981Smrg    CARD32	flags;
130ea1d6981Smrg    CARD32	reserved1;
131ea1d6981Smrg    CARD32	reserved2;
132ea1d6981Smrg    CARD32	reserved3;
133ea1d6981Smrg    CARD32	privsize;
13417ca54c3Smrg} xXF86VidModeGetModeLineReply;
13517ca54c3Smrg#define sz_xXF86VidModeGetModeLineReply	52
13617ca54c3Smrg
13717ca54c3Smrg/* 0.x version */
13817ca54c3Smrgtypedef struct {
13917ca54c3Smrg    BYTE	type;			/* X_Reply */
14017ca54c3Smrg    BOOL	pad1;
141ea1d6981Smrg    CARD16	sequenceNumber;
142ea1d6981Smrg    CARD32	length;
143ea1d6981Smrg    CARD32	dotclock;
144ea1d6981Smrg    CARD16	hdisplay;
145ea1d6981Smrg    CARD16	hsyncstart;
146ea1d6981Smrg    CARD16	hsyncend;
147ea1d6981Smrg    CARD16	htotal;
148ea1d6981Smrg    CARD16	vdisplay;
149ea1d6981Smrg    CARD16	vsyncstart;
150ea1d6981Smrg    CARD16	vsyncend;
151ea1d6981Smrg    CARD16	vtotal;
152ea1d6981Smrg    CARD32	flags;
153ea1d6981Smrg    CARD32	privsize;
15417ca54c3Smrg} xXF86OldVidModeGetModeLineReply;
15517ca54c3Smrg#define sz_xXF86OldVidModeGetModeLineReply	36
15617ca54c3Smrg
15717ca54c3Smrgtypedef struct {
158ea1d6981Smrg    CARD32	dotclock;
159ea1d6981Smrg    CARD16	hdisplay;
160ea1d6981Smrg    CARD16	hsyncstart;
161ea1d6981Smrg    CARD16	hsyncend;
162ea1d6981Smrg    CARD16	htotal;
163ea1d6981Smrg    CARD32	hskew;
164ea1d6981Smrg    CARD16	vdisplay;
165ea1d6981Smrg    CARD16	vsyncstart;
166ea1d6981Smrg    CARD16	vsyncend;
167ea1d6981Smrg    CARD16	vtotal;
168ea1d6981Smrg    CARD16	pad1;
169ea1d6981Smrg    CARD32	flags;
170ea1d6981Smrg    CARD32	reserved1;
171ea1d6981Smrg    CARD32	reserved2;
172ea1d6981Smrg    CARD32	reserved3;
173ea1d6981Smrg    CARD32	privsize;
17417ca54c3Smrg} xXF86VidModeModeInfo;
17517ca54c3Smrg
17617ca54c3Smrg/* 0.x version */
17717ca54c3Smrgtypedef struct {
178ea1d6981Smrg    CARD32	dotclock;
179ea1d6981Smrg    CARD16	hdisplay;
180ea1d6981Smrg    CARD16	hsyncstart;
181ea1d6981Smrg    CARD16	hsyncend;
182ea1d6981Smrg    CARD16	htotal;
183ea1d6981Smrg    CARD16	vdisplay;
184ea1d6981Smrg    CARD16	vsyncstart;
185ea1d6981Smrg    CARD16	vsyncend;
186ea1d6981Smrg    CARD16	vtotal;
187ea1d6981Smrg    CARD32	flags;
188ea1d6981Smrg    CARD32	privsize;
18917ca54c3Smrg} xXF86OldVidModeModeInfo;
19017ca54c3Smrg
19117ca54c3Smrgtypedef struct {
19217ca54c3Smrg    BYTE	type;			/* X_Reply */
19317ca54c3Smrg    BOOL	pad1;
194ea1d6981Smrg    CARD16	sequenceNumber;
195ea1d6981Smrg    CARD32	length;
196ea1d6981Smrg    CARD32	modecount;
197ea1d6981Smrg    CARD32	pad2;
198ea1d6981Smrg    CARD32	pad3;
199ea1d6981Smrg    CARD32	pad4;
200ea1d6981Smrg    CARD32	pad5;
201ea1d6981Smrg    CARD32	pad6;
20217ca54c3Smrg} xXF86VidModeGetAllModeLinesReply;
20317ca54c3Smrg#define sz_xXF86VidModeGetAllModeLinesReply	32
20417ca54c3Smrg
20517ca54c3Smrgtypedef struct _XF86VidModeAddModeLine {
20617ca54c3Smrg    CARD8	reqType;		/* always XF86VidModeReqCode */
20717ca54c3Smrg    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeAddMode */
208ea1d6981Smrg    CARD16	length;
209ea1d6981Smrg    CARD32	screen;			/* could be CARD16 but need the pad */
210ea1d6981Smrg    CARD32	dotclock;
211ea1d6981Smrg    CARD16	hdisplay;
212ea1d6981Smrg    CARD16	hsyncstart;
213ea1d6981Smrg    CARD16	hsyncend;
214ea1d6981Smrg    CARD16	htotal;
215ea1d6981Smrg    CARD16	hskew;
216ea1d6981Smrg    CARD16	vdisplay;
217ea1d6981Smrg    CARD16	vsyncstart;
218ea1d6981Smrg    CARD16	vsyncend;
219ea1d6981Smrg    CARD16	vtotal;
220ea1d6981Smrg    CARD16	pad1;
221ea1d6981Smrg    CARD32	flags;
222ea1d6981Smrg    CARD32	reserved1;
223ea1d6981Smrg    CARD32	reserved2;
224ea1d6981Smrg    CARD32	reserved3;
225ea1d6981Smrg    CARD32	privsize;
226ea1d6981Smrg    CARD32	after_dotclock;
227ea1d6981Smrg    CARD16	after_hdisplay;
228ea1d6981Smrg    CARD16	after_hsyncstart;
229ea1d6981Smrg    CARD16	after_hsyncend;
230ea1d6981Smrg    CARD16	after_htotal;
231ea1d6981Smrg    CARD16	after_hskew;
232ea1d6981Smrg    CARD16	after_vdisplay;
233ea1d6981Smrg    CARD16	after_vsyncstart;
234ea1d6981Smrg    CARD16	after_vsyncend;
235ea1d6981Smrg    CARD16	after_vtotal;
236ea1d6981Smrg    CARD16	pad2;
237ea1d6981Smrg    CARD32	after_flags;
238ea1d6981Smrg    CARD32	reserved4;
239ea1d6981Smrg    CARD32	reserved5;
240ea1d6981Smrg    CARD32	reserved6;
24117ca54c3Smrg} xXF86VidModeAddModeLineReq;
24217ca54c3Smrg#define sz_xXF86VidModeAddModeLineReq	92
24317ca54c3Smrg
24417ca54c3Smrg/* 0.x version */
24517ca54c3Smrgtypedef struct _XF86OldVidModeAddModeLine {
24617ca54c3Smrg    CARD8	reqType;		/* always XF86VidModeReqCode */
24717ca54c3Smrg    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeAddMode */
248ea1d6981Smrg    CARD16	length;
249ea1d6981Smrg    CARD32	screen;			/* could be CARD16 but need the pad */
250ea1d6981Smrg    CARD32	dotclock;
251ea1d6981Smrg    CARD16	hdisplay;
252ea1d6981Smrg    CARD16	hsyncstart;
253ea1d6981Smrg    CARD16	hsyncend;
254ea1d6981Smrg    CARD16	htotal;
255ea1d6981Smrg    CARD16	vdisplay;
256ea1d6981Smrg    CARD16	vsyncstart;
257ea1d6981Smrg    CARD16	vsyncend;
258ea1d6981Smrg    CARD16	vtotal;
259ea1d6981Smrg    CARD32	flags;
260ea1d6981Smrg    CARD32	privsize;
261ea1d6981Smrg    CARD32	after_dotclock;
262ea1d6981Smrg    CARD16	after_hdisplay;
263ea1d6981Smrg    CARD16	after_hsyncstart;
264ea1d6981Smrg    CARD16	after_hsyncend;
265ea1d6981Smrg    CARD16	after_htotal;
266ea1d6981Smrg    CARD16	after_vdisplay;
267ea1d6981Smrg    CARD16	after_vsyncstart;
268ea1d6981Smrg    CARD16	after_vsyncend;
269ea1d6981Smrg    CARD16	after_vtotal;
270ea1d6981Smrg    CARD32	after_flags;
27117ca54c3Smrg} xXF86OldVidModeAddModeLineReq;
27217ca54c3Smrg#define sz_xXF86OldVidModeAddModeLineReq	60
27317ca54c3Smrg
27417ca54c3Smrgtypedef struct _XF86VidModeModModeLine {
27517ca54c3Smrg    CARD8	reqType;		/* always XF86VidModeReqCode */
27617ca54c3Smrg    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeModModeLine */
277ea1d6981Smrg    CARD16	length;
278ea1d6981Smrg    CARD32	screen;			/* could be CARD16 but need the pad */
279ea1d6981Smrg    CARD16	hdisplay;
280ea1d6981Smrg    CARD16	hsyncstart;
281ea1d6981Smrg    CARD16	hsyncend;
282ea1d6981Smrg    CARD16	htotal;
283ea1d6981Smrg    CARD16	hskew;
284ea1d6981Smrg    CARD16	vdisplay;
285ea1d6981Smrg    CARD16	vsyncstart;
286ea1d6981Smrg    CARD16	vsyncend;
287ea1d6981Smrg    CARD16	vtotal;
288ea1d6981Smrg    CARD16	pad1;
289ea1d6981Smrg    CARD32	flags;
290ea1d6981Smrg    CARD32	reserved1;
291ea1d6981Smrg    CARD32	reserved2;
292ea1d6981Smrg    CARD32	reserved3;
293ea1d6981Smrg    CARD32	privsize;
29417ca54c3Smrg} xXF86VidModeModModeLineReq;
29517ca54c3Smrg#define sz_xXF86VidModeModModeLineReq	48
29617ca54c3Smrg
29717ca54c3Smrg/* 0.x version */
29817ca54c3Smrgtypedef struct _XF86OldVidModeModModeLine {
29917ca54c3Smrg    CARD8	reqType;		/* always XF86OldVidModeReqCode */
30017ca54c3Smrg    CARD8	xf86vidmodeReqType;	/* always X_XF86OldVidModeModModeLine */
301ea1d6981Smrg    CARD16	length;
302ea1d6981Smrg    CARD32	screen;			/* could be CARD16 but need the pad */
303ea1d6981Smrg    CARD16	hdisplay;
304ea1d6981Smrg    CARD16	hsyncstart;
305ea1d6981Smrg    CARD16	hsyncend;
306ea1d6981Smrg    CARD16	htotal;
307ea1d6981Smrg    CARD16	vdisplay;
308ea1d6981Smrg    CARD16	vsyncstart;
309ea1d6981Smrg    CARD16	vsyncend;
310ea1d6981Smrg    CARD16	vtotal;
311ea1d6981Smrg    CARD32	flags;
312ea1d6981Smrg    CARD32	privsize;
31317ca54c3Smrg} xXF86OldVidModeModModeLineReq;
31417ca54c3Smrg#define sz_xXF86OldVidModeModModeLineReq	32
31517ca54c3Smrg
31617ca54c3Smrgtypedef struct _XF86VidModeValidateModeLine {
31717ca54c3Smrg    CARD8	reqType;		/* always XF86VidModeReqCode */
31817ca54c3Smrg    CARD8	xf86vidmodeReqType;
319ea1d6981Smrg    CARD16	length;
320ea1d6981Smrg    CARD32	screen;			/* could be CARD16 but need the pad */
321ea1d6981Smrg    CARD32	dotclock;
322ea1d6981Smrg    CARD16	hdisplay;
323ea1d6981Smrg    CARD16	hsyncstart;
324ea1d6981Smrg    CARD16	hsyncend;
325ea1d6981Smrg    CARD16	htotal;
326ea1d6981Smrg    CARD16	hskew;
327ea1d6981Smrg    CARD16	vdisplay;
328ea1d6981Smrg    CARD16	vsyncstart;
329ea1d6981Smrg    CARD16	vsyncend;
330ea1d6981Smrg    CARD16	vtotal;
331ea1d6981Smrg    CARD16	pad1;
332ea1d6981Smrg    CARD32	flags;
333ea1d6981Smrg    CARD32	reserved1;
334ea1d6981Smrg    CARD32	reserved2;
335ea1d6981Smrg    CARD32	reserved3;
336ea1d6981Smrg    CARD32	privsize;
33717ca54c3Smrg} xXF86VidModeDeleteModeLineReq,
33817ca54c3Smrg  xXF86VidModeValidateModeLineReq,
33917ca54c3Smrg  xXF86VidModeSwitchToModeReq;
34017ca54c3Smrg#define sz_xXF86VidModeDeleteModeLineReq	52
34117ca54c3Smrg#define sz_xXF86VidModeValidateModeLineReq	52
34217ca54c3Smrg#define sz_xXF86VidModeSwitchToModeReq		52
34317ca54c3Smrg
34417ca54c3Smrg/* 0.x version */
34517ca54c3Smrgtypedef struct _XF86OldVidModeValidateModeLine {
34617ca54c3Smrg    CARD8	reqType;		/* always XF86OldVidModeReqCode */
34717ca54c3Smrg    CARD8	xf86vidmodeReqType;
348ea1d6981Smrg    CARD16	length;
349ea1d6981Smrg    CARD32	screen;			/* could be CARD16 but need the pad */
350ea1d6981Smrg    CARD32	dotclock;
351ea1d6981Smrg    CARD16	hdisplay;
352ea1d6981Smrg    CARD16	hsyncstart;
353ea1d6981Smrg    CARD16	hsyncend;
354ea1d6981Smrg    CARD16	htotal;
355ea1d6981Smrg    CARD16	vdisplay;
356ea1d6981Smrg    CARD16	vsyncstart;
357ea1d6981Smrg    CARD16	vsyncend;
358ea1d6981Smrg    CARD16	vtotal;
359ea1d6981Smrg    CARD32	flags;
360ea1d6981Smrg    CARD32	privsize;
36117ca54c3Smrg} xXF86OldVidModeDeleteModeLineReq,
36217ca54c3Smrg  xXF86OldVidModeValidateModeLineReq,
36317ca54c3Smrg  xXF86OldVidModeSwitchToModeReq;
36417ca54c3Smrg#define sz_xXF86OldVidModeDeleteModeLineReq	36
36517ca54c3Smrg#define sz_xXF86OldVidModeValidateModeLineReq	36
36617ca54c3Smrg#define sz_xXF86OldVidModeSwitchToModeReq	36
36717ca54c3Smrg
36817ca54c3Smrgtypedef struct _XF86VidModeSwitchMode {
36917ca54c3Smrg    CARD8	reqType;		/* always XF86VidModeReqCode */
37017ca54c3Smrg    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeSwitchMode */
371ea1d6981Smrg    CARD16	length;
372ea1d6981Smrg    CARD16	screen;
373ea1d6981Smrg    CARD16	zoom;
37417ca54c3Smrg} xXF86VidModeSwitchModeReq;
37517ca54c3Smrg#define sz_xXF86VidModeSwitchModeReq	8
37617ca54c3Smrg
37717ca54c3Smrgtypedef struct _XF86VidModeLockModeSwitch {
37817ca54c3Smrg    CARD8	reqType;		/* always XF86VidModeReqCode */
37917ca54c3Smrg    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeLockModeSwitch */
380ea1d6981Smrg    CARD16	length;
381ea1d6981Smrg    CARD16	screen;
382ea1d6981Smrg    CARD16	lock;
38317ca54c3Smrg} xXF86VidModeLockModeSwitchReq;
38417ca54c3Smrg#define sz_xXF86VidModeLockModeSwitchReq	8
38517ca54c3Smrg
38617ca54c3Smrgtypedef struct {
38717ca54c3Smrg    BYTE	type;			/* X_Reply */
38817ca54c3Smrg    BOOL	pad1;
389ea1d6981Smrg    CARD16	sequenceNumber;
390ea1d6981Smrg    CARD32	length;
391ea1d6981Smrg    CARD32	status;
392ea1d6981Smrg    CARD32	pad2;
393ea1d6981Smrg    CARD32	pad3;
394ea1d6981Smrg    CARD32	pad4;
395ea1d6981Smrg    CARD32	pad5;
396ea1d6981Smrg    CARD32	pad6;
39717ca54c3Smrg} xXF86VidModeValidateModeLineReply;
39817ca54c3Smrg#define sz_xXF86VidModeValidateModeLineReply	32
39917ca54c3Smrg
40017ca54c3Smrgtypedef struct {
40117ca54c3Smrg    BYTE	type;			/* X_Reply */
40217ca54c3Smrg    BOOL	pad1;
403ea1d6981Smrg    CARD16	sequenceNumber;
404ea1d6981Smrg    CARD32	length;
40517ca54c3Smrg    CARD8	vendorLength;
40617ca54c3Smrg    CARD8	modelLength;
40717ca54c3Smrg    CARD8	nhsync;
40817ca54c3Smrg    CARD8	nvsync;
409ea1d6981Smrg    CARD32	pad2;
410ea1d6981Smrg    CARD32	pad3;
411ea1d6981Smrg    CARD32	pad4;
412ea1d6981Smrg    CARD32	pad5;
413ea1d6981Smrg    CARD32	pad6;
41417ca54c3Smrg} xXF86VidModeGetMonitorReply;
41517ca54c3Smrg#define sz_xXF86VidModeGetMonitorReply	32
41617ca54c3Smrg
41717ca54c3Smrgtypedef struct {
41817ca54c3Smrg    BYTE	type;
41917ca54c3Smrg    BOOL	pad1;
420ea1d6981Smrg    CARD16	sequenceNumber;
421ea1d6981Smrg    CARD32	length;
422ea1d6981Smrg    CARD32	x;
423ea1d6981Smrg    CARD32	y;
424ea1d6981Smrg    CARD32	pad2;
425ea1d6981Smrg    CARD32	pad3;
426ea1d6981Smrg    CARD32	pad4;
427ea1d6981Smrg    CARD32	pad5;
42817ca54c3Smrg} xXF86VidModeGetViewPortReply;
42917ca54c3Smrg#define sz_xXF86VidModeGetViewPortReply	32
43017ca54c3Smrg
43117ca54c3Smrgtypedef struct _XF86VidModeSetViewPort {
43217ca54c3Smrg    CARD8	reqType;		/* always VidModeReqCode */
43317ca54c3Smrg    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeSetViewPort */
434ea1d6981Smrg    CARD16	length;
435ea1d6981Smrg    CARD16	screen;
436ea1d6981Smrg    CARD16	pad;
437ea1d6981Smrg    CARD32	x;
438ea1d6981Smrg    CARD32	y;
43917ca54c3Smrg} xXF86VidModeSetViewPortReq;
44017ca54c3Smrg#define sz_xXF86VidModeSetViewPortReq	16
44117ca54c3Smrg
44217ca54c3Smrgtypedef struct {
44317ca54c3Smrg    BYTE	type;
44417ca54c3Smrg    BOOL	pad1;
445ea1d6981Smrg    CARD16	sequenceNumber;
446ea1d6981Smrg    CARD32	length;
447ea1d6981Smrg    CARD32	flags;
448ea1d6981Smrg    CARD32	clocks;
449ea1d6981Smrg    CARD32	maxclocks;
450ea1d6981Smrg    CARD32	pad2;
451ea1d6981Smrg    CARD32	pad3;
452ea1d6981Smrg    CARD32	pad4;
45317ca54c3Smrg} xXF86VidModeGetDotClocksReply;
45417ca54c3Smrg#define sz_xXF86VidModeGetDotClocksReply	32
45517ca54c3Smrg
45617ca54c3Smrgtypedef struct _XF86VidModeSetClientVersion {
45717ca54c3Smrg    CARD8	reqType;		/* always XF86VidModeReqCode */
45817ca54c3Smrg    CARD8	xf86vidmodeReqType;
459ea1d6981Smrg    CARD16	length;
460ea1d6981Smrg    CARD16	major;
461ea1d6981Smrg    CARD16	minor;
46217ca54c3Smrg} xXF86VidModeSetClientVersionReq;
46317ca54c3Smrg#define sz_xXF86VidModeSetClientVersionReq	8
46417ca54c3Smrg
46517ca54c3Smrgtypedef struct _XF86VidModeGetGamma {
46617ca54c3Smrg    CARD8	reqType;		/* always XF86VidModeReqCode */
46717ca54c3Smrg    CARD8	xf86vidmodeReqType;
468ea1d6981Smrg    CARD16	length;
469ea1d6981Smrg    CARD16	screen;
470ea1d6981Smrg    CARD16	pad;
471ea1d6981Smrg    CARD32	pad1;
472ea1d6981Smrg    CARD32	pad2;
473ea1d6981Smrg    CARD32	pad3;
474ea1d6981Smrg    CARD32	pad4;
475ea1d6981Smrg    CARD32	pad5;
476ea1d6981Smrg    CARD32	pad6;
47717ca54c3Smrg} xXF86VidModeGetGammaReq;
47817ca54c3Smrg#define sz_xXF86VidModeGetGammaReq		32
47917ca54c3Smrg
48017ca54c3Smrgtypedef struct {
48117ca54c3Smrg    BYTE	type;
48217ca54c3Smrg    BOOL	pad;
483ea1d6981Smrg    CARD16	sequenceNumber;
484ea1d6981Smrg    CARD32	length;
485ea1d6981Smrg    CARD32	red;
486ea1d6981Smrg    CARD32	green;
487ea1d6981Smrg    CARD32	blue;
488ea1d6981Smrg    CARD32	pad1;
489ea1d6981Smrg    CARD32	pad2;
490ea1d6981Smrg    CARD32	pad3;
49117ca54c3Smrg} xXF86VidModeGetGammaReply;
49217ca54c3Smrg#define sz_xXF86VidModeGetGammaReply		32
49317ca54c3Smrg
49417ca54c3Smrgtypedef struct _XF86VidModeSetGamma {
49517ca54c3Smrg    CARD8	reqType;		/* always XF86VidModeReqCode */
49617ca54c3Smrg    CARD8	xf86vidmodeReqType;
497ea1d6981Smrg    CARD16	length;
498ea1d6981Smrg    CARD16	screen;
499ea1d6981Smrg    CARD16	pad;
500ea1d6981Smrg    CARD32	red;
501ea1d6981Smrg    CARD32	green;
502ea1d6981Smrg    CARD32	blue;
503ea1d6981Smrg    CARD32	pad1;
504ea1d6981Smrg    CARD32	pad2;
505ea1d6981Smrg    CARD32	pad3;
50617ca54c3Smrg} xXF86VidModeSetGammaReq;
50717ca54c3Smrg#define sz_xXF86VidModeSetGammaReq		32
50817ca54c3Smrg
50917ca54c3Smrg
51017ca54c3Smrgtypedef struct _XF86VidModeSetGammaRamp {
51117ca54c3Smrg    CARD8       reqType;                /* always XF86VidModeReqCode */
51217ca54c3Smrg    CARD8       xf86vidmodeReqType;
513ea1d6981Smrg    CARD16      length;
514ea1d6981Smrg    CARD16      screen;
515ea1d6981Smrg    CARD16      size;
51617ca54c3Smrg} xXF86VidModeSetGammaRampReq;
517ea1d6981Smrg#define sz_xXF86VidModeSetGammaRampReq             8
51817ca54c3Smrg
51917ca54c3Smrgtypedef struct _XF86VidModeGetGammaRamp {
52017ca54c3Smrg    CARD8       reqType;                /* always XF86VidModeReqCode */
52117ca54c3Smrg    CARD8       xf86vidmodeReqType;
522ea1d6981Smrg    CARD16      length;
523ea1d6981Smrg    CARD16      screen;
524ea1d6981Smrg    CARD16      size;
52517ca54c3Smrg} xXF86VidModeGetGammaRampReq;
52617ca54c3Smrg#define sz_xXF86VidModeGetGammaRampReq             8
52717ca54c3Smrg
52817ca54c3Smrgtypedef struct {
52917ca54c3Smrg    BYTE        type;
53017ca54c3Smrg    BOOL        pad;
531ea1d6981Smrg    CARD16      sequenceNumber;
532ea1d6981Smrg    CARD32      length;
533ea1d6981Smrg    CARD16      size;
534ea1d6981Smrg    CARD16      pad0;
535ea1d6981Smrg    CARD32      pad1;
536ea1d6981Smrg    CARD32      pad2;
537ea1d6981Smrg    CARD32      pad3;
538ea1d6981Smrg    CARD32      pad4;
539ea1d6981Smrg    CARD32      pad5;
54017ca54c3Smrg} xXF86VidModeGetGammaRampReply;
54117ca54c3Smrg#define sz_xXF86VidModeGetGammaRampReply            32
54217ca54c3Smrg
54317ca54c3Smrgtypedef struct _XF86VidModeGetGammaRampSize {
54417ca54c3Smrg    CARD8       reqType;                /* always XF86VidModeReqCode */
54517ca54c3Smrg    CARD8       xf86vidmodeReqType;
546ea1d6981Smrg    CARD16      length;
547ea1d6981Smrg    CARD16      screen;
548ea1d6981Smrg    CARD16      pad;
54917ca54c3Smrg} xXF86VidModeGetGammaRampSizeReq;
55017ca54c3Smrg#define sz_xXF86VidModeGetGammaRampSizeReq             8
55117ca54c3Smrg
55217ca54c3Smrgtypedef struct {
55317ca54c3Smrg    BYTE        type;
55417ca54c3Smrg    BOOL        pad;
555ea1d6981Smrg    CARD16      sequenceNumber;
556ea1d6981Smrg    CARD32      length;
557ea1d6981Smrg    CARD16      size;
558ea1d6981Smrg    CARD16      pad0;
559ea1d6981Smrg    CARD32      pad1;
560ea1d6981Smrg    CARD32      pad2;
561ea1d6981Smrg    CARD32      pad3;
562ea1d6981Smrg    CARD32      pad4;
563ea1d6981Smrg    CARD32      pad5;
56417ca54c3Smrg} xXF86VidModeGetGammaRampSizeReply;
56517ca54c3Smrg#define sz_xXF86VidModeGetGammaRampSizeReply            32
56617ca54c3Smrg
56717ca54c3Smrgtypedef struct {
56817ca54c3Smrg    BYTE        type;
56917ca54c3Smrg    BOOL        pad;
570ea1d6981Smrg    CARD16      sequenceNumber;
571ea1d6981Smrg    CARD32      length;
572ea1d6981Smrg    CARD32      permissions;
573ea1d6981Smrg    CARD32      pad1;
574ea1d6981Smrg    CARD32      pad2;
575ea1d6981Smrg    CARD32      pad3;
576ea1d6981Smrg    CARD32      pad4;
577ea1d6981Smrg    CARD32      pad5;
57817ca54c3Smrg} xXF86VidModeGetPermissionsReply;
57917ca54c3Smrg#define sz_xXF86VidModeGetPermissionsReply            32
58017ca54c3Smrg
58117ca54c3Smrg
58217ca54c3Smrg#endif /* _XF86VIDMODEPROTO_H_ */
58317ca54c3Smrg
584