Percepio Trace Recorder v4.11.0
Loading...
Searching...
No Matches
trcEventBuffer.h
Go to the documentation of this file.
1/*
2* Percepio Trace Recorder for Tracealyzer v4.11.0
3* Copyright 2025 Percepio AB
4* www.percepio.com
5*
6* SPDX-License-Identifier: Apache-2.0
7*/
8
14
15#ifndef TRC_EVENT_BUFFER_H
16#define TRC_EVENT_BUFFER_H
17
18#if (TRC_USE_TRACEALYZER_RECORDER == 1)
19
20#include <trcTypes.h>
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
31
36#define TRC_EVENT_BUFFER_OPTION_SKIP (0U)
37
42#define TRC_EVENT_BUFFER_OPTION_OVERWRITE (1U)
43
47typedef struct TraceEventBuffer /* Aligned */
48{
49 uint32_t uiHead;
50 uint32_t uiTail;
51 uint32_t uiSize;
52 uint32_t uiOptions;
53 uint32_t uiDroppedEvents;
54 uint32_t uiFree;
55 uint32_t uiSlack;
56 uint32_t uiNextHead;
58 uint32_t uiReserved;
59 uint8_t* puiBuffer;
61
80traceResult xTraceEventBufferInitialize(TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiOptions,
81 uint8_t *puiBuffer, uint32_t uiSize);
82
93traceResult xTraceEventBufferAlloc(TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiSize, void **ppvData);
94
103traceResult xTraceEventBufferAllocCommit(TraceEventBuffer_t *pxTraceEventBuffer, const void *pvData, uint32_t uiSize, int32_t *piBytesWritten);
104
118traceResult xTraceEventBufferPush(TraceEventBuffer_t *pxTraceEventBuffer, void *pvData, uint32_t uiSize, int32_t *piBytesWritten);
119
134traceResult xTraceEventBufferTransferAll(TraceEventBuffer_t* pxTraceEventBuffer, uint32_t uiCoreId, int32_t* piBytesWritten);
135
157traceResult xTraceEventBufferTransferChunk(TraceEventBuffer_t* pxTraceEventBuffer, uint32_t uiChunkSize, uint32_t uiCoreId, int32_t* piBytesWritten);
158
159
168traceResult xTraceEventBufferClear(TraceEventBuffer_t* pxTraceEventBuffer);
169
171
172#ifdef __cplusplus
173}
174#endif
175
176#endif
177
178#endif
traceResult xTraceEventBufferTransferAll(TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiCoreId, int32_t *piBytesWritten)
Transfer trace event buffer data through streamport.
Definition trcEventBuffer.c:395
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:256
traceResult xTraceEventBufferClear(TraceEventBuffer_t *pxTraceEventBuffer)
Clears all data from event buffer.
Definition trcEventBuffer.c:531
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:91
traceResult xTraceEventBufferPush(TraceEventBuffer_t *pxTraceEventBuffer, void *pvData, uint32_t uiSize, int32_t *piBytesWritten)
Pushes data into trace event buffer.
Definition trcEventBuffer.c:272
traceResult xTraceEventBufferTransferChunk(TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiChunkSize, uint32_t uiCoreId, int32_t *piBytesWritten)
Transfer trace event buffer data through streamport.
Definition trcEventBuffer.c:463
Trace Event Buffer Structure.
Definition trcEventBuffer.h:48
uint32_t uiTail
Definition trcEventBuffer.h:50
uint32_t uiSize
Definition trcEventBuffer.h:51
uint32_t uiDroppedEvents
Definition trcEventBuffer.h:53
uint32_t uiFree
Definition trcEventBuffer.h:54
uint32_t uiOptions
Definition trcEventBuffer.h:52
uint32_t uiTimerWraparounds
Definition trcEventBuffer.h:57
uint32_t uiReserved
Definition trcEventBuffer.h:58
uint32_t uiHead
Definition trcEventBuffer.h:49
uint8_t * puiBuffer
Definition trcEventBuffer.h:59