github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xcb/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_ */