[PATCH] Allow old servers to build with new headers
Peter Hutterer
peter.hutterer at who-t.net
Tue Nov 3 19:42:07 PST 2009
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 <keithp at keithp.com>
> ---
> 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 <peter.hutterer at who-t.net>
Cheers,
Peter
More information about the xorg-devel
mailing list