aboutsummaryrefslogtreecommitdiff
path: root/libdrm/xf86drm.h
diff options
context:
space:
mode:
Diffstat (limited to 'libdrm/xf86drm.h')
-rw-r--r--libdrm/xf86drm.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/libdrm/xf86drm.h b/libdrm/xf86drm.h
index 48a18f29..433191b4 100644
--- a/libdrm/xf86drm.h
+++ b/libdrm/xf86drm.h
@@ -280,6 +280,19 @@ typedef struct _drmSetVersion {
int drm_dd_minor;
} drmSetVersion, *drmSetVersionPtr;
+typedef struct _drmFence{
+ unsigned handle;
+ int class;
+ unsigned type;
+ unsigned signaled;
+} drmFence;
+
+typedef struct _drmTTM{
+ unsigned handle;
+ drm_handle_t user_token;
+ unsigned flags;
+ unsigned long size;
+} drmTTM;
#define __drm_dummy_lock(lock) (*(__volatile__ unsigned int *)lock)
@@ -596,6 +609,29 @@ extern int drmScatterGatherFree(int fd, drm_handle_t handle);
extern int drmWaitVBlank(int fd, drmVBlankPtr vbl);
+/* Fencing */
+
+extern int drmFenceCreate(int fd, int shareable, int class,
+ unsigned type, int emit,
+ drmFence *fence);
+extern int drmFenceDestroy(int fd, const drmFence *fence);
+extern int drmFenceReference(int fd, unsigned handle, drmFence *fence);
+extern int drmFenceUnreference(int fd, const drmFence *fence);
+extern int drmFenceFlush(int fd, drmFence *fence, unsigned flush_type);
+extern int drmFenceSignaled(int fd, drmFence *fence);
+extern int drmFenceWait(int fd, drmFence *fence, unsigned flush_type,
+ int lazy, int ignore_signals);
+extern int drmFenceEmit(int fd, drmFence *fence, unsigned emit_type);
+
+/* TTMS */
+extern int drmTTMCreate(int fd, drmTTM *ttm, unsigned long size,
+ unsigned flags);
+extern int drmTTMDestroy(int fd, const drmTTM *ttm);
+extern int drmTTMReference(int fd, unsigned handle, drmTTM *ttm);
+extern int drmTTMUnreference(int fd, const drmTTM *ttm);
+extern drm_handle_t drmTTMMapHandle(int fd, const drmTTM *ttm);
+
+
/* Support routines */
extern int drmError(int err, const char *label);
extern void *drmMalloc(int size);