|
| 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
, Chained = 8
, Target32 = 0x10
,
Additive32 = 0x20
, Module16 = 0x40
, Ordinal8 = 0x80
} |
| |
|
|
| 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 |
| |
|
uint16_t | GetFirstSource () const |
| |
|
void | CalculateSizes (compatibility_type compatibility) |
| |
|
size_t | GetSize () const |
| |
|
void | WriteFile (Linker::Writer &wr) const |
| |
|
| 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.
|
| |
|
template<class T , std::size_t N> |
| void | WriteData (const std::array< T, N > &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.
|
| |
|
|
source_type | type = source_type(0) |
| |
|
flag_type | flags = flag_type(0) |
| |
|
| uint16_t |
| |
|
uint32_t | target = 0 |
| |
|
uint32_t | addition = 0 |
| |
|
std::string | module_name |
| | Convenience field that stores the module name, not used for generation.
|
| |
|
std::string | import_name |
| | Convenience field that stores the imported procedure name, if imported by name, also the name for an exported entry, not used for generation.
|
| |
|
uint16_t | actual_object = 0 |
| | Convenience field that stores the actual object number for an entry, not used for generation.
|
| |
|
uint32_t | actual_offset = 0 |
| | Convenience field that stores the actual offset for an entry, not used for generation.
|
| |
|
std::vector< Chain > | sources |
| | The sequence of sources corresponding to the same relocation record.
|
| |
|
EndianType | endiantype |
| | The default endianness of the binary format, used for reading multibyte numeric data.
|
| |
|
std::ostream * | out |
| | The output stream.
|
| |
Represents a relocation record associated to this page.