15#ifndef TRC_STACK_MONITOR_H
16#define TRC_STACK_MONITOR_H
18#if (TRC_USE_TRACEALYZER_RECORDER == 1)
20#if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)
35#if (((TRC_CFG_ENABLE_STACK_MONITOR) == 1) && ((TRC_CFG_SCHEDULING_ONLY) == 0))
37typedef struct TraceStackMonitorEntry
40 TraceUnsignedBaseType_t uxPreviousLowWaterMark;
41} TraceStackMonitorEntry_t;
43typedef struct TraceStackMonitorData
45 TraceStackMonitorEntry_t xEntries[TRC_CFG_STACK_MONITOR_MAX_TASKS];
47 TraceUnsignedBaseType_t uxEntryCount;
48} TraceStackMonitorData_t;
59traceResult xTraceStackMonitorInitialize(TraceStackMonitorData_t* pxBuffer);
107typedef struct TraceStackMonitorData
110} TraceStackMonitorData_t;
112#define xTraceStackMonitorInitialize(pxBuffer) ((void)(pxBuffer), TRC_SUCCESS)
114#define xTraceStackMonitorDiagnosticsGet(xType, puiValue) ((void)(xType), (puiValue) != 0 ? *(puiValue) = 0 : 0, (puiValue) != 0 ? TRC_SUCCESS : TRC_FAIL)
116#define xTraceStackMonitorDiagnosticsSet(xType, uiValue) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_3((void)(xType), (void)(uiValue), TRC_SUCCESS)
118#define xTraceStackMonitorAdd(pvTask) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2((void)(pvTask), TRC_SUCCESS)
120#define xTraceStackMonitorRemove(pvTask) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2((void)(pvTask), TRC_SUCCESS)
122#define xTraceStackMonitorGetAtIndex(uiIndex, ppvTask, puxLowWaterMark) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_4((void)(uiIndex), (void)(ppvTask), (void)(puxLowWaterMark), TRC_SUCCESS)
124#define xTraceStackMonitorReport() TRC_COMMA_EXPR_TO_STATEMENT_EXPR_1(TRC_SUCCESS)
traceResult xTraceStackMonitorGetAtIndex(uint32_t uiIndex, void **ppvTask, TraceUnsignedBaseType_t *puxLowWaterMark)
Gets trace stack monitor tread/task at index.
Definition: trcStackMonitor.c:136
traceResult xTraceStackMonitorAdd(void *pvTask)
Adds task/thread to trace stack monitor.
Definition: trcStackMonitor.c:46
traceResult xTraceStackMonitorRemove(void *pvTask)
Removes task/thread from trace stack monitor.
Definition: trcStackMonitor.c:85
traceResult xTraceStackMonitorReport(void)
Performs trace stack monitor reporting.
Definition: trcStackMonitor.c:156
The public API of the Percepio trace recorder.