RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
The smallest loadable unit of a Hunk file is the hunk, it roughly corresponds to a segment in other file formats. More...
#include <hunk.h>
Public Types | |
enum | hunk_type : uint32_t { Undefined = 0 , Invalid = uint32_t(-1) , Code = Block::HUNK_CODE , CodePPC = Block::HUNK_PPC_CODE , Data = Block::HUNK_DATA , Bss = Block::HUNK_BSS } |
Public Member Functions | |
Hunk (hunk_type type, std::string name="image", unsigned flags=LoadBlock::LoadAny) | |
Hunk (hunk_type type, std::shared_ptr< Linker::Segment > segment, unsigned flags=LoadBlock::LoadAny) | |
void | ProduceBlocks () |
Converts the data collected by the linker into hunk blocks. | |
uint32_t | GetMemorySize () const |
The amount of memory this hunk will take up after loading. | |
uint32_t | GetFileSize () const |
The amount of bytes this hunk will take up in the file. | |
uint32_t | GetSizeField () |
Retrieves the size field of the first block, to be stored in a header block. | |
void | AppendBlock (std::shared_ptr< Block > block) |
Appends a new block to the block sequence and updates the internal structure of the hunk, used for reading. | |
Public Attributes | |
std::vector< std::shared_ptr< Block > > | blocks |
The sequence of blocks the hunk is stored as. | |
hunk_type | type = Undefined |
LoadBlock::flag_type | flags = LoadBlock::LoadPublic |
std::shared_ptr< Linker::Image > | image |
The memory image, if stored in a file (that is, a non-bss segment) | |
offset_t | image_size = 0 |
Size of the memory image, if it is a zero filled segment (bss) | |
std::string | name |
std::map< uint32_t, std::set< Relocation > > | relocations |
The smallest loadable unit of a Hunk file is the hunk, it roughly corresponds to a segment in other file formats.