1#ifndef __NOUVEAU_SYNC_H__
2#define __NOUVEAU_SYNC_H__
3
4#include "nv_pointer.h"
5#include "xorg-server.h"
6#include "scrnintstr.h"
7
8#ifdef DRI3
9#include "misync.h"
10#include "misyncshm.h"
11#include "misyncstr.h"
12
13#define wrap(priv, parn, name, func) {                                         \
14    priv->name = parn->name;                                                   \
15    parn->name = func;                                                         \
16}
17
18#define unwrap(priv, parn, name) {                                             \
19    if (priv && priv->name)                                                    \
20	parn->name = priv->name;                                               \
21}
22
23#define swap(priv, parn, name) {                                               \
24    void *tmp = priv->name;                                                    \
25    priv->name = parn->name;                                                   \
26    parn->name = tmp;                                                          \
27}
28
29Bool nouveau_sync_init(ScreenPtr pScreen);
30void nouveau_sync_fini(ScreenPtr pScreen);
31#else
32static inline Bool nouveau_sync_init(ScreenPtr pScreen) { return FALSE; }
33static inline void nouveau_sync_fini(ScreenPtr pScreen) { }
34#endif
35#endif
36