Percepio Trace Recorder v4.8.0.hotfix1
Loading...
Searching...
No Matches
trcMultiCoreEventBuffer.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_MULTI_CORE_EVENT_BUFFER_H
16#define TRC_MULTI_CORE_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
37typedef struct TraceMultiCoreEventBuffer /* Aligned */
38{
39 TraceEventBuffer_t *xEventBuffer[TRC_CFG_CORE_COUNT];
41
60traceResult xTraceMultiCoreEventBufferInitialize(TraceMultiCoreEventBuffer_t* const pxTraceMultiCoreEventBuffer, uint32_t uiOptions,
61 uint8_t* puiBuffer, uint32_t uiSize);
62
63
64
65#if ((TRC_CFG_USE_TRACE_ASSERT) == 1)
76traceResult xTraceMultiCoreEventBufferAlloc(const TraceMultiCoreEventBuffer_t * const pxTraceMultiCoreEventBuffer, uint32_t uiSize, void** ppvData);
77
89traceResult xTraceMultiCoreEventBufferAllocCommit(const TraceMultiCoreEventBuffer_t * const pxTraceMultiCoreEventBuffer, void *pvData, uint32_t uiSize, int32_t *piBytesWritten);
90
107traceResult xTraceMultiCoreEventBufferPush(const TraceMultiCoreEventBuffer_t* const pxTraceMultiCoreEventBuffer, void* pvData, uint32_t uiSize, int32_t* piBytesWritten);
108
109#else
110
121#define xTraceMultiCoreEventBufferAlloc(pxTraceMultiCoreEventBuffer, uiSize, ppvData) xTraceEventBufferAlloc((pxTraceMultiCoreEventBuffer)->xEventBuffer[TRC_CFG_GET_CURRENT_CORE()], uiSize, ppvData)
122
131#define xTraceMultiCoreEventBufferAllocCommit(pxTraceMultiCoreEventBuffer, pvData, uiSize, piBytesWritten) xTraceEventBufferAllocCommit((pxTraceMultiCoreEventBuffer)->xEventBuffer[TRC_CFG_GET_CURRENT_CORE()], pvData, uiSize, piBytesWritten)
132
149#define xTraceMultiCoreEventBufferPush(pxTraceMultiCoreEventBuffer, pvData, uiSize, piBytesWritten) xTraceEventBufferPush((pxTraceMultiCoreEventBuffer)->xEventBuffer[TRC_CFG_GET_CURRENT_CORE()], pvData, uiSize, piBytesWritten)
150
151#endif
152
167traceResult xTraceMultiCoreEventBufferTransferAll(const TraceMultiCoreEventBuffer_t* const pxTraceMultiCoreEventBuffer, int32_t* piBytesWritten);
168
181traceResult xTraceMultiCoreEventBufferTransferChunk(const TraceMultiCoreEventBuffer_t* const pxTraceMultiCoreEventBuffer, uint32_t uiChunkSize, int32_t* piBytesWritten);
182
191traceResult xTraceMultiCoreEventBufferClear(const TraceMultiCoreEventBuffer_t* const pxTraceMultiCoreEventBuffer);
192
195#ifdef __cplusplus
196}
197#endif
198
199#endif /* (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING) */
200
201#endif /* (TRC_USE_TRACEALYZER_RECORDER == 1) */
202
203#endif /* TRC_MULTI_CORE_EVENT_BUFFER_H */
traceResult xTraceMultiCoreEventBufferClear(const TraceMultiCoreEventBuffer_t *const pxTraceMultiCoreEventBuffer)
Clears all data from event buffer.
Definition: trcMultiCoreEventBuffer.c:146
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:119
traceResult xTraceMultiCoreEventBufferTransferAll(const TraceMultiCoreEventBuffer_t *const pxTraceMultiCoreEventBuffer, int32_t *piBytesWritten)
Transfer multi-core trace event buffer data through streamport.
Definition: trcMultiCoreEventBuffer.c:91
#define xTraceMultiCoreEventBufferPush(pxTraceMultiCoreEventBuffer, pvData, uiSize, piBytesWritten)
Pushes data into multi-core trace event buffer.
Definition: trcMultiCoreEventBuffer.h:149
#define xTraceMultiCoreEventBufferAlloc(pxTraceMultiCoreEventBuffer, uiSize, ppvData)
Allocates a data slot directly from the event buffer.
Definition: trcMultiCoreEventBuffer.h:121
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:131
Trace Event Buffer Structure.
Definition: trcEventBuffer.h:50
Trace Multi-Core Event Buffer Structure.
Definition: trcMultiCoreEventBuffer.h:38