1706f2543Smrg/*
2706f2543Smrg * Copyright © 2002 Keith Packard
3706f2543Smrg *
4706f2543Smrg * Permission to use, copy, modify, distribute, and sell this software and its
5706f2543Smrg * documentation for any purpose is hereby granted without fee, provided that
6706f2543Smrg * the above copyright notice appear in all copies and that both that
7706f2543Smrg * copyright notice and this permission notice appear in supporting
8706f2543Smrg * documentation, and that the name of Keith Packard not be used in
9706f2543Smrg * advertising or publicity pertaining to distribution of the software without
10706f2543Smrg * specific, written prior permission.  Keith Packard makes no
11706f2543Smrg * representations about the suitability of this software for any purpose.  It
12706f2543Smrg * is provided "as is" without express or implied warranty.
13706f2543Smrg *
14706f2543Smrg * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15706f2543Smrg * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16706f2543Smrg * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17706f2543Smrg * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18706f2543Smrg * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19706f2543Smrg * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20706f2543Smrg * PERFORMANCE OF THIS SOFTWARE.
21706f2543Smrg */
22706f2543Smrg
23706f2543Smrg#ifdef HAVE_DIX_CONFIG_H
24706f2543Smrg#include <dix-config.h>
25706f2543Smrg#endif
26706f2543Smrg
27706f2543Smrg#ifndef _XFIXES_H_
28706f2543Smrg#define _XFIXES_H_
29706f2543Smrg
30706f2543Smrg#include "resource.h"
31706f2543Smrg
32706f2543Smrgextern _X_EXPORT RESTYPE RegionResType;
33706f2543Smrgextern _X_EXPORT int XFixesErrorBase;
34706f2543Smrg
35706f2543Smrg#define VERIFY_REGION(pRegion, rid, client, mode)			\
36706f2543Smrg    do {								\
37706f2543Smrg	int err;							\
38706f2543Smrg	err = dixLookupResourceByType((pointer *) &pRegion, rid,	\
39706f2543Smrg				      RegionResType, client, mode);	\
40706f2543Smrg	if (err != Success) {						\
41706f2543Smrg	    client->errorValue = rid;					\
42706f2543Smrg	    return err;							\
43706f2543Smrg	}								\
44706f2543Smrg    } while (0)
45706f2543Smrg
46706f2543Smrg#define VERIFY_REGION_OR_NONE(pRegion, rid, client, mode) { \
47706f2543Smrg    pRegion = 0; \
48706f2543Smrg    if (rid) VERIFY_REGION(pRegion, rid, client, mode); \
49706f2543Smrg}
50706f2543Smrg
51706f2543Smrgextern _X_EXPORT RegionPtr
52706f2543SmrgXFixesRegionCopy (RegionPtr pRegion);
53706f2543Smrg
54706f2543Smrg
55706f2543Smrg#endif /* _XFIXES_H_ */
56