8#include "../dumper/dumper.h"
9#include "../linker/module.h"
10#include "../linker/segment.h"
11#include "../linker/segment_manager.h"
12#include "../linker/writer.h"
14namespace DigitalResearch
58 std::shared_ptr<Linker::Contents>
image =
nullptr;
62 bool IsPresent()
const;
96 constexpr bool IsExternal()
const
101 constexpr size_t GetRelocationSize()
const
124 uint8_t segment_number;
125 static constexpr uint8_t ABSOLUTE = 0xFF;
143 MAGIC_SEGMENTED_OBJECT = 0xEE00,
144 MAGIC_SEGMENTED = 0xEE01,
145 MAGIC_NONSHARED_OBJECT = 0xEE02,
146 MAGIC_NONSHARED = 0xEE03,
147 MAGIC_SHARED_OBJECT = 0xEE06,
148 MAGIC_SHARED = 0xEE07,
149 MAGIC_SPLIT_OBJECT = 0xEE0A,
150 MAGIC_SPLIT = 0xEE0B,
164 std::vector<Segment> segments;
165 std::vector<Relocation> relocations;
166 std::vector<Symbol> symbols;
168 magic_type GetSignature()
const;
170 void SetSignature(magic_type magic);
172 void Clear()
override;
197 std::vector<std::shared_ptr<Linker::Segment>>& Segments();
199 unsigned GetSegmentNumber(std::shared_ptr<Linker::Segment> segment);
201 void SetOptions(std::map<std::string, std::string>& options)
override;
203 void OnNewSegment(std::shared_ptr<Linker::Segment> segment)
override;
205 bool IsCombined()
const;
An abstract interface that separates structure and presentation of the data inside a file.
Definition dumper.h:773
Encodes an object module file as a collection of sections, symbols and relocations.
Definition module.h:24
A helper class, encapsulating functionality needed to import binary data.
Definition reader.h:20
A helper class to collect sections into segments.
Definition segment_manager.h:32
A helper class, encapsulating functionality needed to export binary data.
Definition writer.h:15