|
@@ -380,11 +380,41 @@ public:
|
|
|
/// Changes the permissions of a range of addresses, splitting VMAs as necessary.
|
|
/// Changes the permissions of a range of addresses, splitting VMAs as necessary.
|
|
|
ResultCode ReprotectRange(VAddr target, u64 size, VMAPermission new_perms);
|
|
ResultCode ReprotectRange(VAddr target, u64 size, VMAPermission new_perms);
|
|
|
|
|
|
|
|
- ResultVal<VAddr> SetHeapSize(u64 size);
|
|
|
|
|
- ResultCode HeapFree(VAddr target, u64 size);
|
|
|
|
|
-
|
|
|
|
|
ResultCode MirrorMemory(VAddr dst_addr, VAddr src_addr, u64 size, MemoryState state);
|
|
ResultCode MirrorMemory(VAddr dst_addr, VAddr src_addr, u64 size, MemoryState state);
|
|
|
|
|
|
|
|
|
|
+ /// Attempts to allocate a heap with the given size.
|
|
|
|
|
+ ///
|
|
|
|
|
+ /// @param size The size of the heap to allocate in bytes.
|
|
|
|
|
+ ///
|
|
|
|
|
+ /// @note If a heap is currently allocated, and this is called
|
|
|
|
|
+ /// with a size that is equal to the size of the current heap,
|
|
|
|
|
+ /// then this function will do nothing and return the current
|
|
|
|
|
+ /// heap's starting address, as there's no need to perform
|
|
|
|
|
+ /// any additional heap allocation work.
|
|
|
|
|
+ ///
|
|
|
|
|
+ /// @note If a heap is currently allocated, and this is called
|
|
|
|
|
+ /// with a size less than the current heap's size, then
|
|
|
|
|
+ /// this function will attempt to shrink the heap.
|
|
|
|
|
+ ///
|
|
|
|
|
+ /// @note If a heap is currently allocated, and this is called
|
|
|
|
|
+ /// with a size larger than the current heap's size, then
|
|
|
|
|
+ /// this function will attempt to extend the size of the heap.
|
|
|
|
|
+ ///
|
|
|
|
|
+ /// @returns A result indicating either success or failure.
|
|
|
|
|
+ /// <p>
|
|
|
|
|
+ /// If successful, this function will return a result
|
|
|
|
|
+ /// containing the starting address to the allocated heap.
|
|
|
|
|
+ /// <p>
|
|
|
|
|
+ /// If unsuccessful, this function will return a result
|
|
|
|
|
+ /// containing an error code.
|
|
|
|
|
+ ///
|
|
|
|
|
+ /// @pre The given size must lie within the allowable heap
|
|
|
|
|
+ /// memory region managed by this VMManager instance.
|
|
|
|
|
+ /// Failure to abide by this will result in ERR_OUT_OF_MEMORY
|
|
|
|
|
+ /// being returned as the result.
|
|
|
|
|
+ ///
|
|
|
|
|
+ ResultVal<VAddr> SetHeapSize(u64 size);
|
|
|
|
|
+
|
|
|
/// Queries the memory manager for information about the given address.
|
|
/// Queries the memory manager for information about the given address.
|
|
|
///
|
|
///
|
|
|
/// @param address The address to query the memory manager about for information.
|
|
/// @param address The address to query the memory manager about for information.
|