RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
Apple::PEFFormat::Section Class Reference

Public Types

enum  section_type {
  Code = 0 , UnpackedData = 1 , PatternInitializedData = 2 , Constant = 3 ,
  Loader = 4 , Debug = 5 , ExecutableData = 6 , Exception = 7 ,
  Traceback = 8
}
 
enum  share_type { ProcessShare = 1 , GlobalShare = 4 , ProtectedShare = 5 }
 
enum  compression_level { Compression_None , Compression_Trivial }
 Represents compression algorithm to be chosen. More...
 

Public Member Functions

 Section (section_type section_kind, share_type share_kind, std::shared_ptr< Linker::Contents > image)
 
bool IsInstantiated () const
 
offset_t ExpectedAlignment () const
 
void CompressData ()
 Compress data section into PatternInitializedData section according to default level.
 
void CompressData (compression_level level)
 Compress data section into PatternInitializedData section according to level.
 
void ReadHeader (const std::shared_ptr< Linker::Reader > &rd)
 
void ReadFile (PEFFormat &pef_format, const std::shared_ptr< Linker::Reader > &rd)
 
size_t GetImageSize (PEFFormat &pef_format)
 
void CalculateValues (PEFFormat &pef_format)
 
void WriteHeader (const std::shared_ptr< Linker::Writer > &wr) const
 
void WriteFile (const PEFFormat &pef_format, const std::shared_ptr< Linker::Writer > &wr) const
 

Public Attributes

uint32_t name_offset = NoNameOffset
 
std::string name = ""
 
uint32_t default_address = 0
 
uint32_t total_size = 0
 
uint32_t unpacked_size = 0
 
uint32_t packed_size = 0
 
uint32_t container_offset = 0
 
section_type section_kind = Code
 
share_type share_kind = ProcessShare
 
uint8_t alignment = 0
 
uint8_t reserved = 0
 
uint32_t section_number = uint32_t(-1)
 
std::shared_ptr< Linker::Contents > image
 
std::vector< PatternInitialization > patterns
 
std::map< uint32_t, Relocation > relocations
 
std::vector< RelocOpcode > reloc_opcodes
 
bool contains_relocations = false
 
uint16_t reserved_a = 0
 
uint32_t reloc_instr_size = 0
 
uint32_t first_reloc_offset = 0
 

Static Public Attributes

static constexpr uint32_t NoNameOffset = uint32_t(-1)
 
static compression_level DefaultCompressionLevel = Compression_None
 Default compression level for data sections.
 

Member Enumeration Documentation

◆ compression_level

Represents compression algorithm to be chosen.

Enumerator
Compression_None 

Do not compress data sections.

Compression_Trivial 

Embed data section inside a single BlockCopy command.


The documentation for this class was generated from the following files: