summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/ioctl_wrappers.c32
-rw-r--r--lib/ioctl_wrappers.h2
2 files changed, 14 insertions, 20 deletions
diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
index 51b6b7b6..1b483706 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -551,22 +551,20 @@ uint32_t gem_create_stolen(int fd, uint64_t size)
return create.handle;
}
-
-uint32_t __gem_create(int fd, int size)
+int __gem_create(int fd, int size, uint32_t *handle)
{
- struct drm_i915_gem_create create;
- int ret;
-
- memset(&create, 0, sizeof(create));
- create.handle = 0;
- create.size = size;
- ret = igt_ioctl(fd, DRM_IOCTL_I915_GEM_CREATE, &create);
+ struct drm_i915_gem_create create = {
+ .size = size,
+ };
+ int err = 0;
- if (ret < 0)
- return 0;
+ if (igt_ioctl(fd, DRM_IOCTL_I915_GEM_CREATE, &create) == 0)
+ *handle = create.handle;
+ else
+ err = -errno;
errno = 0;
- return create.handle;
+ return err;
}
/**
@@ -581,15 +579,11 @@ uint32_t __gem_create(int fd, int size)
*/
uint32_t gem_create(int fd, uint64_t size)
{
- struct drm_i915_gem_create create;
+ uint32_t handle;
- memset(&create, 0, sizeof(create));
- create.handle = 0;
- create.size = size;
- do_ioctl(fd, DRM_IOCTL_I915_GEM_CREATE, &create);
- igt_assert(create.handle);
+ igt_assert_eq(__gem_create(fd, size, &handle), 0);
- return create.handle;
+ return handle;
}
/**
diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h
index 090c1251..6ed65fad 100644
--- a/lib/ioctl_wrappers.h
+++ b/lib/ioctl_wrappers.h
@@ -73,7 +73,7 @@ void gem_sync(int fd, uint32_t handle);
bool gem_create__has_stolen_support(int fd);
uint32_t __gem_create_stolen(int fd, uint64_t size);
uint32_t gem_create_stolen(int fd, uint64_t size);
-uint32_t __gem_create(int fd, int size);
+int __gem_create(int fd, int size, uint32_t *handle);
uint32_t gem_create(int fd, uint64_t size);
void gem_execbuf_wr(int fd, struct drm_i915_gem_execbuffer2 *execbuf);
int __gem_execbuf_wr(int fd, struct drm_i915_gem_execbuffer2 *execbuf);