1706f2543Smrg/*
2706f2543Smrg * Copyright © 2010 NVIDIA Corporation
3706f2543Smrg *
4706f2543Smrg * Permission is hereby granted, free of charge, to any person obtaining a
5706f2543Smrg * copy of this software and associated documentation files (the "Software"),
6706f2543Smrg * to deal in the Software without restriction, including without limitation
7706f2543Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8706f2543Smrg * and/or sell copies of the Software, and to permit persons to whom the
9706f2543Smrg * Software is furnished to do so, subject to the following conditions:
10706f2543Smrg *
11706f2543Smrg * The above copyright notice and this permission notice (including the next
12706f2543Smrg * paragraph) shall be included in all copies or substantial portions of the
13706f2543Smrg * Software.
14706f2543Smrg *
15706f2543Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16706f2543Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17706f2543Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18706f2543Smrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19706f2543Smrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20706f2543Smrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21706f2543Smrg * DEALINGS IN THE SOFTWARE.
22706f2543Smrg */
23706f2543Smrg
24706f2543Smrg#ifndef _SYNCSDK_H_
25706f2543Smrg#define _SYNCSDK_H_
26706f2543Smrg
27706f2543Smrg#include "misync.h"
28706f2543Smrg
29706f2543Smrgextern _X_EXPORT int
30706f2543SmrgSyncVerifyFence(SyncFence **ppFence, XID fid, ClientPtr client, Mask mode);
31706f2543Smrg
32706f2543Smrg#define VERIFY_SYNC_FENCE(pFence, fid, client, mode)			\
33706f2543Smrg    do {								\
34706f2543Smrg	int rc;								\
35706f2543Smrg	rc = SyncVerifyFence(&(pFence), (fid), (client), (mode));	\
36706f2543Smrg	if (Success != rc) return rc;					\
37706f2543Smrg    } while (0)
38706f2543Smrg
39706f2543Smrg#define VERIFY_SYNC_FENCE_OR_NONE(pFence, fid, client, mode)		\
40706f2543Smrg    do {								\
41706f2543Smrg        pFence = 0;							\
42706f2543Smrg        if (None != fid)						\
43706f2543Smrg	    VERIFY_SYNC_FENCE((pFence), (fid), (client), (mode));	\
44706f2543Smrg    } while (0)
45706f2543Smrg
46706f2543Smrg#endif /* _SYNCSDK_H_ */
47706f2543Smrg
48