OpenASIP
2.0
|
#include <StringSection.hh>
Public Member Functions | |
virtual | ~StringSection () |
virtual SectionType | type () const |
std::string | chunk2String (const Chunk *chunk) const |
Chunk * | string2Chunk (const std::string &str) |
![]() | |
virtual | ~DataSection () |
virtual Byte | byte (const Chunk *chunk) const |
virtual Byte | byte (Word offset) const |
virtual void | addByte (Byte aByte) |
virtual MinimumAddressableUnit | MAU (Word index) const |
virtual void | addMAU (MinimumAddressableUnit aMAU) |
virtual void | writeValue (Word index, Word numOfMAUs, unsigned long value) |
virtual void | writeValue (Word index, Word numOfMAUs, signed long value) |
virtual Word | length () const |
virtual void | setDataLength (Word length) |
virtual bool | isDataSection () const override |
![]() | |
virtual | ~UDataSection () |
![]() | |
virtual bool | isChunkable () const |
virtual Chunk * | chunk (SectionOffset offset) const |
virtual void | assureInSection (SectionOffset offset) const |
virtual | ~RawSection () |
bool | empty () const |
virtual void | setLengthInMAUs (Word length) |
virtual Word | lengthInMAUs () const |
virtual Word | bytesToMAUs (Word byteCount) const |
virtual Word | MAUsToBytes (Word mauCount) const |
virtual Word | chunkToMAUIndex (const Chunk *chunk) const |
Word | referredChunkCount () const |
Chunk * | referredChunk (Word index) const |
bool | belongsToSection (const Chunk *chunk) const |
![]() | |
virtual | ~Section () |
bool | isProgramSection () const |
bool | isAuxSection () const |
virtual void | addElement (SectionElement *element) |
virtual void | setElement (Word index, SectionElement *element) |
SectionElement * | element (Word index) const |
Word | elementCount () const |
void | setFlagNoBits () |
void | unsetFlagNoBits () |
bool | noBits () const |
bool | vLen () const |
Byte | flags () const |
void | setFlags (Byte flagByte) |
void | setStartingAddress (AddressImage address) |
AddressImage | startingAddress () const |
void | setLink (const ReferenceManager::SafePointer *aLink) |
void | setLink (Section *aLink) |
Section * | link () const |
void | setASpace (const ReferenceManager::SafePointer *addrSpace) |
void | setASpace (ASpaceElement *addrSpace) |
ASpaceElement * | aSpace () const |
void | setName (const ReferenceManager::SafePointer *sectionName) |
void | setName (Chunk *sectionName) |
Chunk * | name () const |
virtual bool | isCodeSection () const |
![]() | |
virtual | ~SafePointable () |
Protected Member Functions | |
StringSection (bool init) | |
virtual Section * | clone () const |
![]() | |
DataSection (bool init) | |
virtual void | setByte (Word offset, Byte aByte) |
![]() | |
UDataSection (bool init) | |
![]() | |
RawSection () | |
![]() | |
Section () | |
void | setFlagVLen () |
void | unsetFlagVLen () |
![]() | |
SafePointable () | |
Static Private Attributes | |
static StringSection | proto_ |
Prototype of the section. More... | |
Additional Inherited Members | |
![]() | |
enum | SectionType { ST_NULL = 0x00, ST_STRTAB = 0x01, ST_SYMTAB = 0x02, ST_DEBUG = 0x03, ST_RELOC = 0x04, ST_LINENO = 0x05, ST_NOTE = 0x06, ST_ADDRSP = 0x07, ST_MR = 0x0A, ST_CODE = 0x81, ST_DATA = 0x82, ST_UDATA = 0x83, ST_LEDATA = 0x84, ST_DUMMY = 0xff } |
enum | SectionFlag { SF_VLEN = 0x40, SF_NOBITS = 0x80 } |
![]() | |
static Section * | createSection (SectionType type) |
static bool | isProgramSection (SectionType type) |
![]() | |
static void | registerSection (const Section *section) |
Represents a string table section.
Definition at line 48 of file StringSection.hh.
|
virtual |
|
protected |
Constructor.
init | True if registeration is wanted. |
Definition at line 50 of file StringSection.cc.
References TPEF::Section::registerSection(), TPEF::Section::unsetFlagNoBits(), and TPEF::Section::unsetFlagVLen().
Referenced by clone().
string TPEF::StringSection::chunk2String | ( | const Chunk * | chunk | ) | const |
Returns the string of the given chunk.
chunk | Chunk where string starts. |
UnexpectedValue | If no terminating zero is found. |
Definition at line 72 of file StringSection.cc.
References __func__, assert, TPEF::RawSection::chunk(), TPEF::DataSection::length(), and TPEF::Chunk::offset().
Referenced by MachineResourceManager::addResourceElement(), TPEF::TPEFTools::addressSpaceName(), TTAProgram::TPEFResourceUpdater::bus(), TPEFDisassembler::createDisassemblyElement(), TTAProgram::TPEFProgramFactory::createLabels(), TPEF::AOutSymbolSectionReader::finalize(), TTAProgram::TPEFResourceUpdater::functionUnit(), TTAProgram::TPEFResourceUpdater::functionUnitPort(), TTAProgram::TPEFResourceUpdater::immediateUnit(), TTAProgram::TPEFResourceUpdater::initCache(), TPEF::AOutSymbolSectionReader::initializeSymbol(), TTAProgram::TPEFResourceUpdater::operand(), TTAProgram::TPEFResourceUpdater::registerFile(), TPEF::TPEFTools::resourceName(), TPEFDumper::section(), TPEFDumper::sectionHeader(), TTAProgram::TPEFProgramFactory::stringOfChunk(), TPEFDumper::symbolString(), and ProgramImageGenerator::writeDataSection().
|
protectedvirtual |
Creates an instance of the class.
Reimplemented from TPEF::DataSection.
Definition at line 158 of file StringSection.cc.
References StringSection().
Chunk * TPEF::StringSection::string2Chunk | ( | const std::string & | str | ) |
Checks if string is already found from section and returns chunk pointing to it.
If string is not already found from section, it is added to end, before returning chunk.
str | String to find from section. |
Definition at line 103 of file StringSection.cc.
References TPEF::DataSection::addByte(), TPEF::RawSection::chunk(), and TPEF::DataSection::length().
Referenced by TTAProgram::TPEFResourceUpdater::bus(), TTAProgram::ProgramWriter::createASpaceElement(), TTAProgram::ProgramWriter::createBinary(), TTAProgram::ProgramWriter::createDataSections(), TTAProgram::ProgramWriter::createRelocSections(), LabelManager::finalize(), TTAProgram::TPEFResourceUpdater::functionUnit(), TTAProgram::TPEFResourceUpdater::functionUnitPort(), TTAProgram::TPEFResourceUpdater::immediateUnit(), TTAProgram::TPEFResourceUpdater::operand(), TPEF::AOutSymbolSectionReader::readData(), TPEF::AOutReader::readData(), TTAProgram::TPEFResourceUpdater::registerFile(), MachineResourceManager::stringToChunk(), and LabelManager::writeProcedureSymbols().
|
virtual |
Returns the type of section.
Reimplemented from TPEF::DataSection.
Definition at line 148 of file StringSection.cc.
References TPEF::Section::ST_STRTAB.
|
staticprivate |
Prototype of the section.
Definition at line 64 of file StringSection.hh.