7#include "../linker/module.h"
8#include "../linker/reader.h"
9#include "../linker/segment.h"
10#include "../linker/writer.h"
28 AppleFormat(uint64_t default_base_address = 0x0803, std::string default_extension =
".bin")
49 AtariFormat(uint64_t default_base_address = 0, std::string default_extension =
".xex")
60 std::shared_ptr<Linker::Writable> image;
62 Segment(
bool header_optional =
true)
63 : header(0xFFFF), header_optional(header_optional), address(0), image(
nullptr)
68 : header(header), header_optional(
false), address(0), image(
nullptr)
78 offset_t GetSize()
const;
85 std::vector<std::unique_ptr<Segment>> segments;
101 void OnNewSegment(std::shared_ptr<Linker::Segment> segment)
override;
126 std::shared_ptr<Linker::Segment> loader;
128 void Clear()
override;
135 void SetupDefaultLoader();
152 uint8_t preinit_code[10] = { 0xC9 };
153 bool loader_active =
true;
154 uint8_t rsx_count = 0;
163 std::vector<rsx_record> rsx_table;
165 void Clear()
override;
190 std::shared_ptr<Linker::Writable> image;
195 std::vector<std::unique_ptr<Segment>> segments;
197 void OnNewSegment(std::shared_ptr<Linker::Segment> segment)
override;
214 bool suppress_relocations;
216 std::set<uint16_t> relocations;
218 PRLFormat(uint64_t default_base_address = 0, std::string default_extension =
".prl")
223 void OnNewSegment(std::shared_ptr<Linker::Segment> segment)
override;
254 std::shared_ptr<Linker::Writable> code, data;
256 void OnNewSegment(std::shared_ptr<Linker::Segment> segment)
override;
Encodes an object module file as a collection of sections, symbols and relocations.
Definition module.h:20
A helper class, encapsulating functionality needed to import binary data.
Definition reader.h:16
A representation of a value within some binary data that has to be fixed up once the exact position o...
Definition relocation.h:27
Representing a resolved relocation.
Definition resolution.h:17
A helper class, encapsulating functionality needed to export binary data.
Definition writer.h:15