diff options
| author | 2017-12-28 15:29:52 -0500 | |
|---|---|---|
| committer | 2017-12-28 15:29:52 -0500 | |
| commit | 7618b5237d4b4f525e3db96bc70e488210da373d (patch) | |
| tree | e446b8c40cff77e411c288612ba5c1a074bc9f7a /src/core/hle/svc.cpp | |
| parent | service: Clean up apm/lm/applet_oe/controller/sm ctor/dtor. (diff) | |
| download | yuzu-7618b5237d4b4f525e3db96bc70e488210da373d.tar.gz yuzu-7618b5237d4b4f525e3db96bc70e488210da373d.tar.xz yuzu-7618b5237d4b4f525e3db96bc70e488210da373d.zip | |
svc: Implement SetHeapSize.
Diffstat (limited to 'src/core/hle/svc.cpp')
| -rw-r--r-- | src/core/hle/svc.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index 4b5c1dff3..ae0ceb252 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp | |||
| @@ -24,6 +24,14 @@ using Kernel::SharedPtr; | |||
| 24 | 24 | ||
| 25 | namespace SVC { | 25 | namespace SVC { |
| 26 | 26 | ||
| 27 | /// Set the process heap to a given Size. It can both extend and shrink the heap. | ||
| 28 | static ResultCode SetHeapSize(VAddr* heap_addr, u64 heap_size) { | ||
| 29 | LOG_TRACE(Kernel_SVC, "called, heap_size=%ull", heap_size); | ||
| 30 | auto& process = *Kernel::g_current_process; | ||
| 31 | CASCADE_RESULT(*heap_addr, process.HeapAllocate(Memory::HEAP_VADDR, heap_size, Kernel::VMAPermission::ReadWrite)); | ||
| 32 | return RESULT_SUCCESS; | ||
| 33 | } | ||
| 34 | |||
| 27 | /// Connect to an OS service given the port name, returns the handle to the port to out | 35 | /// Connect to an OS service given the port name, returns the handle to the port to out |
| 28 | static ResultCode ConnectToPort(Kernel::Handle* out_handle, VAddr port_name_address) { | 36 | static ResultCode ConnectToPort(Kernel::Handle* out_handle, VAddr port_name_address) { |
| 29 | if (!Memory::IsValidVirtualAddress(port_name_address)) | 37 | if (!Memory::IsValidVirtualAddress(port_name_address)) |
| @@ -205,7 +213,7 @@ struct FunctionDef { | |||
| 205 | 213 | ||
| 206 | static const FunctionDef SVC_Table[] = { | 214 | static const FunctionDef SVC_Table[] = { |
| 207 | {0x00, nullptr, "Unknown"}, | 215 | {0x00, nullptr, "Unknown"}, |
| 208 | {0x01, nullptr, "svcSetHeapSize"}, | 216 | {0x01, HLE::Wrap<SetHeapSize>, "svcSetHeapSize"}, |
| 209 | {0x02, nullptr, "svcSetMemoryPermission"}, | 217 | {0x02, nullptr, "svcSetMemoryPermission"}, |
| 210 | {0x03, nullptr, "svcSetMemoryAttribute"}, | 218 | {0x03, nullptr, "svcSetMemoryAttribute"}, |
| 211 | {0x04, nullptr, "svcMapMemory"}, | 219 | {0x04, nullptr, "svcMapMemory"}, |