blob: 464c6cbb72fd2e2713da5ad29fcfe642056cb74b [file] [log] [blame]
Kévin Redon69b92d92019-01-24 16:39:20 +01001/**
2 * \file
3 *
4 * \brief Increment macro.
5 *
6 * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
7 *
8 * \asf_license_start
9 *
10 * \page License
11 *
12 * Subject to your compliance with these terms, you may use Microchip
13 * software and any derivatives exclusively with Microchip products.
14 * It is your responsibility to comply with third party license terms applicable
15 * to your use of third party software (including open source software) that
16 * may accompany Microchip software.
17 *
18 * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
19 * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
20 * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
21 * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
22 * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
23 * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
24 * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
25 * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
26 * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
27 * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
28 * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
29 *
30 * \asf_license_stop
31 *
32 */
33
34#ifndef _UTILS_INCREMENT_MACRO_H
35#define _UTILS_INCREMENT_MACRO_H
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41/**
42 * \brief Compile time increment, result value is entire integer literal
43 *
44 * \param[in] val - value to be incremented (254 max)
45 */
46#define INC_VALUE(val) SP_INC_##val
47
48// Preprocessor increment implementation
49#define SP_INC_0 1
50#define SP_INC_1 2
51#define SP_INC_2 3
52#define SP_INC_3 4
53#define SP_INC_4 5
54#define SP_INC_5 6
55#define SP_INC_6 7
56#define SP_INC_7 8
57#define SP_INC_8 9
58#define SP_INC_9 10
59#define SP_INC_10 11
60#define SP_INC_11 12
61#define SP_INC_12 13
62#define SP_INC_13 14
63#define SP_INC_14 15
64#define SP_INC_15 16
65#define SP_INC_16 17
66#define SP_INC_17 18
67#define SP_INC_18 19
68#define SP_INC_19 20
69#define SP_INC_20 21
70#define SP_INC_21 22
71#define SP_INC_22 23
72#define SP_INC_23 24
73#define SP_INC_24 25
74#define SP_INC_25 26
75#define SP_INC_26 27
76#define SP_INC_27 28
77#define SP_INC_28 29
78#define SP_INC_29 30
79#define SP_INC_30 31
80#define SP_INC_31 32
81#define SP_INC_32 33
82#define SP_INC_33 34
83#define SP_INC_34 35
84#define SP_INC_35 36
85#define SP_INC_36 37
86#define SP_INC_37 38
87#define SP_INC_38 39
88#define SP_INC_39 40
89#define SP_INC_40 41
90#define SP_INC_41 42
91#define SP_INC_42 43
92#define SP_INC_43 44
93#define SP_INC_44 45
94#define SP_INC_45 46
95#define SP_INC_46 47
96#define SP_INC_47 48
97#define SP_INC_48 49
98#define SP_INC_49 50
99#define SP_INC_50 51
100#define SP_INC_51 52
101#define SP_INC_52 53
102#define SP_INC_53 54
103#define SP_INC_54 55
104#define SP_INC_55 56
105#define SP_INC_56 57
106#define SP_INC_57 58
107#define SP_INC_58 59
108#define SP_INC_59 60
109#define SP_INC_60 61
110#define SP_INC_61 62
111#define SP_INC_62 63
112#define SP_INC_63 64
113#define SP_INC_64 65
114#define SP_INC_65 66
115#define SP_INC_66 67
116#define SP_INC_67 68
117#define SP_INC_68 69
118#define SP_INC_69 70
119#define SP_INC_70 71
120#define SP_INC_71 72
121#define SP_INC_72 73
122#define SP_INC_73 74
123#define SP_INC_74 75
124#define SP_INC_75 76
125#define SP_INC_76 77
126#define SP_INC_77 78
127#define SP_INC_78 79
128#define SP_INC_79 80
129#define SP_INC_80 81
130#define SP_INC_81 82
131#define SP_INC_82 83
132#define SP_INC_83 84
133#define SP_INC_84 85
134#define SP_INC_85 86
135#define SP_INC_86 87
136#define SP_INC_87 88
137#define SP_INC_88 89
138#define SP_INC_89 90
139#define SP_INC_90 91
140#define SP_INC_91 92
141#define SP_INC_92 93
142#define SP_INC_93 94
143#define SP_INC_94 95
144#define SP_INC_95 96
145#define SP_INC_96 97
146#define SP_INC_97 98
147#define SP_INC_98 99
148#define SP_INC_99 100
149#define SP_INC_100 101
150#define SP_INC_101 102
151#define SP_INC_102 103
152#define SP_INC_103 104
153#define SP_INC_104 105
154#define SP_INC_105 106
155#define SP_INC_106 107
156#define SP_INC_107 108
157#define SP_INC_108 109
158#define SP_INC_109 110
159#define SP_INC_110 111
160#define SP_INC_111 112
161#define SP_INC_112 113
162#define SP_INC_113 114
163#define SP_INC_114 115
164#define SP_INC_115 116
165#define SP_INC_116 117
166#define SP_INC_117 118
167#define SP_INC_118 119
168#define SP_INC_119 120
169#define SP_INC_120 121
170#define SP_INC_121 122
171#define SP_INC_122 123
172#define SP_INC_123 124
173#define SP_INC_124 125
174#define SP_INC_125 126
175#define SP_INC_126 127
176#define SP_INC_127 128
177#define SP_INC_128 129
178#define SP_INC_129 130
179#define SP_INC_130 131
180#define SP_INC_131 132
181#define SP_INC_132 133
182#define SP_INC_133 134
183#define SP_INC_134 135
184#define SP_INC_135 136
185#define SP_INC_136 137
186#define SP_INC_137 138
187#define SP_INC_138 139
188#define SP_INC_139 140
189#define SP_INC_140 141
190#define SP_INC_141 142
191#define SP_INC_142 143
192#define SP_INC_143 144
193#define SP_INC_144 145
194#define SP_INC_145 146
195#define SP_INC_146 147
196#define SP_INC_147 148
197#define SP_INC_148 149
198#define SP_INC_149 150
199#define SP_INC_150 151
200#define SP_INC_151 152
201#define SP_INC_152 153
202#define SP_INC_153 154
203#define SP_INC_154 155
204#define SP_INC_155 156
205#define SP_INC_156 157
206#define SP_INC_157 158
207#define SP_INC_158 159
208#define SP_INC_159 160
209#define SP_INC_160 161
210#define SP_INC_161 162
211#define SP_INC_162 163
212#define SP_INC_163 164
213#define SP_INC_164 165
214#define SP_INC_165 166
215#define SP_INC_166 167
216#define SP_INC_167 168
217#define SP_INC_168 169
218#define SP_INC_169 170
219#define SP_INC_170 171
220#define SP_INC_171 172
221#define SP_INC_172 173
222#define SP_INC_173 174
223#define SP_INC_174 175
224#define SP_INC_175 176
225#define SP_INC_176 177
226#define SP_INC_177 178
227#define SP_INC_178 179
228#define SP_INC_179 180
229#define SP_INC_180 181
230#define SP_INC_181 182
231#define SP_INC_182 183
232#define SP_INC_183 184
233#define SP_INC_184 185
234#define SP_INC_185 186
235#define SP_INC_186 187
236#define SP_INC_187 188
237#define SP_INC_188 189
238#define SP_INC_189 190
239#define SP_INC_190 191
240#define SP_INC_191 192
241#define SP_INC_192 193
242#define SP_INC_193 194
243#define SP_INC_194 195
244#define SP_INC_195 196
245#define SP_INC_196 197
246#define SP_INC_197 198
247#define SP_INC_198 199
248#define SP_INC_199 200
249#define SP_INC_200 201
250#define SP_INC_201 202
251#define SP_INC_202 203
252#define SP_INC_203 204
253#define SP_INC_204 205
254#define SP_INC_205 206
255#define SP_INC_206 207
256#define SP_INC_207 208
257#define SP_INC_208 209
258#define SP_INC_209 210
259#define SP_INC_210 211
260#define SP_INC_211 212
261#define SP_INC_212 213
262#define SP_INC_213 214
263#define SP_INC_214 215
264#define SP_INC_215 216
265#define SP_INC_216 217
266#define SP_INC_217 218
267#define SP_INC_218 219
268#define SP_INC_219 220
269#define SP_INC_220 221
270#define SP_INC_221 222
271#define SP_INC_222 223
272#define SP_INC_223 224
273#define SP_INC_224 225
274#define SP_INC_225 226
275#define SP_INC_226 227
276#define SP_INC_227 228
277#define SP_INC_228 229
278#define SP_INC_229 230
279#define SP_INC_230 231
280#define SP_INC_231 232
281#define SP_INC_232 233
282#define SP_INC_233 234
283#define SP_INC_234 235
284#define SP_INC_235 236
285#define SP_INC_236 237
286#define SP_INC_237 238
287#define SP_INC_238 239
288#define SP_INC_239 240
289#define SP_INC_240 241
290#define SP_INC_241 242
291#define SP_INC_242 243
292#define SP_INC_243 244
293#define SP_INC_244 245
294#define SP_INC_245 246
295#define SP_INC_246 247
296#define SP_INC_247 248
297#define SP_INC_248 249
298#define SP_INC_249 250
299#define SP_INC_250 251
300#define SP_INC_251 252
301#define SP_INC_252 253
302#define SP_INC_253 254
303#define SP_INC_254 255
304
305#ifdef __cplusplus
306}
307#endif
308#endif /* _UTILS_INCREMENT_MACRO_H */