74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* $XFree86: xc/include/extensions/xtrapemacros.h,v 1.2 2001/11/21 23:06:58 tsi Exp $ */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#ifndef __XTRAPEMACROS__
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define __XTRAPEMACROS__ "@(#)xtrapemacros.h 1.9 - 90/09/18 "
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/*****************************************************************************
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncCopyright 1987, 1988, 1989, 1990, 1991, 1994 by Digital Equipment Corp.,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncMaynard, MA
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncPermission to use, copy, modify, and distribute this software and its
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncdocumentation for any purpose and without fee is hereby granted,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncprovided that the above copyright notice appear in all copies and that
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncboth that copyright notice and this permission notice appear in
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncsupporting documentation, and that the name of Digital not be
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncused in advertising or publicity pertaining to distribution of the
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncsoftware without specific, written prior permission.
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncSOFTWARE.
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync*****************************************************************************/
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/*
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync *
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * CONTRIBUTORS:
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync *
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Dick Annicchiarico
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Robert Chesler
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Dan Coutu
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Gene Durso
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Marc Evans
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Alan Jamison
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Mark Henry
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Ken Miller
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync *
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * DESCRIPTION:
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * This include file is designed to provide the *visible*
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * interface to XTrap data structures. Fields can be set
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * using these macros by client programs unless otherwise
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * specified; however, use of Trap Context convenience
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * routines is strongly encouraged (XETrapContext.c)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#include <X11/extensions/xtrapbits.h>
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#include <signal.h>
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* msleep macro to replace msleep() for portability reasons */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define msleep(m) usleep((m)*1000)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Copying TC's assumes that the new TC must be created */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XECopyTC(src,mask,dest) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (dest = XECreateTC(((src)->dpy), (mask), (&((src)->values))))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Expands to SET each element of the TCValues structure
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Returns the TCValues Mask so that the Set can be entered
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * as an argument to the XEChangeTC() routine call
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Note: req_cb & evt_cb would only be used if you wanted to
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * *share* callbacks between Trap Contexts. Normally,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * XEAddRequestCB() and XEAddEventCB() would be used.
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgReqCB(tcv,x) ((tcv)->req_cb = (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgEvtCB(tcv,x) ((tcv)->evt_cb = (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgMaxPktSize(tcv,x) ((tcv)->v.max_pkt_size = (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgCmdKey(tcv,x) ((tcv)->v.cmd_key = (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Note: e is only pertinent for "valid" or "data" */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlags(tcv,e,a) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync memcpy((tcv)->v.flags.e, (a), sizeof((tcv)->v.flags.e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagTimestamp(tcv,e,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.e, XETrapTimestamp, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagCmd(tcv,e,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.e, XETrapCmd, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagCmdKeyMod(tcv,e,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.e, XETrapCmdKeyMod, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagRequest(tcv,e,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.e, XETrapRequest, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagEvent(tcv,e,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.e, XETrapEvent, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagMaxPacket(tcv,e,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.e, XETrapMaxPacket, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagStatistics(tcv,e,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.e, XETrapStatistics, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagWinXY(tcv,e,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.e, XETrapWinXY, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagCursor(tcv,e,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.e, XETrapCursor, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagReq(tcv,request,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.req, (request), (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagXInput(tcv,e,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.e, XETrapXInput, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagColorReplies(tcv,e,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.e, XETrapColorReplies, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagGrabServer(tcv,e,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.e, XETrapGrabServer, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetCfgFlagEvt(tcv,evt,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->v.flags.event, (evt), (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapSetValFlagDeltaTimes(tcv,x) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync BitSet((tcv)->tc_flags, XETCDeltaTimes, (x))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Fields returned in the "GetAvailable" request */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailPFIdent(avail) ((avail)->pf_ident)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailRelease(avail) ((avail)->xtrap_release)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailVersion(avail) ((avail)->xtrap_version)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailRevision(avail) ((avail)->xtrap_revision)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailMaxPktSize(avail) ((avail)->max_pkt_size)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlags(avail,a) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync memcpy((a), (avail)->valid, sizeof((avail)->valid))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagTimestamp(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapTimestamp))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagCmd(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapCmd))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagCmdKeyMod(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapCmdKeyMod))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagRequest(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapRequest))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagEvent(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapEvent))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagMaxPacket(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapMaxPacket))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagStatistics(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapStatistics))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagWinXY(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapWinXY))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagCursor(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapCursor))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagXInput(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapXInput))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagVecEvt(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapVectorEvents))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagColorReplies(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapColorReplies))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailFlagGrabServer(avail) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((avail)->valid, XETrapGrabServer))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetAvailOpCode(avail) ((avail)->major_opcode)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Macro's for creating current request and trap context macros */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgMaxPktSize(cfg) ((cfg)->max_pkt_size)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgCmdKey(cfg) ((cfg)->cmd_key)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlags(cfg,e,a) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync memcpy((a), (cfg)->flags.e, sizeof((cfg)->flags.e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagTimestamp(cfg,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.e, XETrapTimestamp))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagCmd(cfg,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.e, XETrapCmd))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagCmdKeyMod(cfg,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.e, XETrapCmdKeyMod))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagRequest(cfg,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.e, XETrapRequest))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagEvent(cfg,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.e, XETrapEvent))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagMaxPacket(cfg,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.e, XETrapMaxPacket))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagStatistics(cfg,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.e, XETrapStatistics))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagWinXY(cfg,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.e, XETrapWinXY))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagCursor(cfg,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.e, XETrapCursor))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagXInput(cfg,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.e, XETrapXInput))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagColorReplies(cfg,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.e, XETrapColorReplies))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagGrabServer(cfg,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.e, XETrapGrabServer))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Request values are in "Xproto.h" of the flavor X_RequestType */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagReq(cfg,request) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.req, (request)))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Event types are in "X.h" of the flavor EventType (e.g. KeyPress) */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCfgFlagEvt(cfg,evt) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((cfg)->flags.event, (evt)))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Fields returned int the "GetCurrent" Request */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurX(avail) ((avail)->cur_x)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurY(avail) ((avail)->cur_y)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurSFlags(cur,a) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync memcpy((a), (cur)->state_flags, sizeof((cur)->state_flags))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurMaxPktSize(cur) (XETrapGetCfgMaxPktSize(&((cur)->config)))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurCmdKey(cur) (XETrapGetCfgCmdKey(&((cur)->config)))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Note: e is only pertinent for "valid" or "data" */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurCFlags(cur,e,a) (XETrapGetCfgFlags(&((cur)->config),e,a))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagTimestamp(cur,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagTimestamp(&((cur)->config),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagCmd(cur,e) (XETrapGetCfgFlagCmd(&((cur)->config),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagCmdKeyMod(cur,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagCmdKeyMod(&((cur)->config),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagRequest(cur,r) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagRequest(&((cur)->config),r))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagEvent(cur,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagEvent(&((cur)->config),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagMaxPacket(cur,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagMaxPacket(&((cur)->config),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagStatistics(cur,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagStatistics(&((cur)->config),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagWinXY(cur,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagWinXY(&((cur)->config),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagCursor(cur,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagCursor(&((cur)->config),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagXInput(cur,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagXInput(&((cur)->config),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagColorReplies(cur,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagColorReplies(&((cur)->config),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagGrabServer(cur,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagGrabServer(&((cur)->config),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Request values are in "Xproto.h" of the flavor X_RequestType */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagReq(cur,r) (XETrapGetCfgFlagReq(&((cur)->config),r))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Event types are in "X.h" of the flavor EventType (e.g. KeyPress) */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetCurFlagEvt(cur,e) (XETrapGetCfgFlagEvt(&((cur)->config),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Fields returned int the "GetStatistics" Request */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetStatsReq(stat,e) ((stat)->requests[(e)])
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetStatsEvt(stat,e) ((stat)->events[(e)])
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Fields returned in the "GetVersion" request */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetVersRelease(vers) ((vers)->xtrap_release)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetVersVersion(vers) ((vers)->xtrap_version)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetVersRevision(vers) ((vers)->xtrap_revision)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Fields returned in the "GetLastInpTime" request */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetLastInpTime(time_rep) ((time_rep)->last_time)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Expands to GET each element of the TCValues structure */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCReqCB(tc) ((tc)->values.req_cb)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCEvtCB(tc) ((tc)->values.evt_cb)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCTime(tc) ((tc)->values.last_time)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* TC specific flags */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCLFlags(tc,a) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync memcpy((a), (tc)->values.tc_flags, sizeof((tc)->values.tc_flags))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagDeltaTimes(tc) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((tc)->values.tc_flags, XETCDeltaTimes))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagTrapActive(tc) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (BitValue((tc)->values.tc_flags, XETCTrapActive))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCMaxPktSize(tc) (XETrapGetCfgMaxPktSize(&((tc)->values.v)))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCCmdKey(tc) (XETrapGetCfgCmdKey(&((tc)->values.v)))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Note: e is only pertinent for "valid" or "data" */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlags(tc,e,a) (XETrapGetCfgFlags(&((tc)->values.v),e,a))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagTimestamp(tc,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagTimestamp(&((tc)->values.v),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagCmd(tc,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagCmd(&((tc)->values.v),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagCmdKeyMod(tc,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagCmdKeyMod(&((tc)->values.v),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagRequest(tc,r) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagRequest(&((tc)->values.v),r))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagEvent(tc,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagEvent(&((tc)->values.v),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagMaxPacket(tc,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagMaxPacket(&((tc)->values.v),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagStatistics(tc,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagStatistics(&((tc)->values.v),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagWinXY(tc,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagWinXY(&((tc)->values.v),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagCursor(tc,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagCursor(&((tc)->values.v),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagXInput(tc,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagXInput(&((tc)->values.v),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagColorReplies(tc,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagColorReplies(&((tc)->values.v),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagGrabServer(tc,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagGrabServer(&((tc)->values.v),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Request values are in "Xproto.h" of the flavor X_RequestType */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagReq(tc,r) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagReq(&((tc)->values.v),r))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Event types are in "X.h" of the flavor EventType (e.g. KeyPress) */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetTCFlagEvt(tc,e) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (XETrapGetCfgFlagEvt(&((tc)->values.v),e))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* The following can/should *not* be set directly! */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetNext(tc) ((tc)->next)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetDpy(tc) ((tc)->dpy)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetEventBase(tc) ((tc)->eventBase)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetErrorBase(tc) ((tc)->errorBase)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetExtOpcode(tc) ((tc)->extOpcode)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetXBuff(tc) ((tc)->xbuff)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetXMaxSize(tc) ((tc)->xmax_size)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetExt(tc) ((tc)->ext_data)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetDirty(tc) ((tc)->dirty)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetValues(tc) memcpy((x),(tc)->values,sizeof((tc)->values))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetEventFunc(tc) ((tc)->eventFunc)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetHeaderCount(phdr) ((phdr)->count)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetHeaderTimestamp(phdr) ((phdr)->timestamp)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetHeaderType(phdr) ((phdr)->type)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetHeaderScreen(phdr) ((phdr)->screen)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetHeaderWindowX(phdr) ((phdr)->win_x)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetHeaderWindowY(phdr) ((phdr)->win_y)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XETrapGetHeaderClient(phdr) ((phdr)->client)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XEGetRelease(tc) ((tc)->release)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XEGetVersion(tc) ((tc)->version)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XEGetRevision(tc) ((tc)->revision)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Condition handling macros */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#if !defined(vms) && \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync (!defined(_InitExceptionHandling) || !defined(_ClearExceptionHandling))
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifndef _SetSIGBUSHandling
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifdef SIGBUS
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGBUSHandling(rtn) (void)signal(SIGBUS, rtn)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# else
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGBUSHandling(rtn) /* */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifndef _SetSIGSEGVHandling
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifdef SIGSEGV
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGSEGVHandling(rtn) (void)signal(SIGSEGV, rtn)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# else
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGSEGVHandling(rtn) /* */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifndef _SetSIGFPEHandling
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifdef SIGFPE
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGFPEHandling(rtn) (void)signal(SIGFPE, rtn)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# else
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGFPEHandling(rtn) /* */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifndef _SetSIGILLHandling
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifdef SIGILL
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGILLHandling(rtn) (void)signal(SIGILL, rtn)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# else
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGILLHandling(rtn) /* */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifndef _SetSIGSYSHandling
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifdef SIGSYS
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGSYSHandling(rtn) (void)signal(SIGSYS, rtn)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# else
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGSYSHandling(rtn) /* */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifndef _SetSIGHUPHandling
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifdef SIGHUP
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGHUPHandling(rtn) (void)signal(SIGHUP, rtn)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# else
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGHUPHandling(rtn) /* */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifndef _SetSIGPIPEHandling
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifdef SIGPIPE
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGPIPEHandling(rtn) (void)signal(SIGPIPE, rtn)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# else
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGPIPEHandling(rtn) /* */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifndef _SetSIGTERMHandling
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# ifdef SIGTERM
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGTERMHandling(rtn) (void)signal(SIGTERM, rtn)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# else
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# define _SetSIGTERMHandling(rtn) /* */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync# endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#ifndef _InitExceptionHandling
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#ifdef vms
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define _InitExceptionHandling(rtn) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync VAXC$ESTABLISH(rtn) /* VMS exception handler */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#else /* vms */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define _InitExceptionHandling(rtn) \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGBUSHandling(rtn); /* Bus error */ \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGSEGVHandling(rtn); /* Accvio/Segment error */ \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGFPEHandling(rtn); /* Floating point exception */ \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGILLHandling(rtn); /* Illegal instruction */ \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGSYSHandling(rtn); /* Param error in sys call */ \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGHUPHandling(rtn); \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGPIPEHandling(rtn); \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGTERMHandling(rtn)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif /* vms */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif /* _InitExceptionHandling */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#ifndef _ClearExceptionHandling
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#ifdef vms
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define _ClearExceptionHandling() \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync LIB$REVERT()
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#else
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define _ClearExceptionHandling() \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGBUSHandling(SIG_DFL); /* Bus error */ \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGSEGVHandling(SIG_DFL); /* Accvio/Segment error */ \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGFPEHandling(SIG_DFL); /* Floating point exception */ \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGILLHandling(SIG_DFL); /* Illegal instruction */ \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGSYSHandling(SIG_DFL); /* Param error in sys call */ \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGHUPHandling(SIG_DFL); \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGPIPEHandling(SIG_DFL); \
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync _SetSIGTERMHandling(SIG_DFL)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif /* vms */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif /* _ClearExceptionHandling */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif /* __XTRAPEMACROS__ */