xserver

xserver with xephyr scale patch
git clone https://git.neptards.moe/u3shit/xserver.git
Log | Files | Refs | README | LICENSE

shmint.h (2743B)


      1 /*
      2  * Copyright © 2003 Keith Packard
      3  *
      4  * Permission to use, copy, modify, distribute, and sell this software and its
      5  * documentation for any purpose is hereby granted without fee, provided that
      6  * the above copyright notice appear in all copies and that both that
      7  * copyright notice and this permission notice appear in supporting
      8  * documentation, and that the name of Keith Packard not be used in
      9  * advertising or publicity pertaining to distribution of the software without
     10  * specific, written prior permission.  Keith Packard makes no
     11  * representations about the suitability of this software for any purpose.  It
     12  * is provided "as is" without express or implied warranty.
     13  *
     14  * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
     15  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
     16  * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
     17  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
     18  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
     19  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
     20  * PERFORMANCE OF THIS SOFTWARE.
     21  */
     22 
     23 #ifndef _SHMINT_H_
     24 #define _SHMINT_H_
     25 
     26 #include <X11/extensions/shmproto.h>
     27 
     28 #include "screenint.h"
     29 #include "pixmap.h"
     30 #include "gc.h"
     31 
     32 #define XSHM_PUT_IMAGE_ARGS \
     33     DrawablePtr		/* dst */, \
     34     GCPtr		/* pGC */, \
     35     int			/* depth */, \
     36     unsigned int	/* format */, \
     37     int			/* w */, \
     38     int			/* h */, \
     39     int			/* sx */, \
     40     int			/* sy */, \
     41     int			/* sw */, \
     42     int			/* sh */, \
     43     int			/* dx */, \
     44     int			/* dy */, \
     45     char *                      /* data */
     46 
     47 #define XSHM_CREATE_PIXMAP_ARGS \
     48     ScreenPtr	/* pScreen */, \
     49     int		/* width */, \
     50     int		/* height */, \
     51     int		/* depth */, \
     52     char *                      /* addr */
     53 
     54 typedef struct _ShmFuncs {
     55     PixmapPtr (*CreatePixmap) (XSHM_CREATE_PIXMAP_ARGS);
     56     void (*PutImage) (XSHM_PUT_IMAGE_ARGS);
     57 } ShmFuncs, *ShmFuncsPtr;
     58 
     59 #if XTRANS_SEND_FDS
     60 #define SHM_FD_PASSING  1
     61 #endif
     62 
     63 typedef struct _ShmDesc {
     64     struct _ShmDesc *next;
     65     int shmid;
     66     int refcnt;
     67     char *addr;
     68     Bool writable;
     69     unsigned long size;
     70 #ifdef SHM_FD_PASSING
     71     Bool is_fd;
     72     struct busfault *busfault;
     73     XID resource;
     74 #endif
     75 } ShmDescRec, *ShmDescPtr;
     76 
     77 #ifdef SHM_FD_PASSING
     78 #define SHMDESC_IS_FD(shmdesc)  ((shmdesc)->is_fd)
     79 #else
     80 #define SHMDESC_IS_FD(shmdesc)  (0)
     81 #endif
     82 
     83 extern _X_EXPORT void
     84  ShmRegisterFuncs(ScreenPtr pScreen, ShmFuncsPtr funcs);
     85 
     86 extern _X_EXPORT void
     87  ShmRegisterFbFuncs(ScreenPtr pScreen);
     88 
     89 extern _X_EXPORT RESTYPE ShmSegType;
     90 extern _X_EXPORT int ShmCompletionCode;
     91 extern _X_EXPORT int BadShmSegCode;
     92 
     93 #endif                          /* _SHMINT_H_ */