MCUX CLNS
MCUX Crypto Library Normal Secure
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 
82 /****************************************************************************/
83 /* Initialization */
84 /****************************************************************************/
85 
91 #define MCUX_CSSL_SC_ALLOC_IMPL() \
92  MCUX_CSSL_SC_COUNTER_TYPE_IMPL MCUX_CSSL_SC_COUNTER_NAME
93 
101 #define MCUX_CSSL_SC_INIT_IMPL(value) \
102  MCUX_CSSL_SC_ALLOC_IMPL() = (value)
103 
104 /****************************************************************************/
105 /* Check */
106 /****************************************************************************/
107 
117 #define MCUX_CSSL_SC_CHECK_IMPL(value) \
118  (MCUX_CSSL_SC_CHECK_FAILED_IMPL ^ (MCUX_CSSL_SC_COUNTER_NAME - ((value) + 1u)))
119 
120 /****************************************************************************/
121 /* Counter increment */
122 /****************************************************************************/
138 #define MCUX_CSSL_SC_ADD_IMPL(value) \
139  MCUX_CSSL_SC_COUNTER_NAME += (value)
140 
150 #define MCUX_CSSL_SC_ADD_ON_CALL_IMPL(value) \
151  MCUX_CSSL_SC_ADD_IMPL(value)
152 
160 #define MCUX_CSSL_SC_ADD_0X1_IMPL() \
161  MCUX_CSSL_SC_ADD_IMPL(0x1u)
162 
170 #define MCUX_CSSL_SC_ADD_0X10_IMPL() \
171  MCUX_CSSL_SC_ADD_IMPL(0x10u)
172 
180 #define MCUX_CSSL_SC_ADD_0X100_IMPL() \
181  MCUX_CSSL_SC_ADD_IMPL(0x100u)
182 
183 /****************************************************************************/
184 /* Counter decrement */
185 /****************************************************************************/
201 #define MCUX_CSSL_SC_SUB_IMPL(value) \
202  MCUX_CSSL_SC_COUNTER_NAME -= (value)
203 
211 #define MCUX_CSSL_SC_SUB_0X1_IMPL() \
212  MCUX_CSSL_SC_SUB_IMPL(0x1u)
213 
221 #define MCUX_CSSL_SC_SUB_0X10_IMPL() \
222  MCUX_CSSL_SC_SUB_IMPL(0x10u)
223 
231 #define MCUX_CSSL_SC_SUB_0X100_IMPL() \
232  MCUX_CSSL_SC_SUB_IMPL(0x100u)
233 
234 /****************************************************************************/
235 /* Direct access (optional) */
236 /****************************************************************************/
257 #define MCUX_CSSL_SC_VALUE_IMPL() \
258  MCUX_CSSL_SC_COUNTER_NAME
259 
272 #define MCUX_CSSL_SC_ASSIGN_IMPL(value) \
273  MCUX_CSSL_SC_COUNTER_NAME = (value)
274 
275 
276 #endif /* MCUXCSSLSECURECOUNTER_SW_LOCAL_H_ */