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, 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
19
20
#ifndef MCUXCSSLSECURECOUNTER_SW_LOCAL_H_
21
#define MCUXCSSLSECURECOUNTER_SW_LOCAL_H_
22
23
#include <
mcuxClCore_Macros.h
>
24
32
33
41
47
#define MCUX_CSSL_SC_COUNTER_NAME \
48
mcuxCsslSecureCounter
49
50
/****************************************************************************/
51
/* Constants */
52
/****************************************************************************/
53
59
#define MCUX_CSSL_SC_CHECK_PASSED_IMPL (0xA5A5A5A5u)
60
66
#define MCUX_CSSL_SC_CHECK_FAILED_IMPL (~ MCUX_CSSL_SC_CHECK_PASSED_IMPL)
67
73
#define MCUX_CSSL_SC_COUNTER_TYPE_IMPL \
74
register uint32_t
75
81
#define MCUX_CSSL_SC_VALUE_TYPE_IMPL \
82
static const uint32_t
83
89
#define MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL \
90
uint32_t
91
92
/****************************************************************************/
93
/* Initialization */
94
/****************************************************************************/
95
101
#define MCUX_CSSL_SC_ALLOC_IMPL() \
102
MCUX_CSSL_SC_COUNTER_TYPE_IMPL MCUX_CSSL_SC_COUNTER_NAME
103
111
#define MCUX_CSSL_SC_INIT_IMPL(value) \
112
MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
113
MCUX_CSSL_SC_ALLOC_IMPL() = ((MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value)) \
114
MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
115
116
/****************************************************************************/
117
/* Check */
118
/****************************************************************************/
119
129
#define MCUX_CSSL_SC_CHECK_IMPL(value) \
130
MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
131
(MCUX_CSSL_SC_CHECK_FAILED_IMPL ^ (MCUX_CSSL_SC_COUNTER_NAME - (((MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value)) + 1u))) \
132
MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
133
134
/****************************************************************************/
135
/* Counter increment */
136
/****************************************************************************/
142
152
#define MCUX_CSSL_SC_ADD_IMPL(value) \
153
MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
154
MCUXCLCORE_DONOTOPTIMIZE(MCUX_CSSL_SC_COUNTER_NAME); \
155
MCUX_CSSL_SC_COUNTER_NAME += (MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value); \
156
MCUXCLCORE_DONOTOPTIMIZE(MCUX_CSSL_SC_COUNTER_NAME); \
157
MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
158
168
#define MCUX_CSSL_SC_ADD_ON_CALL_IMPL(value) \
169
MCUX_CSSL_SC_ADD_IMPL(value)
170
178
#define MCUX_CSSL_SC_ADD_0X1_IMPL() \
179
MCUX_CSSL_SC_ADD_IMPL(0x1u)
180
188
#define MCUX_CSSL_SC_ADD_0X10_IMPL() \
189
MCUX_CSSL_SC_ADD_IMPL(0x10u)
190
198
#define MCUX_CSSL_SC_ADD_0X100_IMPL() \
199
MCUX_CSSL_SC_ADD_IMPL(0x100u)
200
201
/****************************************************************************/
202
/* Counter decrement */
203
/****************************************************************************/
209
219
#define MCUX_CSSL_SC_SUB_IMPL(value) \
220
MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
221
MCUX_CSSL_SC_COUNTER_NAME -= (MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value) \
222
MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
223
231
#define MCUX_CSSL_SC_SUB_0X1_IMPL() \
232
MCUX_CSSL_SC_SUB_IMPL(0x1u)
233
241
#define MCUX_CSSL_SC_SUB_0X10_IMPL() \
242
MCUX_CSSL_SC_SUB_IMPL(0x10u)
243
251
#define MCUX_CSSL_SC_SUB_0X100_IMPL() \
252
MCUX_CSSL_SC_SUB_IMPL(0x100u)
253
254
/****************************************************************************/
255
/* Direct access (optional) */
256
/****************************************************************************/
265
277
#define MCUX_CSSL_SC_VALUE_IMPL() \
278
MCUX_CSSL_SC_COUNTER_NAME
279
292
#define MCUX_CSSL_SC_ASSIGN_IMPL(value) \
293
MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
294
MCUX_CSSL_SC_COUNTER_NAME = (MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value) \
295
MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
296
297
#endif
/* MCUXCSSLSECURECOUNTER_SW_LOCAL_H_ */
mcuxClCore_Macros.h
Definition of macros.
mcuxCsslSecureCounter_SW_Local.h
Generated by
1.16.1