Percepio Trace Recorder  v4.6.6
trcMultiCoreEventBuffer.h
Go to the documentation of this file.
1 /*
2 * Percepio Trace Recorder for Tracealyzer v4.6.6
3 * Copyright 2021 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
25 extern "C" {
26 #endif
27 
38 {
39  TraceEventBuffer_t *xEventBuffer[TRC_CFG_CORE_COUNT];
41 
60 traceResult xTraceMultiCoreEventBufferInitialize(TraceMultiCoreEventBuffer_t* pxTraceMultiCoreEventBuffer, uint32_t uiOptions,
61  uint8_t* puiBuffer, uint32_t uiSize);
62 
63 
64 
65 #if ((TRC_CFG_USE_TRACE_ASSERT) == 1)
66 
83 traceResult xTraceMultiCoreEventBufferPush(TraceMultiCoreEventBuffer_t* pxTraceMultiCoreEventBuffer, void* pvData, uint32_t uiSize, int32_t* piBytesWritten);
84 
85 #else
86 
103 #define xTraceMultiCoreEventBufferPush(pxTraceMultiCoreEventBuffer, pvData, uiSize, piBytesWritten) xTraceEventBufferPush((pxTraceMultiCoreEventBuffer)->xEventBuffer[TRC_CFG_GET_CURRENT_CORE()], pvData, uiSize, piBytesWritten)
104 
105 #endif
106 
121 traceResult xTraceMultiCoreEventBufferTransfer(TraceMultiCoreEventBuffer_t* pxTraceMultiCoreEventBuffer, int32_t* piBytesWritten);
122 
131 traceResult xTraceMultiCoreEventBufferClear(TraceMultiCoreEventBuffer_t* pxTraceMultiCoreEventBuffer);
132 
135 #ifdef __cplusplus
136 }
137 #endif
138 
139 #endif /* (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING) */
140 
141 #endif /* (TRC_USE_TRACEALYZER_RECORDER == 1) */
142 
143 #endif /* TRC_MULTI_CORE_EVENT_BUFFER_H */
xTraceMultiCoreEventBufferTransfer
traceResult xTraceMultiCoreEventBufferTransfer(TraceMultiCoreEventBuffer_t *pxTraceMultiCoreEventBuffer, int32_t *piBytesWritten)
Transfer multi-core trace event buffer data through streamport.
Definition: trcMultiCoreEventBuffer.c:68
TraceMultiCoreEventBuffer
Trace Multi-Core Event Buffer Structure.
Definition: trcMultiCoreEventBuffer.h:38
xTraceMultiCoreEventBufferPush
#define xTraceMultiCoreEventBufferPush(pxTraceMultiCoreEventBuffer, pvData, uiSize, piBytesWritten)
Pushes data into multi-core trace event buffer.
Definition: trcMultiCoreEventBuffer.h:103
xTraceMultiCoreEventBufferClear
traceResult xTraceMultiCoreEventBufferClear(TraceMultiCoreEventBuffer_t *pxTraceMultiCoreEventBuffer)
Clears all data from event buffer.
Definition: trcMultiCoreEventBuffer.c:95
TraceMultiCoreEventBuffer_t
struct TraceMultiCoreEventBuffer TraceMultiCoreEventBuffer_t
Trace Multi-Core Event Buffer Structure.
TraceEventBuffer
Trace Event Buffer Structure.
Definition: trcEventBuffer.h:50