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.c		\
 | 
				
			||||||
	sleepuntil.h		\
 | 
						sleepuntil.h		\
 | 
				
			||||||
	sync.c			\
 | 
						sync.c			\
 | 
				
			||||||
 | 
						syncsrv.h		\
 | 
				
			||||||
	xcmisc.c		\
 | 
						xcmisc.c		\
 | 
				
			||||||
	xtest.c
 | 
						xtest.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,9 +67,9 @@ PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
#include "dixstruct.h"
 | 
					#include "dixstruct.h"
 | 
				
			||||||
#include "resource.h"
 | 
					#include "resource.h"
 | 
				
			||||||
#include "opaque.h"
 | 
					#include "opaque.h"
 | 
				
			||||||
#define _SYNC_SERVER
 | 
					 | 
				
			||||||
#include <X11/extensions/sync.h>
 | 
					#include <X11/extensions/sync.h>
 | 
				
			||||||
#include <X11/extensions/syncstr.h>
 | 
					#include <X11/extensions/syncstr.h>
 | 
				
			||||||
 | 
					#include "syncsrv.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#if !defined(WIN32)
 | 
					#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