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

Public Types

enum  source_type {
  Offset8 = 0 , Selector16 = 2 , Pointer32 = 3 , Offset16 = 5 ,
  Pointer48 = 6 , Offset32 = 7 , Relative32 = 8 , SourceTypeMask = 0x0F ,
  Alias = 0x10 , SourceList = 0x20
}
 
enum  flag_type {
  Internal = 0 , ImportOrdinal = 1 , ImportName = 2 , Entry = 3 ,
  FlagTypeMask = 3 , Additive = 4 , Target32 = 0x10 , Additive32 = 0x20 ,
  Module16 = 0x40 , Ordinal8 = 0x80
}
 

Public Member Functions

 Relocation (unsigned type, unsigned flags, uint16_t offset, uint16_t module, uint32_t target=0, uint32_t addition=0)
 
bool IsExternal () const
 
bool IsSelectorOrOffset () const
 
bool ComesBefore () const
 
size_t GetSourceSize () const
 
void DecrementSingleSourceOffset (size_t amount)
 
bool IsSelector () const
 
bool IsSourceList () const
 
bool IsAdditive () const
 
size_t GetTargetSize () const
 
size_t GetAdditiveSize () const
 
size_t GetModuleSize () const
 
size_t GetOrdinalSize () const
 
void CalculateSizes (compatibility_type compatibility)
 
size_t GetSize () const
 
void WriteFile (Linker::Writer &wr, compatibility_type compatibility)
 
- Public Member Functions inherited from Linker::Writer
 Writer (EndianType endiantype, std::ostream *out=nullptr)
 
void WriteData (size_t count, const void *data)
 Write out a sequence of bytes.
 
size_t WriteData (size_t max_count, const std::vector< uint8_t > &data, size_t offset=0)
 Write out a sequence of bytes.
 
size_t WriteData (const std::vector< uint8_t > &data, size_t offset=0)
 Write out a sequence of bytes.
 
void WriteData (size_t count, std::string text, char padding='\0')
 Write a string, possibly truncated or zero padded.
 
void WriteData (std::string text)
 Write a string.
 
void WriteData (size_t count, std::istream &in)
 Write data using an input stream as the source of data.
 
void WriteWord (size_t bytes, uint64_t value, EndianType endiantype)
 Read a word.
 
void WriteWord (size_t bytes, uint64_t value)
 Read a word.
 
void Seek (offset_t offset)
 Jump to a specific location in the ouput stream.
 
void Skip (offset_t offset)
 Jump to a distance in the output stream.
 
void SeekEnd (offset_t offset=0)
 Jump to a specific offset from the end.
 
offset_t Tell ()
 Retrieve the current location.
 
void FillTo (offset_t position)
 Move to a specific offset, fill with zeroes if needed.
 
void AlignTo (offset_t align)
 Align the current pointer.
 

Static Public Member Functions

static source_type GetType (Linker::Relocation &rel)
 

Public Attributes

source_type type = source_type(0)
 
flag_type flags = flag_type(0)
 
 uint16_t
 
uint32_t target = 0
 
uint32_t addition = 0
 
- Public Attributes inherited from Linker::Writer
EndianType endiantype
 The default endianness of the binary format, used for reading multibyte numeric data.
 
std::ostream * out
 The input stream.
 

Additional Inherited Members

- Protected Member Functions inherited from Linker::Writer
void ForceSeek (offset_t offset)
 

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