5#include "../dumper/dumper.h"
6#include "../linker/reader.h"
7#include "../linker/segment_manager.h"
8#include "../linker/writer.h"
20 static constexpr uint32_t ARM_NOP = 0xE1A00000;
21 static constexpr uint32_t ARM_BLNV = 0xFB;
22 static constexpr uint32_t ARM_BL = 0xEB000000;
23 static constexpr uint32_t ARM_BL_OP = ARM_BL >> 24;
25 ::EndianType endiantype = ::LittleEndian;
29 bool compressed =
false;
30 uint32_t decompression_code = 0;
32 bool relocatable =
false;
33 uint32_t relocation_code = 0;
35 bool has_zero_init =
false;
36 uint32_t zero_init_code = 0;
38 bool executable =
true;
41 static constexpr uint32_t ARM_SWI_0x11 = 0xEF000011;
42 uint32_t exit_instruction = ARM_SWI_0x11;
44 uint32_t text_size = 0;
45 uint32_t data_size = 0;
46 uint32_t debug_size = 0;
47 uint32_t bss_size = 0;
48 enum debug_type : uint32_t
51 LowLevelDebugData = 1,
52 SourceLevelDebugData = 2,
55 debug_type image_debut_type = NoDebugData;
56 uint32_t image_base = 0;
57 uint32_t workspace = 0;
58 enum address_mode_type : uint32_t
63 SeparateCodeData = 0x00000100,
65 address_mode_type address_mode = AifHeader32;
66 uint32_t data_base = 0;
68 void Clear()
override;
An abstract interface that separates structure and presentation of the data inside a file.
Definition dumper.h:586
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:16
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