1#ifndef ROSE_BinaryAnalysis_BinaryLoaderElfObj_H
2#define ROSE_BinaryAnalysis_BinaryLoaderElfObj_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
5#include <Rose/BinaryAnalysis/BinaryLoaderElf.h>
8namespace BinaryAnalysis {
45 rose_addr_t *malign_lo, rose_addr_t *malign_hi,
46 rose_addr_t *va, rose_addr_t *mem_size,
47 rose_addr_t *offset, rose_addr_t *file_size,
bool *map_private,
48 rose_addr_t *va_offset,
bool *anon_lo,
bool *anon_hi,
A loader suitable for ELF object files.
static Ptr instance()
Allocating constructor.
virtual BinaryLoaderPtr clone() const override
Copy constructor.
virtual bool canLoad(SgAsmGenericHeader *) const override
Capability query.
virtual MappingContribution alignValues(SgAsmGenericSection *, const MemoryMap::Ptr &, rose_addr_t *malign_lo, rose_addr_t *malign_hi, rose_addr_t *va, rose_addr_t *mem_size, rose_addr_t *offset, rose_addr_t *file_size, bool *map_private, rose_addr_t *va_offset, bool *anon_lo, bool *anon_hi, ConflictResolution *resolve) override
Linux-specific ELF Segment and Section alignment.
virtual unsigned mappingPermissions(SgAsmGenericSection *) const override
MemoryMap permissions.
BinaryLoaderElfObjPtr Ptr
Reference counting pointer to BinaryLoaderElfObj.
virtual SgAsmGenericSectionPtrList getRemapSections(SgAsmGenericHeader *) override
Returns mappable sections in a particular order.
MappingContribution
Describes how a section contributes to the overall memory map.
ConflictResolution
Describes how conflicts are resolved when mapping a section.
Reference-counting intrusive smart pointer.
Contiguous region of a file.
Sawyer::SharedPointer< BinaryLoaderElfObj > BinaryLoaderElfObjPtr
Reference counting pointer.
Sawyer::SharedPointer< BinaryLoader > BinaryLoaderPtr
Reference counting pointer.