summaryrefslogtreecommitdiff
path: root/lib/igt_vc4.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2016-01-25 10:01:35 -0800
committerEric Anholt <eric@anholt.net>2016-02-08 16:34:13 -0800
commitb8badc243630e88f243b66c20599cfd035286382 (patch)
treebeb38becc769c1cfc03a103fc9169b7075fbc16c /lib/igt_vc4.c
parent4880e13d04c005c1d7918b4499be45704dea9aca (diff)
igt: Add a helper function for mapping VC4 BOs.
v2: Use do_ioctl(). Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
Diffstat (limited to 'lib/igt_vc4.c')
-rw-r--r--lib/igt_vc4.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/igt_vc4.c b/lib/igt_vc4.c
index 9b8f8055..8d00764a 100644
--- a/lib/igt_vc4.c
+++ b/lib/igt_vc4.c
@@ -25,6 +25,7 @@
#include <string.h>
#include <signal.h>
#include <errno.h>
+#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
@@ -101,3 +102,20 @@ uint32_t igt_vc4_get_cleared_bo(int fd, size_t size, uint32_t clearval)
return create.handle;
}
+
+void *
+igt_vc4_mmap_bo(int fd, uint32_t handle, uint32_t size, unsigned prot)
+{
+ struct drm_vc4_mmap_bo mmap_bo = {
+ .handle = handle,
+ };
+ void *ptr;
+
+ do_ioctl(fd, DRM_IOCTL_VC4_MMAP_BO, &mmap_bo);
+
+ ptr = mmap(0, size, prot, MAP_SHARED, fd, mmap_bo.offset);
+ if (ptr == MAP_FAILED)
+ return NULL;
+ else
+ return ptr;
+}