rpcsx/rx/include/rx/mem.hpp
DH 390dadf78e
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
fix android build
2025-10-17 02:43:13 +03:00

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