mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-10-31 22:21:39 +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__ */
 |