mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-05 22:47:03 +00:00
Fix DECR mode allocations (sys_memory)
This commit is contained in:
parent
400718dfd9
commit
d4a24433e8
3 changed files with 37 additions and 20 deletions
|
|
@ -978,7 +978,7 @@ namespace vm
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
std::shared_ptr<block_t> get(memory_location_t location, u32 addr)
|
||||
std::shared_ptr<block_t> get(memory_location_t location, u32 addr, u32 area_size)
|
||||
{
|
||||
vm::reader_lock lock;
|
||||
|
||||
|
|
@ -989,7 +989,7 @@ namespace vm
|
|||
{
|
||||
auto& loc = g_locations[location];
|
||||
|
||||
if (!loc)
|
||||
if (!loc && area_size)
|
||||
{
|
||||
if (location == vm::user64k || location == vm::user1m)
|
||||
{
|
||||
|
|
@ -998,7 +998,7 @@ namespace vm
|
|||
if (!loc)
|
||||
{
|
||||
// Deferred allocation
|
||||
loc = _find_map(0x10000000, 0x10000000, location == vm::user64k ? 0x201 : 0x401);
|
||||
loc = _find_map(area_size, 0x10000000, location == vm::user64k ? 0x201 : 0x401);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@ namespace vm
|
|||
std::shared_ptr<block_t> unmap(u32 addr, bool must_be_empty = false);
|
||||
|
||||
// Get memory block associated with optionally specified memory location or optionally specified address
|
||||
std::shared_ptr<block_t> get(memory_location_t location, u32 addr = 0);
|
||||
std::shared_ptr<block_t> get(memory_location_t location, u32 addr = 0, u32 area_size = 0);
|
||||
|
||||
// Get PS3/PSV virtual memory address from the provided pointer (nullptr always converted to 0)
|
||||
inline vm::addr_t get_addr(const void* real_ptr)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue