Merge pull request #9071 from bunnei/mp-mm

Kernel Multiprocess (Part 1) - Persist memory & core timing
This commit is contained in:
liamwhite
2022-10-19 16:27:43 -04:00
committed by GitHub
41 changed files with 2465 additions and 1263 deletions

View File

@ -290,7 +290,7 @@ public:
const std::size_t padding_size{page_table.GetNumGuardPages() * Kernel::PageSize};
const auto start_info{page_table.QueryInfo(start - 1)};
if (start_info.state != Kernel::KMemoryState::Free) {
if (start_info.GetState() != Kernel::KMemoryState::Free) {
return {};
}
@ -300,7 +300,7 @@ public:
const auto end_info{page_table.QueryInfo(start + size)};
if (end_info.state != Kernel::KMemoryState::Free) {
if (end_info.GetState() != Kernel::KMemoryState::Free) {
return {};
}

View File

@ -128,7 +128,8 @@ NvResult nvmap::IocAlloc(const std::vector<u8>& input, std::vector<u8>& output)
}
ASSERT(system.CurrentProcess()
->PageTable()
.LockForDeviceAddressSpace(handle_description->address, handle_description->size)
.LockForMapDeviceAddressSpace(handle_description->address, handle_description->size,
Kernel::KMemoryPermission::None, true)
.IsSuccess());
std::memcpy(output.data(), &params, sizeof(params));
return result;