github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xkbcommon/include/X11/extensions/shmproto.h (about) 1 /************************************************************ 2 3 Copyright 1989, 1998 The Open Group 4 5 Permission to use, copy, modify, distribute, and sell this software and its 6 documentation for any purpose is hereby granted without fee, provided that 7 the above copyright notice appear in all copies and that both that 8 copyright notice and this permission notice appear in supporting 9 documentation. 10 11 The above copyright notice and this permission notice shall be included in 12 all copies or substantial portions of the Software. 13 14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 18 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 19 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 20 21 Except as contained in this notice, the name of The Open Group shall not be 22 used in advertising or otherwise to promote the sale, use or other dealings 23 in this Software without prior written authorization from The Open Group. 24 25 ********************************************************/ 26 27 /* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */ 28 29 #ifndef _SHMPROTO_H_ 30 #define _SHMPROTO_H_ 31 32 #include <X11/extensions/shm.h> 33 34 #define ShmSeg CARD32 35 #define Drawable CARD32 36 #define VisualID CARD32 37 #define GContext CARD32 38 #define Pixmap CARD32 39 40 #define X_ShmQueryVersion 0 41 #define X_ShmAttach 1 42 #define X_ShmDetach 2 43 #define X_ShmPutImage 3 44 #define X_ShmGetImage 4 45 #define X_ShmCreatePixmap 5 46 #define X_ShmAttachFd 6 47 #define X_ShmCreateSegment 7 48 49 typedef struct _ShmQueryVersion { 50 CARD8 reqType; /* always ShmReqCode */ 51 CARD8 shmReqType; /* always X_ShmQueryVersion */ 52 CARD16 length; 53 } xShmQueryVersionReq; 54 #define sz_xShmQueryVersionReq 4 55 56 typedef struct { 57 BYTE type; /* X_Reply */ 58 BOOL sharedPixmaps; 59 CARD16 sequenceNumber; 60 CARD32 length; 61 CARD16 majorVersion; /* major version of SHM protocol */ 62 CARD16 minorVersion; /* minor version of SHM protocol */ 63 CARD16 uid; 64 CARD16 gid; 65 CARD8 pixmapFormat; 66 CARD8 pad0; 67 CARD16 pad1; 68 CARD32 pad2; 69 CARD32 pad3; 70 CARD32 pad4; 71 } xShmQueryVersionReply; 72 #define sz_xShmQueryVersionReply 32 73 74 typedef struct _ShmAttach { 75 CARD8 reqType; /* always ShmReqCode */ 76 CARD8 shmReqType; /* always X_ShmAttach */ 77 CARD16 length; 78 ShmSeg shmseg; 79 CARD32 shmid; 80 BOOL readOnly; 81 BYTE pad0; 82 CARD16 pad1; 83 } xShmAttachReq; 84 #define sz_xShmAttachReq 16 85 86 typedef struct _ShmDetach { 87 CARD8 reqType; /* always ShmReqCode */ 88 CARD8 shmReqType; /* always X_ShmDetach */ 89 CARD16 length; 90 ShmSeg shmseg; 91 } xShmDetachReq; 92 #define sz_xShmDetachReq 8 93 94 typedef struct _ShmPutImage { 95 CARD8 reqType; /* always ShmReqCode */ 96 CARD8 shmReqType; /* always X_ShmPutImage */ 97 CARD16 length; 98 Drawable drawable; 99 GContext gc; 100 CARD16 totalWidth; 101 CARD16 totalHeight; 102 CARD16 srcX; 103 CARD16 srcY; 104 CARD16 srcWidth; 105 CARD16 srcHeight; 106 INT16 dstX; 107 INT16 dstY; 108 CARD8 depth; 109 CARD8 format; 110 CARD8 sendEvent; 111 CARD8 bpad; 112 ShmSeg shmseg; 113 CARD32 offset; 114 } xShmPutImageReq; 115 #define sz_xShmPutImageReq 40 116 117 typedef struct _ShmGetImage { 118 CARD8 reqType; /* always ShmReqCode */ 119 CARD8 shmReqType; /* always X_ShmGetImage */ 120 CARD16 length; 121 Drawable drawable; 122 INT16 x; 123 INT16 y; 124 CARD16 width; 125 CARD16 height; 126 CARD32 planeMask; 127 CARD8 format; 128 CARD8 pad0; 129 CARD8 pad1; 130 CARD8 pad2; 131 ShmSeg shmseg; 132 CARD32 offset; 133 } xShmGetImageReq; 134 #define sz_xShmGetImageReq 32 135 136 typedef struct _ShmGetImageReply { 137 BYTE type; /* X_Reply */ 138 CARD8 depth; 139 CARD16 sequenceNumber; 140 CARD32 length; 141 VisualID visual; 142 CARD32 size; 143 CARD32 pad0; 144 CARD32 pad1; 145 CARD32 pad2; 146 CARD32 pad3; 147 } xShmGetImageReply; 148 #define sz_xShmGetImageReply 32 149 150 typedef struct _ShmCreatePixmap { 151 CARD8 reqType; /* always ShmReqCode */ 152 CARD8 shmReqType; /* always X_ShmCreatePixmap */ 153 CARD16 length; 154 Pixmap pid; 155 Drawable drawable; 156 CARD16 width; 157 CARD16 height; 158 CARD8 depth; 159 CARD8 pad0; 160 CARD8 pad1; 161 CARD8 pad2; 162 ShmSeg shmseg; 163 CARD32 offset; 164 } xShmCreatePixmapReq; 165 #define sz_xShmCreatePixmapReq 28 166 167 typedef struct _ShmCompletion { 168 BYTE type; /* always eventBase + ShmCompletion */ 169 BYTE bpad0; 170 CARD16 sequenceNumber; 171 Drawable drawable; 172 CARD16 minorEvent; 173 BYTE majorEvent; 174 BYTE bpad1; 175 ShmSeg shmseg; 176 CARD32 offset; 177 CARD32 pad0; 178 CARD32 pad1; 179 CARD32 pad2; 180 } xShmCompletionEvent; 181 #define sz_xShmCompletionEvent 32 182 183 /* Version 1.2 additions */ 184 typedef struct _ShmAttachFd { 185 CARD8 reqType; /* always ShmReqCode */ 186 CARD8 shmReqType; /* always X_ShmAttachFd */ 187 CARD16 length; 188 ShmSeg shmseg; 189 BOOL readOnly; 190 BYTE pad0; 191 CARD16 pad1; 192 } xShmAttachFdReq; 193 /* File descriptor is passed with this request */ 194 #define sz_xShmAttachFdReq 12 195 196 typedef struct _ShmCreateSegment { 197 CARD8 reqType; /* always ShmReqCode */ 198 CARD8 shmReqType; /* always X_ShmAttachFd */ 199 CARD16 length; 200 ShmSeg shmseg; 201 CARD32 size; 202 BOOL readOnly; 203 BYTE pad0; 204 CARD16 pad1; 205 } xShmCreateSegmentReq; 206 #define sz_xShmCreateSegmentReq 16 207 208 typedef struct { 209 CARD8 type; /* must be X_Reply */ 210 CARD8 nfd; /* must be 1 */ 211 CARD16 sequenceNumber; /* last sequence number */ 212 CARD32 length; /* 0 */ 213 CARD32 pad2; /* unused */ 214 CARD32 pad3; /* unused */ 215 CARD32 pad4; /* unused */ 216 CARD32 pad5; /* unused */ 217 CARD32 pad6; /* unused */ 218 CARD32 pad7; /* unused */ 219 } xShmCreateSegmentReply; 220 /* File descriptor is passed with this reply */ 221 #define sz_xShmCreateSegmentReply 32 222 223 #undef ShmSeg 224 #undef Drawable 225 #undef VisualID 226 #undef GContext 227 #undef Pixmap 228 229 #endif /* _SHMPROTO_H_ */