mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-02-07 23:03:06 +00:00
04c1822c0a
Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey! Ring the door. Take your seat moosey!
83 lines
1.9 KiB
C
83 lines
1.9 KiB
C
// SPDX-License-Identifier: MIT
|
|
/*
|
|
* Copyright © 2019 Intel Corporation
|
|
*/
|
|
|
|
#include "intel_memory_region.h"
|
|
#include "i915_gem_region.h"
|
|
#include "i915_drv.h"
|
|
#include "i915_trace.h"
|
|
|
|
void i915_gem_object_init_memory_region(struct drm_i915_gem_object *obj,
|
|
struct intel_memory_region *mem)
|
|
{
|
|
obj->mm.region = intel_memory_region_get(mem);
|
|
|
|
mutex_lock(&mem->objects.lock);
|
|
list_add(&obj->mm.region_link, &mem->objects.list);
|
|
mutex_unlock(&mem->objects.lock);
|
|
}
|
|
|
|
void i915_gem_object_release_memory_region(struct drm_i915_gem_object *obj)
|
|
{
|
|
struct intel_memory_region *mem = obj->mm.region;
|
|
|
|
mutex_lock(&mem->objects.lock);
|
|
list_del(&obj->mm.region_link);
|
|
mutex_unlock(&mem->objects.lock);
|
|
|
|
intel_memory_region_put(mem);
|
|
}
|
|
|
|
struct drm_i915_gem_object *
|
|
i915_gem_object_create_region(struct intel_memory_region *mem,
|
|
resource_size_t size,
|
|
resource_size_t page_size,
|
|
unsigned int flags)
|
|
{
|
|
struct drm_i915_gem_object *obj;
|
|
resource_size_t default_page_size;
|
|
int err;
|
|
|
|
/*
|
|
* NB: Our use of resource_size_t for the size stems from using struct
|
|
* resource for the mem->region. We might need to revisit this in the
|
|
* future.
|
|
*/
|
|
|
|
GEM_BUG_ON(flags & ~I915_BO_ALLOC_FLAGS);
|
|
|
|
if (!mem)
|
|
return ERR_PTR(-ENODEV);
|
|
|
|
default_page_size = mem->min_page_size;
|
|
if (page_size)
|
|
default_page_size = page_size;
|
|
|
|
GEM_BUG_ON(!is_power_of_2_u64(default_page_size));
|
|
GEM_BUG_ON(default_page_size < PAGE_SIZE);
|
|
|
|
size = round_up(size, default_page_size);
|
|
|
|
GEM_BUG_ON(!size);
|
|
GEM_BUG_ON(!IS_ALIGNED(size, I915_GTT_MIN_ALIGNMENT));
|
|
|
|
if (i915_gem_object_size_2big(size))
|
|
return ERR_PTR(-E2BIG);
|
|
|
|
obj = i915_gem_object_alloc();
|
|
if (!obj)
|
|
return ERR_PTR(-ENOMEM);
|
|
|
|
err = mem->ops->init_object(mem, obj, size, page_size, flags);
|
|
if (err)
|
|
goto err_object_free;
|
|
|
|
trace_i915_gem_object_create(obj);
|
|
return obj;
|
|
|
|
err_object_free:
|
|
i915_gem_object_free(obj);
|
|
return ERR_PTR(err);
|
|
}
|