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
/* SPDX-License-Identifier: BSD-3-Clause */
5
/* */
6
/* Redistribution and use in source and binary forms, with or without */
7
/* modification, are permitted provided that the following conditions are */
8
/* met: */
9
/* */
10
/* 1. Redistributions of source code must retain the above copyright */
11
/* notice, this list of conditions and the following disclaimer. */
12
/* */
13
/* 2. Redistributions in binary form must reproduce the above copyright */
14
/* notice, this list of conditions and the following disclaimer in the */
15
/* documentation and/or other materials provided with the distribution. */
16
/* */
17
/* 3. Neither the name of the copyright holder nor the names of its */
18
/* contributors may be used to endorse or promote products derived from */
19
/* this software without specific prior written permission. */
20
/* */
21
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS */
22
/* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */
23
/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */
24
/* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
25
/* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
26
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
27
/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR */
28
/* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
29
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
30
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
31
/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
32
/*--------------------------------------------------------------------------*/
33
39
40
#ifndef MCUXCSSLSECURECOUNTER_SW_LOCAL_H_
41
#define MCUXCSSLSECURECOUNTER_SW_LOCAL_H_
42
43
#include <
mcuxClCore_Macros.h
>
44
52
53
61
67
#define MCUX_CSSL_SC_COUNTER_NAME \
68
mcuxCsslSecureCounter
69
70
/****************************************************************************/
71
/* Constants */
72
/****************************************************************************/
73
79
#define MCUX_CSSL_SC_CHECK_PASSED_IMPL (0xA5A5A5A5u)
80
86
#define MCUX_CSSL_SC_CHECK_FAILED_IMPL (~ MCUX_CSSL_SC_CHECK_PASSED_IMPL)
87
93
#define MCUX_CSSL_SC_COUNTER_TYPE_IMPL \
94
register uint32_t
95
101
#define MCUX_CSSL_SC_VALUE_TYPE_IMPL \
102
static const uint32_t
103
109
#define MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL \
110
uint32_t
111
112
/****************************************************************************/
113
/* Initialization */
114
/****************************************************************************/
115
121
#define MCUX_CSSL_SC_ALLOC_IMPL() \
122
MCUX_CSSL_SC_COUNTER_TYPE_IMPL MCUX_CSSL_SC_COUNTER_NAME
123
131
#define MCUX_CSSL_SC_INIT_IMPL(value) \
132
MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
133
MCUX_CSSL_SC_ALLOC_IMPL() = ((MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value)) \
134
MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
135
136
/****************************************************************************/
137
/* Check */
138
/****************************************************************************/
139
149
#define MCUX_CSSL_SC_CHECK_IMPL(value) \
150
MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
151
(MCUX_CSSL_SC_CHECK_FAILED_IMPL ^ (MCUX_CSSL_SC_COUNTER_NAME - (((MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value)) + 1u))) \
152
MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
153
154
/****************************************************************************/
155
/* Counter increment */
156
/****************************************************************************/
162
172
#define MCUX_CSSL_SC_ADD_IMPL(value) \
173
MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
174
MCUXCLCORE_DONOTOPTIMIZE(MCUX_CSSL_SC_COUNTER_NAME); \
175
MCUX_CSSL_SC_COUNTER_NAME += (MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value); \
176
MCUXCLCORE_DONOTOPTIMIZE(MCUX_CSSL_SC_COUNTER_NAME); \
177
MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
178
188
#define MCUX_CSSL_SC_ADD_ON_CALL_IMPL(value) \
189
MCUX_CSSL_SC_ADD_IMPL(value)
190
198
#define MCUX_CSSL_SC_ADD_0X1_IMPL() \
199
MCUX_CSSL_SC_ADD_IMPL(0x1u)
200
208
#define MCUX_CSSL_SC_ADD_0X10_IMPL() \
209
MCUX_CSSL_SC_ADD_IMPL(0x10u)
210
218
#define MCUX_CSSL_SC_ADD_0X100_IMPL() \
219
MCUX_CSSL_SC_ADD_IMPL(0x100u)
220
221
/****************************************************************************/
222
/* Counter decrement */
223
/****************************************************************************/
229
239
#define MCUX_CSSL_SC_SUB_IMPL(value) \
240
MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
241
MCUX_CSSL_SC_COUNTER_NAME -= (MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value) \
242
MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
243
251
#define MCUX_CSSL_SC_SUB_0X1_IMPL() \
252
MCUX_CSSL_SC_SUB_IMPL(0x1u)
253
261
#define MCUX_CSSL_SC_SUB_0X10_IMPL() \
262
MCUX_CSSL_SC_SUB_IMPL(0x10u)
263
271
#define MCUX_CSSL_SC_SUB_0X100_IMPL() \
272
MCUX_CSSL_SC_SUB_IMPL(0x100u)
273
274
/****************************************************************************/
275
/* Direct access (optional) */
276
/****************************************************************************/
285
297
#define MCUX_CSSL_SC_VALUE_IMPL() \
298
MCUX_CSSL_SC_COUNTER_NAME
299
312
#define MCUX_CSSL_SC_ASSIGN_IMPL(value) \
313
MCUX_CSSL_ANALYSIS_START_PATTERN_SC_INTEGER_OVERFLOW() \
314
MCUX_CSSL_SC_COUNTER_NAME = (MCUX_CSSL_SC_BALANCING_VALUE_TYPE_IMPL) (value) \
315
MCUX_CSSL_ANALYSIS_STOP_PATTERN_SC_INTEGER_OVERFLOW()
316
317
#endif
/* MCUXCSSLSECURECOUNTER_SW_LOCAL_H_ */
mcuxClCore_Macros.h
Definition of macros.
mcuxCsslSecureCounter_SW_Local.h
Generated by
1.16.1