1 /* 2 * Percepio Trace Recorder for Tracealyzer v4.10.3 3 * Copyright 2023 Percepio AB 4 * www.percepio.com 5 * 6 * SPDX-License-Identifier: Apache-2.0 7 */ 8 9 /** 10 * @file 11 * 12 * @brief Public trace process APIs. 13 */ 14 15 #ifndef TRC_PROCESS_H 16 #define TRC_PROCESS_H 17 18 #if (TRC_USE_TRACEALYZER_RECORDER == 1) && (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING) 19 20 #include <trcTypes.h> 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 /** 27 * @defgroup trace_process_apis Trace Process APIs 28 * @ingroup trace_recorder_apis 29 * @{ 30 */ 31 32 /** 33 * @brief Register process in the trace. 34 * 35 * @param[in] szName Name. 36 * @param[in] uxPriority Priority. 37 * @param[out] pxProcessHandle Process handle. 38 * 39 * @retval TRC_FAIL Failure 40 * @retval TRC_SUCCESS Success 41 */ 42 #define xTraceProcessRegister(szName, uxPriority, pxProcessHandle) xTraceObjectRegister(PSF_EVENT_PROCESS_CREATE, (void*)0, szName, uxPriority, (TraceObjectHandle_t*)(pxProcessHandle)) 43 44 /** 45 * @brief Register process in the trace. 46 * 47 * @param[in] pvProcess Process. 48 * @param[in] szName Name. 49 * @param[in] uxPriority Priority. 50 * 51 * @retval TRC_FAIL Failure 52 * @retval TRC_SUCCESS Success 53 */ 54 #define xTraceProcessRegisterWithoutHandle(pvProcess, szName, uxPriority) xTraceObjectRegisterWithoutHandle(PSF_EVENT_PROCESS_CREATE, (void*)(pvProcess), szName, uxPriority) 55 56 /** 57 * @brief Unregister process from trace. 58 * 59 * @param[in] xProcessHandle Process handle. 60 * @param[in] uxPriority Priority. 61 * 62 * @retval TRC_FAIL Failure 63 * @retval TRC_SUCCESS Success 64 */ 65 #define xTraceProcessUnregister(xProcessHandle, uxPriority) xTraceObjectUnregister((TraceObjectHandle_t)(xProcessHandle), PSF_EVENT_PROCESS_DELETE, uxPriority) 66 67 /** 68 * @brief Unregister process from trace. 69 * 70 * @param[in] pvProcess Process. 71 * @param[in] uxPriority Priority. 72 * 73 * @retval TRC_FAIL Failure 74 * @retval TRC_SUCCESS Success 75 */ 76 #define xTraceProcessUnregisterWithoutHandle(pvProcess, uxPriority) xTraceObjectUnregisterWithoutHandle(PSF_EVENT_PROCESS_DELETE, (void*)(pvProcess), uxPriority) 77 78 /** @} */ 79 80 #ifdef __cplusplus 81 } 82 #endif 83 84 #else 85 86 #define xTraceProcessRegister(__szName, __uxPriority, __pxProcessHandle) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_4((void)(__szName), (void)(__uxPriority), (void)(__pxProcessHandle), TRC_SUCCESS) 87 88 #define xTraceProcessRegisterWithoutHandle(__pvProcess, __szName, __uxPriority) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_4((void)(__pvProcess), (void)(__szName), (void)(__uxPriority), TRC_SUCCESS) 89 90 #define xTraceProcessUnregister(__xProcessHandle, __uxPriority) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_3((void)(__xProcessHandle), (void)(__uxPriority), TRC_SUCCESS) 91 92 #define xTraceProcessUnregisterWithoutHandle(__pvProcess, __uxPriority) TRC_COMMA_EXPR_TO_STATEMENT_EXPR_3((void)(__pvProcess), (void)(__uxPriority), TRC_SUCCESS) 93 94 #endif 95 96 #endif 97