lib: Share common __gem_execbuf()

An oft-repeated function to check EXECBUFFER2 for a particular fail
condition.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson
2016-01-23 09:44:19 +00:00
parent 711398e82a
commit e3b68bb666
17 changed files with 26 additions and 133 deletions
+17 -4
View File
@@ -502,6 +502,22 @@ uint32_t gem_create(int fd, uint64_t size)
return create.handle;
}
/**
* __gem_execbuf:
* @fd: open i915 drm file descriptor
* @execbuf: execbuffer data structure
*
* This wraps the EXECBUFFER2 ioctl, which submits a batchbuffer for the gpu to
* run. This is allowed to fail, with -errno returned.
*/
int __gem_execbuf(int fd, struct drm_i915_gem_execbuffer2 *execbuf)
{
int err = 0;
if (drmIoctl(fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, execbuf))
err = -errno;
return err;
}
/**
* gem_execbuf:
* @fd: open i915 drm file descriptor
@@ -512,10 +528,7 @@ uint32_t gem_create(int fd, uint64_t size)
*/
void gem_execbuf(int fd, struct drm_i915_gem_execbuffer2 *execbuf)
{
int result;
result = drmIoctl(fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, execbuf);
igt_assert(result == 0);
igt_assert_eq(__gem_execbuf(fd, execbuf), 0);
errno = 0;
}
+1
View File
@@ -62,6 +62,7 @@ uint32_t gem_create_stolen(int fd, uint64_t size);
uint32_t __gem_create(int fd, int size);
uint32_t gem_create(int fd, uint64_t size);
void gem_execbuf(int fd, struct drm_i915_gem_execbuffer2 *execbuf);
int __gem_execbuf(int fd, struct drm_i915_gem_execbuffer2 *execbuf);
void *gem_mmap__gtt(int fd, uint32_t handle, uint64_t size, unsigned prot);
void *gem_mmap__cpu(int fd, uint32_t handle, uint64_t offset, uint64_t size, unsigned prot);