Shared Persistent Heap, logger/queue etc event entry status, update, and access functions.
More...
|
static int | SPHLFEntryStrongComplete (SPHLFEntryHandle_t *handlespace) |
| Marks the entry specified by the entry handle as complete. Also executes any memory barriers required by the platform to ensure that all previous stores to this entry by this thread are visible to other threads. More...
|
|
static int | SPHLFEntryWeakComplete (SPHLFEntryHandle_t *handlespace) |
| Marks the entry specified by the entry handle as complete. No memory barriers are performance. On out-of-order machines there are no guarantee that all previous stores by this thread are visible to other threads. More...
|
|
static int | SPHLFEntryComplete (SPHLFEntryHandle_t *handlespace) |
| Marks the entry specified by the entry handle as complete. Also executes write memory barries required by the platform to ensure that all previous stores by this thread to this entry are complete. More...
|
|
static int | SPHLFEntryIsComplete (SPHLFEntryHandle_t *handlespace) |
| Return the status of the entry specified by the entry handle. More...
|
|
static int | SPHLFEntryIsTimestamped (SPHLFEntryHandle_t *handlespace) |
| Return the status of the entry specified by the entry handle. More...
|
|
static sphtimer_t | SPHLFEntryTimeStamp (SPHLFEntryHandle_t *handlespace) |
| Return the time stamp value for the entry specified by the entry handle. More...
|
|
static sphpid16_t | SPHLFEntryPID (SPHLFEntryHandle_t *handlespace) |
| Return the process ID for the entry specified by the entry handle. More...
|
|
static sphpid16_t | SPHLFEntryTID (SPHLFEntryHandle_t *handlespace) |
| Return the thread ID for the entry specified by the entry handle. More...
|
|
static SPHLFEntryHeader_t * | SPHLFEntryHeader (SPHLFEntryHandle_t *handlespace) |
| Return the address for the entry header specified by the entry handle. More...
|
|
static int | SPHLFEntryCategory (SPHLFEntryHandle_t *handlespace) |
| Return the entry category for the entry specified by the entry handle. More...
|
|
static int | SPHLFEntrySubcat (SPHLFEntryHandle_t *handlespace) |
| Return the entry sub-category for the entry specified by the entry handle. More...
|
|
static void * | SPHLFEntryGetFreePtr (SPHLFEntryHandle_t *handle) |
| Return the first free byte address for the entry specified by the entry handle. More...
|
|
static void * | SPHLFEntryGetStructPtr (SPHLFEntryHandle_t *handle, unsigned long __size, unsigned long __align) |
| Return the correctly aligned pointer for a struct or array starting at the next free location within the entry. More...
|
|
static void * | SPHLFEntryAllocStruct (SPHLFEntryHandle_t *handle, unsigned long __size, unsigned long __align) |
| Allocate space for struct starting at the next free location within the entry. More...
|
|
static int | SPHLFEntryAddString (SPHLFEntryHandle_t *handle, char *value) |
| Insert a C string at the next free location within the entry. More...
|
|
static int | SPHLFEntryAddChar (SPHLFEntryHandle_t *handle, char value) |
| Insert a character at the next free location within the entry. More...
|
|
static int | SPHLFEntryAddShort (SPHLFEntryHandle_t *handle, short int value) |
| Insert a short int at the next free location within the entry. More...
|
|
static int | SPHLFEntryAddInt (SPHLFEntryHandle_t *handle, int value) |
| Insert a int at the next free location within the entry. More...
|
|
static int | SPHLFEntryAddLong (SPHLFEntryHandle_t *handle, long value) |
| Insert a long int at the next free location within the entry. More...
|
|
static int | SPHLFEntryAddPtr (SPHLFEntryHandle_t *handle, void *value) |
| Insert a void* at the next free location within the entry. More...
|
|
static int | SPHLFEntryAddLongLong (SPHLFEntryHandle_t *handle, long long value) |
| Insert a long long int at the next free location within the entry. More...
|
|
static int | SPHLFEntryAddFloat (SPHLFEntryHandle_t *handle, float value) |
| Insert a float at the next free location within the entry. More...
|
|
static int | SPHLFEntryAddDouble (SPHLFEntryHandle_t *handle, double value) |
| Insert a double at the next free location within the entry. More...
|
|
static char | SPHLFEntryGetNextChar (SPHLFEntryHandle_t *handle) |
| Return the next char from the entry via the current next value pointer. The internal next value pointer is advanced to the next location. More...
|
|
static char * | SPHLFEntryGetNextString (SPHLFEntryHandle_t *handle) |
| Return the pointer to the next C string from the logger entry via the current next value pointer. The internal next value pointer is advanced to the next location after the string NUL char. More...
|
|
static short int | SPHLFEntryGetNextShort (SPHLFEntryHandle_t *handle) |
| Return the next short int from the entry via the current next value pointer. Leading bytes may be skipped to get the required alignment. The internal next value pointer is advanced to the next location. More...
|
|
static int | SPHLFEntryGetNextInt (SPHLFEntryHandle_t *handle) |
| Return the next int from the entry via the current next value pointer. Leading bytes may be skipped to get the required alignment. The internal next value pointer is advanced to the next location. More...
|
|
static long | SPHLFEntryGetNextLong (SPHLFEntryHandle_t *handle) |
| Return the next long int from the entry via the current next value pointer. Leading bytes may be skipped to get the required alignment. The internal next value pointer is advanced to the next location. More...
|
|
static void * | SPHLFEntryGetNextPtr (SPHLFEntryHandle_t *handle) |
| Return the next void* from the entry via the current next value pointer. Leading bytes may be skipped to get the required alignment. The internal next value pointer is advanced to the next location. More...
|
|
static long long | SPHLFEntryGetNextLongLong (SPHLFEntryHandle_t *handle) |
| Return the next long long int from the entry via the current next value pointer. Leading bytes may be skipped to get the required alignment. The internal next value pointer is advanced to the next location. More...
|
|
static float | SPHLFEntryGetNextFloat (SPHLFEntryHandle_t *handle) |
| Return the next float from the entry via the current next value pointer. Leading bytes may be skipped to get the required alignment. The internal next value pointer is advanced to the next location. More...
|
|
static double | SPHLFEntryGetNextDouble (SPHLFEntryHandle_t *handle) |
| Return the next double from the entry via the current next value pointer. Leading bytes may be skipped to get the required alignment. The internal next value pointer is advanced to the next location. More...
|
|
Shared Persistent Heap, logger/queue etc event entry status, update, and access functions.
- Author
- Steven Munroe - initial API and implementation
For shared memory multi-thread/multi-core applications. Once the
Logger or Queue functions have atomically allocated an entry,
the "entry" APIs supports adding additional data to the entry and
retrieving that date later.
Supported functions include:
storing category specific event data,
atomic completion of an entry,
Getting entry status (complete and timestamped)
Getting entry header elements (timestamp, PID, TID, Category, and Sub-category),
Retrieving category specific event data entries,
and direct pointer access the header and data of the entry.
This Entry access API supports read out of the 16 byte
entry header including: Entry status and length. Entry
Category and SubCategory codes. Process and Thread Ids. High
resolution timestamp.
Any additional storage allocated to the entry
is available for application specific data. This API also provides
several mechanisms to store application data including; direct
array or structure overlay, and a streams like mechanism. Finally
the API provides a completion functions (SPHLFEntryComplete)
which provides and memory barriers required by the platform and
marks the entry complete.