Make vm::get_super_ptr return contiguous memory

Cleanup RSX code complexity
This commit is contained in:
Nekotekina 2018-09-27 23:04:10 +03:00
parent 72ba062b1a
commit da6ce80f4f
13 changed files with 28 additions and 395 deletions

View file

@ -136,7 +136,6 @@ namespace utils
shm::shm(u32 size)
: m_size(::align(size, 0x10000))
, m_ptr(nullptr)
{
#ifdef _WIN32
m_handle = ::CreateFileMappingW(INVALID_HANDLE_VALUE, NULL, PAGE_EXECUTE_READWRITE, 0, m_size, NULL);
@ -159,17 +158,13 @@ namespace utils
verify(HERE), ::shm_unlink("/rpcs3-mem1") >= 0;
verify(HERE), ::ftruncate(m_file, m_size) >= 0;
#endif
m_ptr = verify(HERE, this->map(nullptr));
}
shm::~shm()
{
#ifdef _WIN32
::UnmapViewOfFile(m_ptr);
::CloseHandle(m_handle);
#else
::munmap(m_ptr, m_size);
::close(m_file);
#endif
}

View file

@ -46,7 +46,6 @@ namespace utils
int m_file;
#endif
u32 m_size;
u8* m_ptr;
public:
explicit shm(u32 size);
@ -69,17 +68,6 @@ namespace utils
// Unmap shared memory, undoing map_critical
void unmap_critical(void* ptr);
// Access memory with simple range check
u8* get(u32 offset, u32 size) const
{
if (offset >= m_size || m_size - offset < size)
{
return nullptr;
}
return m_ptr + offset;
}
u32 size() const
{
return m_size;