mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-11-04 08:01:38 +01:00 
			
		
		
		
	
		
			
	
	
		
			301 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			301 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#ifndef __SYS_CONFIG_H__
							 | 
						||
| 
								 | 
							
								#define __SYS_CONFIG_H__
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <machine/ieeefp.h>  /* floating point macros */
							 | 
						||
| 
								 | 
							
								#include <sys/features.h>	/* POSIX defs */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __aarch64__
							 | 
						||
| 
								 | 
							
								#define MALLOC_ALIGNMENT 16
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* exceptions first */
							 | 
						||
| 
								 | 
							
								#if defined(__H8500__) || defined(__W65__)
							 | 
						||
| 
								 | 
							
								#define __SMALL_BITFIELDS
							 | 
						||
| 
								 | 
							
								/* ???  This conditional is true for the h8500 and the w65, defining H8300
							 | 
						||
| 
								 | 
							
								   in those cases probably isn't the right thing to do.  */
							 | 
						||
| 
								 | 
							
								#define H8300 1
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* 16 bit integer machines */
							 | 
						||
| 
								 | 
							
								#if defined(__Z8001__) || defined(__Z8002__) || defined(__H8500__) || defined(__W65__) || defined (__mn10200__) || defined (__AVR__)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#undef INT_MAX
							 | 
						||
| 
								 | 
							
								#undef UINT_MAX
							 | 
						||
| 
								 | 
							
								#define INT_MAX 32767
							 | 
						||
| 
								 | 
							
								#define UINT_MAX 65535
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined (__H8300__) || defined (__H8300H__) || defined(__H8300S__) || defined (__H8300SX__)
							 | 
						||
| 
								 | 
							
								#define __SMALL_BITFIELDS
							 | 
						||
| 
								 | 
							
								#define H8300 1
							 | 
						||
| 
								 | 
							
								#undef INT_MAX
							 | 
						||
| 
								 | 
							
								#undef UINT_MAX
							 | 
						||
| 
								 | 
							
								#define INT_MAX __INT_MAX__
							 | 
						||
| 
								 | 
							
								#define UINT_MAX (__INT_MAX__ * 2U + 1)
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__))
							 | 
						||
| 
								 | 
							
								#ifndef __INT32__
							 | 
						||
| 
								 | 
							
								#define __SMALL_BITFIELDS      
							 | 
						||
| 
								 | 
							
								#undef INT_MAX
							 | 
						||
| 
								 | 
							
								#undef UINT_MAX
							 | 
						||
| 
								 | 
							
								#define INT_MAX 32767
							 | 
						||
| 
								 | 
							
								#define UINT_MAX (__INT_MAX__ * 2U + 1)
							 | 
						||
| 
								 | 
							
								#else /* INT32 */
							 | 
						||
| 
								 | 
							
								#undef INT_MAX
							 | 
						||
| 
								 | 
							
								#undef UINT_MAX
							 | 
						||
| 
								 | 
							
								#define INT_MAX 2147483647
							 | 
						||
| 
								 | 
							
								#define UINT_MAX (__INT_MAX__ * 2U + 1)
							 | 
						||
| 
								 | 
							
								#endif /* INT32 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* CR16C */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__)
							 | 
						||
| 
								 | 
							
								#define __SMALL_BITFIELDS
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __W65__
							 | 
						||
| 
								 | 
							
								#define __SMALL_BITFIELDS
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(__D10V__)
							 | 
						||
| 
								 | 
							
								#define __SMALL_BITFIELDS
							 | 
						||
| 
								 | 
							
								#undef INT_MAX
							 | 
						||
| 
								 | 
							
								#undef UINT_MAX
							 | 
						||
| 
								 | 
							
								#define INT_MAX __INT_MAX__
							 | 
						||
| 
								 | 
							
								#define UINT_MAX (__INT_MAX__ * 2U + 1)
							 | 
						||
| 
								 | 
							
								#define _POINTER_INT short
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__)
							 | 
						||
| 
								 | 
							
								#undef INT_MAX
							 | 
						||
| 
								 | 
							
								#undef UINT_MAX
							 | 
						||
| 
								 | 
							
								#define INT_MAX __INT_MAX__
							 | 
						||
| 
								 | 
							
								#define UINT_MAX (__INT_MAX__ * 2U + 1)
							 | 
						||
| 
								 | 
							
								#define _POINTER_INT short
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(__m68k__) || defined(__mc68000__)
							 | 
						||
| 
								 | 
							
								#define _READ_WRITE_RETURN_TYPE _ssize_t
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef ___AM29K__
							 | 
						||
| 
								 | 
							
								#define _FLOAT_RET double
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __i386__
							 | 
						||
| 
								 | 
							
								#ifndef __unix__
							 | 
						||
| 
								 | 
							
								/* in other words, go32 */
							 | 
						||
| 
								 | 
							
								#define _FLOAT_RET double
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#if defined(__linux__) || defined(__RDOS__)
							 | 
						||
| 
								 | 
							
								/* we want the reentrancy structure to be returned by a function */
							 | 
						||
| 
								 | 
							
								#define __DYNAMIC_REENT__
							 | 
						||
| 
								 | 
							
								#define HAVE_GETDATE
							 | 
						||
| 
								 | 
							
								#define _HAVE_SYSTYPES
							 | 
						||
| 
								 | 
							
								#define _READ_WRITE_RETURN_TYPE _ssize_t
							 | 
						||
| 
								 | 
							
								#define __LARGE64_FILES 1
							 | 
						||
| 
								 | 
							
								/* we use some glibc header files so turn on glibc large file feature */
							 | 
						||
| 
								 | 
							
								#define _LARGEFILE64_SOURCE 1
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __mn10200__
							 | 
						||
| 
								 | 
							
								#define __SMALL_BITFIELDS
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __AVR__
							 | 
						||
| 
								 | 
							
								#define __SMALL_BITFIELDS
							 | 
						||
| 
								 | 
							
								#define _POINTER_INT short
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __v850
							 | 
						||
| 
								 | 
							
								#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__))
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* For the PowerPC eabi, force the _impure_ptr to be in .sdata */
							 | 
						||
| 
								 | 
							
								#if defined(__PPC__)
							 | 
						||
| 
								 | 
							
								#if defined(_CALL_SYSV)
							 | 
						||
| 
								 | 
							
								#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#ifdef __SPE__
							 | 
						||
| 
								 | 
							
								#define _LONG_DOUBLE double
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Configure small REENT structure for Xilinx MicroBlaze platforms */
							 | 
						||
| 
								 | 
							
								#if defined (__MICROBLAZE__)
							 | 
						||
| 
								 | 
							
								#ifndef _REENT_SMALL
							 | 
						||
| 
								 | 
							
								#define _REENT_SMALL
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								/* Xilinx XMK uses Unix98 mutex */
							 | 
						||
| 
								 | 
							
								#ifdef __XMK__
							 | 
						||
| 
								 | 
							
								#define _UNIX98_THREAD_MUTEX_ATTRIBUTES
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(__mips__) && !defined(__rtems__)
							 | 
						||
| 
								 | 
							
								#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __xstormy16__
							 | 
						||
| 
								 | 
							
								#define __SMALL_BITFIELDS
							 | 
						||
| 
								 | 
							
								#undef INT_MAX
							 | 
						||
| 
								 | 
							
								#undef UINT_MAX
							 | 
						||
| 
								 | 
							
								#define INT_MAX __INT_MAX__
							 | 
						||
| 
								 | 
							
								#define UINT_MAX (__INT_MAX__ * 2U + 1)
							 | 
						||
| 
								 | 
							
								#define MALLOC_ALIGNMENT 8
							 | 
						||
| 
								 | 
							
								#define _POINTER_INT short
							 | 
						||
| 
								 | 
							
								#define __BUFSIZ__ 16
							 | 
						||
| 
								 | 
							
								#define _REENT_SMALL
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined __MSP430__
							 | 
						||
| 
								 | 
							
								#ifndef _REENT_SMALL
							 | 
						||
| 
								 | 
							
								#define _REENT_SMALL
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define __SMALL_BITFIELDS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __MSP430X_LARGE__
							 | 
						||
| 
								 | 
							
								#define _POINTER_INT long
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#define _POINTER_INT int
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __m32c__
							 | 
						||
| 
								 | 
							
								#define __SMALL_BITFIELDS
							 | 
						||
| 
								 | 
							
								#undef INT_MAX
							 | 
						||
| 
								 | 
							
								#undef UINT_MAX
							 | 
						||
| 
								 | 
							
								#define INT_MAX __INT_MAX__
							 | 
						||
| 
								 | 
							
								#define UINT_MAX (__INT_MAX__ * 2U + 1)
							 | 
						||
| 
								 | 
							
								#define MALLOC_ALIGNMENT 8
							 | 
						||
| 
								 | 
							
								#if defined(__r8c_cpu__) || defined(__m16c_cpu__)
							 | 
						||
| 
								 | 
							
								#define _POINTER_INT short
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#define _POINTER_INT long
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#define __BUFSIZ__ 16
							 | 
						||
| 
								 | 
							
								#define _REENT_SMALL
							 | 
						||
| 
								 | 
							
								#endif /* __m32c__ */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __SPU__
							 | 
						||
| 
								 | 
							
								#define MALLOC_ALIGNMENT 16
							 | 
						||
| 
								 | 
							
								#define __CUSTOM_FILE_IO__
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __XTENSA__
							 | 
						||
| 
								 | 
							
								#include <xtensa/config/core-isa.h>
							 | 
						||
| 
								 | 
							
								#define MALLOC_ALIGNMENT ((XCHAL_DATA_WIDTH) < 16 ? 16 : (XCHAL_DATA_WIDTH))
							 | 
						||
| 
								 | 
							
								/* esp8266-specific: shrink the default fd buffer size */
							 | 
						||
| 
								 | 
							
								#define __BUFSIZ__ 128
							 | 
						||
| 
								 | 
							
								#ifndef __DYNAMIC_REENT__
							 | 
						||
| 
								 | 
							
								#define __DYNAMIC_REENT__
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#ifndef _REENT_SMALL
							 | 
						||
| 
								 | 
							
								#define _REENT_SMALL
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#define HAVE_GETOPT
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* This block should be kept in sync with GCC's limits.h.  The point
							 | 
						||
| 
								 | 
							
								   of having these definitions here is to not include limits.h, which
							 | 
						||
| 
								 | 
							
								   would pollute the user namespace, while still using types of the
							 | 
						||
| 
								 | 
							
								   the correct widths when deciding how to define __int32_t and
							 | 
						||
| 
								 | 
							
								   __int64_t.  */
							 | 
						||
| 
								 | 
							
								#ifndef __INT_MAX__
							 | 
						||
| 
								 | 
							
								# ifdef INT_MAX
							 | 
						||
| 
								 | 
							
								#  define __INT_MAX__ INT_MAX
							 | 
						||
| 
								 | 
							
								# else
							 | 
						||
| 
								 | 
							
								#  define __INT_MAX__ 2147483647
							 | 
						||
| 
								 | 
							
								# endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef __LONG_MAX__
							 | 
						||
| 
								 | 
							
								# ifdef LONG_MAX
							 | 
						||
| 
								 | 
							
								#  define __LONG_MAX__ LONG_MAX
							 | 
						||
| 
								 | 
							
								# else
							 | 
						||
| 
								 | 
							
								#  if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) \
							 | 
						||
| 
								 | 
							
								      || defined (__sparcv9)
							 | 
						||
| 
								 | 
							
								#   define __LONG_MAX__ 9223372036854775807L
							 | 
						||
| 
								 | 
							
								#  else
							 | 
						||
| 
								 | 
							
								#   define __LONG_MAX__ 2147483647L
							 | 
						||
| 
								 | 
							
								#  endif /* __alpha__ || sparc64 */
							 | 
						||
| 
								 | 
							
								# endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								/* End of block that should be kept in sync with GCC's limits.h.  */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef _POINTER_INT
							 | 
						||
| 
								 | 
							
								#define _POINTER_INT long
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __frv__
							 | 
						||
| 
								 | 
							
								#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#undef __RAND_MAX
							 | 
						||
| 
								 | 
							
								#if __INT_MAX__ == 32767
							 | 
						||
| 
								 | 
							
								#define __RAND_MAX 32767
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#define __RAND_MAX 0x7fffffff
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(__CYGWIN__)
							 | 
						||
| 
								 | 
							
								#include <cygwin/config.h>
							 | 
						||
| 
								 | 
							
								#if !defined (__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L)
							 | 
						||
| 
								 | 
							
								#define __USE_XOPEN2K 1
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(__rtems__)
							 | 
						||
| 
								 | 
							
								#define __FILENAME_MAX__ 255
							 | 
						||
| 
								 | 
							
								#define _READ_WRITE_RETURN_TYPE _ssize_t
							 | 
						||
| 
								 | 
							
								#define __DYNAMIC_REENT__
							 | 
						||
| 
								 | 
							
								#define _REENT_GLOBAL_ATEXIT
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef __EXPORT
							 | 
						||
| 
								 | 
							
								#define __EXPORT
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef __IMPORT
							 | 
						||
| 
								 | 
							
								#define __IMPORT
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Define return type of read/write routines.  In POSIX, the return type
							 | 
						||
| 
								 | 
							
								   for read()/write() is "ssize_t" but legacy newlib code has been using
							 | 
						||
| 
								 | 
							
								   "int" for some time.  If not specified, "int" is defaulted.  */
							 | 
						||
| 
								 | 
							
								#ifndef _READ_WRITE_RETURN_TYPE
							 | 
						||
| 
								 | 
							
								#define _READ_WRITE_RETURN_TYPE int
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								/* Define `count' parameter of read/write routines.  In POSIX, the `count'
							 | 
						||
| 
								 | 
							
								   parameter is "size_t" but legacy newlib code has been using "int" for some
							 | 
						||
| 
								 | 
							
								   time.  If not specified, "int" is defaulted.  */
							 | 
						||
| 
								 | 
							
								#ifndef _READ_WRITE_BUFSIZE_TYPE
							 | 
						||
| 
								 | 
							
								#define _READ_WRITE_BUFSIZE_TYPE int
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef __WCHAR_MAX__
							 | 
						||
| 
								 | 
							
								#if __INT_MAX__ == 32767 || defined (_WIN32)
							 | 
						||
| 
								 | 
							
								#define __WCHAR_MAX__ 0xffffu
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* See if small reent asked for at configuration time and
							 | 
						||
| 
								 | 
							
								   is not chosen by the platform by default.  */
							 | 
						||
| 
								 | 
							
								#ifdef _WANT_REENT_SMALL
							 | 
						||
| 
								 | 
							
								#ifndef _REENT_SMALL
							 | 
						||
| 
								 | 
							
								#define _REENT_SMALL
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* If _MB_EXTENDED_CHARSETS_ALL is set, we want all of the extended
							 | 
						||
| 
								 | 
							
								   charsets.  The extended charsets add a few functions and a couple
							 | 
						||
| 
								 | 
							
								   of tables of a few K each. */
							 | 
						||
| 
								 | 
							
								#ifdef _MB_EXTENDED_CHARSETS_ALL
							 | 
						||
| 
								 | 
							
								#define _MB_EXTENDED_CHARSETS_ISO 1
							 | 
						||
| 
								 | 
							
								#define _MB_EXTENDED_CHARSETS_WINDOWS 1
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* __SYS_CONFIG_H__ */
							 |