Percepio Trace Recorder  v4.6.6
trcEventBuffer.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_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
25 extern "C" {
26 #endif
27 
38 #define TRC_EVENT_BUFFER_OPTION_SKIP (0U)
39 
44 #define TRC_EVENT_BUFFER_OPTION_OVERWRITE (1U)
45 
49 typedef struct TraceEventBuffer
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 uiTimerWraparounds;
58  uint8_t* puiBuffer;
60 
79 traceResult xTraceEventBufferInitialize(TraceEventBuffer_t * pxTraceEventBuffer, uint32_t uiOptions,
80  uint8_t *puiBuffer, uint32_t uiSize);
81 
95 traceResult xTraceEventBufferPush(TraceEventBuffer_t *pxTraceEventBuffer, void *pxData, uint32_t uiSize, int32_t *piBytesWritten);
96 
110 traceResult xTraceEventBufferTransfer(TraceEventBuffer_t* pxTraceEventBuffer, int32_t* piBytesWritten);
111 
120 traceResult xTraceEventBufferClear(TraceEventBuffer_t* pxTraceEventBuffer);
121 
124 #ifdef __cplusplus
125 }
126 #endif
127 
128 #endif /* (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING) */
129 
130 #endif /* (TRC_USE_TRACEALYZER_RECORDER == 1) */
131 
132 #endif /* TRC_EVENT_BUFFER_H */
TraceEventBuffer::uiHead
uint32_t uiHead
Definition: trcEventBuffer.h:51
TraceEventBuffer::uiSize
uint32_t uiSize
Definition: trcEventBuffer.h:53
TraceEventBuffer_t
struct TraceEventBuffer TraceEventBuffer_t
Trace Event Buffer Structure.
TraceEventBuffer::uiTail
uint32_t uiTail
Definition: trcEventBuffer.h:52
TraceEventBuffer::puiBuffer
uint8_t * puiBuffer
Definition: trcEventBuffer.h:58
TraceEventBuffer::uiOptions
uint32_t uiOptions
Definition: trcEventBuffer.h:54
TraceEventBuffer::uiTimerWraparounds
uint32_t uiTimerWraparounds
Definition: trcEventBuffer.h:57
TraceEventBuffer
Trace Event Buffer Structure.
Definition: trcEventBuffer.h:50
xTraceEventBufferPush
traceResult xTraceEventBufferPush(TraceEventBuffer_t *pxTraceEventBuffer, void *pxData, uint32_t uiSize, int32_t *piBytesWritten)
Pushes data into trace event buffer.
Definition: trcEventBuffer.c:63
TraceEventBuffer::uiDroppedEvents
uint32_t uiDroppedEvents
Definition: trcEventBuffer.h:55
xTraceEventBufferClear
traceResult xTraceEventBufferClear(TraceEventBuffer_t *pxTraceEventBuffer)
Clears all data from event buffer.
Definition: trcEventBuffer.c:253
xTraceEventBufferTransfer
traceResult xTraceEventBufferTransfer(TraceEventBuffer_t *pxTraceEventBuffer, int32_t *piBytesWritten)
Transfer trace event buffer data through streamport.
Definition: trcEventBuffer.c:195
TraceEventBuffer::uiFree
uint32_t uiFree
Definition: trcEventBuffer.h:56