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