mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 06:11:06 +00: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__ */
 |