117ca54c3Smrg/* $XFree86$ */
217ca54c3Smrg
317ca54c3Smrg#ifndef __XTRAPDDMI__
417ca54c3Smrg#define __XTRAPDDMI__
517ca54c3Smrg
617ca54c3Smrg/*****************************************************************************
717ca54c3SmrgCopyright 1987, 1988, 1989, 1990, 1991 by Digital Equipment Corp., Maynard, MA
817ca54c3Smrg
9ea1d6981SmrgPermission to use, copy, modify, and distribute this software and its
10ea1d6981Smrgdocumentation for any purpose and without fee is hereby granted,
1117ca54c3Smrgprovided that the above copyright notice appear in all copies and that
12ea1d6981Smrgboth that copyright notice and this permission notice appear in
1317ca54c3Smrgsupporting documentation, and that the name of Digital not be
1417ca54c3Smrgused in advertising or publicity pertaining to distribution of the
15ea1d6981Smrgsoftware without specific, written prior permission.
1617ca54c3Smrg
1717ca54c3SmrgDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
1817ca54c3SmrgALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
1917ca54c3SmrgDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
2017ca54c3SmrgANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
2117ca54c3SmrgWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
2217ca54c3SmrgARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
2317ca54c3SmrgSOFTWARE.
2417ca54c3Smrg
2517ca54c3Smrg*****************************************************************************/
2617ca54c3Smrg/*
2717ca54c3Smrg *
2817ca54c3Smrg *  CONTRIBUTORS:
2917ca54c3Smrg *
3017ca54c3Smrg *      Dick Annicchiarico
3117ca54c3Smrg *      Robert Chesler
3217ca54c3Smrg *      Dan Coutu
3317ca54c3Smrg *      Gene Durso
3417ca54c3Smrg *      Marc Evans
3517ca54c3Smrg *      Alan Jamison
3617ca54c3Smrg *      Mark Henry
3717ca54c3Smrg *      Ken Miller
3817ca54c3Smrg *
3917ca54c3Smrg *  DESCRIPTION:
4017ca54c3Smrg *      This header file is used by the XTrap server extension only
4117ca54c3Smrg *      (not used by clients or the XTrap Toolkit).  Information
4217ca54c3Smrg *      contained herein should *not* be visible to clients (xtrapdi.h
4317ca54c3Smrg *      is used for this).  The name is historical.
4417ca54c3Smrg */
4517ca54c3Smrg#include <X11/X.h>
4617ca54c3Smrg#include <X11/extensions/xtrapbits.h>
4717ca54c3Smrg#include "dix.h"
4817ca54c3Smrg
4917ca54c3Smrg#ifndef MIN
5017ca54c3Smrg# define MIN(a,b) ((a) < (b) ? (a) : (b))
5117ca54c3Smrg#endif
5217ca54c3Smrg#ifndef MAX
5317ca54c3Smrg# define MAX(a,b) ((a) > (b) ? (a) : (b))
5417ca54c3Smrg#endif
5517ca54c3Smrg
5617ca54c3Smrg#define XETrapNumEvents    1L  /* constants used for AddExtension */
5717ca54c3Smrg
5817ca54c3Smrg/* Other constants used within the extension code */
5917ca54c3Smrg#define XETrapMinRepSize        32L        /* Minimum number of longs */
6017ca54c3Smrg
6117ca54c3Smrg/* This structure will be globally declared to provide storage to hold
6217ca54c3Smrg * the various extension wide configuration information.  Allocated on
6317ca54c3Smrg * a per-client basis.
6417ca54c3Smrg */
6517ca54c3Smrgtypedef struct
6617ca54c3Smrg{
6717ca54c3Smrg    ClientPtr            client;  /* Multi-client support and error handling */
6817ca54c3Smrg    xXTrapGetCurReply    cur;    /* Struct of Miscellaneous state info */
6917ca54c3Smrg    xXTrapGetStatsReply  *stats; /* Pointer to stat's, malloc'd if requested */
70ea1d6981Smrg    CARD32 last_input_time;      /* last timestamp from input event */
71ea1d6981Smrg    CARD16 protocol;             /* current communication protocol */
7217ca54c3Smrg} XETrapEnv;
7317ca54c3Smrg
7417ca54c3Smrg#define XETrapSetHeaderEvent(phdr)      ((phdr)->type = 0x1L)
7517ca54c3Smrg#define XETrapSetHeaderRequest(phdr)    ((phdr)->type = 0x2L)
7617ca54c3Smrg#define XETrapSetHeaderSpecial(phdr)    ((phdr)->type = 0x3L)
7717ca54c3Smrg#define XETrapSetHeaderCursor(phdr)     ((phdr)->type = 0x4L)
7817ca54c3Smrg#define XETrapSetHeaderReply(phdr)      ((phdr)->type = 0x5L)
7917ca54c3Smrg
8017ca54c3Smrg#ifndef vaxc
81ea1d6981Smrg#define globaldef
8217ca54c3Smrg#define globalref extern
8317ca54c3Smrg#endif
8417ca54c3Smrg
8517ca54c3Smrg/* Extension platform identifier (conditionally defined) */
8617ca54c3Smrg#if ( defined (__osf__) && defined(__alpha) )
8717ca54c3Smrg# define XETrapPlatform    PF_DECOSF1
8817ca54c3Smrg#endif
8917ca54c3Smrg#ifdef ultrix
9017ca54c3Smrg# define XETrapPlatform    PF_DECUltrix
9117ca54c3Smrg#endif
9217ca54c3Smrg#ifdef vms
9317ca54c3Smrg#ifdef VAXELN
9417ca54c3Smrg# define XETrapPlatform    PF_DECELN
9517ca54c3Smrg#else
9617ca54c3Smrg# define XETrapPlatform    PF_DECVMS
9717ca54c3Smrg#endif
9817ca54c3Smrg#endif
9917ca54c3Smrg#ifdef VT1000
10017ca54c3Smrg# define XETrapPlatform    PF_DECVT1000
10117ca54c3Smrg#endif
10217ca54c3Smrg#ifdef VXT
10317ca54c3Smrg# define XETrapPlatform    PF_DECXTerm
10417ca54c3Smrg#endif
10517ca54c3Smrg#ifdef PC
10617ca54c3Smrg# define XETrapPlatform    PF_IBMAT
10717ca54c3Smrg#endif
10817ca54c3Smrg#ifdef sun
10917ca54c3Smrg# define XETrapPlatform    PF_SunSparc
11017ca54c3Smrg#endif
11117ca54c3Smrg#ifndef XETrapPlatform
11217ca54c3Smrg# define XETrapPlatform    PF_Other
11317ca54c3Smrg#endif  /* XETrapPlatform */
11417ca54c3Smrg
11517ca54c3Smrg#endif /* __XTRAPDDMI__ */
116