]> git.sesse.net Git - rdpsrv/blob - Xserver/include/extensions/shmstr.h
Import X server from vnc-3.3.7.
[rdpsrv] / Xserver / include / extensions / shmstr.h
1 /************************************************************
2
3 Copyright (c) 1989  X Consortium
4
5 Permission is hereby granted, free of charge, to any person obtaining a copy
6 of this software and associated documentation files (the "Software"), to deal
7 in the Software without restriction, including without limitation the rights
8 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 copies of the Software, and to permit persons to whom the Software is
10 furnished to do so, subject to the following conditions:
11
12 The above copyright notice and this permission notice shall be included in
13 all copies or substantial portions of the Software.
14
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 X CONSORTIUM 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.
21
22 Except as contained in this notice, the name of the X Consortium 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 X Consortium.
25
26 ********************************************************/
27
28 /* THIS IS NOT AN X CONSORTIUM STANDARD */
29
30 #ifndef _SHMSTR_H_
31 #define _SHMSTR_H_
32
33 /* $XConsortium: shmstr.h,v 1.9 94/04/17 20:11:25 rws Exp $ */
34 /* $XFree86: xc/include/extensions/shmstr.h,v 3.0 1996/05/06 05:52:42 dawes Exp $ */
35
36 #include "XShm.h"
37
38 #define ShmSeg CARD32
39 #define Drawable CARD32
40 #define VisualID CARD32
41 #define GContext CARD32
42 #define Pixmap CARD32
43
44 #define SHMNAME "MIT-SHM"
45
46 #define SHM_MAJOR_VERSION       1       /* current version numbers */
47 #define SHM_MINOR_VERSION       1
48
49 #ifdef _XSHM_SERVER_
50 #if NeedFunctionPrototypes
51 #define XSHM_PUT_IMAGE_ARGS \
52     DrawablePtr         /* dst */, \
53     GCPtr               /* pGC */, \
54     int                 /* depth */, \
55     unsigned int        /* format */, \
56     int                 /* w */, \
57     int                 /* h */, \
58     int                 /* sx */, \
59     int                 /* sy */, \
60     int                 /* sw */, \
61     int                 /* sh */, \
62     int                 /* dx */, \
63     int                 /* dy */, \
64     char *              /* data */
65 #else
66 #define XSHM_PUT_IMAGE_ARGS /* nothing */
67 #endif
68
69 #if NeedFunctionPrototypes
70 #define XSHM_CREATE_PIXMAP_ARGS \
71     ScreenPtr   /* pScreen */, \
72     int         /* width */, \
73     int         /* height */, \
74     int         /* depth */, \
75     char *      /* addr */
76 #else
77 #define XSHM_CREATE_PIXMAP_ARGS /* nothing */
78 #endif
79
80 typedef struct _ShmFuncs {
81     PixmapPtr   (* CreatePixmap)(XSHM_CREATE_PIXMAP_ARGS);
82     void        (* PutImage)(XSHM_PUT_IMAGE_ARGS);
83 } ShmFuncs, *ShmFuncsPtr;
84 #endif
85
86 typedef struct _ShmQueryVersion {
87     CARD8       reqType;                /* always ShmReqCode */
88     CARD8       shmReqType;             /* always X_ShmQueryVersion */
89     CARD16      length B16;
90 } xShmQueryVersionReq;
91 #define sz_xShmQueryVersionReq  4
92
93 typedef struct {
94     BYTE        type;                   /* X_Reply */
95     BOOL        sharedPixmaps;
96     CARD16      sequenceNumber B16;
97     CARD32      length B32;
98     CARD16      majorVersion B16;       /* major version of SHM protocol */
99     CARD16      minorVersion B16;       /* minor version of SHM protocol */
100     CARD16      uid B16;
101     CARD16      gid B16;
102     CARD8       pixmapFormat;
103     CARD8       pad0;
104     CARD16      pad1 B16;
105     CARD32      pad2 B32;
106     CARD32      pad3 B32;
107     CARD32      pad4 B32;
108 } xShmQueryVersionReply;
109 #define sz_xShmQueryVersionReply        32
110
111 typedef struct _ShmAttach {
112     CARD8       reqType;        /* always ShmReqCode */
113     CARD8       shmReqType;     /* always X_ShmAttach */
114     CARD16      length B16;
115     ShmSeg      shmseg B32;
116     CARD32      shmid B32;
117     BOOL        readOnly;
118     BYTE        pad0;
119     CARD16      pad1 B16;
120 } xShmAttachReq;
121 #define sz_xShmAttachReq        16
122
123 typedef struct _ShmDetach {
124     CARD8       reqType;        /* always ShmReqCode */
125     CARD8       shmReqType;     /* always X_ShmDetach */
126     CARD16      length B16;
127     ShmSeg      shmseg B32;
128 } xShmDetachReq;
129 #define sz_xShmDetachReq        8
130
131 typedef struct _ShmPutImage {
132     CARD8       reqType;        /* always ShmReqCode */
133     CARD8       shmReqType;     /* always X_ShmPutImage */
134     CARD16      length B16;
135     Drawable    drawable B32;
136     GContext    gc B32;
137     CARD16      totalWidth B16;
138     CARD16      totalHeight B16;
139     CARD16      srcX B16;
140     CARD16      srcY B16;
141     CARD16      srcWidth B16;
142     CARD16      srcHeight B16;
143     INT16       dstX B16;
144     INT16       dstY B16;
145     CARD8       depth;
146     CARD8       format;
147     CARD8       sendEvent;
148     CARD8       bpad;
149     ShmSeg      shmseg B32;
150     CARD32      offset B32;
151 } xShmPutImageReq;    
152 #define sz_xShmPutImageReq      40
153
154 typedef struct _ShmGetImage {
155     CARD8       reqType;        /* always ShmReqCode */
156     CARD8       shmReqType;     /* always X_ShmGetImage */
157     CARD16      length B16;
158     Drawable    drawable B32;
159     INT16       x B16;
160     INT16       y B16;
161     CARD16      width B16;
162     CARD16      height B16;
163     CARD32      planeMask B32;
164     CARD8       format;
165     CARD8       pad0;
166     CARD8       pad1;
167     CARD8       pad2;
168     ShmSeg      shmseg B32;
169     CARD32      offset B32;
170 } xShmGetImageReq;    
171 #define sz_xShmGetImageReq      32
172
173 typedef struct _ShmGetImageReply {
174     BYTE        type;  /* X_Reply */
175     CARD8       depth;
176     CARD16      sequenceNumber B16;
177     CARD32      length B32;
178     VisualID    visual B32;
179     CARD32      size B32;
180     CARD32      pad0 B32;
181     CARD32      pad1 B32;
182     CARD32      pad2 B32;
183     CARD32      pad3 B32;
184 } xShmGetImageReply;
185 #define sz_xShmGetImageReply    32
186
187 typedef struct _ShmCreatePixmap {
188     CARD8       reqType;        /* always ShmReqCode */
189     CARD8       shmReqType;     /* always X_ShmCreatePixmap */
190     CARD16      length B16;
191     Pixmap      pid B32;
192     Drawable    drawable B32;
193     CARD16      width B16;
194     CARD16      height B16;
195     CARD8       depth;
196     CARD8       pad0;
197     CARD8       pad1;
198     CARD8       pad2;
199     ShmSeg      shmseg B32;
200     CARD32      offset B32;
201 } xShmCreatePixmapReq;
202 #define sz_xShmCreatePixmapReq 28
203
204 typedef struct _ShmCompletion {
205     BYTE        type;           /* always eventBase + ShmCompletion */
206     BYTE        bpad0;
207     CARD16      sequenceNumber B16;
208     Drawable    drawable B32;
209     CARD16      minorEvent B16;
210     BYTE        majorEvent;
211     BYTE        bpad1;
212     ShmSeg      shmseg B32;
213     CARD32      offset B32;
214     CARD32      pad0 B32;
215     CARD32      pad1 B32;
216     CARD32      pad2 B32;
217 } xShmCompletionEvent;
218 #define sz_xShmCompletionEvent  32
219
220 #undef ShmSeg
221 #undef Drawable
222 #undef VisualID
223 #undef GContext
224 #undef Pixmap
225
226 #endif /* _SHMSTR_H_ */