![]() |
Simutrace
3.1.4
Simulation Tracing Framework
|
#include "SimuBaseTypes.h"
Data Structures | |
struct | StreamTypeDescriptor |
Describes the type of entries in a stream. More... | |
struct | StreamDescriptor |
Describes a stream. More... | |
union | StreamRangeInformation |
Describes data ranges in a stream. More... | |
struct | StreamStatistics |
Statistic information on a stream. More... | |
struct | StreamQueryInformation |
Stream query result. More... | |
Typedefs | |
typedef ObjectId | SessionId |
Id of a session. More... | |
typedef uint64_t | CycleCount |
Cycle count type. More... | |
typedef ObjectId | StreamId |
Id of a stream. More... | |
typedef Guid | StreamTypeId |
Id of a stream type. More... | |
typedef ObjectId | StreamSegmentId |
Stream sequence number. More... | |
Enumerations | |
enum | QueryIndexType |
Type for stream open queries. More... | |
enum | StreamAccessFlags |
Stream access behavior. More... | |
Functions | |
static uint32_t | makeVariableEntrySize (uint32_t sizeHint) |
Makes the entry size for variable-sized data streams. More... | |
static _bool | isVariableEntrySize (uint32_t entrySize) |
Determines if a given entry size is variable. More... | |
static uint32_t | getEntrySize (const StreamTypeDescriptor *desc) |
Returns the entry size of a stream type. More... | |
typedef ObjectId SessionId |
Identifies a session as originally created by StSessionCreate().
typedef uint64_t CycleCount |
To measure simulation time Simutrace uses the number of passed CPU cycles since the start of the simulation. For functional simulation, the cycle count degenerates to the number of executed instructions. The cycle count is used as time stamp throughout Simutrace (e.g., in temporally ordered streams, see StreamTypeDescriptor).
typedef ObjectId StreamId |
Identifies a certain stream. The id is session and store local and is thus only valid in combination with a SessionId.
typedef Guid StreamTypeId |
Identifies a stream type. The id is a globally unique identifier (GUID) and should be generated randomly and kept fixed for a certain type of entries.
typedef ObjectId StreamSegmentId |
In Simutrace, streams are divided into segments of equal size (e.g., 64 MiB) to allow partial and multi-threaded compression/decompression. Each segment is identified via its sequence number. The first segment in a stream gets the sequence number 0, the second segment gets the sequence number 1 and so on.
enum QueryIndexType |
The query type specifies the type of position the caller requests in a call to StStreamOpen(). Depending on the type, the supplied query value is interpreted differently.
enum StreamAccessFlags |
Describes the intended stream access behavior. Simutrace uses this as hint to adapt caching and read-ahead policies.
Enumerator | |
---|---|
SafNone |
No information. Trace data is cached with LRU, no read-ahead |
SafSequentialScan |
The caller intends to read the stream in sequential order. Segments are cached, but reused as soon as possible to avoid cache pollution. Maximum read-ahead. This access pattern and settings provide best read performance |
SafRandomAccess |
Data is accessed in random order. Segments are cached, but reused as soons as possible to avoid cache pollution, no read-ahead |
SafSynchronous |
Internal, do not use |
SafReverseQuery |
The query information specified in the call to StStreamOpen() are relative to the end of the stream.
|
SafReverseRead |
The caller intends to read the stream in reverse order. In a call to StStreamOpen(), this flag prepares the new read handle for use with StGetPreviousEntryFast().
|
SafMax |
Internal, do not use |
|
inlinestatic |
Variable-sized data streams are distinguished by fixed-sized data streams by specifically encoding the entry size property of a stream. To register a stream for variable-sized data use this method to make the entry size value.
sizeHint | Variable-sized data is stored by splitting it into specifically encoded fixed-sized blocks. The size hint should be chosen so that it is the expected mean length of the variable-sized data that should be stored in the stream. |
|
inlinestatic |
This method determines if the given entry size encodes a variable entry size.
entrySize | The entry size to check. |
_true
if the entry size is variable, _false
otherwise.
|
inlinestatic |
This method extracts the entry size of the supplied stream type. For variable-sized stream types it will return the size hint as given to makeVariableEntrySize().
desc | Pointer to a stream type description from which to read the entry size. |