On Tue, Nov 03, 2009 at 02:42:17PM -0800, Keith Packard wrote: > This provides header compatibility back to X server version 1.6 at > least (that's all I tested). > > Signed-off-by: Keith Packard <[email protected]> > --- > Makefile.am | 10 +++ > shapestr.h | 8 +++ > shmstr.h | 66 +++++++++++++++++++++ > syncstr.h | 184 > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 268 insertions(+), 0 deletions(-) > create mode 100644 shapestr.h > create mode 100644 shmstr.h > create mode 100644 syncstr.h > > diff --git a/Makefile.am b/Makefile.am > index 8cdd0ac..029c971 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -31,6 +31,16 @@ xext_HEADERS = \ > xtestconst.h \ > xtestproto.h > > +# > +# These headers allow old servers to be built with > +# new headers > +# > +compatdir = $(xextdir) > +compat_HEADERS = \ > + shapestr.h \ > + shmstr.h \ > + syncstr.h > + > pkgconfigdir = $(libdir)/pkgconfig > pkgconfig_DATA = xextproto.pc > > diff --git a/shapestr.h b/shapestr.h > new file mode 100644 > index 0000000..20fde1d > --- /dev/null > +++ b/shapestr.h > @@ -0,0 +1,8 @@ > +#ifndef _SHAPESTR_H_ > +#define _SHAPESTR_H_ > + > +#warning "shapestr.h is obsolete and may be removed in the future." > +#warning "include <X11/extensions/shapeproto.h> for the protocol defines." > +#include <X11/extensions/shapeproto.h> > + > +#endif /* _SHAPESTR_H_ */ > diff --git a/shmstr.h b/shmstr.h > new file mode 100644 > index 0000000..6358860 > --- /dev/null > +++ b/shmstr.h > @@ -0,0 +1,66 @@ > +/* $XFree86: xc/include/extensions/shmstr.h,v 3.3 2001/12/14 19:53:29 dawes > Exp $ */ > +/************************************************************ > + > +Copyright 1989, 1998 The Open Group > + > +Permission to use, copy, modify, distribute, and sell this software and its > +documentation for any purpose is hereby granted without fee, provided that > +the above copyright notice appear in all copies and that both that > +copyright notice and this permission notice appear in supporting > +documentation. > + > +The above copyright notice and this permission notice shall be included in > +all copies or substantial portions of the Software. > + > +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE > +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN > +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. > + > +Except as contained in this notice, the name of The Open Group shall not be > +used in advertising or otherwise to promote the sale, use or other dealings > +in this Software without prior written authorization from The Open Group. > + > +********************************************************/ > + > +/* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */ > + > +#ifndef _SHMSTR_H_ > +#define _SHMSTR_H_ > + > +/* $Xorg: shmstr.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */ > + > +#include <X11/extensions/shmproto.h> > + > +#ifdef _XSHM_SERVER_ > +#define XSHM_PUT_IMAGE_ARGS \ > + DrawablePtr /* dst */, \ > + GCPtr /* pGC */, \ > + int /* depth */, \ > + unsigned int /* format */, \ > + int /* w */, \ > + int /* h */, \ > + int /* sx */, \ > + int /* sy */, \ > + int /* sw */, \ > + int /* sh */, \ > + int /* dx */, \ > + int /* dy */, \ > + char * /* data */ > + > +#define XSHM_CREATE_PIXMAP_ARGS \ > + ScreenPtr /* pScreen */, \ > + int /* width */, \ > + int /* height */, \ > + int /* depth */, \ > + char * /* addr */ > + > +typedef struct _ShmFuncs { > + PixmapPtr (* CreatePixmap)(XSHM_CREATE_PIXMAP_ARGS); > + void (* PutImage)(XSHM_PUT_IMAGE_ARGS); > +} ShmFuncs, *ShmFuncsPtr; > +#endif > + > +#endif /* _SHMSTR_H_ */ > diff --git a/syncstr.h b/syncstr.h > new file mode 100644 > index 0000000..87697a2 > --- /dev/null > +++ b/syncstr.h > @@ -0,0 +1,184 @@ > +/* $Xorg: syncstr.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */ > +/* > + > +Copyright 1991, 1993, 1994, 1998 The Open Group > + > +Permission to use, copy, modify, distribute, and sell this software and its > +documentation for any purpose is hereby granted without fee, provided that > +the above copyright notice appear in all copies and that both that > +copyright notice and this permission notice appear in supporting > +documentation. > + > +The above copyright notice and this permission notice shall be included in > +all copies or substantial portions of the Software. > + > +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE > +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN > +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. > + > +Except as contained in this notice, the name of The Open Group shall not be > +used in advertising or otherwise to promote the sale, use or other dealings > +in this Software without prior written authorization from The Open Group. > + > +*/ > + > +/*********************************************************** > +Copyright 1991,1993 by Digital Equipment Corporation, Maynard, Massachusetts, > +and Olivetti Research Limited, Cambridge, England. > + > + All Rights Reserved > + > +Permission to use, copy, modify, and distribute this software and its > +documentation for any purpose and without fee is hereby granted, > +provided that the above copyright notice appear in all copies and that > +both that copyright notice and this permission notice appear in > +supporting documentation, and that the names of Digital or Olivetti > +not be used in advertising or publicity pertaining to distribution of the > +software without specific, written prior permission. > + > +DIGITAL AND OLIVETTI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS > +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND > +FITNESS, IN NO EVENT SHALL THEY BE LIABLE FOR ANY SPECIAL, INDIRECT OR > +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF > +USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR > +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR > +PERFORMANCE OF THIS SOFTWARE. > + > +******************************************************************/ > +/* $XFree86: xc/include/extensions/syncstr.h,v 1.3 2003/07/16 01:38:24 dawes > Exp $ */ > + > +#ifndef _SYNCSTR_H_ > +#define _SYNCSTR_H_ > + > +#include <X11/extensions/syncproto.h> > + > +#ifdef _SYNC_SERVER > + > +#define CARD64 XSyncValue /* XXX temporary! need real 64 bit values for > Alpha */ > + > +typedef struct _SyncCounter { > + ClientPtr client; /* Owning client. 0 for system counters > */ > + XSyncCounter id; /* resource ID */ > + CARD64 value; /* counter value */ > + struct _SyncTriggerList *pTriglist; /* list of triggers */ > + Bool beingDestroyed; /* in process of going away */ > + struct _SysCounterInfo *pSysCounterInfo; /* NULL if not a system counter > */ > +} SyncCounter; > + > +/* > + * The System Counter interface > + */ > + > +typedef enum { > + XSyncCounterNeverChanges, > + XSyncCounterNeverIncreases, > + XSyncCounterNeverDecreases, > + XSyncCounterUnrestricted > +} SyncCounterType; > + > +typedef struct _SysCounterInfo { > + char *name; > + CARD64 resolution; > + CARD64 bracket_greater; > + CARD64 bracket_less; > + SyncCounterType counterType; /* how can this counter change */ > + void (*QueryValue)( > + pointer /*pCounter*/, > + CARD64 * /*freshvalue*/ > +); > + void (*BracketValues)( > + pointer /*pCounter*/, > + CARD64 * /*lessthan*/, > + CARD64 * /*greaterthan*/ > +); > +} SysCounterInfo; > + > + > + > +typedef struct _SyncTrigger { > + SyncCounter *pCounter; > + CARD64 wait_value; /* wait value */ > + unsigned int value_type; /* Absolute or Relative */ > + unsigned int test_type; /* transition or Comparision type */ > + CARD64 test_value; /* trigger event threshold value */ > + Bool (*CheckTrigger)( > + struct _SyncTrigger * /*pTrigger*/, > + CARD64 /*newval*/ > + ); > + void (*TriggerFired)( > + struct _SyncTrigger * /*pTrigger*/ > + ); > + void (*CounterDestroyed)( > + struct _SyncTrigger * /*pTrigger*/ > + ); > +} SyncTrigger; > + > +typedef struct _SyncTriggerList { > + SyncTrigger *pTrigger; > + struct _SyncTriggerList *next; > +} SyncTriggerList; > + > +typedef struct _SyncAlarmClientList { > + ClientPtr client; > + XID delete_id; > + struct _SyncAlarmClientList *next; > +} SyncAlarmClientList; > + > +typedef struct _SyncAlarm { > + SyncTrigger trigger; > + ClientPtr client; > + XSyncAlarm alarm_id; > + CARD64 delta; > + int events; > + int state; > + SyncAlarmClientList *pEventClients; > +} SyncAlarm; > + > +typedef struct { > + ClientPtr client; > + CARD32 delete_id; > + int num_waitconditions; > +} SyncAwaitHeader; > + > +typedef struct { > + SyncTrigger trigger; > + CARD64 event_threshold; > + SyncAwaitHeader *pHeader; > +} SyncAwait; > + > +typedef union { > + SyncAwaitHeader header; > + SyncAwait await; > +} SyncAwaitUnion; > + > + > +extern pointer SyncCreateSystemCounter( > + char * /* name */, > + CARD64 /* inital_value */, > + CARD64 /* resolution */, > + SyncCounterType /* change characterization */, > + void (* /*QueryValue*/ ) ( > + pointer /* pCounter */, > + CARD64 * /* pValue_return */), /* XXX prototype */ > + void (* /*BracketValues*/) ( > + pointer /* pCounter */, > + CARD64 * /* pbracket_less */, > + CARD64 * /* pbracket_greater */) > +); > + > +extern void SyncChangeCounter( > + SyncCounter * /* pCounter*/, > + CARD64 /* new_value */ > +); > + > +extern void SyncDestroySystemCounter( > + pointer pCounter > +); > +extern void InitServertime(void); > + > +#endif /* _SYNC_SERVER */ > + > +#endif /* _SYNCSTR_H_ */ > -- > 1.6.5
Reviewed-by: Peter Hutterer <[email protected]> Cheers, Peter _______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
