RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
Microsoft::LEFormat::Page Class Reference

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, Relocationrelocations
 
uint32_t checksum = 0
 
std::shared_ptr< Linker::Contentsimage
 

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
 

Detailed Description

Represents a page (usually of 4 KiB) within an LE/LX object.

Member Data Documentation

◆ offset

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.

◆ size

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.

◆ type

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.


The documentation for this class was generated from the following files: