summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-07-23 09:49:06 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-07-23 09:52:10 +0200
commit6bc22e3dfd2cf143c2a9abcb72738a1674ce2fc5 (patch)
treef7ca264d9f230a0925454f99ff9921cb9f7782f3 /lib
parentfb748aad4cc8b178801f286e947b251d29764da5 (diff)
tests: add basic re-importing prime test
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'lib')
-rw-r--r--lib/drmtest.c27
-rw-r--r--lib/drmtest.h4
2 files changed, 31 insertions, 0 deletions
diff --git a/lib/drmtest.c b/lib/drmtest.c
index 871c1d0d..34db1261 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -375,6 +375,33 @@ int gem_madvise(int fd, uint32_t handle, int state)
return madv.retained;
}
+/* prime */
+int prime_handle_to_fd(int fd, uint32_t handle)
+{
+ struct drm_prime_handle args;
+
+ args.handle = handle;
+ args.flags = DRM_CLOEXEC;
+ args.fd = -1;
+
+ do_ioctl(fd, DRM_IOCTL_PRIME_HANDLE_TO_FD, &args);
+
+ return args.fd;
+}
+
+uint32_t prime_fd_to_handle(int fd, int dma_buf_fd)
+{
+ struct drm_prime_handle args;
+
+ args.fd = dma_buf_fd;
+ args.flags = 0;
+ args.handle = 0;
+
+ do_ioctl(fd, DRM_IOCTL_PRIME_FD_TO_HANDLE, &args);
+
+ return args.handle;
+}
+
/* signal interrupt helpers */
static pid_t signal_helper = -1;
long long int sig_stat;
diff --git a/lib/drmtest.h b/lib/drmtest.h
index 4021104b..0cffa394 100644
--- a/lib/drmtest.h
+++ b/lib/drmtest.h
@@ -65,6 +65,10 @@ int gem_madvise(int fd, uint32_t handle, int state);
bool gem_uses_aliasing_ppgtt(int fd);
int gem_available_fences(int fd);
+/* prime */
+int prime_handle_to_fd(int fd, uint32_t handle);
+uint32_t prime_fd_to_handle(int fd, int dma_buf_fd);
+
/* generally useful helpers */
void drmtest_fork_signal_helper(void);
void drmtest_stop_signal_helper(void);