#include "llvm/ExecutionEngine/SectionMemoryManager.h"
#include "llvm/Config/config.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/Process.h"
namespace llvm {
uint8_t *SectionMemoryManager::allocateDataSection(uintptr_t Size,
unsigned Alignment,
unsigned SectionID,
StringRef SectionName,
bool IsReadOnly) { … }
uint8_t *SectionMemoryManager::allocateCodeSection(uintptr_t Size,
unsigned Alignment,
unsigned SectionID,
StringRef SectionName) { … }
uint8_t *SectionMemoryManager::allocateSection(
SectionMemoryManager::AllocationPurpose Purpose, uintptr_t Size,
unsigned Alignment) { … }
bool SectionMemoryManager::finalizeMemory(std::string *ErrMsg) { … }
static sys::MemoryBlock trimBlockToPageSize(sys::MemoryBlock M) { … }
std::error_code
SectionMemoryManager::applyMemoryGroupPermissions(MemoryGroup &MemGroup,
unsigned Permissions) { … }
void SectionMemoryManager::invalidateInstructionCache() { … }
SectionMemoryManager::~SectionMemoryManager() { … }
SectionMemoryManager::MemoryMapper::~MemoryMapper() = default;
void SectionMemoryManager::anchor() { … }
namespace {
class DefaultMMapper final : public SectionMemoryManager::MemoryMapper { … };
}
SectionMemoryManager::SectionMemoryManager(MemoryMapper *UnownedMM)
: … { … }
}