Go to the documentation of this file.
34 #ifndef TTA_SECTION_HH
35 #define TTA_SECTION_HH
48 namespace ReferenceManager {
213 virtual Word
length()
const;
Byte flags_
TPEF flag byte.
virtual bool isChunkable() const
static SectionPrototypeMap * prototypes_
Container for registere section prototypes.
virtual Chunk * chunk(SectionOffset offset) const
virtual Word lengthInMAUs() const
const ReferenceManager::SafePointer * aSpace_
TPEF address space field.
ASpaceElement * aSpace() const
void setFlag(SectionFlag aFlag)
@ ST_DUMMY
Dummy section type for testing purposes.
const ReferenceManager::SafePointer * link_
TPEF link field.
Word referredChunkCount() const
virtual bool isDataSection() const
virtual void setDataLength(Word length)
std::map< SectionType, const Section * > SectionPrototypeMap
Type of map that contains section prototypes.
virtual void setElement(Word index, SectionElement *element)
virtual SectionType type() const =0
Returns SectioType of actual section instance.
const ReferenceManager::SafePointer * name_
TPEF name field.
bool isAuxSection() const
virtual bool isChunkable() const
Word startingAddress_
TPEF startin memory address field.
virtual Word MAUsToBytes(Word mauCount) const
void setFlags(Byte flagByte)
std::vector< Chunk * > referredChunksCache_
Table containing all the chunks that are requested from section.
bool belongsToSection(const Chunk *chunk) const
ChunkMap dataChunks_
Container for already created chunks.
SectionElement * element(Word index) const
virtual void addElement(SectionElement *element)
virtual void assureInSection(SectionOffset offset) const
Word length_
The length of raw data section.
@ ST_DATA
Initialized data section.
static Section * createSection(SectionType type)
@ ST_LEDATA
Initialized little endian data section.
Chunk * referredChunk(Word index) const
void unsetFlag(SectionFlag aFlag)
virtual Word bytesToMAUs(Word byteCount) const
void setName(const ReferenceManager::SafePointer *sectionName)
std::vector< SectionElement * > elements_
Contain elements.
static const Byte PROGRAM_SECTION_MASK
Mask for checking if section is auxiliary or program section.
std::map< SectionOffset, Chunk * > ChunkMap
Type of map that contains chunks.
void setStartingAddress(AddressImage address)
UInt32 AddressImage
Type for storing addresses to memory image.
@ ST_UDATA
Uninitialized data section.
static void registerSection(const Section *section)
Word SectionOffset
Type for storing offsets relative to a given base offset value.
@ ST_LINENO
Line number section.
@ SF_VLEN
Contains elements with variable length.
void setASpace(const ReferenceManager::SafePointer *addrSpace)
virtual void setLengthInMAUs(Word length)
@ ST_RELOC
Relocation section.
void setLink(const ReferenceManager::SafePointer *aLink)
virtual Word length() const
bool isProgramSection() const
bool flag(SectionFlag aFlag) const
virtual bool isCodeSection() const
@ ST_MR
Machine resources section.
virtual Chunk * chunk(SectionOffset offset) const
@ SF_NOBITS
Not initialized or not stored in this file.
AddressImage startingAddress() const
virtual Word chunkToMAUIndex(const Chunk *chunk) const
virtual Section * clone() const =0
Creates clone of instance.
@ ST_ADDRSP
Address space section.
Word elementCount() const