1 /* 2 * Percepio Trace Recorder for Tracealyzer v4.8.1 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 state machine APIs. 13 */ 14 15 #ifndef TRC_STATE_MACHINE_H 16 #define TRC_STATE_MACHINE_H 17 18 #include <trcTypes.h> 19 20 #if (TRC_USE_TRACEALYZER_RECORDER == 1) 21 22 #if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING) 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 /** 29 * @defgroup trace_state_machine_apis Trace State Machine APIs 30 * @ingroup trace_recorder_apis 31 * @{ 32 */ 33 34 /** 35 * @brief Creates trace state machine. 36 * 37 * @param[in] szName Name. 38 * @param[out] pxStateMachineHandle Pointer to uninitialized trace state machine. 39 * 40 * @retval TRC_FAIL Failure 41 * @retval TRC_SUCCESS Success 42 */ 43 traceResult xTraceStateMachineCreate(const char *szName, TraceStateMachineHandle_t *pxStateMachineHandle); 44 45 /** 46 * @brief Creates trace state machine state. 47 * 48 * @param[in] xStateMachineHandle Pointer to initialized trace state machine. 49 * @param[in] szName Name. 50 * @param[out] pxStateHandle Pointer to uninitialized trace state machine state. 51 * 52 * @retval TRC_FAIL Failure 53 * @retval TRC_SUCCESS Success 54 */ 55 traceResult xTraceStateMachineStateCreate(TraceStateMachineHandle_t xStateMachineHandle, const char *szName, TraceStateMachineStateHandle_t *pxStateHandle); 56 57 /** 58 * @brief Sets trace state machine state. 59 * 60 * @param[in] xStateMachineHandle Pointer to initialized trace state machine. 61 * @param[in] xStateHandle Pointer to initialized trace state machine state. 62 * 63 * @retval TRC_FAIL Failure 64 * @retval TRC_SUCCESS Success 65 */ 66 traceResult xTraceStateMachineSetState(TraceStateMachineHandle_t xStateMachineHandle, TraceStateMachineStateHandle_t xStateHandle); 67 68 /** @} */ 69 70 #ifdef __cplusplus 71 } 72 #endif 73 74 #else 75 76 /** 77 * @brief Disabled by TRC_CFG_RECORDER_MODE 78 */ 79 #define xTraceStateMachineCreate(__szName, __pxStateMachineHandle) ((void)(__szName), *(__pxStateMachineHandle) = 0, TRC_SUCCESS) 80 81 /** 82 * @brief Disabled by TRC_CFG_RECORDER_MODE 83 */ 84 #define xTraceStateMachineStateCreate(__xStateMachineHandle, __szName, __pxStateHandle) ((void)(__xStateMachineHandle), (void)(__szName), *(__pxStateHandle) = 0, TRC_SUCCESS) 85 86 /** 87 * @brief Disabled by TRC_CFG_RECORDER_MODE 88 */ 89 #define xTraceStateMachineSetState(__xStateMachineHandle, __xStateHandle) ((void)(__xStateMachineHandle), (void)(__xStateHandle), TRC_SUCCESS) 90 91 #endif 92 93 #endif 94 95 #endif 96