19#ifndef MCUX_CSSL_FLOW_PROTECTION_H_
20#define MCUX_CSSL_FLOW_PROTECTION_H_
22#include <mcuxCsslAnalysis.h>
60MCUX_CSSL_ANALYSIS_START_SUPPRESS_TEXT_IN_COMMENTS(
"Comments outline example sequences. For more readability, additional inner comments might be added.")
81#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType) \
82 MCUX_CSSL_FP_PROTECTED_TYPE_IMPL(resultType)
96#define MCUX_CSSL_FP_COUNTER_STMT(statement) \
97 MCUX_CSSL_FP_COUNTER_STMT_IMPL(statement)
125#define MCUX_CSSL_FP_FUNCTION_DECL(...) \
126 MCUX_CSSL_FP_FUNCTION_DECL_IMPL(__VA_ARGS__)
159#define MCUX_CSSL_FP_FUNCTION_DEF(...) \
160 MCUX_CSSL_FP_FUNCTION_DEF_IMPL(__VA_ARGS__)
195#define MCUX_CSSL_FP_FUNCTION_POINTER(type, definition) \
196 MCUX_CSSL_FP_FUNCTION_POINTER_IMPL(type, definition)
244#define MCUX_CSSL_FP_FUNCTION_ENTRY(...) \
245 MCUX_CSSL_FP_FUNCTION_ENTRY_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
286#define MCUX_CSSL_FP_FUNCTION_EXIT(...) \
287 MCUX_CSSL_FP_FUNCTION_EXIT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
325#define MCUX_CSSL_FP_FUNCTION_EXIT_WITH_CHECK(...) \
326 MCUX_CSSL_FP_FUNCTION_EXIT_WITH_CHECK_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
365#define MCUX_CSSL_FP_FUNCTION_EXIT_VOID(...) \
366 MCUX_CSSL_FP_FUNCTION_EXIT_VOID_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
380#define MCUX_CSSL_FP_RESULT(...) \
381 MCUX_CSSL_FP_RESULT_IMPL(__VA_ARGS__)
393#define MCUX_CSSL_FP_PROTECTION_TOKEN(return) \
394 MCUX_CSSL_FP_PROTECTION_TOKEN_IMPL(return)
432#define MCUX_CSSL_FP_FUNCTION_CALL(...) \
433 MCUX_CSSL_FP_FUNCTION_CALL_IMPL(__VA_ARGS__)
467#define MCUX_CSSL_FP_FUNCTION_CALL_VOID(...) \
468 MCUX_CSSL_FP_FUNCTION_CALL_VOID_IMPL(__VA_ARGS__)
505#define MCUX_CSSL_FP_FUNCTION_CALL_PROTECTED(...) \
506 MCUX_CSSL_FP_FUNCTION_CALL_PROTECTED_IMPL(__VA_ARGS__)
541#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_PROTECTED(...) \
542 MCUX_CSSL_FP_FUNCTION_CALL_VOID_PROTECTED_IMPL(__VA_ARGS__)
581#define MCUX_CSSL_FP_FUNCTION_CALL_BEGIN(...) \
582 MCUX_CSSL_FP_FUNCTION_CALL_BEGIN_IMPL(__VA_ARGS__)
616#define MCUX_CSSL_FP_FUNCTION_CALL_END(...) \
617 MCUX_CSSL_FP_FUNCTION_CALL_END_IMPL(__VA_ARGS__)
652#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_BEGIN(...) \
653 MCUX_CSSL_FP_FUNCTION_CALL_VOID_BEGIN_IMPL(__VA_ARGS__)
683#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_END(...) \
684 MCUX_CSSL_FP_FUNCTION_CALL_VOID_END_IMPL(__VA_ARGS__)
735#define MCUX_CSSL_FP_FUNCTION_CALLED(...) \
736 MCUX_CSSL_FP_FUNCTION_CALLED_IMPL(__VA_ARGS__)
770#define MCUX_CSSL_FP_FUNCTION_ENTERED(id) \
771 MCUX_CSSL_FP_FUNCTION_ENTERED_IMPL(id)
810#define MCUX_CSSL_FP_LOOP_DECL(id) \
811 MCUX_CSSL_FP_LOOP_DECL_IMPL(id)
838#define MCUX_CSSL_FP_LOOP_ITERATION(...) \
839 MCUX_CSSL_FP_LOOP_ITERATION_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
873#define MCUX_CSSL_FP_LOOP_ITERATIONS(id, count) \
874 MCUX_CSSL_FP_LOOP_ITERATIONS_IMPL(id, count)
919#define MCUX_CSSL_FP_BRANCH_DECL(id) \
920 MCUX_CSSL_FP_BRANCH_DECL_IMPL(id)
958#define MCUX_CSSL_FP_BRANCH_POSITIVE(...) \
959 MCUX_CSSL_FP_BRANCH_POSITIVE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
997#define MCUX_CSSL_FP_BRANCH_NEGATIVE(...) \
998 MCUX_CSSL_FP_BRANCH_NEGATIVE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1040#define MCUX_CSSL_FP_BRANCH_TAKEN_POSITIVE(...) \
1041 MCUX_CSSL_FP_BRANCH_TAKEN_POSITIVE_IMPL(__VA_ARGS__)
1085#define MCUX_CSSL_FP_BRANCH_TAKEN_NEGATIVE(...) \
1086 MCUX_CSSL_FP_BRANCH_TAKEN_NEGATIVE_IMPL(__VA_ARGS__)
1142#define MCUX_CSSL_FP_SWITCH_DECL(id) \
1143 MCUX_CSSL_FP_SWITCH_DECL_IMPL(id)
1191#define MCUX_CSSL_FP_SWITCH_CASE(...) \
1192 MCUX_CSSL_FP_SWITCH_CASE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1239#define MCUX_CSSL_FP_SWITCH_DEFAULT(...) \
1240 MCUX_CSSL_FP_SWITCH_DEFAULT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1293#define MCUX_CSSL_FP_SWITCH_TAKEN(...) \
1294 MCUX_CSSL_FP_SWITCH_TAKEN_IMPL(__VA_ARGS__)
1345#define MCUX_CSSL_FP_SWITCH_TAKEN_DEFAULT(...) \
1346 MCUX_CSSL_FP_SWITCH_TAKEN_DEFAULT_IMPL(__VA_ARGS__)
1382#define MCUX_CSSL_FP_EXPECT(...) \
1383 MCUX_CSSL_FP_EXPECT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1405#define MCUX_CSSL_FP_CONDITIONAL(condition, ...) \
1406 MCUX_CSSL_FP_CONDITIONAL_IMPL((condition), __VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1408MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_TEXT_IN_COMMENTS()
1435#define MCUX_CSSL_FP_ASSERT(...) \
1436 MCUX_CSSL_FP_ASSERT_IMPL(__VA_ARGS__)
Selection of the implementation for the flow protection mechanism.