Simutrace
3.2.2
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 | StreamTypeFlags |
Stream type flags. More... | |
enum | StreamFlags |
Basic stream flags. More... | |
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 StreamTypeFlags |
Describes specific properties of a stream and its entries.
enum StreamFlags |
Describes general properties of the stream that are independent of the specified entry type.
Enumerator | |
---|---|
SfNone |
Regular stream for recording events |
SfHidden |
Hidden stream. Internal, do not set |
SfDynamic |
Dynamic stream. Entries are generated dynamically. Stream descriptor must be of type DynamicStreamDescriptor.
|
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, read-ahead policies and interpret query values.
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()
|
SafUserFlag0 |
Available for free use with dynamic streams
|
SafUserFlag1 |
Available for free use with dynamic streams
|
SafUserFlag2 |
Available for free use with dynamic streams
|
SafUserFlag3 |
Available for free use with dynamic streams
|
|
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. |