Percepio Trace Recorder v4.8.0.hotfix1
Loading...
Searching...
No Matches
trcEventBuffer.h
Go to the documentation of this file.
1/*
2* Percepio Trace Recorder for Tracealyzer v4.8.0.hotfix1
3* Copyright 2023 Percepio AB
4* www.percepio.com
5*
6* SPDX-License-Identifier: Apache-2.0
7*/
8
15#ifndef TRC_EVENT_BUFFER_H
16#define TRC_EVENT_BUFFER_H
17
18#if (TRC_USE_TRACEALYZER_RECORDER == 1)
19
20#if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)
21
22#include <trcTypes.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
38#define TRC_EVENT_BUFFER_OPTION_SKIP (0U)
39
44#define TRC_EVENT_BUFFER_OPTION_OVERWRITE (1U)
45
49typedef struct TraceEventBuffer /* Aligned */
50{
51 uint32_t uiHead;
52 uint32_t uiTail;
53 uint32_t uiSize;
54 uint32_t uiOptions;
55 uint32_t uiDroppedEvents;
56 uint32_t uiFree;
57 uint32_t uiSlack;
58 uint32_t uiNextHead;
60 uint32_t uiReserved;
61 uint8_t* puiBuffer;
63
82traceResult xTraceEventBufferInitialize(TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiOptions,
83 uint8_t *puiBuffer, uint32_t uiSize);
84
95traceResult xTraceEventBufferAlloc(TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiSize, void **ppvData);
96
105traceResult xTraceEventBufferAllocCommit(TraceEventBuffer_t *pxTraceEventBuffer, const void *pvData, uint32_t uiSize, int32_t *piBytesWritten);
106
120traceResult xTraceEventBufferPush(TraceEventBuffer_t *pxTraceEventBuffer, void *pvData, uint32_t uiSize, int32_t *piBytesWritten);
121
135traceResult xTraceEventBufferTransferAll(TraceEventBuffer_t* pxTraceEventBuffer, int32_t* piBytesWritten);
136
157traceResult xTraceEventBufferTransferChunk(TraceEventBuffer_t* pxTraceEventBuffer, uint32_t uiChunkSize, int32_t* piBytesWritten);
158
159
168traceResult xTraceEventBufferClear(TraceEventBuffer_t* pxTraceEventBuffer);
169
172#ifdef __cplusplus
173}
174#endif
175
176#endif /* (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING) */
177
178#endif /* (TRC_USE_TRACEALYZER_RECORDER == 1) */
179
180#endif /* TRC_EVENT_BUFFER_H */
traceResult xTraceEventBufferTransferAll(TraceEventBuffer_t *pxTraceEventBuffer, int32_t *piBytesWritten)
Transfer trace event buffer data through streamport.
Definition: trcEventBuffer.c:398
traceResult xTraceEventBufferAllocCommit(TraceEventBuffer_t *pxTraceEventBuffer, const void *pvData, uint32_t uiSize, int32_t *piBytesWritten)
Commits the last allocated block to the event buffer.
Definition: trcEventBuffer.c:258
traceResult xTraceEventBufferClear(TraceEventBuffer_t *pxTraceEventBuffer)
Clears all data from event buffer.
Definition: trcEventBuffer.c:534
struct TraceEventBuffer TraceEventBuffer_t
Trace Event Buffer Structure.
traceResult xTraceEventBufferAlloc(TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiSize, void **ppvData)
Allocates a data slot directly from the event buffer.
Definition: trcEventBuffer.c:93
traceResult xTraceEventBufferTransferChunk(TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiChunkSize, int32_t *piBytesWritten)
Transfer trace event buffer data through streamport.
Definition: trcEventBuffer.c:466
traceResult xTraceEventBufferPush(TraceEventBuffer_t *pxTraceEventBuffer, void *pvData, uint32_t uiSize, int32_t *piBytesWritten)
Pushes data into trace event buffer.
Definition: trcEventBuffer.c:274
Trace Event Buffer Structure.
Definition: trcEventBuffer.h:50
uint32_t uiTail
Definition: trcEventBuffer.h:52
uint32_t uiSize
Definition: trcEventBuffer.h:53
uint32_t uiDroppedEvents
Definition: trcEventBuffer.h:55
uint32_t uiFree
Definition: trcEventBuffer.h:56
uint32_t uiOptions
Definition: trcEventBuffer.h:54
uint32_t uiTimerWraparounds
Definition: trcEventBuffer.h:59
uint32_t uiReserved
Definition: trcEventBuffer.h:60
uint32_t uiHead
Definition: trcEventBuffer.h:51
uint8_t * puiBuffer
Definition: trcEventBuffer.h:61