remove references to nt_memory_permission from backend

This commit is contained in:
3fault
2025-07-09 14:43:06 -04:00
parent 8ec184d57f
commit 19574fb512
8 changed files with 34 additions and 31 deletions

View File

@@ -1,4 +1,3 @@
#include "memory_permission.hpp"
#include "std_include.hpp"
#include "memory_manager.hpp"
@@ -269,12 +268,9 @@ bool memory_manager::allocate_memory(const uint64_t address, const size_t size,
if (!reserve_only)
{
this->map_memory(address, size, permissions);
auto common = memory_permission::read_write;
auto extended = permissions.is_guarded() ? memory_permission_ext::guard : memory_permission_ext::none;
entry->second.committed_regions[address] = committed_region{size, nt_memory_permission{common, extended}};
this->map_memory(address, size, permissions.is_guarded() ? memory_permission::none : permissions.common);
entry->second.committed_regions[address] =
committed_region{size, nt_memory_permission{memory_permission::read_write, permissions.extended}};
}
this->update_layout_version();
@@ -630,11 +626,9 @@ void memory_manager::map_mmio(const uint64_t address, const size_t size, mmio_re
this->memory_->map_mmio(address, size, std::move(read_cb), std::move(write_cb));
}
void memory_manager::map_memory(const uint64_t address, const size_t size, const nt_memory_permission permissions)
void memory_manager::map_memory(const uint64_t address, const size_t size, const memory_permission permissions)
{
auto perms = permissions.is_guarded() ? nt_memory_permission(memory_permission::none) : permissions;
this->memory_->map_memory(address, size, perms);
this->memory_->map_memory(address, size, permissions);
}
void memory_manager::unmap_memory(const uint64_t address, const size_t size)
@@ -643,7 +637,7 @@ void memory_manager::unmap_memory(const uint64_t address, const size_t size)
}
void memory_manager::apply_memory_protection(const uint64_t address, const size_t size,
const nt_memory_permission permissions)
const memory_permission permissions)
{
this->memory_->apply_memory_protection(address, size, permissions);
}

View File

@@ -3,7 +3,7 @@
#include <atomic>
#include <cstdint>
#include "memory_region.hpp"
#include "memory_permission_ext.hpp"
#include "serialization.hpp"
#include <memory_interface.hpp>
@@ -12,7 +12,16 @@ constexpr auto ALLOCATION_GRANULARITY = 0x0000000000010000ULL;
constexpr auto MIN_ALLOCATION_ADDRESS = 0x0000000000010000ULL;
constexpr auto MAX_ALLOCATION_ADDRESS = 0x00007ffffffeffffULL;
struct region_info : basic_memory_region
// This maps to the `basic_memory_region` struct defined in
// emulator\memory_region.hpp
struct nt_basic_memory_region
{
uint64_t start{};
size_t length{};
nt_memory_permission permissions{};
};
struct region_info : nt_basic_memory_region
{
uint64_t allocation_base{};
size_t allocation_length{};
@@ -96,9 +105,9 @@ class memory_manager : public memory_interface
std::atomic<std::uint64_t> layout_version_{0};
void map_mmio(uint64_t address, size_t size, mmio_read_callback read_cb, mmio_write_callback write_cb) final;
void map_memory(uint64_t address, size_t size, nt_memory_permission permissions) final;
void map_memory(uint64_t address, size_t size, memory_permission permissions) final;
void unmap_memory(uint64_t address, size_t size) final;
void apply_memory_protection(uint64_t address, size_t size, nt_memory_permission permissions) final;
void apply_memory_protection(uint64_t address, size_t size, memory_permission permissions) final;
void update_layout_version();
};

View File

@@ -2,6 +2,7 @@
#include <cstdint>
#include <string>
#include <emulator.hpp>
#include "memory_permission_ext.hpp"
inline std::string get_permission_string(const memory_permission permission)
{