The Sparta Modeling Framework
Loading...
Searching...
No Matches
sparta::ArchData Class Reference

Contains a set of contiguous line of architectural data which can be referred to by any architected object model. When layout() is called, reserves space for each element in a registered set of ArchDataSegment instances at offsets within Lines within the ArchData. More...

#include <ArchData.hpp>

Inheritance diagram for sparta::ArchData:

Classes

class  Line
 Line object which composes part of an entire ArchData. More...
 

Public Types

Access Types
typedef ArchDataSegment::offset_type offset_type
 
typedef offset_type line_idx_type
 Represents offsets into this ArchData.
 
typedef std::vector< ArchDataSegment * > SegmentList
 ArchData line index.
 
typedef std::list< Line * > LineList
 List of ArchDataSegment.
 
typedef TieredMap< line_idx_type, Line * > LineMap
 List of Line pointers.
 
typedef std::unordered_map< ArchDataSegment::ident_type, ArchDataSegment * > LayoutHelperMap
 Helper map for quick lookup from ArchDataSegment::ident_type to an ArchDataSegment*.
 
typedef std::vector< ArchDataSegment * > LayoutHelperVector
 Vector of ArchDataSegment pointers.
 

Public Member Functions

Constuction
 ArchData (TreeNode *owner_node=nullptr, offset_type line_size=DEFAULT_LINE_SIZE, uint64_t initial=DEFAULT_INITIAL_FILL, uint16_t initial_val_size=DEFAULT_INITIAL_FILL_SIZE, bool can_free_lines=true)
 Constructor.
 
Segments
void registerSegment (ArchDataSegment *seg)
 All constructed segments must register themselves through this method to be laid out within the ArchData object.
 
const SegmentList getSegments () const
 Gets the list of segments within this ArchData.
 
uint32_t getNumSegments () const
 Gets number of segments in this ArchData.
 
Layout and ArchData Lines
void layout ()
 Organizes the Segments into overlapping regions as needed, eventually calling ArchDataSegment::place on each segment with its location inside this ArchData.
 
void layoutRange (offset_type size)
 Lays out the archdata to contain a range of addresses without specifying any segments.
 
LinegetLine (offset_type offset)
 Gets the line associated with this offset, allocating a new line if necessary.
 
const LinetryGetLine (offset_type offset) const
 Gets the line associated with this offset only if it already exists.
 
Line Queries
const LineMapgetLineMap () const
 Only const access is allowed to internal map.
 
void clean ()
 Deletes (if possible) data held within the ArchData, restoring it to a 'clean-state'. This is not a 're-initialize' state, but rather all data is cleared to the fill-value specified at ArchData construction. Depending in whether canFreeLines returns true, Lines may actually be deleted and reclaimed.
 
void reset ()
 Cleans the ArchData (see clean) then applies all initial values through ArchDataSegment::writeInitial().
 
offset_type getLineSize () const
 Gets the size of a line within this ArchData instance.
 
line_idx_type getNumAllocatedLines () const
 Gets the number of lines with allocated data;.
 
line_idx_type getLineIndex (offset_type offset) const
 Gets Index of a line containing the specified offset.
 
offset_type getLineOffset (line_idx_type idx) const
 Gets offset associated with a particular line that exists in this ArchData.
 
bool canFreeLines () const
 Indicates whether this ArchData can free its lines after allocating them. Otherwise, any allocated line must exist for the lifetime of this ArchData.
 
Access and layout validation
void checkCanAccess (offset_type offset, offset_type bytes) const
 Determines if an access of size 'bytes' can be performed at the given offset based only on the size of the ArchData and Line span. Validity checking matches that of ArchData::Line::read.
 
bool containsAddress (offset_type offset) const noexcept
 Determines if this ArchData contains a byte for the specified address.
 
void checkDataSize (offset_type size) const
 Checks to see that the size of the data is a valid access size.
 
void checkSegment (offset_type offset, offset_type size) const
 Checks that a segment is valid within this archdata by its given offset and size.
 
void checkInSingleLine (offset_type offset, offset_type size) const
 Determines whether the access defined by offset and size spans multiple ArchData Lines.
 
Selective Copy
virtual void updateFrom (const ArchData &other)
 
Checkpointing
template<typename StorageT >
void save (StorageT &out)
 Writes checkpointing data from this ArchData to a stream.
 
template<typename StorageT >
void saveAll (StorageT &out)
 Writes snapshot checkpointing data (all lines) from this ArchData to a stream regardless of dirtiness.
 
template<typename StorageT >
void restore (StorageT &in)
 Restores a delta checkpoint (not a full snapshot). This contains only additive changes.
 
template<typename StorageT >
void restoreAll (StorageT &in)
 Restores a full checkpoint snapshot (not a delta). This removes all lines NOT found in the snapshot data.
 

Static Public Member Functions

static void fillValue (uint8_t *buf, uint32_t size, uint64_t fill, uint16_t fill_val_size, uint16_t fill_pattern_offset=0)
 Fill a buffer with a fill pattern.
 
Diagnostics
static const std::vector< const ArchData * > getAllArchDatas ()
 Static method to return a const vector of all ArchVectors that currently exist.
 

Static Public Attributes

Constants
static const offset_type DEFAULT_LINE_SIZE = 512
 
static const offset_type MAX_LINE_SIZE = 0x80000000
 ArchData construction line size maximum in bytes.
 
static const uint64_t DEFAULT_INITIAL_FILL = 0xcc
 Default initial fill value for an ArchData when allocated.
 
static const uint16_t DEFAULT_INITIAL_FILL_SIZE = 1
 Number of of bytes from DEFAULT_INITIAL_FILL to use as a default.
 
static const line_idx_type INVALID_LINE_IDX = std::numeric_limits<line_idx_type>::max()
 Invalid line index.
 

Friends

class SpartaStaticInitializer
 Allow initialization of statics through this helper.
 

Layout Status and instrumentation

Also includes layout and content-dump helper functions

static bool compareSegmentOffsets (const ArchDataSegment *s1, const ArchDataSegment *s2)
 Comparison functions for sorting by segment.
 
const TreeNodegetOwnerNode () const
 Returns the owner TreeNode.
 
void setOwnerNode (TreeNode *node)
 Set the owner tree node.
 
bool isLaidOut () const
 Has this ArchData been laid out yet.
 
offset_type getSize () const
 Gets the current size of the layout for this ArchData.
 
uint64_t getInitial () const
 Gets the value used to initialize unwritten memory.
 
uint32_t getInitialValSize () const
 Gets the size of the initial value.
 
uint32_t getTotalWaste () const
 Number of bytes wasted total during layout for any reason.
 
uint32_t getPaddingWaste () const
 Number of bytes wasted during layout because of optimal word-alignment.
 
uint32_t getLineWaste () const
 Number of bytes wasted during layout because of line-ending alignment.
 
void dumpLayout (std::ostream &o) const
 Prints content of each ArchData Line in order.
 
std::vector< std::string > getLineStates () const
 Gets state information for each line in this ArchData.
 
uint64_t getNumTiers () const
 

Detailed Description

Contains a set of contiguous line of architectural data which can be referred to by any architected object model. When layout() is called, reserves space for each element in a registered set of ArchDataSegment instances at offsets within Lines within the ArchData.

Note
Layout can only occur once. New segments cannot be added once layout is completed because the layout must remain constant between each save/restore.

Definition at line 38 of file ArchData.hpp.

Member Typedef Documentation

◆ LayoutHelperMap

typedef std::unordered_map<ArchDataSegment::ident_type, ArchDataSegment*> sparta::ArchData::LayoutHelperMap

Helper map for quick lookup from ArchDataSegment::ident_type to an ArchDataSegment*.

Definition at line 69 of file ArchData.hpp.

◆ LayoutHelperVector

Vector of ArchDataSegment pointers.

Used to ensure consistent ordering of segments during layout on different hosts. LayoutHelperMap losts ordering information and is not reliably consistent for different versions of boost or compilers.

Definition at line 79 of file ArchData.hpp.

◆ line_idx_type

typedef offset_type sparta::ArchData::line_idx_type

Represents offsets into this ArchData.

Definition at line 59 of file ArchData.hpp.

◆ LineList

typedef std::list<Line*> sparta::ArchData::LineList

List of ArchDataSegment.

Definition at line 62 of file ArchData.hpp.

◆ LineMap

List of Line pointers.

Definition at line 63 of file ArchData.hpp.

◆ offset_type

typedef ArchDataSegment::offset_type sparta::ArchData::offset_type

Definition at line 58 of file ArchData.hpp.

◆ SegmentList

ArchData line index.

Definition at line 60 of file ArchData.hpp.

Constructor & Destructor Documentation

◆ ArchData()

sparta::ArchData::ArchData ( TreeNode owner_node = nullptr,
offset_type  line_size = DEFAULT_LINE_SIZE,
uint64_t  initial = DEFAULT_INITIAL_FILL,
uint16_t  initial_val_size = DEFAULT_INITIAL_FILL_SIZE,
bool  can_free_lines = true 
)
inline

Constructor.

Parameters
owner_nodeTreeNode which owns this ArchData. Is allowed to be nullptr. This owner must exist through the lifetime of this ArchData. This owner is part of a diagnostic utility to determine whether all relevant ArchDatas can be located by checkpointing mechanisms. See sparta::RootTreeNode::checkArchDataAssociations.
line_sizeLine size in bytes. All segments referring to this ArchData must be aligned to one line. segments referring to ranges spanning lines will be allowed to construct. Must be a power of 2. A line size of 0 indicates that everything is to be laid out on one line
initialInitial value of each byte allocated by the ArchData. Bytes beyond initial_val_size must be 0
initial_val_sizeNumber of bytes from Value to use repeating fill. This must be a power of 2 between 1 and 8 inclusive.
can_free_linesCan this ArchData free its lines when reset. This allows Memory objects to reclaim memory when reset but may be undesired when representing a set of registers or counters where Register or Counter classes have cached pointers into the lines. Any ArchData which will allow objects to cache pointers to its lines or lines' memory must set this to false unless it plans to update those cached pointers each time it is reset.
Postcondition
Adds self to static all_archdatas_-> Therefore ArchData construction is not thread safe.

Definition at line 448 of file ArchData.hpp.

Here is the call graph for this function:

◆ ~ArchData()

virtual sparta::ArchData::~ArchData ( )
inlinevirtual

Definition at line 497 of file ArchData.hpp.

Member Function Documentation

◆ canFreeLines()

bool sparta::ArchData::canFreeLines ( ) const
inline

Indicates whether this ArchData can free its lines after allocating them. Otherwise, any allocated line must exist for the lifetime of this ArchData.

Generally, Registers and Counters will not allow freeing lines since they cache pointers to lines. Memory objects (without simple DMA support) will allow this.

Definition at line 822 of file ArchData.hpp.

◆ checkCanAccess()

void sparta::ArchData::checkCanAccess ( offset_type  offset,
offset_type  bytes 
) const
inline

Determines if an access of size 'bytes' can be performed at the given offset based only on the size of the ArchData and Line span. Validity checking matches that of ArchData::Line::read.

Parameters
offsetOffset of access to check within this archdata (not within a line)
bytesNumber of bytes in access.
Returns
True if access fits within a single Line within the ArchData.
Exceptions
SpartaExceptionif access spans a line, is outside of the ArchData, or is an illegal size. This works regardless of isLaidOut

This test exists for sparse usage where a 'fake' read might be performed and arguments must be validated without an ArchData::Line instance

Definition at line 846 of file ArchData.hpp.

Here is the call graph for this function:

◆ checkDataSize()

void sparta::ArchData::checkDataSize ( offset_type  size) const
inline

Checks to see that the size of the data is a valid access size.

Parameters
sizeSize of access to check
Exceptions
SpartaExceptionif size is invalid (i.e. exceeds some ceiling, is zero, or is not a power of 2)

Definition at line 874 of file ArchData.hpp.

◆ checkInSingleLine()

void sparta::ArchData::checkInSingleLine ( offset_type  offset,
offset_type  size 
) const
inline

Determines whether the access defined by offset and size spans multiple ArchData Lines.

Parameters
offsetOffset of access into this ArchData
sizeSize of access in bytes
Exceptions
SpartaExceptionif access endpoints are in differnet Lines

Definition at line 916 of file ArchData.hpp.

Here is the call graph for this function:

◆ checkSegment()

void sparta::ArchData::checkSegment ( offset_type  offset,
offset_type  size 
) const
inline

Checks that a segment is valid within this archdata by its given offset and size.

Parameters
offsetOffset of start of segment within this ArchData (not a line)
sizeSize of segment to check
Exceptions
SpartaExceptionif the access is invalid (i.e. size is invalid according to checkDataSize or endpoints of the segment spans a line).

Definition at line 896 of file ArchData.hpp.

Here is the call graph for this function:

◆ clean()

void sparta::ArchData::clean ( )
inline

Deletes (if possible) data held within the ArchData, restoring it to a 'clean-state'. This is not a 're-initialize' state, but rather all data is cleared to the fill-value specified at ArchData construction. Depending in whether canFreeLines returns true, Lines may actually be deleted and reclaimed.

Precondition
ArchData must be laid out
See also
reset
Note
Does not change layout

This method exists mainly for checkpointer usage and is faster than reset. To reinitialize contained data to layout-time values, use reset() instead.

Definition at line 739 of file ArchData.hpp.

Here is the call graph for this function:

◆ compareSegmentOffsets()

static bool sparta::ArchData::compareSegmentOffsets ( const ArchDataSegment s1,
const ArchDataSegment s2 
)
inlinestatic

Comparison functions for sorting by segment.

Definition at line 1114 of file ArchData.hpp.

Here is the call graph for this function:

◆ containsAddress()

bool sparta::ArchData::containsAddress ( offset_type  offset) const
inlinenoexcept

Determines if this ArchData contains a byte for the specified address.

Parameters
offsetOffset into this ArchData
Returns
true if this offset is contained within this ArchData.

This is a trivial bounds check to see if offset < getSize(). This method can be called at any time but is only meaningful once ArchData is laid out (see isLaidOut)

Definition at line 863 of file ArchData.hpp.

◆ dumpLayout()

void sparta::ArchData::dumpLayout ( std::ostream &  o) const
inline

Prints content of each ArchData Line in order.

Parameters
oostream to which layout will be written.

Definition at line 1131 of file ArchData.hpp.

Here is the call graph for this function:

◆ fillValue()

static void sparta::ArchData::fillValue ( uint8_t *  buf,
uint32_t  size,
uint64_t  fill,
uint16_t  fill_val_size,
uint16_t  fill_pattern_offset = 0 
)
inlinestatic

Fill a buffer with a fill pattern.

Parameters
bufBuffer to fil
sizeBytes to write in the buffer
fillFill pattern
fill_val_sizeNumber of bytes in the fill pattern to write to buf before repeating
fill_pattern_offsetSee fillWith_

Definition at line 127 of file ArchData.hpp.

◆ getAllArchDatas()

static const std::vector< const ArchData * > sparta::ArchData::getAllArchDatas ( )
inlinestatic

Static method to return a const vector of all ArchVectors that currently exist.

Note
This vector result will be modified whenever ArchDatas are constructed or destructed

Definition at line 1200 of file ArchData.hpp.

◆ getInitial()

uint64_t sparta::ArchData::getInitial ( ) const
inline

Gets the value used to initialize unwritten memory.

Definition at line 1087 of file ArchData.hpp.

◆ getInitialValSize()

uint32_t sparta::ArchData::getInitialValSize ( ) const
inline

Gets the size of the initial value.

Definition at line 1094 of file ArchData.hpp.

◆ getLine()

Line & sparta::ArchData::getLine ( offset_type  offset)
inline

Gets the line associated with this offset, allocating a new line if necessary.

Parameters
offsetOffset within the line requested (lookup done by getLineIndex)
Exceptions
Mayassert if offset does not fall within this ArchData.

If this line is not yet allocated, it will be allocated. Checks whether the offset is valid (within ArchData) using containsAddress.

If this ArchData is used as a sparse memory representation, then tryGetLine should be used to detect unrealized lines.

Definition at line 663 of file ArchData.hpp.

Here is the call graph for this function:

◆ getLineIndex()

line_idx_type sparta::ArchData::getLineIndex ( offset_type  offset) const
inline

Gets Index of a line containing the specified offset.

Does not require that offset be part of an actual line. This is just a numeric computation.

Definition at line 796 of file ArchData.hpp.

◆ getLineMap()

const LineMap & sparta::ArchData::getLineMap ( ) const
inline

Only const access is allowed to internal map.

Definition at line 718 of file ArchData.hpp.

◆ getLineOffset()

offset_type sparta::ArchData::getLineOffset ( line_idx_type  idx) const
inline

Gets offset associated with a particular line that exists in this ArchData.

Parameters
idxIndex of line whose offset should be returned

This method can safely be called before layout is complete. Does not require that idx be associated with an actual line. This is just a numeric computation.

Definition at line 809 of file ArchData.hpp.

◆ getLineSize()

offset_type sparta::ArchData::getLineSize ( ) const
inline

Gets the size of a line within this ArchData instance.

Definition at line 778 of file ArchData.hpp.

◆ getLineStates()

std::vector< std::string > sparta::ArchData::getLineStates ( ) const
inline

Gets state information for each line in this ArchData.

Returns
Returns a vector of strings containing state information for each line.

This value is not mean to be parsed and is subject to change.

For a 5 lines (getNumAllocatedLines) with various states:

  • d - dirty
  • c - clean
  • ! - unallocated (for sparse ArchData) The result may be something like this:
    * {"    0:d", "    1:c", "    2:!", "    3:!", "    4:c"}
    * 

Definition at line 1161 of file ArchData.hpp.

Here is the call graph for this function:

◆ getLineWaste()

uint32_t sparta::ArchData::getLineWaste ( ) const
inline

Number of bytes wasted during layout because of line-ending alignment.

Definition at line 1109 of file ArchData.hpp.

◆ getNumAllocatedLines()

line_idx_type sparta::ArchData::getNumAllocatedLines ( ) const
inline

Gets the number of lines with allocated data;.

Returns
Number of allocated lines

Definition at line 786 of file ArchData.hpp.

Here is the call graph for this function:

◆ getNumSegments()

uint32_t sparta::ArchData::getNumSegments ( ) const
inline

Gets number of segments in this ArchData.

Definition at line 565 of file ArchData.hpp.

◆ getNumTiers()

uint64_t sparta::ArchData::getNumTiers ( ) const
inline

Definition at line 1182 of file ArchData.hpp.

◆ getOwnerNode()

const TreeNode * sparta::ArchData::getOwnerNode ( ) const
inline

Returns the owner TreeNode.

Note
The result of this method is invariant. An ArchData has the same owner for its entire lifetime.

Definition at line 1050 of file ArchData.hpp.

◆ getPaddingWaste()

uint32_t sparta::ArchData::getPaddingWaste ( ) const
inline

Number of bytes wasted during layout because of optimal word-alignment.

Definition at line 1104 of file ArchData.hpp.

◆ getSegments()

const SegmentList sparta::ArchData::getSegments ( ) const
inline

Gets the list of segments within this ArchData.

Note
Only const access to segments is allowed

Definition at line 562 of file ArchData.hpp.

◆ getSize()

offset_type sparta::ArchData::getSize ( ) const
inline

Gets the current size of the layout for this ArchData.

Returns
size used for layout by this ArchData.
Precondition
This method cannot be called until isLaidOut is true
Exceptions
SpartaExceptionif not yet laid out.

Definition at line 1077 of file ArchData.hpp.

◆ getTotalWaste()

uint32_t sparta::ArchData::getTotalWaste ( ) const
inline

Number of bytes wasted total during layout for any reason.

Definition at line 1099 of file ArchData.hpp.

◆ isLaidOut()

bool sparta::ArchData::isLaidOut ( ) const
inline

Has this ArchData been laid out yet.

Returns
true if layout ias completed.

Definition at line 1069 of file ArchData.hpp.

◆ layout()

void sparta::ArchData::layout ( )
inline

Organizes the Segments into overlapping regions as needed, eventually calling ArchDataSegment::place on each segment with its location inside this ArchData.

Precondition
Layout can not already be laid out
Note
Layout can (and must) be performed exactly once. The ArchData layout must remain constant for the save/restore mechanism.
It is entirely acceptable to layout an ArchData with 0 segments.
Postcondition
Initial values written for each segment

Layout can also be performed through layoutRange(...)

Definition at line 586 of file ArchData.hpp.

◆ layoutRange()

void sparta::ArchData::layoutRange ( offset_type  size)
inline

Lays out the archdata to contain a range of addresses without specifying any segments.

Precondition
There must be no segments added to this ArchData.
Layout can not already be laid out
Note
Layout can (and must) be performed exactly once. The ArchData layout must remain constant for the save/restore mechanism.
It is entirely acceptable to layout an ArchData with 0 segments.

Layout can also be performed through layout()

Definition at line 634 of file ArchData.hpp.

◆ registerSegment()

void sparta::ArchData::registerSegment ( ArchDataSegment seg)
inline

All constructed segments must register themselves through this method to be laid out within the ArchData object.

Precondition
Cannot already be laid out (see isLsizeaidOut).
Parameters
segSegment to add. Must outlive this ArchData.

Segment-subset relationships are not checked here - only in layout.

Definition at line 534 of file ArchData.hpp.

Here is the call graph for this function:

◆ reset()

void sparta::ArchData::reset ( )
inline

Cleans the ArchData (see clean) then applies all initial values through ArchDataSegment::writeInitial().

Precondition
ArchData must be laid out
See also
clean
Note
Does not change layout

Definition at line 768 of file ArchData.hpp.

Here is the call graph for this function:

◆ restore()

template<typename StorageT >
void sparta::ArchData::restore ( StorageT &  in)
inline

Restores a delta checkpoint (not a full snapshot). This contains only additive changes.

Postcondition
All lines flagged as not dirty

To restore full snapshots, use restoreAll

Definition at line 1006 of file ArchData.hpp.

Here is the call graph for this function:

◆ restoreAll()

template<typename StorageT >
void sparta::ArchData::restoreAll ( StorageT &  in)
inline

Restores a full checkpoint snapshot (not a delta). This removes all lines NOT found in the snapshot data.

Postcondition
All lines flagged as not dirty

To restore deltas, use restore instead

Definition at line 1029 of file ArchData.hpp.

Here is the call graph for this function:

◆ save()

template<typename StorageT >
void sparta::ArchData::save ( StorageT &  out)
inline

Writes checkpointing data from this ArchData to a stream.

Postcondition
All lines flagged as not dirty

Definition at line 963 of file ArchData.hpp.

Here is the call graph for this function:

◆ saveAll()

template<typename StorageT >
void sparta::ArchData::saveAll ( StorageT &  out)
inline

Writes snapshot checkpointing data (all lines) from this ArchData to a stream regardless of dirtiness.

Postcondition
All lines flagged as not dirty

Definition at line 984 of file ArchData.hpp.

Here is the call graph for this function:

◆ setOwnerNode()

void sparta::ArchData::setOwnerNode ( TreeNode node)
inline

Set the owner tree node.

Definition at line 1055 of file ArchData.hpp.

◆ tryGetLine()

const Line * sparta::ArchData::tryGetLine ( offset_type  offset) const
inline

Gets the line associated with this offset only if it already exists.

Parameters
offsetOffset within the line requested (lookup done by getLineIndex)
Returns
The line if it already exists (has been written). If line does not exist, returns nullptr.
Exceptions
Mayassert if offset does not fall within this ArchData.

Checks whether the offset is valid (within ArchData) using containsAddress.

Definition at line 697 of file ArchData.hpp.

Here is the call graph for this function:

◆ updateFrom()

virtual void sparta::ArchData::updateFrom ( const ArchData other)
inlinevirtual

Definition at line 930 of file ArchData.hpp.

Friends And Related Symbol Documentation

◆ SpartaStaticInitializer

friend class SpartaStaticInitializer
friend

Allow initialization of statics through this helper.

Definition at line 50 of file ArchData.hpp.

Member Data Documentation

◆ DEFAULT_INITIAL_FILL

const uint64_t sparta::ArchData::DEFAULT_INITIAL_FILL = 0xcc
static

Default initial fill value for an ArchData when allocated.

Definition at line 102 of file ArchData.hpp.

◆ DEFAULT_INITIAL_FILL_SIZE

const uint16_t sparta::ArchData::DEFAULT_INITIAL_FILL_SIZE = 1
static

Number of of bytes from DEFAULT_INITIAL_FILL to use as a default.

Definition at line 107 of file ArchData.hpp.

◆ DEFAULT_LINE_SIZE

const offset_type sparta::ArchData::DEFAULT_LINE_SIZE = 512
static

Definition at line 88 of file ArchData.hpp.

◆ INVALID_LINE_IDX

const line_idx_type sparta::ArchData::INVALID_LINE_IDX = std::numeric_limits<line_idx_type>::max()
static

Invalid line index.

Definition at line 112 of file ArchData.hpp.

◆ MAX_LINE_SIZE

const offset_type sparta::ArchData::MAX_LINE_SIZE = 0x80000000
static

ArchData construction line size maximum in bytes.

Must be less than or equal to this value. An ArchData line size of 0 implies infinite line size, which is not constrained to this limit.

Definition at line 97 of file ArchData.hpp.


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