summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-11-04 12:06:17 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2014-11-04 12:08:50 +0000
commit6fff1f8787687a08f66c28007abe1f1edebd5124 (patch)
treec3d3ae2ee43ee8f8ba469c813687f44dd8fa60ff
parent676ccf862c4039f8e9cea8fb23bea053f9f5cf83 (diff)
ioctl_wrappers: Pass in offset to CPU mmaps
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--lib/ioctl_wrappers.c7
-rw-r--r--lib/ioctl_wrappers.h2
-rw-r--r--tests/gem_cs_tlb.c2
-rw-r--r--tests/gem_evict_everything.c2
-rw-r--r--tests/gem_fence_thrash.c2
-rw-r--r--tests/gem_gtt_speed.c10
-rw-r--r--tests/gem_mmap.c2
-rw-r--r--tests/gem_mmap_gtt.c2
-rw-r--r--tests/gem_pwrite_pread.c8
-rw-r--r--tests/gem_userptr_blits.c2
-rw-r--r--tests/kms_fbc_crc.c2
-rw-r--r--tests/kms_psr_sink_crc.c2
-rw-r--r--tests/pm_rpm.c4
13 files changed, 24 insertions, 23 deletions
diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
index ab1a82e0..f423237a 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -471,7 +471,8 @@ void *gem_mmap__gtt(int fd, uint32_t handle, int size, int prot)
* gem_mmap__cpu:
* @fd: open i915 drm file descriptor
* @handle: gem buffer object handle
- * @size: size of the gem buffer
+ * @offset: offset in the gem buffer of te mmap arena
+ * @size: size of the mmap arena
* @prot: memory protection bits as used by mmap()
*
* This functions wraps up procedure to establish a memory mapping through
@@ -479,13 +480,13 @@ void *gem_mmap__gtt(int fd, uint32_t handle, int size, int prot)
*
* Returns: A pointer to the created memory mapping.
*/
-void *gem_mmap__cpu(int fd, uint32_t handle, int size, int prot)
+void *gem_mmap__cpu(int fd, uint32_t handle, int offset, int size, int prot)
{
struct drm_i915_gem_mmap mmap_arg;
memset(&mmap_arg, 0, sizeof(mmap_arg));
mmap_arg.handle = handle;
- mmap_arg.offset = 0;
+ mmap_arg.offset = offset;
mmap_arg.size = size;
if (drmIoctl(fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg))
return NULL;
diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h
index b1deedf5..d13408c7 100644
--- a/lib/ioctl_wrappers.h
+++ b/lib/ioctl_wrappers.h
@@ -61,7 +61,7 @@ uint32_t gem_create(int fd, int size);
void gem_execbuf(int fd, struct drm_i915_gem_execbuffer2 *execbuf);
void *gem_mmap__gtt(int fd, uint32_t handle, int size, int prot);
-void *gem_mmap__cpu(int fd, uint32_t handle, int size, int prot);
+void *gem_mmap__cpu(int fd, uint32_t handle, int offset, int size, int prot);
/**
* gem_mmap:
*
diff --git a/tests/gem_cs_tlb.c b/tests/gem_cs_tlb.c
index b1c50584..c203e318 100644
--- a/tests/gem_cs_tlb.c
+++ b/tests/gem_cs_tlb.c
@@ -116,7 +116,7 @@ static void run_on_ring(int fd, unsigned ring_id, const char *ring_name)
igt_progress(buf, split, BATCH_SIZE/8 - 1);
handle_new = gem_create(fd, BATCH_SIZE);
- batch_ptr = gem_mmap__cpu(fd, handle_new, BATCH_SIZE,
+ batch_ptr = gem_mmap__cpu(fd, handle_new, 0, BATCH_SIZE,
PROT_READ | PROT_WRITE);
batch_ptr[split*2] = MI_BATCH_BUFFER_END;
diff --git a/tests/gem_evict_everything.c b/tests/gem_evict_everything.c
index c1eb3bde..db802373 100644
--- a/tests/gem_evict_everything.c
+++ b/tests/gem_evict_everything.c
@@ -131,7 +131,7 @@ copy(int fd, uint32_t dst, uint32_t src, uint32_t *all_bo, int n_bo)
static void clear(int fd, uint32_t handle, int size)
{
- void *base = gem_mmap__cpu(fd, handle, size, PROT_READ | PROT_WRITE);
+ void *base = gem_mmap__cpu(fd, handle, 0, size, PROT_READ | PROT_WRITE);
igt_assert(base != NULL);
memset(base, 0, size);
diff --git a/tests/gem_fence_thrash.c b/tests/gem_fence_thrash.c
index 84b0f555..1fc05794 100644
--- a/tests/gem_fence_thrash.c
+++ b/tests/gem_fence_thrash.c
@@ -68,7 +68,7 @@ bo_create (int fd, int tiling)
handle = gem_create(fd, OBJECT_SIZE);
/* dirty cpu caches a bit ... */
- ptr = gem_mmap__cpu(fd, handle, OBJECT_SIZE, PROT_READ | PROT_WRITE);
+ ptr = gem_mmap__cpu(fd, handle, 0, OBJECT_SIZE, PROT_READ | PROT_WRITE);
igt_assert(ptr);
memset(ptr, 0, OBJECT_SIZE);
munmap(ptr, OBJECT_SIZE);
diff --git a/tests/gem_gtt_speed.c b/tests/gem_gtt_speed.c
index c8581035..c68b8e4a 100644
--- a/tests/gem_gtt_speed.c
+++ b/tests/gem_gtt_speed.c
@@ -90,7 +90,7 @@ int main(int argc, char **argv)
I915_GEM_DOMAIN_CPU);
{
- uint32_t *base = gem_mmap__cpu(fd, handle, size, PROT_READ | PROT_WRITE);
+ uint32_t *base = gem_mmap__cpu(fd, handle, 0, size, PROT_READ | PROT_WRITE);
volatile uint32_t *ptr = base;
int x = 0;
@@ -105,7 +105,7 @@ int main(int argc, char **argv)
/* mmap read */
gettimeofday(&start, NULL);
for (loop = 0; loop < 1000; loop++) {
- base = gem_mmap__cpu(fd, handle, size, PROT_READ | PROT_WRITE);
+ base = gem_mmap__cpu(fd, handle, 0, size, PROT_READ | PROT_WRITE);
ptr = base;
x = 0;
@@ -124,7 +124,7 @@ int main(int argc, char **argv)
/* mmap write */
gettimeofday(&start, NULL);
for (loop = 0; loop < 1000; loop++) {
- base = gem_mmap__cpu(fd, handle, size, PROT_READ | PROT_WRITE);
+ base = gem_mmap__cpu(fd, handle, 0, size, PROT_READ | PROT_WRITE);
ptr = base;
for (i = 0; i < size/sizeof(*ptr); i++)
@@ -138,7 +138,7 @@ int main(int argc, char **argv)
gettimeofday(&start, NULL);
for (loop = 0; loop < 1000; loop++) {
- base = gem_mmap__cpu(fd, handle, size, PROT_READ | PROT_WRITE);
+ base = gem_mmap__cpu(fd, handle, 0, size, PROT_READ | PROT_WRITE);
memset(base, 0, size);
munmap(base, size);
}
@@ -147,7 +147,7 @@ int main(int argc, char **argv)
size/1024, elapsed(&start, &end, loop));
gettimeofday(&start, NULL);
- base = gem_mmap__cpu(fd, handle, size, PROT_READ | PROT_WRITE);
+ base = gem_mmap__cpu(fd, handle, 0, size, PROT_READ | PROT_WRITE);
for (loop = 0; loop < 1000; loop++)
memset(base, 0, size);
munmap(base, size);
diff --git a/tests/gem_mmap.c b/tests/gem_mmap.c
index 33ffe452..bbc5c4cf 100644
--- a/tests/gem_mmap.c
+++ b/tests/gem_mmap.c
@@ -93,7 +93,7 @@ igt_main
igt_subtest("short-mmap") {
igt_assert(OBJECT_SIZE > 4096);
handle = gem_create(fd, OBJECT_SIZE);
- addr = gem_mmap__cpu(fd, handle, 4096, PROT_WRITE);
+ addr = gem_mmap__cpu(fd, handle, 0, 4096, PROT_WRITE);
memset(addr, 0, 4096);
munmap(addr, 4096);
gem_close(fd, handle);
diff --git a/tests/gem_mmap_gtt.c b/tests/gem_mmap_gtt.c
index 35c856f4..55c66a29 100644
--- a/tests/gem_mmap_gtt.c
+++ b/tests/gem_mmap_gtt.c
@@ -286,7 +286,7 @@ test_write_cpu_read_gtt(int fd)
dst = gem_mmap(fd, handle, OBJECT_SIZE, PROT_READ);
igt_assert(dst != (uint32_t *)MAP_FAILED);
- src = gem_mmap__cpu(fd, handle, OBJECT_SIZE, PROT_WRITE);
+ src = gem_mmap__cpu(fd, handle, 0, OBJECT_SIZE, PROT_WRITE);
igt_assert(src != (uint32_t *)MAP_FAILED);
gem_close(fd, handle);
diff --git a/tests/gem_pwrite_pread.c b/tests/gem_pwrite_pread.c
index c2dc74b7..88c2070e 100644
--- a/tests/gem_pwrite_pread.c
+++ b/tests/gem_pwrite_pread.c
@@ -141,8 +141,8 @@ static void as_cpu_mmap(int fd, uint32_t src, uint32_t dst, void *buf, int len,
uint32_t *src_ptr, *dst_ptr;
BUILD_EXEC;
- src_ptr = gem_mmap__cpu(fd, src, OBJECT_SIZE, PROT_WRITE);
- dst_ptr = gem_mmap__cpu(fd, dst, OBJECT_SIZE, PROT_READ);
+ src_ptr = gem_mmap__cpu(fd, src, 0, OBJECT_SIZE, PROT_WRITE);
+ dst_ptr = gem_mmap__cpu(fd, dst, 0, OBJECT_SIZE, PROT_READ);
while (loops--) {
gem_set_domain(fd, src,
@@ -210,8 +210,8 @@ static void test_as_cpu_mmap(int fd, uint32_t src, uint32_t dst, int len)
int i;
BUILD_EXEC;
- src_ptr = gem_mmap__cpu(fd, src, OBJECT_SIZE, PROT_WRITE);
- dst_ptr = gem_mmap__cpu(fd, dst, OBJECT_SIZE, PROT_READ);
+ src_ptr = gem_mmap__cpu(fd, src, 0, OBJECT_SIZE, PROT_WRITE);
+ dst_ptr = gem_mmap__cpu(fd, dst, 0, OBJECT_SIZE, PROT_READ);
gem_set_domain(fd, src, I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
for (i = 0; i < len/4; i++)
diff --git a/tests/gem_userptr_blits.c b/tests/gem_userptr_blits.c
index aabc68af..35394531 100644
--- a/tests/gem_userptr_blits.c
+++ b/tests/gem_userptr_blits.c
@@ -687,7 +687,7 @@ static void *umap(int fd, uint32_t handle)
} else {
uint32_t tmp = gem_create(fd, sizeof(linear));
copy(fd, tmp, handle, 0);
- ptr = gem_mmap__cpu(fd, tmp, sizeof(linear), PROT_READ);
+ ptr = gem_mmap__cpu(fd, tmp, 0, sizeof(linear), PROT_READ);
gem_close(fd, tmp);
}
diff --git a/tests/kms_fbc_crc.c b/tests/kms_fbc_crc.c
index e1e8e975..de3b7083 100644
--- a/tests/kms_fbc_crc.c
+++ b/tests/kms_fbc_crc.c
@@ -224,7 +224,7 @@ static void test_crc(data_t *data, enum test_mode mode)
break;
case TEST_MMAP_CPU:
case TEST_PAGE_FLIP_AND_MMAP_CPU:
- ptr = gem_mmap__cpu(data->drm_fd, handle, 4096, PROT_WRITE);
+ ptr = gem_mmap__cpu(data->drm_fd, handle, 0, 4096, PROT_WRITE);
gem_set_domain(data->drm_fd, handle, I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
memset(ptr, 0xff, 4);
munmap(ptr, 4096);
diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
index edc24938..98b60cf9 100644
--- a/tests/kms_psr_sink_crc.c
+++ b/tests/kms_psr_sink_crc.c
@@ -359,7 +359,7 @@ static void test_crc(data_t *data)
munmap(ptr, 4096);
break;
case MMAP_CPU:
- ptr = gem_mmap__cpu(data->drm_fd, handle, 4096, PROT_WRITE);
+ ptr = gem_mmap__cpu(data->drm_fd, handle, 0, 4096, PROT_WRITE);
gem_set_domain(data->drm_fd, handle,
I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
memset(ptr, 0, 4);
diff --git a/tests/pm_rpm.c b/tests/pm_rpm.c
index 8cfac68e..d31726d1 100644
--- a/tests/pm_rpm.c
+++ b/tests/pm_rpm.c
@@ -978,7 +978,7 @@ static void gem_mmap_subtest(bool gtt_mmap)
gem_buf = gem_mmap__gtt(drm_fd, handle, buf_size,
PROT_READ | PROT_WRITE);
else
- gem_buf = gem_mmap__cpu(drm_fd, handle, buf_size, 0);
+ gem_buf = gem_mmap__cpu(drm_fd, handle, 0, buf_size, 0);
for (i = 0; i < buf_size; i++)
@@ -1013,7 +1013,7 @@ static void gem_mmap_subtest(bool gtt_mmap)
gem_buf = gem_mmap__gtt(drm_fd, handle, buf_size,
PROT_READ | PROT_WRITE);
else
- gem_buf = gem_mmap__cpu(drm_fd, handle, buf_size, 0);
+ gem_buf = gem_mmap__cpu(drm_fd, handle, 0, buf_size, 0);
igt_assert(wait_for_suspended());