Percepio Trace Recorder v4.11.0
Loading...
Searching...
No Matches
trcMultiCoreEventBuffer.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_MULTI_CORE_EVENT_BUFFER_H
16#define TRC_MULTI_CORE_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
35typedef struct TraceMultiCoreEventBuffer /* Aligned */
36{
37 TraceEventBuffer_t *xEventBuffer[TRC_CFG_CORE_COUNT];
39
58traceResult xTraceMultiCoreEventBufferInitialize(TraceMultiCoreEventBuffer_t* const pxTraceMultiCoreEventBuffer, uint32_t uiOptions,
59 uint8_t* puiBuffer, uint32_t uiSize);
60
61
62
63#if ((TRC_CFG_USE_TRACE_ASSERT) == 1)
74traceResult xTraceMultiCoreEventBufferAlloc(const TraceMultiCoreEventBuffer_t * const pxTraceMultiCoreEventBuffer, uint32_t uiSize, void** ppvData);
75
87traceResult xTraceMultiCoreEventBufferAllocCommit(const TraceMultiCoreEventBuffer_t * const pxTraceMultiCoreEventBuffer, void *pvData, uint32_t uiSize, int32_t *piBytesWritten);
88
105traceResult xTraceMultiCoreEventBufferPush(const TraceMultiCoreEventBuffer_t* const pxTraceMultiCoreEventBuffer, void* pvData, uint32_t uiSize, int32_t* piBytesWritten);
106
107#else
108
119#define xTraceMultiCoreEventBufferAlloc(pxTraceMultiCoreEventBuffer, uiSize, ppvData) xTraceEventBufferAlloc((pxTraceMultiCoreEventBuffer)->xEventBuffer[TRC_CFG_GET_CURRENT_CORE()], uiSize, ppvData)
120
129#define xTraceMultiCoreEventBufferAllocCommit(pxTraceMultiCoreEventBuffer, pvData, uiSize, piBytesWritten) xTraceEventBufferAllocCommit((pxTraceMultiCoreEventBuffer)->xEventBuffer[TRC_CFG_GET_CURRENT_CORE()], pvData, uiSize, piBytesWritten)
130
147#define xTraceMultiCoreEventBufferPush(pxTraceMultiCoreEventBuffer, pvData, uiSize, piBytesWritten) xTraceEventBufferPush((pxTraceMultiCoreEventBuffer)->xEventBuffer[TRC_CFG_GET_CURRENT_CORE()], pvData, uiSize, piBytesWritten)
148
149#endif
150
165traceResult xTraceMultiCoreEventBufferTransferAll(const TraceMultiCoreEventBuffer_t* const pxTraceMultiCoreEventBuffer, int32_t* piBytesWritten);
166
179traceResult xTraceMultiCoreEventBufferTransferChunk(const TraceMultiCoreEventBuffer_t* const pxTraceMultiCoreEventBuffer, uint32_t uiChunkSize, int32_t* piBytesWritten);
180
189traceResult xTraceMultiCoreEventBufferClear(const TraceMultiCoreEventBuffer_t* const pxTraceMultiCoreEventBuffer);
190
192
193#ifdef __cplusplus
194}
195#endif
196
197#endif
198
199#endif
struct TraceEventBuffer TraceEventBuffer_t
Trace Event Buffer Structure.
traceResult xTraceMultiCoreEventBufferClear(const TraceMultiCoreEventBuffer_t *const pxTraceMultiCoreEventBuffer)
Clears all data from event buffer.
Definition trcMultiCoreEventBuffer.c:144
traceResult xTraceMultiCoreEventBufferTransferChunk(const TraceMultiCoreEventBuffer_t *const pxTraceMultiCoreEventBuffer, uint32_t uiChunkSize, int32_t *piBytesWritten)
Transfer multi-core trace event buffer data through streamport.
Definition trcMultiCoreEventBuffer.c:117
traceResult xTraceMultiCoreEventBufferTransferAll(const TraceMultiCoreEventBuffer_t *const pxTraceMultiCoreEventBuffer, int32_t *piBytesWritten)
Transfer multi-core trace event buffer data through streamport.
Definition trcMultiCoreEventBuffer.c:89
#define xTraceMultiCoreEventBufferPush(pxTraceMultiCoreEventBuffer, pvData, uiSize, piBytesWritten)
Pushes data into multi-core trace event buffer.
Definition trcMultiCoreEventBuffer.h:147
#define xTraceMultiCoreEventBufferAlloc(pxTraceMultiCoreEventBuffer, uiSize, ppvData)
Allocates a data slot directly from the event buffer.
Definition trcMultiCoreEventBuffer.h:119
struct TraceMultiCoreEventBuffer TraceMultiCoreEventBuffer_t
Trace Multi-Core Event Buffer Structure.
#define xTraceMultiCoreEventBufferAllocCommit(pxTraceMultiCoreEventBuffer, pvData, uiSize, piBytesWritten)
Commits the last allocated block to the event buffer.
Definition trcMultiCoreEventBuffer.h:129
Trace Multi-Core Event Buffer Structure.
Definition trcMultiCoreEventBuffer.h:36