1 /*
2 
3 Copyright (c) 1995  Jon Tombs
4 Copyright (c) 1995  XFree86 Inc.
5 
6 */
7 
8 #ifndef _XF86DGAPROTO_H_
9 #define _XF86DGAPROTO_H_
10 
11 #include <X11/extensions/xf86dga1proto.h>
12 #include <X11/extensions/xf86dgaconst.h>
13 
14 #define XF86DGANAME "XFree86-DGA"
15 
16 #define XDGA_MAJOR_VERSION	2	/* current version numbers */
17 #define XDGA_MINOR_VERSION	0
18 
19 
20 typedef struct _XDGAQueryVersion {
21     CARD8	reqType;		/* always DGAReqCode */
22     CARD8	dgaReqType;		/* always X_DGAQueryVersion */
23     CARD16	length;
24 } xXDGAQueryVersionReq;
25 #define sz_xXDGAQueryVersionReq		4
26 
27 typedef struct {
28     BYTE	type;			/* X_Reply */
29     BOOL	pad1;
30     CARD16	sequenceNumber;
31     CARD32	length;
32     CARD16	majorVersion;		/* major version of DGA protocol */
33     CARD16	minorVersion;		/* minor version of DGA protocol */
34     CARD32	pad2;
35     CARD32	pad3;
36     CARD32	pad4;
37     CARD32	pad5;
38     CARD32	pad6;
39 } xXDGAQueryVersionReply;
40 #define sz_xXDGAQueryVersionReply	32
41 
42 typedef struct _XDGAQueryModes {
43     CARD8	reqType;
44     CARD8	dgaReqType;
45     CARD16	length;
46     CARD32	screen;
47 } xXDGAQueryModesReq;
48 #define sz_xXDGAQueryModesReq		8
49 
50 typedef struct {
51     BYTE	type;			/* X_Reply */
52     BOOL	pad1;
53     CARD16	sequenceNumber;
54     CARD32	length;
55     CARD32	number;			/* number of modes available */
56     CARD32	pad2;
57     CARD32	pad3;
58     CARD32	pad4;
59     CARD32	pad5;
60     CARD32	pad6;
61 } xXDGAQueryModesReply;
62 #define sz_xXDGAQueryModesReply	32
63 
64 
65 typedef struct _XDGASetMode {
66     CARD8	reqType;
67     CARD8	dgaReqType;
68     CARD16	length;
69     CARD32	screen;
70     CARD32	mode;			/* mode number to init */
71     CARD32	pid;			/* Pixmap descriptor */
72 } xXDGASetModeReq;
73 #define sz_xXDGASetModeReq		16
74 
75 typedef struct {
76     BYTE	type;			/* X_Reply */
77     BOOL	pad1;
78     CARD16	sequenceNumber;
79     CARD32	length;
80     CARD32	offset;			/* offset into framebuffer map */
81     CARD32	flags;
82     CARD32	pad2;
83     CARD32	pad3;
84     CARD32	pad4;
85     CARD32	pad5;
86 } xXDGASetModeReply;
87 #define sz_xXDGASetModeReply	32
88 
89 typedef struct {
90    CARD8	byte_order;
91    CARD8	depth;
92    CARD16 	num;
93    CARD16	bpp;
94    CARD16	name_size;
95    CARD32	vsync_num;
96    CARD32	vsync_den;
97    CARD32	flags;
98    CARD16	image_width;
99    CARD16	image_height;
100    CARD16	pixmap_width;
101    CARD16	pixmap_height;
102    CARD32	bytes_per_scanline;
103    CARD32	red_mask;
104    CARD32	green_mask;
105    CARD32	blue_mask;
106    CARD16	visual_class;
107    CARD16	pad1;
108    CARD16	viewport_width;
109    CARD16	viewport_height;
110    CARD16	viewport_xstep;
111    CARD16	viewport_ystep;
112    CARD16	viewport_xmax;
113    CARD16	viewport_ymax;
114    CARD32	viewport_flags;
115    CARD32	reserved1;
116    CARD32	reserved2;
117 } xXDGAModeInfo;
118 #define sz_xXDGAModeInfo 72
119 
120 typedef struct _XDGAOpenFramebuffer {
121     CARD8	reqType;
122     CARD8	dgaReqType;
123     CARD16	length;
124     CARD32	screen;
125 } xXDGAOpenFramebufferReq;
126 #define sz_xXDGAOpenFramebufferReq	8
127 
128 typedef struct {
129     BYTE	type;			/* X_Reply */
130     BOOL	pad1;
131     CARD16	sequenceNumber;
132     CARD32	length;			/* device name size if there is one */
133     CARD32	mem1;			/* physical memory */
134     CARD32	mem2;			/* spillover for _alpha_ */
135     CARD32	size;			/* size of map in bytes */
136     CARD32	offset;			/* optional offset into device */
137     CARD32	extra;			/* extra info associated with the map */
138     CARD32	pad2;
139 } xXDGAOpenFramebufferReply;
140 #define sz_xXDGAOpenFramebufferReply	32
141 
142 
143 typedef struct _XDGACloseFramebuffer {
144     CARD8	reqType;
145     CARD8	dgaReqType;
146     CARD16	length;
147     CARD32	screen;
148 } xXDGACloseFramebufferReq;
149 #define sz_xXDGACloseFramebufferReq	8
150 
151 
152 typedef struct _XDGASetViewport {
153     CARD8	reqType;
154     CARD8	dgaReqType;
155     CARD16	length;
156     CARD32	screen;
157     CARD16	x;
158     CARD16	y;
159     CARD32	flags;
160 } xXDGASetViewportReq;
161 #define sz_xXDGASetViewportReq	16
162 
163 
164 typedef struct _XDGAInstallColormap {
165     CARD8	reqType;
166     CARD8	dgaReqType;
167     CARD16	length;
168     CARD32	screen;
169     CARD32	cmap;
170 } xXDGAInstallColormapReq;
171 #define sz_xXDGAInstallColormapReq	12
172 
173 typedef struct _XDGASelectInput {
174     CARD8	reqType;
175     CARD8	dgaReqType;
176     CARD16	length;
177     CARD32	screen;
178     CARD32	mask;
179 } xXDGASelectInputReq;
180 #define sz_xXDGASelectInputReq	12
181 
182 typedef struct _XDGAFillRectangle {
183     CARD8	reqType;
184     CARD8	dgaReqType;
185     CARD16	length;
186     CARD32	screen;
187     CARD16	x;
188     CARD16	y;
189     CARD16	width;
190     CARD16	height;
191     CARD32	color;
192 } xXDGAFillRectangleReq;
193 #define sz_xXDGAFillRectangleReq	20
194 
195 
196 typedef struct _XDGACopyArea {
197     CARD8	reqType;
198     CARD8	dgaReqType;
199     CARD16	length;
200     CARD32	screen;
201     CARD16	srcx;
202     CARD16	srcy;
203     CARD16	width;
204     CARD16	height;
205     CARD16	dstx;
206     CARD16	dsty;
207 } xXDGACopyAreaReq;
208 #define sz_xXDGACopyAreaReq	20
209 
210 typedef struct _XDGACopyTransparentArea {
211     CARD8	reqType;
212     CARD8	dgaReqType;
213     CARD16	length;
214     CARD32	screen;
215     CARD16	srcx;
216     CARD16	srcy;
217     CARD16	width;
218     CARD16	height;
219     CARD16	dstx;
220     CARD16	dsty;
221     CARD32	key;
222 } xXDGACopyTransparentAreaReq;
223 #define sz_xXDGACopyTransparentAreaReq	24
224 
225 
226 typedef struct _XDGAGetViewportStatus {
227     CARD8	reqType;
228     CARD8	dgaReqType;
229     CARD16	length;
230     CARD32	screen;
231 } xXDGAGetViewportStatusReq;
232 #define sz_xXDGAGetViewportStatusReq	8
233 
234 typedef struct {
235     BYTE	type;
236     BOOL	pad1;
237     CARD16	sequenceNumber;
238     CARD32	length;
239     CARD32	status;
240     CARD32	pad2;
241     CARD32	pad3;
242     CARD32	pad4;
243     CARD32	pad5;
244     CARD32	pad6;
245 } xXDGAGetViewportStatusReply;
246 #define sz_xXDGAGetViewportStatusReply	32
247 
248 typedef struct _XDGASync {
249     CARD8	reqType;
250     CARD8	dgaReqType;
251     CARD16	length;
252     CARD32	screen;
253 } xXDGASyncReq;
254 #define sz_xXDGASyncReq	8
255 
256 typedef struct {
257     BYTE	type;
258     BOOL	pad1;
259     CARD16	sequenceNumber;
260     CARD32	length;
261     CARD32	pad2;
262     CARD32	pad3;
263     CARD32	pad4;
264     CARD32	pad5;
265     CARD32	pad6;
266     CARD32	pad7;
267 } xXDGASyncReply;
268 #define sz_xXDGASyncReply	32
269 
270 typedef struct _XDGASetClientVersion {
271     CARD8	reqType;
272     CARD8	dgaReqType;
273     CARD16	length;
274     CARD16	major;
275     CARD16	minor;
276 } xXDGASetClientVersionReq;
277 #define sz_xXDGASetClientVersionReq	8
278 
279 
280 typedef struct {
281     CARD8	reqType;
282     CARD8	dgaReqType;
283     CARD16	length;
284     CARD32	screen;
285     CARD16	x;
286     CARD16	y;
287     CARD32	flags;
288 } xXDGAChangePixmapModeReq;
289 #define sz_xXDGAChangePixmapModeReq	16
290 
291 typedef struct {
292     BYTE	type;
293     BOOL	pad1;
294     CARD16	sequenceNumber;
295     CARD32	length;
296     CARD16	x;
297     CARD16	y;
298     CARD32	pad3;
299     CARD32	pad4;
300     CARD32	pad5;
301     CARD32	pad6;
302     CARD32	pad7;
303 } xXDGAChangePixmapModeReply;
304 #define sz_xXDGAChangePixmapModeReply	32
305 
306 typedef struct _XDGACreateColormap {
307     CARD8	reqType;
308     CARD8	dgaReqType;
309     CARD16	length;
310     CARD32	screen;
311     CARD32	id;
312     CARD32	mode;
313     CARD8	alloc;
314     CARD8	pad1;
315     CARD16	pad2;
316 } xXDGACreateColormapReq;
317 #define sz_xXDGACreateColormapReq	20
318 
319 
320 typedef struct {
321   union {
322     struct {
323       BYTE type;
324       BYTE detail;
325       CARD16 sequenceNumber;
326     } u;
327     struct {
328       CARD32 pad0;
329       CARD32 time;
330       INT16 dx;
331       INT16 dy;
332       INT16 screen;
333       CARD16 state;
334       CARD32 pad1;
335       CARD32 pad2;
336       CARD32 pad3;
337       CARD32 pad4;
338     } event;
339   } u;
340 } dgaEvent;
341 
342 
343 #endif /* _XF86DGAPROTO_H_ */
344 
345