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;
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);
{
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");
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
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);
}
{
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");
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)