Make vm::var unmoveable

Fix bugs with discarding vm::make_var result
This commit is contained in:
Nekotekina 2018-09-03 15:09:09 +03:00
parent 8abe6489ed
commit 7bccdbf157
7 changed files with 65 additions and 61 deletions

View file

@ -426,7 +426,7 @@ error_code sys_mmapper_enable_page_fault_notification(u32 start_addr, u32 event_
}
}
vm::ptr<u32> port_id = vm::make_var<u32>(0);
vm::var<u32> port_id(0);
error_code res = sys_event_port_create(port_id, SYS_EVENT_PORT_LOCAL, SYS_MEMORY_PAGE_FAULT_EVENT_KEY);
sys_event_port_connect_local(port_id->value(), event_queue_id);

View file

@ -131,11 +131,12 @@ s32 sys_rsx_context_allocate(vm::ptr<u32> context_id, vm::ptr<u64> lpar_dma_cont
else
rsx::get_current_renderer()->main_mem_size = 0x10000000; //256MB
sys_event_queue_attribute_t attr;
attr.protocol = SYS_SYNC_PRIORITY;
attr.type = SYS_PPU_QUEUE;
auto queueId = vm::make_var<u32>(0);
sys_event_queue_create(queueId, vm::make_var(attr), 0, 0x20);
vm::var<sys_event_queue_attribute_t> attr;
attr->protocol = SYS_SYNC_PRIORITY;
attr->type = SYS_PPU_QUEUE;
attr->name_u64 = 0;
vm::var<u32> queueId(0);
sys_event_queue_create(queueId, attr, 0, 0x20);
driverInfo.handler_queue = queueId->value();
sys_event_port_create(queueId, SYS_EVENT_PORT_LOCAL, 0);