sys_memory: add vm::temporary_unlock

This commit is contained in:
Nekotekina 2019-06-19 20:45:59 +03:00
parent d021d9e14a
commit 5753b3222e

View file

@ -18,6 +18,8 @@ lv2_memory_alloca::lv2_memory_alloca(u32 size, u32 align, u64 flags, const std::
error_code sys_memory_allocate(u32 size, u64 flags, vm::ptr<u32> alloc_addr)
{
vm::temporary_unlock();
sys_memory.warning("sys_memory_allocate(size=0x%x, flags=0x%llx, alloc_addr=*0x%x)", size, flags, alloc_addr);
// Check allocation size
@ -67,6 +69,8 @@ error_code sys_memory_allocate(u32 size, u64 flags, vm::ptr<u32> alloc_addr)
error_code sys_memory_allocate_from_container(u32 size, u32 cid, u64 flags, vm::ptr<u32> alloc_addr)
{
vm::temporary_unlock();
sys_memory.warning("sys_memory_allocate_from_container(size=0x%x, cid=0x%x, flags=0x%llx, alloc_addr=*0x%x)", size, cid, flags, alloc_addr);
// Check allocation size
@ -132,6 +136,8 @@ error_code sys_memory_allocate_from_container(u32 size, u32 cid, u64 flags, vm::
error_code sys_memory_free(u32 addr)
{
vm::temporary_unlock();
sys_memory.warning("sys_memory_free(addr=0x%x)", addr);
const auto area = vm::get(vm::any, addr);
@ -190,6 +196,8 @@ error_code sys_memory_free(u32 addr)
error_code sys_memory_get_page_attribute(u32 addr, vm::ptr<sys_page_attr_t> attr)
{
vm::temporary_unlock();
sys_memory.trace("sys_memory_get_page_attribute(addr=0x%x, attr=*0x%x)", addr, attr);
if (!vm::check_addr(addr))
@ -223,6 +231,8 @@ error_code sys_memory_get_page_attribute(u32 addr, vm::ptr<sys_page_attr_t> attr
error_code sys_memory_get_user_memory_size(vm::ptr<sys_memory_info_t> mem_info)
{
vm::temporary_unlock();
sys_memory.warning("sys_memory_get_user_memory_size(mem_info=*0x%x)", mem_info);
// Get "default" memory container
@ -242,6 +252,8 @@ error_code sys_memory_get_user_memory_size(vm::ptr<sys_memory_info_t> mem_info)
error_code sys_memory_container_create(vm::ptr<u32> cid, u32 size)
{
vm::temporary_unlock();
sys_memory.warning("sys_memory_container_create(cid=*0x%x, size=0x%x)", cid, size);
// Round down to 1 MB granularity
@ -268,6 +280,8 @@ error_code sys_memory_container_create(vm::ptr<u32> cid, u32 size)
error_code sys_memory_container_destroy(u32 cid)
{
vm::temporary_unlock();
sys_memory.warning("sys_memory_container_destroy(cid=0x%x)", cid);
const auto ct = idm::withdraw<lv2_memory_container>(cid, [](lv2_memory_container& ct) -> CellError
@ -299,6 +313,8 @@ error_code sys_memory_container_destroy(u32 cid)
error_code sys_memory_container_get_size(vm::ptr<sys_memory_info_t> mem_info, u32 cid)
{
vm::temporary_unlock();
sys_memory.warning("sys_memory_container_get_size(mem_info=*0x%x, cid=0x%x)", mem_info, cid);
const auto ct = idm::get<lv2_memory_container>(cid);