Initial commit
[xorg_rtime.git] / xextproto-7.0.2 / shmstr.h
blobb15538d4ea1c45802ed58b9a14a0646a8a719d85
1 /* $XFree86: xc/include/extensions/shmstr.h,v 3.3 2001/12/14 19:53:29 dawes Exp $ */
2 /************************************************************
4 Copyright 1989, 1998 The Open Group
6 Permission to use, copy, modify, distribute, and sell this software and its
7 documentation for any purpose is hereby granted without fee, provided that
8 the above copyright notice appear in all copies and that both that
9 copyright notice and this permission notice appear in supporting
10 documentation.
12 The above copyright notice and this permission notice shall be included in
13 all copies or substantial portions of the Software.
15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
19 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 Except as contained in this notice, the name of The Open Group shall not be
23 used in advertising or otherwise to promote the sale, use or other dealings
24 in this Software without prior written authorization from The Open Group.
26 ********************************************************/
28 /* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */
30 #ifndef _SHMSTR_H_
31 #define _SHMSTR_H_
33 /* $Xorg: shmstr.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
35 #include "XShm.h"
37 #define ShmSeg CARD32
38 #define Drawable CARD32
39 #define VisualID CARD32
40 #define GContext CARD32
41 #define Pixmap CARD32
43 #define SHMNAME "MIT-SHM"
45 #define SHM_MAJOR_VERSION 1 /* current version numbers */
46 #define SHM_MINOR_VERSION 1
48 #ifdef _XSHM_SERVER_
49 #define XSHM_PUT_IMAGE_ARGS \
50 DrawablePtr /* dst */, \
51 GCPtr /* pGC */, \
52 int /* depth */, \
53 unsigned int /* format */, \
54 int /* w */, \
55 int /* h */, \
56 int /* sx */, \
57 int /* sy */, \
58 int /* sw */, \
59 int /* sh */, \
60 int /* dx */, \
61 int /* dy */, \
62 char * /* data */
64 #define XSHM_CREATE_PIXMAP_ARGS \
65 ScreenPtr /* pScreen */, \
66 int /* width */, \
67 int /* height */, \
68 int /* depth */, \
69 char * /* addr */
71 typedef struct _ShmFuncs {
72 PixmapPtr (* CreatePixmap)(XSHM_CREATE_PIXMAP_ARGS);
73 void (* PutImage)(XSHM_PUT_IMAGE_ARGS);
74 } ShmFuncs, *ShmFuncsPtr;
75 #endif
77 typedef struct _ShmQueryVersion {
78 CARD8 reqType; /* always ShmReqCode */
79 CARD8 shmReqType; /* always X_ShmQueryVersion */
80 CARD16 length B16;
81 } xShmQueryVersionReq;
82 #define sz_xShmQueryVersionReq 4
84 typedef struct {
85 BYTE type; /* X_Reply */
86 BOOL sharedPixmaps;
87 CARD16 sequenceNumber B16;
88 CARD32 length B32;
89 CARD16 majorVersion B16; /* major version of SHM protocol */
90 CARD16 minorVersion B16; /* minor version of SHM protocol */
91 CARD16 uid B16;
92 CARD16 gid B16;
93 CARD8 pixmapFormat;
94 CARD8 pad0;
95 CARD16 pad1 B16;
96 CARD32 pad2 B32;
97 CARD32 pad3 B32;
98 CARD32 pad4 B32;
99 } xShmQueryVersionReply;
100 #define sz_xShmQueryVersionReply 32
102 typedef struct _ShmAttach {
103 CARD8 reqType; /* always ShmReqCode */
104 CARD8 shmReqType; /* always X_ShmAttach */
105 CARD16 length B16;
106 ShmSeg shmseg B32;
107 CARD32 shmid B32;
108 BOOL readOnly;
109 BYTE pad0;
110 CARD16 pad1 B16;
111 } xShmAttachReq;
112 #define sz_xShmAttachReq 16
114 typedef struct _ShmDetach {
115 CARD8 reqType; /* always ShmReqCode */
116 CARD8 shmReqType; /* always X_ShmDetach */
117 CARD16 length B16;
118 ShmSeg shmseg B32;
119 } xShmDetachReq;
120 #define sz_xShmDetachReq 8
122 typedef struct _ShmPutImage {
123 CARD8 reqType; /* always ShmReqCode */
124 CARD8 shmReqType; /* always X_ShmPutImage */
125 CARD16 length B16;
126 Drawable drawable B32;
127 GContext gc B32;
128 CARD16 totalWidth B16;
129 CARD16 totalHeight B16;
130 CARD16 srcX B16;
131 CARD16 srcY B16;
132 CARD16 srcWidth B16;
133 CARD16 srcHeight B16;
134 INT16 dstX B16;
135 INT16 dstY B16;
136 CARD8 depth;
137 CARD8 format;
138 CARD8 sendEvent;
139 CARD8 bpad;
140 ShmSeg shmseg B32;
141 CARD32 offset B32;
142 } xShmPutImageReq;
143 #define sz_xShmPutImageReq 40
145 typedef struct _ShmGetImage {
146 CARD8 reqType; /* always ShmReqCode */
147 CARD8 shmReqType; /* always X_ShmGetImage */
148 CARD16 length B16;
149 Drawable drawable B32;
150 INT16 x B16;
151 INT16 y B16;
152 CARD16 width B16;
153 CARD16 height B16;
154 CARD32 planeMask B32;
155 CARD8 format;
156 CARD8 pad0;
157 CARD8 pad1;
158 CARD8 pad2;
159 ShmSeg shmseg B32;
160 CARD32 offset B32;
161 } xShmGetImageReq;
162 #define sz_xShmGetImageReq 32
164 typedef struct _ShmGetImageReply {
165 BYTE type; /* X_Reply */
166 CARD8 depth;
167 CARD16 sequenceNumber B16;
168 CARD32 length B32;
169 VisualID visual B32;
170 CARD32 size B32;
171 CARD32 pad0 B32;
172 CARD32 pad1 B32;
173 CARD32 pad2 B32;
174 CARD32 pad3 B32;
175 } xShmGetImageReply;
176 #define sz_xShmGetImageReply 32
178 typedef struct _ShmCreatePixmap {
179 CARD8 reqType; /* always ShmReqCode */
180 CARD8 shmReqType; /* always X_ShmCreatePixmap */
181 CARD16 length B16;
182 Pixmap pid B32;
183 Drawable drawable B32;
184 CARD16 width B16;
185 CARD16 height B16;
186 CARD8 depth;
187 CARD8 pad0;
188 CARD8 pad1;
189 CARD8 pad2;
190 ShmSeg shmseg B32;
191 CARD32 offset B32;
192 } xShmCreatePixmapReq;
193 #define sz_xShmCreatePixmapReq 28
195 typedef struct _ShmCompletion {
196 BYTE type; /* always eventBase + ShmCompletion */
197 BYTE bpad0;
198 CARD16 sequenceNumber B16;
199 Drawable drawable B32;
200 CARD16 minorEvent B16;
201 BYTE majorEvent;
202 BYTE bpad1;
203 ShmSeg shmseg B32;
204 CARD32 offset B32;
205 CARD32 pad0 B32;
206 CARD32 pad1 B32;
207 CARD32 pad2 B32;
208 } xShmCompletionEvent;
209 #define sz_xShmCompletionEvent 32
211 #undef ShmSeg
212 #undef Drawable
213 #undef VisualID
214 #undef GContext
215 #undef Pixmap
217 #endif /* _SHMSTR_H_ */