RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
OMF::OMF86Format::BlockDefinitionRecord Class Reference

A record that defines a block, used for BLKDEF records (Intel only) More...

#include <omf.h>

Inheritance diagram for OMF::OMF86Format::BlockDefinitionRecord:
OMF::OMFFormat::Record< RecordTypeByte, FormatType, ModuleType >

Public Types

enum  block_type_t : uint8_t { NotProcedure = 0x00 , NearProcedure = 0x80 , FarProcedure = 0xC0 }
 Type of the block, if it is a procedure. More...
 

Public Member Functions

 BlockDefinitionRecord (record_type_t record_type=record_type_t(0))
 
void ReadRecordContents (OMF86Format *omf, Module *mod, Linker::Reader &rd) override
 
uint16_t GetRecordSize (OMF86Format *omf, Module *mod) const override
 
void WriteRecordContents (OMF86Format *omf, Module *mod, ChecksumWriter &wr) const override
 
void CalculateValues (OMF86Format *omf, Module *mod) override
 
void ResolveReferences (OMF86Format *omf, Module *mod) override
 
- Public Member Functions inherited from OMF::OMFFormat::Record< RecordTypeByte, FormatType, ModuleType >
 Record (RecordTypeByte record_type=RecordTypeByte(0))
 
offset_t RecordEnd () const
 
virtual void ReadRecordContents (FormatType *omf, ModuleType *mod, Linker::Reader &rd)=0
 Reads the record contents, except for the type, length and checksum.
 
virtual uint16_t GetRecordSize (FormatType *omf, ModuleType *mod) const =0
 Calculates the required bytes to write the record, might be less than record_length.
 
virtual void WriteRecordContents (FormatType *omf, ModuleType *mod, ChecksumWriter &wr) const =0
 Writes the record contents, except for the type, length and checksum.
 
virtual void WriteRecord (FormatType *omf, ModuleType *mod, Linker::Writer &wr) const
 Writes the full record.
 
virtual void CalculateValues (FormatType *omf, ModuleType *mod)
 Updates all fields that will be used for writing an OMF module, should be called before output.
 
virtual void ResolveReferences (FormatType *omf, ModuleType *mod)
 Resolves any fields read from an OMF module, should be called after inpnut.
 
virtual void DumpAddFields (Dumper::Dumper &dump, Dumper::Region &region, const FormatType *omf, const ModuleType *mod, size_t record_index) const
 
virtual void Dump (Dumper::Dumper &dump, const FormatType *omf, const ModuleType *mod, size_t record_index) const
 
bool Is32Bit (FormatType *omf) const
 Records are 32-bit if the least significant bit of their record type is set (only meaningful for OMF86Format)
 
size_t GetOffsetSize (FormatType *omf) const
 The number of bytes in an offset appearing inside the record, 2 for 16-bit records, 4 for 32-bit records (only meaningful for OMF86Format)
 

Public Attributes

BaseSpecification base
 The first byte of the segment containing the block.
 
std::string name
 The name of the block or empty.
 
uint16_t offset
 Offset to the first byte of the block.
 
uint16_t length
 Length of the block.
 
block_type_t procedure
 Whether this block is a procedure, and whether it is a near or far procedure.
 
uint16_t return_address_offset
 Offset, relative to the frame pointer (BP), to the return address of the procedure in the calling frame on the stack.
 
TypeIndex type
 Type of block or procedure, only used if name != "".
 
- Public Attributes inherited from OMF::OMFFormat::Record< RecordTypeByte, FormatType, ModuleType >
offset_t record_offset
 Offset of record within the file.
 
uint16_t record_length
 Length of record body file, excluding the type byte and 2-byte length field.
 
RecordTypeByte record_type
 A byte value identifying the type of record.
 

Detailed Description

A record that defines a block, used for BLKDEF records (Intel only)

Member Enumeration Documentation

◆ block_type_t

Type of the block, if it is a procedure.

Enumerator
NotProcedure 

Block is not a procedure.

NearProcedure 

Block is a near procedure.

FarProcedure 

Block is a far procedure.


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