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