Percepio Trace Recorder  v4.6.6
trcTask.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_TASK_H
16 #define TRC_TASK_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 
34 #ifndef TRC_CFG_ENABLE_STACK_MONITOR
35 #define TRC_CFG_ENABLE_STACK_MONITOR 0
36 #endif
37 
41 typedef struct TraceTaskInfo
42 {
43  void* coreTasks[TRC_CFG_CORE_COUNT];
44 } TraceTaskInfo_t;
45 
46 extern TraceTaskInfo_t* pxTraceTaskInfo;
47 
48 #define TRACE_TASK_INFO_BUFFER_SIZE (sizeof(TraceTaskInfo_t))
49 
53 typedef struct TraceTaskInfoBuffer
54 {
55  uint8_t buffer[TRACE_TASK_INFO_BUFFER_SIZE];
56 } TraceTaskInfoBuffer_t;
57 
67 traceResult xTraceTaskInitialize(TraceTaskInfoBuffer_t* pxBuffer);
68 
80 #define xTraceTaskRegister(pvTask, szName, uxPriority, pxTaskHandle) ((((pvTask) != 0) && (xTraceObjectRegister(PSF_EVENT_TASK_CREATE, pvTask, szName, uxPriority, (TraceObjectHandle_t*)(pxTaskHandle)) == TRC_SUCCESS)) ? (xTraceStackMonitorAdd(pvTask), TRC_SUCCESS) : TRC_FAIL)
81 
91 traceResult xTraceTaskUnregister(TraceTaskHandle_t xTaskHandle, TraceUnsignedBaseType_t uxPriority);
92 
102 #define xTraceTaskSetName xTraceObjectSetName
103 
113 traceResult xTraceTaskSetPriority(TraceTaskHandle_t xTaskHandle, TraceUnsignedBaseType_t uxPriority);
114 
125 #define xTraceTaskRegisterWithoutHandle(pvTask, szName, uxPriority) ((((pvTask) != 0) && (xTraceObjectRegisterWithoutHandle(PSF_EVENT_TASK_CREATE, pvTask, szName, uxPriority) == TRC_SUCCESS)) ? (xTraceStackMonitorAdd(pvTask), TRC_SUCCESS) : TRC_FAIL)
126 
136 #define xTraceTaskUnregisterWithoutHandle(pvTask, uxPriority) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(xTraceStackMonitorRemove(pvTask), xTraceObjectUnregisterWithoutHandle(PSF_EVENT_TASK_DELETE, pvTask, uxPriority))
137 
147 #define xTraceTaskSetNameWithoutHandle xTraceObjectSetNameWithoutHandle
148 
158 traceResult xTraceTaskSetPriorityWithoutHandle(void* pvTask, TraceUnsignedBaseType_t uxPriority);
159 
169 traceResult xTraceTaskSwitch(void* pvTask, TraceUnsignedBaseType_t uxPriority);
170 
171 #if (TRC_CFG_INCLUDE_READY_EVENTS == 1)
172 
180 traceResult xTraceTaskReady(void* pvTask);
181 #else
182 #define xTraceTaskReady(p) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2((void)p, TRC_SUCCESS)
183 #endif
184 
193 #define xTraceTaskSetCurrent(pvTask) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(pxTraceTaskInfo->coreTasks[TRC_CFG_GET_CURRENT_CORE()] = (pvTask), TRC_SUCCESS)
194 
203 #define xTraceTaskGetCurrent(ppvTask) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(*(ppvTask) = pxTraceTaskInfo->coreTasks[TRC_CFG_GET_CURRENT_CORE()], TRC_SUCCESS)
204 
216 traceResult xTraceTaskInstanceFinishedNow(void);
217 
231 traceResult xTraceTaskInstanceFinishedNext(void);
232 
235 #ifdef __cplusplus
236 }
237 #endif
238 
239 #endif /* (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING) */
240 
241 #endif /* (TRC_USE_TRACEALYZER_RECORDER == 1) */
242 
243 #endif /* TRC_TASK_H */
xTraceTaskSetPriority
traceResult xTraceTaskSetPriority(TraceTaskHandle_t xTaskHandle, TraceUnsignedBaseType_t uxPriority)
Sets trace task priority.
Definition: trcTask.c:59
xTraceTaskSetPriorityWithoutHandle
traceResult xTraceTaskSetPriorityWithoutHandle(void *pvTask, TraceUnsignedBaseType_t uxPriority)
Sets trace task priority without trace task handle.
Definition: trcTask.c:81
xTraceTaskUnregister
traceResult xTraceTaskUnregister(TraceTaskHandle_t xTaskHandle, TraceUnsignedBaseType_t uxPriority)
Unregister trace task from trace.
Definition: trcTask.c:47
xTraceTaskSwitch
traceResult xTraceTaskSwitch(void *pvTask, TraceUnsignedBaseType_t uxPriority)
Registers trace task switch event.
Definition: trcTask.c:105
xTraceTaskInstanceFinishedNext
traceResult xTraceTaskInstanceFinishedNext(void)
Marks the current trace task instance as finished on the next kernel call.
Definition: trcSnapshotRecorder.c:593
xTraceTaskInstanceFinishedNow
traceResult xTraceTaskInstanceFinishedNow(void)
Registers trace task instance finished event.
Definition: trcSnapshotRecorder.c:624