Percepio Trace Recorder v4.8.0.hotfix1
Loading...
Searching...
No Matches
Trace Event Buffer APIs

Data Structures

struct  TraceEventBuffer
 Trace Event Buffer Structure. More...
 

Macros

#define TRC_EVENT_BUFFER_OPTION_SKIP   (0U)
 Buffer should skip new events when full.
 
#define TRC_EVENT_BUFFER_OPTION_OVERWRITE   (1U)
 Buffer should overwrite old events when full.
 

Typedefs

typedef struct TraceEventBuffer TraceEventBuffer_t
 Trace Event Buffer Structure.
 

Functions

traceResult xTraceEventBufferAlloc (TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiSize, void **ppvData)
 Allocates a data slot directly from the event buffer.
 
traceResult xTraceEventBufferAllocCommit (TraceEventBuffer_t *pxTraceEventBuffer, const void *pvData, uint32_t uiSize, int32_t *piBytesWritten)
 Commits the last allocated block to the event buffer.
 
traceResult xTraceEventBufferPush (TraceEventBuffer_t *pxTraceEventBuffer, void *pvData, uint32_t uiSize, int32_t *piBytesWritten)
 Pushes data into trace event buffer.
 
traceResult xTraceEventBufferTransferAll (TraceEventBuffer_t *pxTraceEventBuffer, int32_t *piBytesWritten)
 Transfer trace event buffer data through streamport.
 
traceResult xTraceEventBufferTransferChunk (TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiChunkSize, int32_t *piBytesWritten)
 Transfer trace event buffer data through streamport.
 
traceResult xTraceEventBufferClear (TraceEventBuffer_t *pxTraceEventBuffer)
 Clears all data from event buffer.
 

Detailed Description

Function Documentation

◆ xTraceEventBufferAlloc()

traceResult xTraceEventBufferAlloc ( TraceEventBuffer_t pxTraceEventBuffer,
uint32_t  uiSize,
void **  ppvData 
)

Allocates a data slot directly from the event buffer.

Parameters
[in]pxTraceEventBufferPointer to initialized trace event buffer.
[in]uiSizeAllocation size
[out]ppvDataPointer that will hold the area from the buffer.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceEventBufferAllocCommit()

traceResult xTraceEventBufferAllocCommit ( TraceEventBuffer_t pxTraceEventBuffer,
const void *  pvData,
uint32_t  uiSize,
int32_t *  piBytesWritten 
)

Commits the last allocated block to the event buffer.

Parameters
[in]pxTraceEventBufferPointer to initialized trace event buffer.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceEventBufferClear()

traceResult xTraceEventBufferClear ( TraceEventBuffer_t pxTraceEventBuffer)

Clears all data from event buffer.

Parameters
[in]pxTraceEventBufferPointer to initialized trace event buffer.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceEventBufferPush()

traceResult xTraceEventBufferPush ( TraceEventBuffer_t pxTraceEventBuffer,
void *  pvData,
uint32_t  uiSize,
int32_t *  piBytesWritten 
)

Pushes data into trace event buffer.

This routine attempts to push data into the trace event buffer.

Parameters
[in]pxTraceEventBufferPointer to initialized trace event buffer.
[in]pvDataPointer to data that should be pushed into trace event buffer.
[in]uiSizeSize of data.
[out]piBytesWrittenBytes written.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceEventBufferTransferAll()

traceResult xTraceEventBufferTransferAll ( TraceEventBuffer_t pxTraceEventBuffer,
int32_t *  piBytesWritten 
)

Transfer trace event buffer data through streamport.

This routine will attempt to transfer all existing data in the trace event buffer through the streamport. New data pushed to the trace event buffer during the execution of this routine will not be transferred

Parameters
[in]pxTraceEventBufferPointer to initialized trace event buffer.
[out]piBytesWrittenBytes written.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceEventBufferTransferChunk()

traceResult xTraceEventBufferTransferChunk ( TraceEventBuffer_t pxTraceEventBuffer,
uint32_t  uiChunkSize,
int32_t *  piBytesWritten 
)

Transfer trace event buffer data through streamport.

This routine will attempt to transfer a chunk of existing data in the trace event buffer through the streamport. New data pushed to the trace event buffer during the execution of this routine will not be transfered.

When transferring a chunk which wraps the buffer, a singular transfer is made to avoid issuing dual writes. This configuration means that during wrapping, the chunk might be reduced in size even if there is more data at the start of the buffer. To transfer more data check piBytesWritten and issue multiple transfers if required.

Parameters
[in]pxTraceEventBufferPointer to initialized trace event buffer.
[out]piBytesWrittenBytes written.
[in]uiChunkSizeMaximum transfer chunk in bytes.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess