|
RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
Represents a page (usually of 4 KiB) within an LE/LX object. More...
#include <leexe.h>
Classes | |
| class | Relocation |
| Represents a relocation record associated to this page. More... | |
Public Types | |
| enum | page_type { Preload = 0 , Iterated = 1 , Invalid = 2 , ZeroFilled = 3 , Range = 4 , Compressed = 5 } |
| LX (and presumably LE) page types. | |
Public Member Functions | |
| page_type | GetPageType (const LEFormat &fmt) const |
| void | Dump (Dumper::Dumper &dump, const LEFormat &fmt, PhysicalPageNumber page_index) const |
Static Public Member Functions | |
| static Page | LEPage (uint8_t type) |
| static Page | LXPage (uint32_t offset, uint16_t size, uint8_t type) |
Public Attributes | |
| uint32_t | offset = 0 |
| (LX only) Offset of the page within the file | |
| uint16_t | size = 0 |
| (LX only) The size of the page as stored in the file | |
| uint16_t | type = 0 |
| The type of the page. | |
| uint32_t | fixup_offset = 0 |
| The offset to the first fixup from the fixup record table, as stored in the fixup page table. | |
| std::map< uint16_t, Relocation > | relocations |
| uint32_t | checksum = 0 |
| std::shared_ptr< Linker::Contents > | image |
Protected Member Functions | |
| void | FillDumpRegion (Dumper::Dumper &dump, Dumper::Region &page_region, const LEFormat &fmt, uint32_t object_number, PhysicalPageNumber page_index) const |
| void | FillDumpRelocations (Dumper::Dumper &dump, Dumper::Block &page_block, const LEFormat &fmt) const |
| void | DumpPhysicalPage (Dumper::Dumper &dump, const LEFormat &fmt, uint32_t object_number, PhysicalPageNumber page_index) const |
| void | DumpIteratedPage (Dumper::Dumper &dump, const LEFormat &fmt, uint32_t object_number, PhysicalPageNumber page_index) const |
| void | DumpInvalidPage (Dumper::Dumper &dump, const LEFormat &fmt, uint32_t object_number, PhysicalPageNumber page_index) const |
| void | DumpZeroFilledPage (Dumper::Dumper &dump, const LEFormat &fmt, uint32_t object_number, PhysicalPageNumber page_index) const |
| void | DumpPageRange (Dumper::Dumper &dump, const LEFormat &fmt, uint32_t object_number, PhysicalPageNumber page_index) const |
| void | DumpCompressedPage (Dumper::Dumper &dump, const LEFormat &fmt, uint32_t object_number, PhysicalPageNumber page_index) const |
| void | DumpUnknownPage (Dumper::Dumper &dump, const LEFormat &fmt, uint32_t object_number, PhysicalPageNumber page_index) const |
Represents a page (usually of 4 KiB) within an LE/LX object.
| uint32_t Microsoft::LEFormat::Page::offset = 0 |
(LX only) Offset of the page within the file
It is stored with a page_offset_shift in the page table. In the LE format, the page_number field serves a similar purpose.
| uint16_t Microsoft::LEFormat::Page::size = 0 |
(LX only) The size of the page as stored in the file
For legal physical pages, the remainder of the page is filled with zeroes. For iterated pages, the page is filled with the iterated record data.
| uint16_t Microsoft::LEFormat::Page::type = 0 |
The type of the page.
For LE, documentation contradict each other, but this is typically set to 0.