• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright © 2008 Red Hat, Inc.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Soft-
6  * ware"), to deal in the Software without restriction, including without
7  * limitation the rights to use, copy, modify, merge, publish, distribute,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, provided that the above copyright
10  * notice(s) and this permission notice appear in all copies of the Soft-
11  * ware and that both the above copyright notice(s) and this permission
12  * notice appear in supporting documentation.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
16  * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
17  * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
18  * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
19  * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
22  * MANCE OF THIS SOFTWARE.
23  *
24  * Except as contained in this notice, the name of a copyright holder shall
25  * not be used in advertising or otherwise to promote the sale, use or
26  * other dealings in this Software without prior written authorization of
27  * the copyright holder.
28  *
29  * Authors:
30  *   Kristian Høgsberg (krh@redhat.com)
31  */
32 
33 #ifndef _DRI2_PROTO_H_
34 #define _DRI2_PROTO_H_
35 
36 #define DRI2_NAME			"DRI2"
37 #define DRI2_MAJOR			1
38 #define DRI2_MINOR			2
39 
40 #define DRI2NumberErrors		0
41 #define DRI2NumberEvents		2
42 #define DRI2NumberRequests		13
43 
44 #define X_DRI2QueryVersion		0
45 #define X_DRI2Connect			1
46 #define X_DRI2Authenticate		2
47 #define X_DRI2CreateDrawable		3
48 #define X_DRI2DestroyDrawable		4
49 #define X_DRI2GetBuffers		5
50 #define X_DRI2CopyRegion		6
51 #define X_DRI2GetBuffersWithFormat	7
52 #define X_DRI2SwapBuffers		8
53 #define X_DRI2GetMSC			9
54 #define X_DRI2WaitMSC			10
55 #define X_DRI2WaitSBC			11
56 #define X_DRI2SwapInterval		12
57 
58 typedef struct {
59     CARD32  attachment B32;
60     CARD32  name B32;
61     CARD32  pitch B32;
62     CARD32  cpp B32;
63     CARD32  flags B32;
64 } xDRI2Buffer;
65 
66 typedef struct {
67     CARD8   reqType;
68     CARD8   dri2ReqType;
69     CARD16  length B16;
70     CARD32  majorVersion B32;
71     CARD32  minorVersion B32;
72 } xDRI2QueryVersionReq;
73 #define sz_xDRI2QueryVersionReq   12
74 
75 typedef struct {
76     BYTE    type;   /* X_Reply */
77     BYTE    pad1;
78     CARD16  sequenceNumber B16;
79     CARD32  length B32;
80     CARD32  majorVersion B32;
81     CARD32  minorVersion B32;
82     CARD32  pad2 B32;
83     CARD32  pad3 B32;
84     CARD32  pad4 B32;
85     CARD32  pad5 B32;
86 } xDRI2QueryVersionReply;
87 #define sz_xDRI2QueryVersionReply	32
88 
89 typedef struct {
90     CARD8   reqType;
91     CARD8   dri2ReqType;
92     CARD16  length B16;
93     CARD32  window B32;
94     CARD32  driverType B32;
95 } xDRI2ConnectReq;
96 #define sz_xDRI2ConnectReq	12
97 
98 typedef struct {
99     BYTE    type;   /* X_Reply */
100     BYTE    pad1;
101     CARD16  sequenceNumber B16;
102     CARD32  length B32;
103     CARD32  driverNameLength B32;
104     CARD32  deviceNameLength B32;
105     CARD32  pad2 B32;
106     CARD32  pad3 B32;
107     CARD32  pad4 B32;
108     CARD32  pad5 B32;
109 } xDRI2ConnectReply;
110 #define sz_xDRI2ConnectReply	32
111 
112 typedef struct {
113     CARD8   reqType;
114     CARD8   dri2ReqType;
115     CARD16  length B16;
116     CARD32  window B32;
117     CARD32  magic B32;
118 } xDRI2AuthenticateReq;
119 #define sz_xDRI2AuthenticateReq   12
120 
121 typedef struct {
122     BYTE    type;   /* X_Reply */
123     BYTE    pad1;
124     CARD16  sequenceNumber B16;
125     CARD32  length B32;
126     CARD32  authenticated B32;
127     CARD32  pad2 B32;
128     CARD32  pad3 B32;
129     CARD32  pad4 B32;
130     CARD32  pad5 B32;
131     CARD32  pad6 B32;
132 } xDRI2AuthenticateReply;
133 #define sz_xDRI2AuthenticateReply	32
134 
135 typedef struct {
136     CARD8   reqType;
137     CARD8   dri2ReqType;
138     CARD16  length B16;
139     CARD32  drawable B32;
140 } xDRI2CreateDrawableReq;
141 #define sz_xDRI2CreateDrawableReq   8
142 
143 typedef struct {
144     CARD8   reqType;
145     CARD8   dri2ReqType;
146     CARD16  length B16;
147     CARD32  drawable B32;
148 } xDRI2DestroyDrawableReq;
149 #define sz_xDRI2DestroyDrawableReq   8
150 
151 typedef struct {
152     CARD8   reqType;
153     CARD8   dri2ReqType;
154     CARD16  length B16;
155     CARD32  drawable B32;
156     CARD32  count B32;
157 } xDRI2GetBuffersReq;
158 #define sz_xDRI2GetBuffersReq   12
159 
160 typedef struct {
161     BYTE    type;   /* X_Reply */
162     BYTE    pad1;
163     CARD16  sequenceNumber B16;
164     CARD32  length B32;
165     CARD32  width B32;
166     CARD32  height B32;
167     CARD32  count B32;
168     CARD32  pad2 B32;
169     CARD32  pad3 B32;
170     CARD32  pad4 B32;
171 } xDRI2GetBuffersReply;
172 #define sz_xDRI2GetBuffersReply	32
173 
174 typedef struct {
175     CARD8   reqType;
176     CARD8   dri2ReqType;
177     CARD16  length B16;
178     CARD32  drawable B32;
179     CARD32  region B32;
180     CARD32  dest B32;
181     CARD32  src B32;
182 } xDRI2CopyRegionReq;
183 #define sz_xDRI2CopyRegionReq   20
184 
185 typedef struct {
186     BYTE    type;   /* X_Reply */
187     BYTE    pad1;
188     CARD16  sequenceNumber B16;
189     CARD32  length B32;
190     CARD32  pad2 B32;
191     CARD32  pad3 B32;
192     CARD32  pad4 B32;
193     CARD32  pad5 B32;
194     CARD32  pad6 B32;
195     CARD32  pad7 B32;
196 } xDRI2CopyRegionReply;
197 #define sz_xDRI2CopyRegionReply	32
198 
199 typedef struct {
200     CARD8   reqType;
201     CARD8   dri2ReqType;
202     CARD16  length B16;
203     CARD32  drawable B32;
204     CARD32  target_msc_hi B32;
205     CARD32  target_msc_lo B32;
206     CARD32  divisor_hi B32;
207     CARD32  divisor_lo B32;
208     CARD32  remainder_hi B32;
209     CARD32  remainder_lo B32;
210 } xDRI2SwapBuffersReq;
211 #define sz_xDRI2SwapBuffersReq  32
212 
213 typedef struct {
214     BYTE    type;   /* X_Reply */
215     BYTE    pad1;
216     CARD16  sequenceNumber B16;
217     CARD32  length B32;
218     CARD32  swap_hi B32;
219     CARD32  swap_lo B32;
220     CARD32  pad2 B32;
221     CARD32  pad3 B32;
222     CARD32  pad4 B32;
223     CARD32  pad5 B32;
224 } xDRI2SwapBuffersReply;
225 #define sz_xDRI2SwapBuffersReply 32
226 
227 #endif
228