MCUX CLNS
MCUX Crypto Library Normal Secure
Loading...
Searching...
No Matches
mcuxCsslFlowProtection_None.h
Go to the documentation of this file.
1/*--------------------------------------------------------------------------*/
2/* Copyright 2020-2025 NXP */
3/* */
4/* NXP Confidential and Proprietary. This software is owned or controlled */
5/* by NXP and may only be used strictly in accordance with the applicable */
6/* license terms. By expressly accepting such terms or by downloading, */
7/* installing, activating and/or otherwise using the software, you are */
8/* agreeing that you have read, and that you agree to comply with and are */
9/* bound by, such license terms. If you do not agree to be bound by the */
10/* applicable license terms, then you may not retain, install, activate or */
11/* otherwise use the software. */
12/*--------------------------------------------------------------------------*/
13
18
19#ifndef MCUX_CSSL_FLOW_PROTECTION_NONE_H_
20#define MCUX_CSSL_FLOW_PROTECTION_NONE_H_
21
22/* Include the CSSL C pre-processor support functionality. */
24
32
33
41
49#define MCUX_CSSL_FP_COUNTER_STMT_IMPL(statement) \
50 /* Intentionally empty. */
51
52
58
70#define MCUX_CSSL_FP_CONDITIONAL_IMPL(condition, ...) \
71 /* Intentionally empty. */
72
82#define MCUX_CSSL_FP_VOID_EXPECTATION_IMPL() \
83 (0u)
84
98#define MCUX_CSSL_FP_EXPECT_IMPL(...) \
99 /* Intentionally empty. */
100
109#define MCUX_CSSL_FP_ASSERT_IMPL(...) \
110 /* Intentionally empty. */
111
121
132#define MCUX_CSSL_FP_PROTECTED_TYPE_IMPL(resultType) \
133 resultType
134
146#define MCUX_CSSL_FP_FUNCTION_DECL_IMPL(...) \
147 /* Intentionally empty. */
148
157#define MCUX_CSSL_FP_FUNCTION_DEF_IMPL(...) \
158 /* Intentionally empty. */
159
168#define MCUX_CSSL_FP_FUNCTION_POINTER_IMPL(type, definition) \
169 definition
170
180#define MCUX_CSSL_FP_FUNCTION_ENTRY_IMPL(...) \
181 /* Intentionally empty. */
182
191#define MCUX_CSSL_FP_RESULT_IMPL2(type, return) \
192 MCUX_CSSL_ANALYSIS_START_PATTERN_REINTERPRET_MEMORY_OF_OPAQUE_TYPES() \
193 MCUX_CSSL_ANALYSIS_START_SUPPRESS_TYPECAST_BETWEEN_INTEGER_AND_POINTER("Proper alignment is ensured during type cast") \
194 ((type)(return)) \
195 MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_TYPECAST_BETWEEN_INTEGER_AND_POINTER() \
196 MCUX_CSSL_ANALYSIS_STOP_PATTERN_REINTERPRET_MEMORY_OF_OPAQUE_TYPES()
197
205#define MCUX_CSSL_FP_RESULT_IMPL1(return) \
206 (return)
207
216#define MCUX_CSSL_FP_RESULT_IMPL(...) \
217 MCUX_CSSL_CPP_OVERLOADED2(MCUX_CSSL_FP_RESULT_IMPL, __VA_ARGS__)
218
226#define MCUX_CSSL_FP_PROTECTION_TOKEN_IMPL(return) \
227 (0u)
228
242#define MCUX_CSSL_FP_FUNCTION_EXIT_IMPLn(id, result, ...) \
243 return (result)
244
257#define MCUX_CSSL_FP_FUNCTION_EXIT_IMPL1(id) \
258 MCUX_CSSL_FP_FUNCTION_EXIT_IMPLn(id, 0u, 0u)
259
274#define MCUX_CSSL_FP_FUNCTION_EXIT_IMPL2(id, result) \
275 MCUX_CSSL_FP_FUNCTION_EXIT_IMPLn(id, result, 0u)
276
296#define MCUX_CSSL_FP_FUNCTION_EXIT_IMPL(...) \
297 MCUX_CSSL_CPP_OVERLOADED2(MCUX_CSSL_FP_FUNCTION_EXIT_IMPL, __VA_ARGS__)
298
314#define MCUX_CSSL_FP_FUNCTION_EXIT_WITH_CHECK_IMPL(id, pass, fail,...) \
315 return (pass)
316
328#define MCUX_CSSL_FP_FUNCTION_EXIT_VOID_IMPL(...) \
329 return
330
340#define MCUX_CSSL_FP_FUNCTION_CALL_IMPL3(type, result, call) \
341 type const result = MCUX_CSSL_FP_RESULT(type,call)
342
343
352#define MCUX_CSSL_FP_FUNCTION_CALL_IMPL2(result, call) \
353 MCUX_CSSL_FP_FUNCTION_CALL_IMPL3(uint32_t, result, call)
354
367#define MCUX_CSSL_FP_FUNCTION_CALL_IMPL(...) \
368 MCUX_CSSL_ANALYSIS_START_SUPPRESS_NULL_POINTER_CONSTANT("False positive, due to macro expansion, any usage of NULL is considered as 0 by Coverity") \
369 MCUX_CSSL_CPP_OVERLOADED3(MCUX_CSSL_FP_FUNCTION_CALL_IMPL, __VA_ARGS__) \
370 MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_NULL_POINTER_CONSTANT()
371
382#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_IMPL(call) \
383 MCUX_CSSL_ANALYSIS_START_SUPPRESS_NULL_POINTER_CONSTANT("False positive, due to macro expansion, any usage of NULL is considered as 0 by Coverity") \
384 (call) \
385 MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_NULL_POINTER_CONSTANT()
386
399#define MCUX_CSSL_FP_FUNCTION_CALL_PROTECTED_IMPL(result, token, call) \
400 const uint32_t result = (call); \
401 const uint32_t token = 0u
402
414#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_PROTECTED_IMPL(token, call) \
415 (call); \
416 const uint32_t token = 0u
417
429#define MCUX_CSSL_FP_FUNCTION_CALL_BEGIN_IMPL(result, token, call) \
430 MCUX_CSSL_FP_FUNCTION_CALL_PROTECTED_IMPL(result, token, call)
431
438#define MCUX_CSSL_FP_FUNCTION_CALL_END_IMPL() \
439 /* Intentionally empty. */
440
451#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_BEGIN_IMPL(token, call) \
452 MCUX_CSSL_FP_FUNCTION_CALL_VOID_PROTECTED_IMPL(token, call)
453
460#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_END_IMPL() \
461 /* Intentionally empty. */
462
463
477#define MCUX_CSSL_FP_FUNCTION_CALLED_IMPL(id) \
478 (0u)
479
493#define MCUX_CSSL_FP_FUNCTION_ENTERED_IMPL(id) \
494 (0u)
495
505
513#define MCUX_CSSL_FP_LOOP_DECL_IMPL(id) \
514 /* Intentionally empty. */
515
525#define MCUX_CSSL_FP_LOOP_ITERATION_IMPL(...) \
526 /* Intentionally empty. */
527
536#define MCUX_CSSL_FP_LOOP_ITERATIONS_IMPL(id, count) \
537 /* Intentionally empty. */
538
539
540
550
558#define MCUX_CSSL_FP_BRANCH_DECL_IMPL(id) \
559 /* Intentionally empty. */
560
576#define MCUX_CSSL_FP_BRANCH_POSITIVE_IMPL(...) \
577 /* Intentionally empty. */
578
594#define MCUX_CSSL_FP_BRANCH_NEGATIVE_IMPL(...) \
595 /* Intentionally empty. */
596
605#define MCUX_CSSL_FP_BRANCH_TAKEN_POSITIVE_IMPL(...) \
606 /* Intentionally empty. */
607
616#define MCUX_CSSL_FP_BRANCH_TAKEN_NEGATIVE_IMPL(...) \
617 /* Intentionally empty. */
618
619
620
630
638#define MCUX_CSSL_FP_SWITCH_DECL_IMPL(id) \
639 /* Intentionally empty. */
640
651#define MCUX_CSSL_FP_SWITCH_CASE_IMPL(...) \
652 /* Intentionally empty. */
653
663#define MCUX_CSSL_FP_SWITCH_DEFAULT_IMPL(...) \
664 /* Intentionally empty. */
665
676#define MCUX_CSSL_FP_SWITCH_TAKEN_IMPL(...) \
677 /* Intentionally empty. */
678
687#define MCUX_CSSL_FP_SWITCH_TAKEN_DEFAULT_IMPL(...) \
688 /* Intentionally empty. */
689
690
691#endif /* MCUX_CSSL_FLOW_PROTECTION_NONE_H_ */
The default implementation is based on standard C preprocessor functionality.