xsync: Use a local header for server API definitions
This commit is contained in:
		
							parent
							
								
									1208a1dbca
								
							
						
					
					
						commit
						e0d8f6a808
					
				| 
						 | 
				
			
			@ -26,6 +26,7 @@ BUILTIN_SRCS =			\
 | 
			
		|||
	sleepuntil.c		\
 | 
			
		||||
	sleepuntil.h		\
 | 
			
		||||
	sync.c			\
 | 
			
		||||
	syncsrv.h		\
 | 
			
		||||
	xcmisc.c		\
 | 
			
		||||
	xtest.c
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,9 +67,9 @@ PERFORMANCE OF THIS SOFTWARE.
 | 
			
		|||
#include "dixstruct.h"
 | 
			
		||||
#include "resource.h"
 | 
			
		||||
#include "opaque.h"
 | 
			
		||||
#define _SYNC_SERVER
 | 
			
		||||
#include <X11/extensions/sync.h>
 | 
			
		||||
#include <X11/extensions/syncstr.h>
 | 
			
		||||
#include "syncsrv.h"
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#if !defined(WIN32)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,176 @@
 | 
			
		|||
/*
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
******************************************************************/
 | 
			
		||||
 | 
			
		||||
#ifndef _SYNCSTR_H_
 | 
			
		||||
#define _SYNCSTR_H_
 | 
			
		||||
 | 
			
		||||
#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 /* _SYNCSTR_H_ */
 | 
			
		||||
		Loading…
	
		Reference in New Issue