mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-01-31 12:54:47 +01:00
Some checks failed
Formatting check / formatting-check (push) Has been cancelled
Build RPCSX / build-linux (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv8-a) (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv8.1-a) (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv8.2-a) (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv8.4-a) (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv8.5-a) (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv9-a) (push) Has been cancelled
Build RPCSX / build-android (arm64-v8a, armv9.1-a) (push) Has been cancelled
Build RPCSX / build-android (x86_64, x86-64) (push) Has been cancelled
32 lines
760 B
C++
32 lines
760 B
C++
#pragma once
|
|
|
|
#include "AddressRange.hpp"
|
|
#include "EnumBitSet.hpp"
|
|
#include <cstddef>
|
|
#include <system_error>
|
|
#include <vector>
|
|
|
|
namespace rx::mem {
|
|
enum class Protection {
|
|
R,
|
|
W,
|
|
X,
|
|
|
|
bitset_last = X
|
|
};
|
|
|
|
struct VirtualQueryEntry : rx::AddressRange {
|
|
rx::EnumBitSet<Protection> flags{};
|
|
|
|
VirtualQueryEntry() = default;
|
|
VirtualQueryEntry(rx::AddressRange range, rx::EnumBitSet<Protection> prot)
|
|
: AddressRange(range), flags(prot) {}
|
|
};
|
|
|
|
extern const std::size_t pageSize;
|
|
std::errc reserve(rx::AddressRange range);
|
|
std::errc release(rx::AddressRange range, std::size_t alignment);
|
|
std::errc protect(rx::AddressRange range, rx::EnumBitSet<Protection> prot);
|
|
std::vector<VirtualQueryEntry> query(rx::AddressRange range);
|
|
} // namespace rx::mem
|