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__ */
 |