OpenASIP
2.0
|
#include <TPEFSymbolSectionWriter.hh>
Protected Member Functions | |
TPEFSymbolSectionWriter () | |
virtual | ~TPEFSymbolSectionWriter () |
virtual Section::SectionType | type () const |
virtual void | createKeys (const Section *sect) const |
virtual void | actualWriteData (BinaryStream &stream, const Section *section) const |
virtual Word | elementSize (const Section *section) const |
Protected Member Functions inherited from TPEF::TPEFSectionWriter | |
TPEFSectionWriter () | |
virtual | ~TPEFSectionWriter () |
virtual const BinaryWriter & | parent () const |
virtual void | actualWriteHeader (BinaryStream &stream, const Section *sect) const |
virtual void | writeSize (BinaryStream &stream, const Section *sect) const |
virtual void | writeInfo (BinaryStream &stream, const Section *sect) const |
virtual SectionId | getSectionId () const |
Protected Member Functions inherited from TPEF::SectionWriter | |
SectionWriter () | |
virtual | ~SectionWriter () |
virtual void | finalize (BinaryStream &stream, Section *section) const |
Private Member Functions | |
TPEFSymbolSectionWriter (const TPEFSymbolSectionWriter &) | |
Copying not allowed. More... | |
TPEFSymbolSectionWriter | operator= (const TPEFSymbolSectionWriter &) |
Assignment not allowed. More... | |
void | writeValueAndSize (BinaryStream &stream, const SymbolElement *elem) const |
Static Private Attributes | |
static const TPEFSymbolSectionWriter | instance_ |
An unique instance of class. More... | |
static const Word | elementSize_ = 16 |
The fixed size address space element. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from TPEF::SectionWriter | |
static void | writeHeader (BinaryStream &stream, const Section *sect, const BinaryWriter *writer) |
static void | writeData (BinaryStream &stream, const Section *sect, const BinaryWriter *writer) |
static void | finalizeBinary (BinaryStream &stream, const Binary *binaryToFinalize, const BinaryWriter *writer) |
Static Protected Member Functions inherited from TPEF::SectionWriter | |
static void | registerSectionWriter (const SectionWriter *sWriter) |
static SectionId | getUniqueSectionId () |
Writes TPEF symbol table to stream.
Definition at line 47 of file TPEFSymbolSectionWriter.hh.
|
protected |
Constructor.
Registers itself to SectionWriter.
Definition at line 67 of file TPEFSymbolSectionWriter.cc.
References TPEF::SectionWriter::registerSectionWriter().
|
protectedvirtual |
|
private |
Copying not allowed.
|
protectedvirtual |
Writes the data of the section in to stream.
stream | The stream to be written to. |
sect | The section to be written. |
Reimplemented from TPEF::TPEFSectionWriter.
Definition at line 94 of file TPEFSymbolSectionWriter.cc.
References TPEF::SymbolElement::absolute(), TPEF::ReferenceManager::SafePointer::addObjectReference(), assert, TPEF::SymbolElement::binding(), BYTE_BITWIDTH, TPEF::Section::element(), TPEF::Section::elementCount(), TPEF::SymbolElement::name(), TPEF::Chunk::offset(), TPEF::ValueReplacer::resolve(), TPEF::SymbolElement::section(), TPEF::ReferenceManager::SectionKey::sectionId(), TPEF::ReferenceManager::SafePointer::sectionKeyFor(), TPEF::SectionSizeReplacer::setSize(), TPEF::SymbolElement::STB_LOCAL, TPEF::TPEFHeaders::STO_ABS, TPEF::SymbolElement::STT_NOTYPE, TPEF::SymbolElement::type(), TPEF::BinaryStream::writeByte(), TPEF::BinaryStream::writeHalfWord(), TPEF::BinaryStream::writePosition(), and writeValueAndSize().
|
protectedvirtual |
Creates needed keys for section if noBits flag is set.
sect | Section which for keys will be created. |
Reimplemented from TPEF::TPEFSectionWriter.
Definition at line 264 of file TPEFSymbolSectionWriter.cc.
References TPEF::SectionSizeReplacer::setSize().
|
protectedvirtual |
Returns the fixed size length of section elements.
Reimplemented from TPEF::TPEFSectionWriter.
Definition at line 254 of file TPEFSymbolSectionWriter.cc.
References elementSize_.
|
private |
Assignment not allowed.
|
protectedvirtual |
Returns the section type this writer can write.
Implements TPEF::TPEFSectionWriter.
Definition at line 83 of file TPEFSymbolSectionWriter.cc.
References TPEF::Section::ST_SYMTAB.
|
private |
Writes value and size fields of symbol.
stream | Stream where to write. |
elem | Element to write. |
Definition at line 167 of file TPEFSymbolSectionWriter.cc.
References assert, TPEF::DataSymElement::reference(), TPEF::CodeSymElement::reference(), TPEF::ValueReplacer::resolve(), TPEF::DataSymElement::size(), TPEF::SectionSymElement::size(), TPEF::CodeSymElement::size(), TPEF::SymbolElement::STT_CODE, TPEF::SymbolElement::STT_DATA, TPEF::SymbolElement::STT_FILE, TPEF::SymbolElement::STT_NOTYPE, TPEF::SymbolElement::STT_PROCEDURE, TPEF::SymbolElement::STT_SECTION, TPEF::SymbolElement::type(), TPEF::SectionSymElement::value(), TPEF::FileSymElement::value(), and TPEF::BinaryStream::writeWord().
Referenced by actualWriteData().
|
staticprivate |
The fixed size address space element.
Definition at line 75 of file TPEFSymbolSectionWriter.hh.
Referenced by elementSize().
|
staticprivate |
An unique instance of class.
Definition at line 73 of file TPEFSymbolSectionWriter.hh.