19#ifndef MCUX_CSSL_FLOW_PROTECTION_H_
20#define MCUX_CSSL_FLOW_PROTECTION_H_
22#include <mcuxCsslAnalysis.h>
26MCUX_CSSL_ANALYSIS_START_PATTERN_URL_IN_COMMENTS()
95#define MCUX_CSSL_FP_COUNTER_STMT(statement) \
96 MCUX_CSSL_FP_COUNTER_STMT_IMPL(statement)
138#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType) \
139 MCUX_CSSL_FP_PROTECTED_TYPE_IMPL(resultType)
166#define MCUX_CSSL_FP_FUNCTION_DECL(...) \
167 MCUX_CSSL_FP_FUNCTION_DECL_IMPL(__VA_ARGS__)
200#define MCUX_CSSL_FP_FUNCTION_DEF(...) \
201 MCUX_CSSL_FP_FUNCTION_DEF_IMPL(__VA_ARGS__)
236#define MCUX_CSSL_FP_FUNCTION_POINTER(type, definition) \
237 MCUX_CSSL_FP_FUNCTION_POINTER_IMPL(type, definition)
285#define MCUX_CSSL_FP_FUNCTION_ENTRY(...) \
286 MCUX_CSSL_FP_FUNCTION_ENTRY_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
328#define MCUX_CSSL_FP_FUNCTION_EXIT(...) \
329 MCUX_CSSL_FP_FUNCTION_EXIT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
367#define MCUX_CSSL_FP_FUNCTION_EXIT_WITH_CHECK(...) \
368 MCUX_CSSL_FP_FUNCTION_EXIT_WITH_CHECK_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
407#define MCUX_CSSL_FP_FUNCTION_EXIT_VOID(...) \
408 MCUX_CSSL_FP_FUNCTION_EXIT_VOID_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
422#define MCUX_CSSL_FP_RESULT(...) \
423 MCUX_CSSL_FP_RESULT_IMPL(__VA_ARGS__)
435#define MCUX_CSSL_FP_PROTECTION_TOKEN(return) \
436 MCUX_CSSL_FP_PROTECTION_TOKEN_IMPL(return)
474#define MCUX_CSSL_FP_FUNCTION_CALL(...) \
475 MCUX_CSSL_FP_FUNCTION_CALL_IMPL(__VA_ARGS__)
509#define MCUX_CSSL_FP_FUNCTION_CALL_VOID(...) \
510 MCUX_CSSL_FP_FUNCTION_CALL_VOID_IMPL(__VA_ARGS__)
547#define MCUX_CSSL_FP_FUNCTION_CALL_PROTECTED(...) \
548 MCUX_CSSL_FP_FUNCTION_CALL_PROTECTED_IMPL(__VA_ARGS__)
583#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_PROTECTED(...) \
584 MCUX_CSSL_FP_FUNCTION_CALL_VOID_PROTECTED_IMPL(__VA_ARGS__)
623#define MCUX_CSSL_FP_FUNCTION_CALL_BEGIN(...) \
624 MCUX_CSSL_FP_FUNCTION_CALL_BEGIN_IMPL(__VA_ARGS__)
658#define MCUX_CSSL_FP_FUNCTION_CALL_END(...) \
659 MCUX_CSSL_FP_FUNCTION_CALL_END_IMPL(__VA_ARGS__)
694#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_BEGIN(...) \
695 MCUX_CSSL_FP_FUNCTION_CALL_VOID_BEGIN_IMPL(__VA_ARGS__)
725#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_END(...) \
726 MCUX_CSSL_FP_FUNCTION_CALL_VOID_END_IMPL(__VA_ARGS__)
777#define MCUX_CSSL_FP_FUNCTION_CALLED(...) \
778 MCUX_CSSL_FP_FUNCTION_CALLED_IMPL(__VA_ARGS__)
812#define MCUX_CSSL_FP_FUNCTION_ENTERED(id) \
813 MCUX_CSSL_FP_FUNCTION_ENTERED_IMPL(id)
856#define MCUX_CSSL_FP_LOOP_DECL(id) \
857 MCUX_CSSL_FP_LOOP_DECL_IMPL(id)
884#define MCUX_CSSL_FP_LOOP_ITERATION(...) \
885 MCUX_CSSL_FP_LOOP_ITERATION_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
919#define MCUX_CSSL_FP_LOOP_ITERATIONS(id, count) \
920 MCUX_CSSL_FP_LOOP_ITERATIONS_IMPL(id, count)
981#define MCUX_CSSL_FP_BRANCH_DECL(id) \
982 MCUX_CSSL_FP_BRANCH_DECL_IMPL(id)
1021#define MCUX_CSSL_FP_BRANCH_POSITIVE(...) \
1022 MCUX_CSSL_FP_BRANCH_POSITIVE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1045#define MCUX_CSSL_FP_BRANCH_NEGATIVE(...) \
1046 MCUX_CSSL_FP_BRANCH_NEGATIVE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1089#define MCUX_CSSL_FP_BRANCH_TAKEN_POSITIVE(...) \
1090 MCUX_CSSL_FP_BRANCH_TAKEN_POSITIVE_IMPL(__VA_ARGS__)
1117#define MCUX_CSSL_FP_BRANCH_TAKEN_NEGATIVE(...) \
1118 MCUX_CSSL_FP_BRANCH_TAKEN_NEGATIVE_IMPL(__VA_ARGS__)
1178#define MCUX_CSSL_FP_SWITCH_DECL(id) \
1179 MCUX_CSSL_FP_SWITCH_DECL_IMPL(id)
1227#define MCUX_CSSL_FP_SWITCH_CASE(...) \
1228 MCUX_CSSL_FP_SWITCH_CASE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1275#define MCUX_CSSL_FP_SWITCH_DEFAULT(...) \
1276 MCUX_CSSL_FP_SWITCH_DEFAULT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1329#define MCUX_CSSL_FP_SWITCH_TAKEN(...) \
1330 MCUX_CSSL_FP_SWITCH_TAKEN_IMPL(__VA_ARGS__)
1381#define MCUX_CSSL_FP_SWITCH_TAKEN_DEFAULT(...) \
1382 MCUX_CSSL_FP_SWITCH_TAKEN_DEFAULT_IMPL(__VA_ARGS__)
1420#define MCUX_CSSL_FP_EXPECT(...) \
1421 MCUX_CSSL_FP_EXPECT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1443#define MCUX_CSSL_FP_CONDITIONAL(condition, ...) \
1444 MCUX_CSSL_FP_CONDITIONAL_IMPL((condition), __VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1473#define MCUX_CSSL_FP_ASSERT(...) \
1474 MCUX_CSSL_FP_ASSERT_IMPL(__VA_ARGS__)
1476MCUX_CSSL_ANALYSIS_STOP_PATTERN_URL_IN_COMMENTS()
Selection of the implementation for the flow protection mechanism.