Percepio Trace Recorder v4.8.0.hotfix1
Loading...
Searching...
No Matches
trcStreamPort.h
1/*
2 * 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 * The interface definitions for trace streaming ("stream ports").
9 * This "stream port" sets up the recorder to use XMOS xScope as a streaming channel.
10 */
11
12#ifndef TRC_STREAMING_PORT_H
13#define TRC_STREAMING_PORT_H
14
15#if (TRC_USE_TRACEALYZER_RECORDER == 1)
16
17#if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23#include <trcTypes.h>
24#include <trcStreamPortConfig.h>
25
26#define TRC_USE_INTERNAL_BUFFER (TRC_CFG_STREAM_PORT_USE_INTERNAL_BUFFER)
27
28#define TRC_INTERNAL_EVENT_BUFFER_WRITE_MODE (TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_WRITE_MODE)
29
30#define TRC_INTERNAL_EVENT_BUFFER_TRANSFER_MODE (TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_TRANSFER_MODE)
31
32#define TRC_INTERNAL_BUFFER_CHUNK_SIZE (TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_CHUNK_SIZE)
33
34#define TRC_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_SIZE_LIMIT (TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_SIZE_LIMIT)
35
36#define TRC_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_COUNT_LIMIT (TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_COUNT_LIMIT)
37
38/* Aligned */
39#define TRC_STREAM_PORT_INTERNAL_BUFFER_SIZE ((((TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_SIZE) + sizeof(TraceUnsignedBaseType_t) - 1) / sizeof(TraceUnsignedBaseType_t)) * sizeof(TraceUnsignedBaseType_t))
40
44typedef struct TraceStreamPortBuffer /* Aligned */
45{
46#if (TRC_USE_INTERNAL_BUFFER == 1)
47 uint8_t uiBufferInternal[TRC_STREAM_PORT_INTERNAL_BUFFER_SIZE];
48#endif
49 uint8_t uiBuffer[sizeof(TraceUnsignedBaseType_t)];
51
61traceResult xTraceStreamPortInitialize(TraceStreamPortBuffer_t* pxBuffer);
62
71traceResult xTraceStreamPortOnBegin(void);
72
81traceResult xTraceStreamPortOnEnd(void);
82
92traceResult xTraceStreamPortAllocate(uint32_t uiSize, void** ppvData);
93
106traceResult xTraceStreamPortCommit(void* pvData, uint32_t uiSize, int32_t* piBytesCommitted);
107
118traceResult xTraceStreamPortWriteData(void* pvData, uint32_t uiSize, int32_t* piBytesWritten);
119
130traceResult xTraceStreamPortReadData(void* pvData, uint32_t uiSize, int32_t* piBytesRead);
131
132#define xTraceStreamPortOnEnable(uiStartOption) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2((void)(uiStartOption), TRC_SUCCESS)
133
134#define xTraceStreamPortOnDisable() TRC_COMMA_EXPR_TO_STATEMENT_EXPR_1(TRC_SUCCESS)
135
136#define xTraceStreamPortOnTraceBegin() TRC_COMMA_EXPR_TO_STATEMENT_EXPR_1(TRC_SUCCESS)
137
138#define xTraceStreamPortOnTraceEnd() TRC_COMMA_EXPR_TO_STATEMENT_EXPR_1(TRC_SUCCESS)
139
140#ifdef __cplusplus
141}
142#endif
143
144#endif /*(TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)*/
145
146#endif /*(TRC_USE_TRACEALYZER_RECORDER == 1)*/
147
148#endif /* TRC_STREAMING_PORT_H */
A structure representing the trace stream port buffer.
Definition: trcStreamPort.h:93