blob: b20c2565ca70ba0fd42515aedbee832490fc3daa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#ifndef __NOUVEAU_SYNC_H__
#define __NOUVEAU_SYNC_H__
#include "nouveau_buffers.h"
#define NV_NOTIFY_TIME_0 0x00000000
#define NV_NOTIFY_TIME_1 0x00000004
#define NV_NOTIFY_RETURN_VALUE 0x00000008
#define NV_NOTIFY_STATE 0x0000000C
#define NV_NOTIFY_STATE_STATUS_MASK 0xFF000000
#define NV_NOTIFY_STATE_STATUS_SHIFT 24
#define NV_NOTIFY_STATE_STATUS_COMPLETED 0x00
#define NV_NOTIFY_STATE_STATUS_IN_PROCESS 0x01
#define NV_NOTIFY_STATE_ERROR_CODE_MASK 0x0000FFFF
#define NV_NOTIFY_STATE_ERROR_CODE_SHIFT 0
/* Methods that (hopefully) all objects have */
#define NV_NOP 0x00000100
#define NV_NOTIFY 0x00000104
#define NV_NOTIFY_STYLE_WRITE_ONLY 0
typedef struct nouveau_notifier_t {
GLuint handle;
nouveau_mem *mem;
} nouveau_notifier;
extern nouveau_notifier *nouveau_notifier_new(GLcontext *, GLuint handle);
extern void nouveau_notifier_destroy(GLcontext *, nouveau_notifier *);
extern void nouveau_notifier_reset(nouveau_notifier *);
extern GLboolean nouveau_notifier_wait_status(nouveau_notifier *r,
GLuint status, GLuint timeout);
extern void nouveau_notifier_wait_nop(GLcontext *ctx,
nouveau_notifier *, GLuint subc);
extern void nouveauSyncInitFuncs(GLcontext *ctx);
#endif
|