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 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) && (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING) 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 /** 27 * @defgroup trace_state_machine_apis Trace State Machine APIs 28 * @ingroup trace_recorder_apis 29 * @{ 30 */ 31 32 /** 33 * @brief Creates trace state machine. 34 * 35 * @param[in] szName Name. 36 * @param[out] pxStateMachineHandle Pointer to uninitialized trace state machine. 37 * 38 * @retval TRC_FAIL Failure 39 * @retval TRC_SUCCESS Success 40 */ 41 traceResult xTraceStateMachineCreate(const char *szName, TraceStateMachineHandle_t *pxStateMachineHandle); 42 43 /** 44 * @brief Creates trace state machine state. 45 * 46 * @param[in] xStateMachineHandle Pointer to initialized trace state machine. 47 * @param[in] szName Name. 48 * @param[out] pxStateHandle Pointer to uninitialized trace state machine state. 49 * 50 * @retval TRC_FAIL Failure 51 * @retval TRC_SUCCESS Success 52 */ 53 traceResult xTraceStateMachineStateCreate(TraceStateMachineHandle_t xStateMachineHandle, const char *szName, TraceStateMachineStateHandle_t *pxStateHandle); 54 55 /** 56 * @brief Sets trace state machine state. 57 * 58 * @param[in] xStateMachineHandle Pointer to initialized trace state machine. 59 * @param[in] xStateHandle Pointer to initialized trace state machine state. 60 * 61 * @retval TRC_FAIL Failure 62 * @retval TRC_SUCCESS Success 63 */ 64 traceResult xTraceStateMachineSetState(TraceStateMachineHandle_t xStateMachineHandle, TraceStateMachineStateHandle_t xStateHandle); 65 66 /** @} */ 67 68 #ifdef __cplusplus 69 } 70 #endif 71 72 #else 73 74 #define xTraceStateMachineCreate(__szName, __pxStateMachineHandle) ((void)(__szName), (void)(__pxStateMachineHandle), TRC_SUCCESS) 75 76 #define xTraceStateMachineStateCreate(__xStateMachineHandle, __szName, __pxStateHandle) ((void)(__xStateMachineHandle), (void)(__szName), (void)(__pxStateHandle), TRC_SUCCESS) 77 78 #define xTraceStateMachineSetState(__xStateMachineHandle, __xStateHandle) ((void)(__xStateMachineHandle), (void)(__xStateHandle), TRC_SUCCESS) 79 80 #endif 81 82 #endif 83