lib/drmtest: add gem_flink and gem_open
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 23 Jul 2013 20:43:30 +0000 (22:43 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 23 Jul 2013 21:15:12 +0000 (23:15 +0200)
Requires us to rename a few things in the gem_flink test to avoid
variable shadowing.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
lib/drmtest.c
lib/drmtest.h
tests/gem_flink.c

index a18e61f..083191d 100644 (file)
@@ -432,6 +432,31 @@ int gem_get_cacheing(int fd, uint32_t handle)
        return arg.cacheing;
 }
 
+uint32_t gem_open(int fd, uint32_t name)
+{
+       struct drm_gem_open open_struct;
+       int ret;
+
+       open_struct.name = name;
+       ret = ioctl(fd, DRM_IOCTL_GEM_OPEN, &open_struct);
+       assert(ret == 0);
+       assert(open_struct.handle != 0);
+
+       return open_struct.handle;
+}
+
+uint32_t gem_flink(int fd, uint32_t handle)
+{
+       struct drm_gem_flink flink;
+       int ret;
+
+       flink.handle = handle;
+       ret = ioctl(fd, DRM_IOCTL_GEM_FLINK, &flink);
+       assert(ret == 0);
+
+       return flink.name;
+}
+
 void gem_close(int fd, uint32_t handle)
 {
        struct drm_gem_close close_bo;
index 5961d73..6db639f 100644 (file)
@@ -56,6 +56,8 @@ int gem_get_num_rings(int fd);
 int gem_has_cacheing(int fd);
 void gem_set_cacheing(int fd, uint32_t handle, int cacheing);
 int gem_get_cacheing(int fd, uint32_t handle);
+uint32_t gem_flink(int fd, uint32_t handle);
+uint32_t gem_open(int fd, uint32_t name);
 void gem_close(int fd, uint32_t handle);
 void gem_write(int fd, uint32_t handle, uint32_t offset,  const void *buf, uint32_t size);
 void gem_read(int fd, uint32_t handle, uint32_t offset, void *buf, uint32_t size);
index bfa85c9..cc4f0e5 100644 (file)
@@ -43,7 +43,7 @@ test_flink(int fd)
 {
        struct drm_i915_gem_create create;
        struct drm_gem_flink flink;
-       struct drm_gem_open gem_open;
+       struct drm_gem_open open_struct;
        int ret;
 
        printf("Testing flink and open.\n");
@@ -57,10 +57,10 @@ test_flink(int fd)
        ret = ioctl(fd, DRM_IOCTL_GEM_FLINK, &flink);
        assert(ret == 0);
 
-       gem_open.name = flink.name;
-       ret = ioctl(fd, DRM_IOCTL_GEM_OPEN, &gem_open);
+       open_struct.name = flink.name;
+       ret = ioctl(fd, DRM_IOCTL_GEM_OPEN, &open_struct);
        assert(ret == 0);
-       assert(gem_open.handle != 0);
+       assert(open_struct.handle != 0);
 }
 
 static void
@@ -104,13 +104,13 @@ test_bad_flink(int fd)
 static void
 test_bad_open(int fd)
 {
-       struct drm_gem_open gem_open;
+       struct drm_gem_open open_struct;
        int ret;
 
        printf("Testing error return on bad open ioctl.\n");
 
-       gem_open.name = 0x10101010;
-       ret = ioctl(fd, DRM_IOCTL_GEM_OPEN, &gem_open);
+       open_struct.name = 0x10101010;
+       ret = ioctl(fd, DRM_IOCTL_GEM_OPEN, &open_struct);
 
        assert(ret == -1 && errno == ENOENT);
 }
@@ -120,7 +120,7 @@ test_flink_lifetime(int fd)
 {
        struct drm_i915_gem_create create;
        struct drm_gem_flink flink;
-       struct drm_gem_open gem_open;
+       struct drm_gem_open open_struct;
        int ret, fd2;
 
        printf("Testing flink lifetime.\n");
@@ -136,18 +136,18 @@ test_flink_lifetime(int fd)
        ret = ioctl(fd2, DRM_IOCTL_GEM_FLINK, &flink);
        assert(ret == 0);
 
-       gem_open.name = flink.name;
-       ret = ioctl(fd, DRM_IOCTL_GEM_OPEN, &gem_open);
+       open_struct.name = flink.name;
+       ret = ioctl(fd, DRM_IOCTL_GEM_OPEN, &open_struct);
        assert(ret == 0);
-       assert(gem_open.handle != 0);
+       assert(open_struct.handle != 0);
 
        close(fd2);
        fd2 = drm_open_any();
 
-       gem_open.name = flink.name;
-       ret = ioctl(fd2, DRM_IOCTL_GEM_OPEN, &gem_open);
+       open_struct.name = flink.name;
+       ret = ioctl(fd2, DRM_IOCTL_GEM_OPEN, &open_struct);
        assert(ret == 0);
-       assert(gem_open.handle != 0);
+       assert(open_struct.handle != 0);
 }
 
 int main(int argc, char **argv)