xf86vmproto.h revision 17ca54c3
1/*
2
3Copyright 1995  Kaleb S. KEITHLEY
4
5Permission is hereby granted, free of charge, to any person obtaining
6a copy of this software and associated documentation files (the
7"Software"), to deal in the Software without restriction, including
8without limitation the rights to use, copy, modify, merge, publish,
9distribute, sublicense, and/or sell copies of the Software, and to
10permit persons to whom the Software is furnished to do so, subject to
11the following conditions:
12
13The above copyright notice and this permission notice shall be
14included in all copies or substantial portions of the Software.
15
16THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES
20OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22OTHER DEALINGS IN THE SOFTWARE.
23
24Except as contained in this notice, the name of Kaleb S. KEITHLEY
25shall not be used in advertising or otherwise to promote the sale, use
26or other dealings in this Software without prior written authorization
27from Kaleb S. KEITHLEY
28
29*/
30
31/* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */
32
33#ifndef _XF86VIDMODEPROTO_H_
34#define _XF86VIDMODEPROTO_H_
35
36#include <X11/extensions/xf86vm.h>
37
38#define XF86VIDMODENAME "XFree86-VidModeExtension"
39
40#define XF86VIDMODE_MAJOR_VERSION	2	/* current version numbers */
41#define XF86VIDMODE_MINOR_VERSION	2
42
43#define X_XF86VidModeQueryVersion	0
44#define X_XF86VidModeGetModeLine	1
45#define X_XF86VidModeModModeLine	2
46#define X_XF86VidModeSwitchMode		3
47#define X_XF86VidModeGetMonitor		4
48#define X_XF86VidModeLockModeSwitch	5
49#define X_XF86VidModeGetAllModeLines	6
50#define X_XF86VidModeAddModeLine	7
51#define X_XF86VidModeDeleteModeLine	8
52#define X_XF86VidModeValidateModeLine	9
53#define X_XF86VidModeSwitchToMode	10
54#define X_XF86VidModeGetViewPort	11
55#define X_XF86VidModeSetViewPort	12
56/* new for version 2.x of this extension */
57#define X_XF86VidModeGetDotClocks	13
58#define X_XF86VidModeSetClientVersion	14
59#define X_XF86VidModeSetGamma		15
60#define X_XF86VidModeGetGamma		16
61#define X_XF86VidModeGetGammaRamp	17
62#define X_XF86VidModeSetGammaRamp	18
63#define X_XF86VidModeGetGammaRampSize	19
64#define X_XF86VidModeGetPermissions	20
65/*
66 * major version 0 == uses parameter-to-wire functions in XFree86 libXxf86vm.
67 * major version 1 == uses parameter-to-wire functions hard-coded in xvidtune
68 *                    client.
69 * major version 2 == uses new protocol version in XFree86 4.0.
70 */
71
72typedef struct _XF86VidModeQueryVersion {
73    CARD8	reqType;		/* always XF86VidModeReqCode */
74    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeQueryVersion */
75    CARD16	length B16;
76} xXF86VidModeQueryVersionReq;
77#define sz_xXF86VidModeQueryVersionReq	4
78
79typedef struct {
80    BYTE	type;			/* X_Reply */
81    BOOL	pad1;
82    CARD16	sequenceNumber B16;
83    CARD32	length B32;
84    CARD16	majorVersion B16;	/* major version of XF86VidMode */
85    CARD16	minorVersion B16;	/* minor version of XF86VidMode */
86    CARD32	pad2 B32;
87    CARD32	pad3 B32;
88    CARD32	pad4 B32;
89    CARD32	pad5 B32;
90    CARD32	pad6 B32;
91} xXF86VidModeQueryVersionReply;
92#define sz_xXF86VidModeQueryVersionReply	32
93
94typedef struct _XF86VidModeGetModeLine {
95    CARD8	reqType;		/* always XF86VidModeReqCode */
96    CARD8	xf86vidmodeReqType;
97    CARD16	length B16;
98    CARD16	screen B16;
99    CARD16	pad B16;
100} xXF86VidModeGetModeLineReq,
101  xXF86VidModeGetAllModeLinesReq,
102  xXF86VidModeGetMonitorReq,
103  xXF86VidModeGetViewPortReq,
104  xXF86VidModeGetDotClocksReq,
105  xXF86VidModeGetPermissionsReq;
106#define sz_xXF86VidModeGetModeLineReq		8
107#define sz_xXF86VidModeGetAllModeLinesReq	8
108#define sz_xXF86VidModeGetMonitorReq		8
109#define sz_xXF86VidModeGetViewPortReq		8
110#define sz_xXF86VidModeGetDotClocksReq		8
111#define sz_xXF86VidModeGetPermissionsReq	8
112
113typedef struct {
114    BYTE	type;			/* X_Reply */
115    BOOL	pad1;
116    CARD16	sequenceNumber B16;
117    CARD32	length B32;
118    CARD32	dotclock B32;
119    CARD16	hdisplay B16;
120    CARD16	hsyncstart B16;
121    CARD16	hsyncend B16;
122    CARD16	htotal B16;
123    CARD16	hskew B16;
124    CARD16	vdisplay B16;
125    CARD16	vsyncstart B16;
126    CARD16	vsyncend B16;
127    CARD16	vtotal B16;
128    CARD16	pad2 B16;
129    CARD32	flags B32;
130    CARD32	reserved1 B32;
131    CARD32	reserved2 B32;
132    CARD32	reserved3 B32;
133    CARD32	privsize B32;
134} xXF86VidModeGetModeLineReply;
135#define sz_xXF86VidModeGetModeLineReply	52
136
137/* 0.x version */
138typedef struct {
139    BYTE	type;			/* X_Reply */
140    BOOL	pad1;
141    CARD16	sequenceNumber B16;
142    CARD32	length B32;
143    CARD32	dotclock B32;
144    CARD16	hdisplay B16;
145    CARD16	hsyncstart B16;
146    CARD16	hsyncend B16;
147    CARD16	htotal B16;
148    CARD16	vdisplay B16;
149    CARD16	vsyncstart B16;
150    CARD16	vsyncend B16;
151    CARD16	vtotal B16;
152    CARD32	flags B32;
153    CARD32	privsize B32;
154} xXF86OldVidModeGetModeLineReply;
155#define sz_xXF86OldVidModeGetModeLineReply	36
156
157typedef struct {
158    CARD32	dotclock B32;
159    CARD16	hdisplay B16;
160    CARD16	hsyncstart B16;
161    CARD16	hsyncend B16;
162    CARD16	htotal B16;
163    CARD32	hskew B16;
164    CARD16	vdisplay B16;
165    CARD16	vsyncstart B16;
166    CARD16	vsyncend B16;
167    CARD16	vtotal B16;
168    CARD16	pad1 B16;
169    CARD32	flags B32;
170    CARD32	reserved1 B32;
171    CARD32	reserved2 B32;
172    CARD32	reserved3 B32;
173    CARD32	privsize B32;
174} xXF86VidModeModeInfo;
175
176/* 0.x version */
177typedef struct {
178    CARD32	dotclock B32;
179    CARD16	hdisplay B16;
180    CARD16	hsyncstart B16;
181    CARD16	hsyncend B16;
182    CARD16	htotal B16;
183    CARD16	vdisplay B16;
184    CARD16	vsyncstart B16;
185    CARD16	vsyncend B16;
186    CARD16	vtotal B16;
187    CARD32	flags B32;
188    CARD32	privsize B32;
189} xXF86OldVidModeModeInfo;
190
191typedef struct {
192    BYTE	type;			/* X_Reply */
193    BOOL	pad1;
194    CARD16	sequenceNumber B16;
195    CARD32	length B32;
196    CARD32	modecount B32;
197    CARD32	pad2 B32;
198    CARD32	pad3 B32;
199    CARD32	pad4 B32;
200    CARD32	pad5 B32;
201    CARD32	pad6 B32;
202} xXF86VidModeGetAllModeLinesReply;
203#define sz_xXF86VidModeGetAllModeLinesReply	32
204
205typedef struct _XF86VidModeAddModeLine {
206    CARD8	reqType;		/* always XF86VidModeReqCode */
207    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeAddMode */
208    CARD16	length B16;
209    CARD32	screen B32;		/* could be CARD16 but need the pad */
210    CARD32	dotclock B32;
211    CARD16	hdisplay B16;
212    CARD16	hsyncstart B16;
213    CARD16	hsyncend B16;
214    CARD16	htotal B16;
215    CARD16	hskew B16;
216    CARD16	vdisplay B16;
217    CARD16	vsyncstart B16;
218    CARD16	vsyncend B16;
219    CARD16	vtotal B16;
220    CARD16	pad1 B16;
221    CARD32	flags B32;
222    CARD32	reserved1 B32;
223    CARD32	reserved2 B32;
224    CARD32	reserved3 B32;
225    CARD32	privsize B32;
226    CARD32	after_dotclock B32;
227    CARD16	after_hdisplay B16;
228    CARD16	after_hsyncstart B16;
229    CARD16	after_hsyncend B16;
230    CARD16	after_htotal B16;
231    CARD16	after_hskew B16;
232    CARD16	after_vdisplay B16;
233    CARD16	after_vsyncstart B16;
234    CARD16	after_vsyncend B16;
235    CARD16	after_vtotal B16;
236    CARD16	pad2 B16;
237    CARD32	after_flags B32;
238    CARD32	reserved4 B32;
239    CARD32	reserved5 B32;
240    CARD32	reserved6 B32;
241} xXF86VidModeAddModeLineReq;
242#define sz_xXF86VidModeAddModeLineReq	92
243
244/* 0.x version */
245typedef struct _XF86OldVidModeAddModeLine {
246    CARD8	reqType;		/* always XF86VidModeReqCode */
247    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeAddMode */
248    CARD16	length B16;
249    CARD32	screen B32;		/* could be CARD16 but need the pad */
250    CARD32	dotclock B32;
251    CARD16	hdisplay B16;
252    CARD16	hsyncstart B16;
253    CARD16	hsyncend B16;
254    CARD16	htotal B16;
255    CARD16	vdisplay B16;
256    CARD16	vsyncstart B16;
257    CARD16	vsyncend B16;
258    CARD16	vtotal B16;
259    CARD32	flags B32;
260    CARD32	privsize B32;
261    CARD32	after_dotclock B32;
262    CARD16	after_hdisplay B16;
263    CARD16	after_hsyncstart B16;
264    CARD16	after_hsyncend B16;
265    CARD16	after_htotal B16;
266    CARD16	after_vdisplay B16;
267    CARD16	after_vsyncstart B16;
268    CARD16	after_vsyncend B16;
269    CARD16	after_vtotal B16;
270    CARD32	after_flags B32;
271} xXF86OldVidModeAddModeLineReq;
272#define sz_xXF86OldVidModeAddModeLineReq	60
273
274typedef struct _XF86VidModeModModeLine {
275    CARD8	reqType;		/* always XF86VidModeReqCode */
276    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeModModeLine */
277    CARD16	length B16;
278    CARD32	screen B32;		/* could be CARD16 but need the pad */
279    CARD16	hdisplay B16;
280    CARD16	hsyncstart B16;
281    CARD16	hsyncend B16;
282    CARD16	htotal B16;
283    CARD16	hskew B16;
284    CARD16	vdisplay B16;
285    CARD16	vsyncstart B16;
286    CARD16	vsyncend B16;
287    CARD16	vtotal B16;
288    CARD16	pad1 B16;
289    CARD32	flags B32;
290    CARD32	reserved1 B32;
291    CARD32	reserved2 B32;
292    CARD32	reserved3 B32;
293    CARD32	privsize B32;
294} xXF86VidModeModModeLineReq;
295#define sz_xXF86VidModeModModeLineReq	48
296
297/* 0.x version */
298typedef struct _XF86OldVidModeModModeLine {
299    CARD8	reqType;		/* always XF86OldVidModeReqCode */
300    CARD8	xf86vidmodeReqType;	/* always X_XF86OldVidModeModModeLine */
301    CARD16	length B16;
302    CARD32	screen B32;		/* could be CARD16 but need the pad */
303    CARD16	hdisplay B16;
304    CARD16	hsyncstart B16;
305    CARD16	hsyncend B16;
306    CARD16	htotal B16;
307    CARD16	vdisplay B16;
308    CARD16	vsyncstart B16;
309    CARD16	vsyncend B16;
310    CARD16	vtotal B16;
311    CARD32	flags B32;
312    CARD32	privsize B32;
313} xXF86OldVidModeModModeLineReq;
314#define sz_xXF86OldVidModeModModeLineReq	32
315
316typedef struct _XF86VidModeValidateModeLine {
317    CARD8	reqType;		/* always XF86VidModeReqCode */
318    CARD8	xf86vidmodeReqType;
319    CARD16	length B16;
320    CARD32	screen B32;		/* could be CARD16 but need the pad */
321    CARD32	dotclock B32;
322    CARD16	hdisplay B16;
323    CARD16	hsyncstart B16;
324    CARD16	hsyncend B16;
325    CARD16	htotal B16;
326    CARD16	hskew B16;
327    CARD16	vdisplay B16;
328    CARD16	vsyncstart B16;
329    CARD16	vsyncend B16;
330    CARD16	vtotal B16;
331    CARD16	pad1 B16;
332    CARD32	flags B32;
333    CARD32	reserved1 B32;
334    CARD32	reserved2 B32;
335    CARD32	reserved3 B32;
336    CARD32	privsize B32;
337} xXF86VidModeDeleteModeLineReq,
338  xXF86VidModeValidateModeLineReq,
339  xXF86VidModeSwitchToModeReq;
340#define sz_xXF86VidModeDeleteModeLineReq	52
341#define sz_xXF86VidModeValidateModeLineReq	52
342#define sz_xXF86VidModeSwitchToModeReq		52
343
344/* 0.x version */
345typedef struct _XF86OldVidModeValidateModeLine {
346    CARD8	reqType;		/* always XF86OldVidModeReqCode */
347    CARD8	xf86vidmodeReqType;
348    CARD16	length B16;
349    CARD32	screen B32;		/* could be CARD16 but need the pad */
350    CARD32	dotclock B32;
351    CARD16	hdisplay B16;
352    CARD16	hsyncstart B16;
353    CARD16	hsyncend B16;
354    CARD16	htotal B16;
355    CARD16	vdisplay B16;
356    CARD16	vsyncstart B16;
357    CARD16	vsyncend B16;
358    CARD16	vtotal B16;
359    CARD32	flags B32;
360    CARD32	privsize B32;
361} xXF86OldVidModeDeleteModeLineReq,
362  xXF86OldVidModeValidateModeLineReq,
363  xXF86OldVidModeSwitchToModeReq;
364#define sz_xXF86OldVidModeDeleteModeLineReq	36
365#define sz_xXF86OldVidModeValidateModeLineReq	36
366#define sz_xXF86OldVidModeSwitchToModeReq	36
367
368typedef struct _XF86VidModeSwitchMode {
369    CARD8	reqType;		/* always XF86VidModeReqCode */
370    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeSwitchMode */
371    CARD16	length B16;
372    CARD16	screen B16;
373    CARD16	zoom B16;
374} xXF86VidModeSwitchModeReq;
375#define sz_xXF86VidModeSwitchModeReq	8
376
377typedef struct _XF86VidModeLockModeSwitch {
378    CARD8	reqType;		/* always XF86VidModeReqCode */
379    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeLockModeSwitch */
380    CARD16	length B16;
381    CARD16	screen B16;
382    CARD16	lock B16;
383} xXF86VidModeLockModeSwitchReq;
384#define sz_xXF86VidModeLockModeSwitchReq	8
385
386typedef struct {
387    BYTE	type;			/* X_Reply */
388    BOOL	pad1;
389    CARD16	sequenceNumber B16;
390    CARD32	length B32;
391    CARD32	status B32;
392    CARD32	pad2 B32;
393    CARD32	pad3 B32;
394    CARD32	pad4 B32;
395    CARD32	pad5 B32;
396    CARD32	pad6 B32;
397} xXF86VidModeValidateModeLineReply;
398#define sz_xXF86VidModeValidateModeLineReply	32
399
400typedef struct {
401    BYTE	type;			/* X_Reply */
402    BOOL	pad1;
403    CARD16	sequenceNumber B16;
404    CARD32	length B32;
405    CARD8	vendorLength;
406    CARD8	modelLength;
407    CARD8	nhsync;
408    CARD8	nvsync;
409    CARD32	pad2 B32;
410    CARD32	pad3 B32;
411    CARD32	pad4 B32;
412    CARD32	pad5 B32;
413    CARD32	pad6 B32;
414} xXF86VidModeGetMonitorReply;
415#define sz_xXF86VidModeGetMonitorReply	32
416
417typedef struct {
418    BYTE	type;
419    BOOL	pad1;
420    CARD16	sequenceNumber B16;
421    CARD32	length B32;
422    CARD32	x B32;
423    CARD32	y B32;
424    CARD32	pad2 B32;
425    CARD32	pad3 B32;
426    CARD32	pad4 B32;
427    CARD32	pad5 B32;
428} xXF86VidModeGetViewPortReply;
429#define sz_xXF86VidModeGetViewPortReply	32
430
431typedef struct _XF86VidModeSetViewPort {
432    CARD8	reqType;		/* always VidModeReqCode */
433    CARD8	xf86vidmodeReqType;	/* always X_XF86VidModeSetViewPort */
434    CARD16	length B16;
435    CARD16	screen B16;
436    CARD16	pad B16;
437    CARD32      x B32;
438    CARD32	y B32;
439} xXF86VidModeSetViewPortReq;
440#define sz_xXF86VidModeSetViewPortReq	16
441
442typedef struct {
443    BYTE	type;
444    BOOL	pad1;
445    CARD16	sequenceNumber B16;
446    CARD32	length B32;
447    CARD32	flags B32;
448    CARD32	clocks B32;
449    CARD32	maxclocks B32;
450    CARD32	pad2 B32;
451    CARD32	pad3 B32;
452    CARD32	pad4 B32;
453} xXF86VidModeGetDotClocksReply;
454#define sz_xXF86VidModeGetDotClocksReply	32
455
456typedef struct _XF86VidModeSetClientVersion {
457    CARD8	reqType;		/* always XF86VidModeReqCode */
458    CARD8	xf86vidmodeReqType;
459    CARD16	length B16;
460    CARD16	major B16;
461    CARD16	minor B16;
462} xXF86VidModeSetClientVersionReq;
463#define sz_xXF86VidModeSetClientVersionReq	8
464
465typedef struct _XF86VidModeGetGamma {
466    CARD8	reqType;		/* always XF86VidModeReqCode */
467    CARD8	xf86vidmodeReqType;
468    CARD16	length B16;
469    CARD16	screen B16;
470    CARD16	pad B16;
471    CARD32	pad1 B32;
472    CARD32	pad2 B32;
473    CARD32	pad3 B32;
474    CARD32	pad4 B32;
475    CARD32	pad5 B32;
476    CARD32	pad6 B32;
477} xXF86VidModeGetGammaReq;
478#define sz_xXF86VidModeGetGammaReq		32
479
480typedef struct {
481    BYTE	type;
482    BOOL	pad;
483    CARD16	sequenceNumber B16;
484    CARD32	length B32;
485    CARD32	red B32;
486    CARD32	green B32;
487    CARD32	blue B32;
488    CARD32	pad1 B32;
489    CARD32	pad2 B32;
490    CARD32	pad3 B32;
491} xXF86VidModeGetGammaReply;
492#define sz_xXF86VidModeGetGammaReply		32
493
494typedef struct _XF86VidModeSetGamma {
495    CARD8	reqType;		/* always XF86VidModeReqCode */
496    CARD8	xf86vidmodeReqType;
497    CARD16	length B16;
498    CARD16	screen B16;
499    CARD16	pad B16;
500    CARD32	red B32;
501    CARD32	green B32;
502    CARD32	blue B32;
503    CARD32	pad1 B32;
504    CARD32	pad2 B32;
505    CARD32	pad3 B32;
506} xXF86VidModeSetGammaReq;
507#define sz_xXF86VidModeSetGammaReq		32
508
509
510typedef struct _XF86VidModeSetGammaRamp {
511    CARD8       reqType;                /* always XF86VidModeReqCode */
512    CARD8       xf86vidmodeReqType;
513    CARD16      length B16;
514    CARD16      screen B16;
515    CARD16      size B16;
516} xXF86VidModeSetGammaRampReq;
517#define sz_xXF86VidModeSetGammaRampReq             8
518
519typedef struct _XF86VidModeGetGammaRamp {
520    CARD8       reqType;                /* always XF86VidModeReqCode */
521    CARD8       xf86vidmodeReqType;
522    CARD16      length B16;
523    CARD16      screen B16;
524    CARD16      size B16;
525} xXF86VidModeGetGammaRampReq;
526#define sz_xXF86VidModeGetGammaRampReq             8
527
528typedef struct {
529    BYTE        type;
530    BOOL        pad;
531    CARD16      sequenceNumber B16;
532    CARD32      length B32;
533    CARD16      size B16;
534    CARD16      pad0 B16;
535    CARD32      pad1 B32;
536    CARD32      pad2 B32;
537    CARD32      pad3 B32;
538    CARD32      pad4 B32;
539    CARD32      pad5 B32;
540} xXF86VidModeGetGammaRampReply;
541#define sz_xXF86VidModeGetGammaRampReply            32
542
543typedef struct _XF86VidModeGetGammaRampSize {
544    CARD8       reqType;                /* always XF86VidModeReqCode */
545    CARD8       xf86vidmodeReqType;
546    CARD16      length B16;
547    CARD16      screen B16;
548    CARD16      pad B16;
549} xXF86VidModeGetGammaRampSizeReq;
550#define sz_xXF86VidModeGetGammaRampSizeReq             8
551
552typedef struct {
553    BYTE        type;
554    BOOL        pad;
555    CARD16      sequenceNumber B16;
556    CARD32      length B32;
557    CARD16      size B16;
558    CARD16      pad0 B16;
559    CARD32      pad1 B32;
560    CARD32      pad2 B32;
561    CARD32      pad3 B32;
562    CARD32      pad4 B32;
563    CARD32      pad5 B32;
564} xXF86VidModeGetGammaRampSizeReply;
565#define sz_xXF86VidModeGetGammaRampSizeReply            32
566
567typedef struct {
568    BYTE        type;
569    BOOL        pad;
570    CARD16      sequenceNumber B16;
571    CARD32      length B32;
572    CARD32      permissions B32;
573    CARD32      pad1 B32;
574    CARD32      pad2 B32;
575    CARD32      pad3 B32;
576    CARD32      pad4 B32;
577    CARD32      pad5 B32;
578} xXF86VidModeGetPermissionsReply;
579#define sz_xXF86VidModeGetPermissionsReply            32
580
581
582#endif /* _XF86VIDMODEPROTO_H_ */
583
584