8#include "../linker/reader.h"
9#include "../linker/segment_manager.h"
10#include "../linker/writer.h"
11#include "../dumper/dumper.h"
57 virtual void ReadFile(
const std::shared_ptr<Linker::Reader>& rd, uint16_t length);
59 virtual void WriteFile(
const std::shared_ptr<Linker::Writer>& wr)
const;
63 virtual std::unique_ptr<Dumper::Region>
MakeRegion(std::string name, offset_t offset,
unsigned display_width)
const;
72 static std::unique_ptr<MemoryBlock>
ReadFile(
const std::shared_ptr<Linker::Reader>& rd);
91 std::shared_ptr<Linker::Contents>
image;
94 void ReadFile(
const std::shared_ptr<Linker::Reader>& rd, uint16_t length)
override;
95 void WriteFile(
const std::shared_ptr<Linker::Writer>& wr)
const override;
97 std::unique_ptr<Dumper::Region>
MakeRegion(std::string name, offset_t offset,
unsigned display_width)
const override;
118 void ReadFile(
const std::shared_ptr<Linker::Reader>& rd, uint16_t length)
override;
119 void WriteFile(
const std::shared_ptr<Linker::Writer>& wr)
const override;
134 std::shared_ptr<Linker::Contents> image;
137 void ReadFile(
const std::shared_ptr<Linker::Reader>& rd, uint16_t length)
override;
138 void WriteFile(
const std::shared_ptr<Linker::Writer>& wr)
const override;
139 std::unique_ptr<Dumper::Region>
MakeRegion(std::string name, offset_t offset,
unsigned display_width)
const override;
161 uint16_t allocation_length;
163 std::vector<std::unique_ptr<MemoryBlock>>
blocks;
170 void ReadFile(
const std::shared_ptr<Linker::Reader>& rd)
override;
173 offset_t
WriteFile(
const std::shared_ptr<Linker::Writer>& wr)
const override;
182 const LoadBlock * GetLoadBlockById(uint32_t block_id)
const;
183 LoadBlock * GetLoadBlockById(uint32_t block_id);
An abstract interface that separates structure and presentation of the data inside a file.
Definition dumper.h:1009
A record that represents a region within the file.
Definition dumper.h:902
Encodes an object module file as a collection of sections, symbols and relocations.
Definition module.h:24
A helper class to collect sections into segments.
Definition segment_manager.h:32