forked from picolibc/picolibc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
picolibc.h.in
478 lines (274 loc) · 10.7 KB
/
picolibc.h.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
/*
* Autogenerated by the Meson build system.
* Do not edit, your changes will be lost.
*/
#pragma once
/* Use atomics for fgetc/ungetc for re-entrancy */
#cmakedefine ATOMIC_UNGETC
/* Always optimize strcmp for performance */
#cmakedefine FAST_STRCMP
/* Obsoleted. Use regular syscalls */
#cmakedefine MISSING_SYSCALL_NAMES
/* use global errno variable */
#cmakedefine NEWLIB_GLOBAL_ERRNO
/* use function to get errno address */
#cmakedefine __PICOLIBC_ERRNO_FUNCTION @__PICOLIBC_ERRNO_FUNCTION@
/* use thread local storage */
#cmakedefine NEWLIB_TLS
/* Turn on mmu in picocrt startup code */
#cmakedefine _PICOCRT_ENABLE_MMU
/* use thread local storage */
#cmakedefine PICOLIBC_TLS
/* Use open/close/read/write in tinystdio */
#cmakedefine POSIX_IO
/* Use posix apis for console too */
#cmakedefine POSIX_CONSOLE
/* Optimize for space over speed */
#cmakedefine PREFER_SIZE_OVER_SPEED
/* Obsoleted. Reentrant syscalls provided for us */
#cmakedefine REENTRANT_SYSCALLS_PROVIDED
/* Use tiny stdio from gcc avr */
#cmakedefine TINY_STDIO
#cmakedefine _ATEXIT_DYNAMIC_ALLOC
#cmakedefine _PICOLIBC_ATOMIC_SIGNAL
#cmakedefine _FSEEK_OPTIMIZATION
#cmakedefine _FVWRITE_IN_STREAMIO
#cmakedefine _HAVE_ALIAS_ATTRIBUTE
/* The compiler REALLY has the attribute __alloc_size__ */
#cmakedefine _HAVE_ALLOC_SIZE
/* The compiler supports the always_inline function attribute */
#cmakedefine _HAVE_ATTRIBUTE_ALWAYS_INLINE
/* The compiler supports the gnu_inline function attribute */
#cmakedefine _HAVE_ATTRIBUTE_GNU_INLINE
/* Use bitfields in packed structs */
#cmakedefine _HAVE_BITFIELDS_IN_PACKED_STRUCTS
/* The compiler supports __builtin_alloca */
#cmakedefine _HAVE_BUILTIN_ALLOCA
/* The compiler supports __builtin_copysign */
#cmakedefine _HAVE_BUILTIN_COPYSIGN
/* The compiler supports __builtin_copysignl */
#cmakedefine _HAVE_BUILTIN_COPYSIGNL
/* The compiler supports __builtin_ctz */
#cmakedefine _HAVE_BUILTIN_CTZ
/* The compiler supports __builtin_ctzl */
#cmakedefine _HAVE_BUILTIN_CTZL
/* The compiler supports __builtin_ctzll */
#cmakedefine _HAVE_BUILTIN_CTZLL
/* Compiler has __builtin_expect */
#cmakedefine _HAVE_BUILTIN_EXPECT
/* The compiler supports __builtin_ffs */
#cmakedefine _HAVE_BUILTIN_FFS
/* The compiler supports __builtin_ffsl */
#cmakedefine _HAVE_BUILTIN_FFSL
/* The compiler supports __builtin_ffsll */
#cmakedefine _HAVE_BUILTIN_FFSLL
/* The compiler supports __builtin_finitel */
#cmakedefine _HAVE_BUILTIN_FINITEL
/* The compiler supports __builtin_isfinite */
#cmakedefine _HAVE_BUILTIN_ISFINITE
/* The compiler supports __builtin_isinf */
#cmakedefine _HAVE_BUILTIN_ISINF
/* The compiler supports __builtin_isinfl */
#cmakedefine _HAVE_BUILTIN_ISINFL
/* The compiler supports __builtin_isnan */
#cmakedefine _HAVE_BUILTIN_ISNAN
/* The compiler supports __builtin_isnanl */
#cmakedefine _HAVE_BUILTIN_ISNANL
/* Compiler has __builtin_mul_overflow */
#cmakedefine _HAVE_BUILTIN_MUL_OVERFLOW
/* Compiler has __builtin_add_overflow */
#cmakedefine _HAVE_BUILTIN_ADD_OVERFLOW
/* Compiler flag to prevent detecting memcpy/memset patterns */
#cmakedefine _HAVE_CC_INHIBIT_LOOP_TO_LIBCALL
/* Compiler supports _Complex */
#cmakedefine _HAVE_COMPLEX
/* Compiler supports __builtin_complex */
#cmakedefine _HAVE_BUILTIN_COMPLEX
#cmakedefine _HAVE_FCNTL
#cmakedefine _HAVE_FORMAT_ATTRIBUTE
/* IEEE fp funcs available */
#cmakedefine _HAVE_IEEEFP_FUNCS
/* compiler supports INIT_ARRAY sections */
#cmakedefine _HAVE_INITFINI_ARRAY
/* Support _init() and _fini() functions */
#cmakedefine _HAVE_INIT_FINI
/* Compiler has long double type */
#cmakedefine _HAVE_LONG_DOUBLE
/* Compiler attribute to prevent the optimizer from adding new builtin calls */
#cmakedefine _HAVE_NO_BUILTIN_ATTRIBUTE
/* _set_tls and _init_tls functions available */
#cmakedefine _HAVE_PICOLIBC_TLS_API
/* Semihost APIs supported */
#cmakedefine _HAVE_SEMIHOST
#cmakedefine _HAVE_WEAK_ATTRIBUTE
#cmakedefine _ICONV_ENABLE_EXTERNAL_CCS
#cmakedefine _ICONV_FROM_ENCODING_BIG5
#cmakedefine _ICONV_FROM_ENCODING_CP775
#cmakedefine _ICONV_FROM_ENCODING_CP850
#cmakedefine _ICONV_FROM_ENCODING_CP852
#cmakedefine _ICONV_FROM_ENCODING_CP855
#cmakedefine _ICONV_FROM_ENCODING_CP866
#cmakedefine _ICONV_FROM_ENCODING_EUC_JP
#cmakedefine _ICONV_FROM_ENCODING_EUC_KR
#cmakedefine _ICONV_FROM_ENCODING_EUC_TW
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_1
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_10
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_11
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_13
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_14
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_15
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_2
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_3
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_4
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_5
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_6
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_7
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_8
#cmakedefine _ICONV_FROM_ENCODING_ISO_8859_9
#cmakedefine _ICONV_FROM_ENCODING_ISO_IR_111
#cmakedefine _ICONV_FROM_ENCODING_KOI8_R
#cmakedefine _ICONV_FROM_ENCODING_KOI8_RU
#cmakedefine _ICONV_FROM_ENCODING_KOI8_U
#cmakedefine _ICONV_FROM_ENCODING_KOI8_UNI
#cmakedefine _ICONV_FROM_ENCODING_UCS_2
#cmakedefine _ICONV_FROM_ENCODING_UCS_2BE
#cmakedefine _ICONV_FROM_ENCODING_UCS_2LE
#cmakedefine _ICONV_FROM_ENCODING_UCS_2_INTERNAL
#cmakedefine _ICONV_FROM_ENCODING_UCS_4
#cmakedefine _ICONV_FROM_ENCODING_UCS_4BE
#cmakedefine _ICONV_FROM_ENCODING_UCS_4LE
#cmakedefine _ICONV_FROM_ENCODING_UCS_4_INTERNAL
#cmakedefine _ICONV_FROM_ENCODING_US_ASCII
#cmakedefine _ICONV_FROM_ENCODING_UTF_16
#cmakedefine _ICONV_FROM_ENCODING_UTF_16BE
#cmakedefine _ICONV_FROM_ENCODING_UTF_16LE
#cmakedefine _ICONV_FROM_ENCODING_UTF_8
#cmakedefine _ICONV_FROM_ENCODING_WIN_1250
#cmakedefine _ICONV_FROM_ENCODING_WIN_1251
#cmakedefine _ICONV_FROM_ENCODING_WIN_1252
#cmakedefine _ICONV_FROM_ENCODING_WIN_1253
#cmakedefine _ICONV_FROM_ENCODING_WIN_1254
#cmakedefine _ICONV_FROM_ENCODING_WIN_1255
#cmakedefine _ICONV_FROM_ENCODING_WIN_1256
#cmakedefine _ICONV_FROM_ENCODING_WIN_1257
#cmakedefine _ICONV_FROM_ENCODING_WIN_1258
#cmakedefine _ICONV_TO_ENCODING_BIG5
#cmakedefine _ICONV_TO_ENCODING_CP775
#cmakedefine _ICONV_TO_ENCODING_CP850
#cmakedefine _ICONV_TO_ENCODING_CP852
#cmakedefine _ICONV_TO_ENCODING_CP855
#cmakedefine _ICONV_TO_ENCODING_CP866
#cmakedefine _ICONV_TO_ENCODING_EUC_JP
#cmakedefine _ICONV_TO_ENCODING_EUC_KR
#cmakedefine _ICONV_TO_ENCODING_EUC_TW
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_1
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_10
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_11
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_13
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_14
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_15
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_2
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_3
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_4
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_5
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_6
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_7
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_8
#cmakedefine _ICONV_TO_ENCODING_ISO_8859_9
#cmakedefine _ICONV_TO_ENCODING_ISO_IR_111
#cmakedefine _ICONV_TO_ENCODING_KOI8_R
#cmakedefine _ICONV_TO_ENCODING_KOI8_RU
#cmakedefine _ICONV_TO_ENCODING_KOI8_U
#cmakedefine _ICONV_TO_ENCODING_KOI8_UNI
#cmakedefine _ICONV_TO_ENCODING_UCS_2
#cmakedefine _ICONV_TO_ENCODING_UCS_2BE
#cmakedefine _ICONV_TO_ENCODING_UCS_2LE
#cmakedefine _ICONV_TO_ENCODING_UCS_2_INTERNAL
#cmakedefine _ICONV_TO_ENCODING_UCS_4
#cmakedefine _ICONV_TO_ENCODING_UCS_4BE
#cmakedefine _ICONV_TO_ENCODING_UCS_4LE
#cmakedefine _ICONV_TO_ENCODING_UCS_4_INTERNAL
#cmakedefine _ICONV_TO_ENCODING_US_ASCII
#cmakedefine _ICONV_TO_ENCODING_UTF_16
#cmakedefine _ICONV_TO_ENCODING_UTF_16BE
#cmakedefine _ICONV_TO_ENCODING_UTF_16LE
#cmakedefine _ICONV_TO_ENCODING_UTF_8
#cmakedefine _ICONV_TO_ENCODING_WIN_1250
#cmakedefine _ICONV_TO_ENCODING_WIN_1251
#cmakedefine _ICONV_TO_ENCODING_WIN_1252
#cmakedefine _ICONV_TO_ENCODING_WIN_1253
#cmakedefine _ICONV_TO_ENCODING_WIN_1254
#cmakedefine _ICONV_TO_ENCODING_WIN_1255
#cmakedefine _ICONV_TO_ENCODING_WIN_1256
#cmakedefine _ICONV_TO_ENCODING_WIN_1257
#cmakedefine _ICONV_TO_ENCODING_WIN_1258
/* math library does not set errno (offering only ieee semantics) */
#cmakedefine _IEEE_LIBM
#cmakedefine _IO_FLOAT_EXACT
#cmakedefine _PRINTF_SMALL_ULTOA
#cmakedefine _PRINTF_PERCENT_N
#cmakedefine _WANT_IO_PERCENT_B
#cmakedefine _WANT_IO_WCHAR
#cmakedefine _LITE_EXIT
#cmakedefine _MB_CAPABLE
#cmakedefine _NANO_FORMATTED_IO
#cmakedefine _NANO_MALLOC
/* The newlib version in string format. */
#define _NEWLIB_VERSION "@NEWLIB_VERSION@"
#cmakedefine _PICO_EXIT
/* The Picolibc minor version number. */
#define _PICOLIBC_MINOR__ @PROJECT_VERSION_MINOR@
/* The Picolibc version in string format. */
#define _PICOLIBC_VERSION "@PROJECT_VERSION@"
/* The Picolibc major version number. */
#define _PICOLIBC__ @PROJECT_VERSION_MAJOR@
#cmakedefine _REENT_GLOBAL_ATEXIT
#cmakedefine _RETARGETABLE_LOCKING
#cmakedefine _UNBUF_STREAM_OPT
#cmakedefine _WANT_IO_C99_FORMATS
#cmakedefine _WANT_IO_LONG_LONG
#cmakedefine _WANT_IO_LONG_DOUBLE
#cmakedefine _WANT_MINIMAL_IO_LONG_LONG
#cmakedefine _WANT_IO_POS_ARGS
#cmakedefine _FORMAT_DEFAULT_DOUBLE
#cmakedefine _FORMAT_DEFAULT_FLOAT
#cmakedefine _FORMAT_DEFAULT_LONG_LONG
#cmakedefine _FORMAT_DEFAULT_INTEGER
#cmakedefine _FORMAT_DEFAULT_MINIMAL
/* math library sets errno */
#cmakedefine _WANT_MATH_ERRNO
#cmakedefine _WANT_REENT_SMALL
#cmakedefine _WANT_REGISTER_FINI
/* Obsoleted. Define time_t to long instead of using a 64-bit type */
#cmakedefine _WANT_USE_LONG_TIME_T
#cmakedefine _WIDE_ORIENT
/* chatty assert */
#cmakedefine _ASSERT_VERBOSE
/* extended locale support */
#cmakedefine __HAVE_LOCALE_INFO_EXTENDED__
/* locale support */
#cmakedefine __HAVE_LOCALE_INFO__
/* elix level */
#cmakedefine _ELIX_LEVEL @_ELIX_LEVEL@
/* The newlib minor version number. */
#define __NEWLIB_MINOR__ @NEWLIB_MINOR@
/* The newlib patch level. */
#define __NEWLIB_PATCHLEVEL__ @NEWLIB_PATCH@
/* The newlib major version number. */
#define __NEWLIB__ @NEWLIB_MAJOR@
/* Use old math code */
#define __OBSOLETE_MATH_FLOAT @__OBSOLETE_MATH_FLOAT@
#define __OBSOLETE_MATH_DOUBLE @__OBSOLETE_MATH_DOUBLE@
/* Compute static memory area sizes at runtime instead of link time */
#cmakedefine __PICOLIBC_CRT_RUNTIME_SIZE
/* The Picolibc minor version number. */
#define __PICOLIBC_MINOR__ @PROJECT_VERSION_MINOR@
/* The Picolibc patch level. */
#define __PICOLIBC_PATCHLEVEL__ @PROJECT_VERSION_PATCH@
/* The Picolibc version in string format. */
#define __PICOLIBC_VERSION__ "@PROJECT_VERSION@"
/* The Picolibc major version number. */
#define __PICOLIBC__ @PROJECT_VERSION_MAJOR@
#cmakedefine __SINGLE_THREAD__
/* Compiler has Xtensa-specific core-isa.h header file */
#cmakedefine _XTENSA_HAVE_CONFIG_CORE_ISA_H