Percepio Trace Recorder v4.11.0
Loading...
Searching...
No Matches
trcStackMonitor.h
Go to the documentation of this file.
1/*
2* Percepio Trace Recorder SDK 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_STACK_MONITOR_H
16#define TRC_STACK_MONITOR_H
17
18#if (TRC_USE_TRACEALYZER_RECORDER == 1) && ((TRC_CFG_ENABLE_STACK_MONITOR) == 1) && ((TRC_CFG_SCHEDULING_ONLY) == 0)
19
20#include <stdint.h>
21#include <trcRecorder.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
32
33typedef struct TraceStackMonitorEntry /* Aligned */
34{
35 void *pvTask;
36 TraceUnsignedBaseType_t uxPreviousLowWaterMark;
37} TraceStackMonitorEntry_t;
38
39typedef struct TraceStackMonitorData /* Aligned */
40{
41 TraceStackMonitorEntry_t xEntries[TRC_CFG_STACK_MONITOR_MAX_TASKS];
42
43 TraceUnsignedBaseType_t uxEntryCount;
44} TraceStackMonitorData_t;
45
55traceResult xTraceStackMonitorInitialize(TraceStackMonitorData_t* pxBuffer);
56
65traceResult xTraceStackMonitorAdd(void* pvTask);
66
75traceResult xTraceStackMonitorRemove(void* pvTask);
76
87traceResult xTraceStackMonitorGetAtIndex(uint32_t uiIndex, void** ppvTask, TraceUnsignedBaseType_t* puxLowWaterMark);
88
99traceResult xTraceStackMonitorReport(void);
100
102
103#ifdef __cplusplus
104}
105#endif
106
107#else
108
109typedef struct TraceStackMonitorData
110{
111 uint32_t buffer[1];
112} TraceStackMonitorData_t;
113
114#define xTraceStackMonitorInitialize(__pxBuffer) ((void)(__pxBuffer), TRC_SUCCESS)
115
116#define xTraceStackMonitorDiagnosticsGet(__xType, __puiValue) ((void)(__xType), (__puiValue) != 0 ? *(__puiValue) = 0 : 0, (__puiValue) != 0 ? TRC_SUCCESS : TRC_FAIL)
117
118#define xTraceStackMonitorDiagnosticsSet(__xType, __uiValue) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_3((void)(__xType), (void)(__uiValue), TRC_SUCCESS)
119
120#define xTraceStackMonitorAdd(__pvTask) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2((void)(__pvTask), TRC_SUCCESS)
121
122#define xTraceStackMonitorRemove(__pvTask) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2((void)(__pvTask), TRC_SUCCESS)
123
124#define xTraceStackMonitorGetAtIndex(__uiIndex, __ppvTask, __puxLowWaterMark) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_4((void)(__uiIndex), (void)_(ppvTask), (void)(__puxLowWaterMark), TRC_SUCCESS)
125
126#define xTraceStackMonitorReport() TRC_COMMA_EXPR_TO_STATEMENT_EXPR_1(TRC_SUCCESS)
127
128#endif
129
130#endif
traceResult xTraceStackMonitorGetAtIndex(uint32_t uiIndex, void **ppvTask, TraceUnsignedBaseType_t *puxLowWaterMark)
Gets trace stack monitor tread/task at index.
Definition trcStackMonitor.c:132
traceResult xTraceStackMonitorAdd(void *pvTask)
Adds task/thread to trace stack monitor.
Definition trcStackMonitor.c:42
traceResult xTraceStackMonitorRemove(void *pvTask)
Removes task/thread from trace stack monitor.
Definition trcStackMonitor.c:81
traceResult xTraceStackMonitorReport(void)
Performs trace stack monitor reporting.
Definition trcStackMonitor.c:152
The public API of the Percepio trace recorder.