summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-04-11 07:40:11 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2016-04-11 07:40:11 +0100
commit4a3fa3532a3d6605d0ce08b13b224bbf1807ee03 (patch)
tree7b77a92327cb89adfc361a626541ff3ace33d565
parentc46f3c341caebfbe114aaafa412173db419083e9 (diff)
lib: Tidy presentations of pread/pwrite failures
Make the assertion failure message readable if gem_read or gem_write fail. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--lib/ioctl_wrappers.c51
1 files changed, 35 insertions, 16 deletions
diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
index 076bce8e3e35..7df531116ae0 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -308,6 +308,23 @@ void gem_close(int fd, uint32_t handle)
do_ioctl(fd, DRM_IOCTL_GEM_CLOSE, &close_bo);
}
+static int __gem_write(int fd, uint32_t handle, uint64_t offset, const void *buf, uint64_t length)
+{
+ struct drm_i915_gem_pwrite gem_pwrite;
+ int err;
+
+ memset(&gem_pwrite, 0, sizeof(gem_pwrite));
+ gem_pwrite.handle = handle;
+ gem_pwrite.offset = offset;
+ gem_pwrite.size = length;
+ gem_pwrite.data_ptr = (uintptr_t)buf;
+
+ err = 0;
+ if (drmIoctl(fd, DRM_IOCTL_I915_GEM_PWRITE, &gem_pwrite))
+ err = -errno;
+ return err;
+}
+
/**
* gem_write:
* @fd: open i915 drm file descriptor
@@ -321,16 +338,25 @@ void gem_close(int fd, uint32_t handle)
*/
void gem_write(int fd, uint32_t handle, uint64_t offset, const void *buf, uint64_t length)
{
- struct drm_i915_gem_pwrite gem_pwrite;
-
- memset(&gem_pwrite, 0, sizeof(gem_pwrite));
- gem_pwrite.handle = handle;
- gem_pwrite.offset = offset;
- gem_pwrite.size = length;
- gem_pwrite.data_ptr = (uintptr_t)buf;
- do_ioctl(fd, DRM_IOCTL_I915_GEM_PWRITE, &gem_pwrite);
+ igt_assert_eq(__gem_write(fd, handle, offset, buf, length), 0);
}
+static int __gem_read(int fd, uint32_t handle, uint64_t offset, void *buf, uint64_t length)
+{
+ struct drm_i915_gem_pread gem_pread;
+ int err;
+
+ memset(&gem_pread, 0, sizeof(gem_pread));
+ gem_pread.handle = handle;
+ gem_pread.offset = offset;
+ gem_pread.size = length;
+ gem_pread.data_ptr = (uintptr_t)buf;
+
+ err = 0;
+ if (drmIoctl(fd, DRM_IOCTL_I915_GEM_PREAD, &gem_pread))
+ err = -errno;
+ return err;
+}
/**
* gem_read:
* @fd: open i915 drm file descriptor
@@ -344,14 +370,7 @@ void gem_write(int fd, uint32_t handle, uint64_t offset, const void *buf, uint64
*/
void gem_read(int fd, uint32_t handle, uint64_t offset, void *buf, uint64_t length)
{
- struct drm_i915_gem_pread gem_pread;
-
- memset(&gem_pread, 0, sizeof(gem_pread));
- gem_pread.handle = handle;
- gem_pread.offset = offset;
- gem_pread.size = length;
- gem_pread.data_ptr = (uintptr_t)buf;
- do_ioctl(fd, DRM_IOCTL_I915_GEM_PREAD, &gem_pread);
+ igt_assert_eq(__gem_read(fd, handle, offset, buf, length), 0);
}
/**