blob: fa2ca1e3786ea33492a7eb54c19cd6364fdd3990 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
// SPDX-License-Identifier: MIT
/*
* Copyright © 2021 Intel Corporation
*/
#include <errno.h>
#include "gem.h"
#include "i915_drm.h"
#include "igt_core.h"
#include "ioctl_wrappers.h"
int __gem_create(int fd, uint64_t size, uint32_t *handle)
{
struct drm_i915_gem_create create = {
.size = size,
};
int err = 0;
if (igt_ioctl(fd, DRM_IOCTL_I915_GEM_CREATE, &create) == 0) {
*handle = create.handle;
} else {
err = -errno;
igt_assume(err != 0);
}
errno = 0;
return err;
}
/**
* gem_create:
* @fd: open i915 drm file descriptor
* @size: desired size of the buffer
*
* This wraps the GEM_CREATE ioctl, which allocates a new gem buffer object of
* @size.
*
* Returns: The file-private handle of the created buffer object
*/
uint32_t gem_create(int fd, uint64_t size)
{
uint32_t handle;
igt_assert_eq(__gem_create(fd, size, &handle), 0);
return handle;
}
|