|
|
@ -174,6 +174,10 @@ ResultCode Process::HeapFree(VAddr target, u32 size) {
|
|
|
|
return ERR_INVALID_ADDRESS;
|
|
|
|
return ERR_INVALID_ADDRESS;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (size == 0) {
|
|
|
|
|
|
|
|
return RESULT_SUCCESS;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ResultCode result = vm_manager.UnmapRange(target, size);
|
|
|
|
ResultCode result = vm_manager.UnmapRange(target, size);
|
|
|
|
if (result.IsError()) return result;
|
|
|
|
if (result.IsError()) return result;
|
|
|
|
|
|
|
|
|
|
|
@ -226,6 +230,10 @@ ResultCode Process::LinearFree(VAddr target, u32 size) {
|
|
|
|
return ERR_INVALID_ADDRESS;
|
|
|
|
return ERR_INVALID_ADDRESS;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (size == 0) {
|
|
|
|
|
|
|
|
return RESULT_SUCCESS;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
VAddr heap_end = GetLinearHeapBase() + (u32)linheap_memory->size();
|
|
|
|
VAddr heap_end = GetLinearHeapBase() + (u32)linheap_memory->size();
|
|
|
|
if (target + size > heap_end) {
|
|
|
|
if (target + size > heap_end) {
|
|
|
|
return ERR_INVALID_ADDRESS_STATE;
|
|
|
|
return ERR_INVALID_ADDRESS_STATE;
|
|
|
|