MCUX CLNS
MCUX Crypto Library Normal Secure
 
Loading...
Searching...
No Matches
mcuxCsslSecureCounter_SW_Local.h
Go to the documentation of this file.
1/*--------------------------------------------------------------------------*/
2/* Copyright 2020-2023 NXP */
3/* */
4/* NXP Confidential. This software is owned or controlled by NXP and may */
5/* only be used strictly in accordance with the applicable license terms. */
6/* By expressly accepting such terms or by downloading, installing, */
7/* activating and/or otherwise using the software, you are agreeing that */
8/* you have read, and that you agree to comply with and are bound by, such */
9/* license terms. If you do not agree to be bound by the applicable license */
10/* terms, then you may not retain, install, activate or otherwise use the */
11/* software. */
12/*--------------------------------------------------------------------------*/
13
20#ifndef MCUXCSSLSECURECOUNTER_SW_LOCAL_H_
21#define MCUXCSSLSECURECOUNTER_SW_LOCAL_H_
22
45#define MCUX_CSSL_SC_COUNTER_NAME \
46 mcuxCsslSecureCounter
47
48/****************************************************************************/
49/* Constants */
50/****************************************************************************/
51
57#define MCUX_CSSL_SC_CHECK_PASSED_IMPL (0xA5A5A5A5u)
58
64#define MCUX_CSSL_SC_CHECK_FAILED_IMPL (~ MCUX_CSSL_SC_CHECK_PASSED_IMPL)
65
71#define MCUX_CSSL_SC_COUNTER_TYPE_IMPL \
72 uint32_t
73
79#define MCUX_CSSL_SC_VALUE_TYPE_IMPL \
80 static const uint32_t
81
87#define MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL \
88 uint32_t
89
90/****************************************************************************/
91/* Initialization */
92/****************************************************************************/
93
99#define MCUX_CSSL_SC_ALLOC_IMPL() \
100 MCUX_CSSL_SC_COUNTER_TYPE_IMPL MCUX_CSSL_SC_COUNTER_NAME
101
109#define MCUX_CSSL_SC_INIT_IMPL(value) \
110 MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
111 MCUX_CSSL_SC_ALLOC_IMPL() = ((MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value)) \
112 MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
113
114/****************************************************************************/
115/* Check */
116/****************************************************************************/
117
127#define MCUX_CSSL_SC_CHECK_IMPL(value) \
128 MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
129 (MCUX_CSSL_SC_CHECK_FAILED_IMPL ^ (MCUX_CSSL_SC_COUNTER_NAME - (((MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value)) + 1u))) \
130 MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
131
132/****************************************************************************/
133/* Counter increment */
134/****************************************************************************/
150#define MCUX_CSSL_SC_ADD_IMPL(value) \
151 MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
152 MCUX_CSSL_SC_COUNTER_NAME += (MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value) \
153 MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
154
164#define MCUX_CSSL_SC_ADD_ON_CALL_IMPL(value) \
165 MCUX_CSSL_SC_ADD_IMPL(value)
166
174#define MCUX_CSSL_SC_ADD_0X1_IMPL() \
175 MCUX_CSSL_SC_ADD_IMPL(0x1u)
176
184#define MCUX_CSSL_SC_ADD_0X10_IMPL() \
185 MCUX_CSSL_SC_ADD_IMPL(0x10u)
186
194#define MCUX_CSSL_SC_ADD_0X100_IMPL() \
195 MCUX_CSSL_SC_ADD_IMPL(0x100u)
196
197/****************************************************************************/
198/* Counter decrement */
199/****************************************************************************/
215#define MCUX_CSSL_SC_SUB_IMPL(value) \
216 MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
217 MCUX_CSSL_SC_COUNTER_NAME -= (MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value) \
218 MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
219
227#define MCUX_CSSL_SC_SUB_0X1_IMPL() \
228 MCUX_CSSL_SC_SUB_IMPL(0x1u)
229
237#define MCUX_CSSL_SC_SUB_0X10_IMPL() \
238 MCUX_CSSL_SC_SUB_IMPL(0x10u)
239
247#define MCUX_CSSL_SC_SUB_0X100_IMPL() \
248 MCUX_CSSL_SC_SUB_IMPL(0x100u)
249
250/****************************************************************************/
251/* Direct access (optional) */
252/****************************************************************************/
273#define MCUX_CSSL_SC_VALUE_IMPL() \
274 MCUX_CSSL_SC_COUNTER_NAME
275
288#define MCUX_CSSL_SC_ASSIGN_IMPL(value) \
289 MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
290 MCUX_CSSL_SC_COUNTER_NAME = (MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value) \
291 MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
292
293#endif /* MCUXCSSLSECURECOUNTER_SW_LOCAL_H_ */