#ifndef __SYS_CONFIG_H__
#define __SYS_CONFIG_H__
#include <machine/ieeefp.h>
#include <sys/features.h>
#ifdef __aarch64__
#define MALLOC_ALIGNMENT 16
#endif
#if defined(__H8500__) || defined(__W65__)
#define __SMALL_BITFIELDS
#define H8300 1
#endif
#if defined(__Z8001__) || defined(__Z8002__) || defined(__H8500__) || defined(__W65__) \
|| defined(__mn10200__) || defined(__AVR__) || defined(__MSP430__)
#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
#undef INT_MAX
#undef UINT_MAX
#define INT_MAX 2147483647
#define UINT_MAX (__INT_MAX__ * 2U + 1)
#endif
#endif
#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
#ifdef __i386__
#if defined(__linux__) || defined(__RDOS__)
#define HAVE_GETDATE
#ifndef __LARGE64_FILES
#define __LARGE64_FILES 1
#endif
#define _LARGEFILE64_SOURCE 1
#endif
#endif
#ifdef __mn10200__
#define __SMALL_BITFIELDS
#endif
#ifdef __AVR__
#define __SMALL_BITFIELDS
#define _POINTER_INT short
#endif
#if defined(__MICROBLAZE__) && !defined(__rtems__)
#ifdef __XMK__
#define _UNIX98_THREAD_MUTEX_ATTRIBUTES
#endif
#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
#endif
#if defined __MSP430__
#define __BUFSIZ__ 256
#define __SMALL_BITFIELDS
#ifdef __MSP430X_LARGE__
#define _POINTER_INT __int20
#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
#endif
#ifdef __SPU__
#define MALLOC_ALIGNMENT 16
#define __CUSTOM_FILE_IO__
#endif
#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
#endif
#endif
#ifndef _POINTER_INT
#define _POINTER_INT long
#endif
#undef __RAND_MAX
#if __INT_MAX__ == 32767
#define __RAND_MAX 32767
#else
#define __RAND_MAX 0x7fffffff
#endif
#if defined(__rtems__)
#define __FILENAME_MAX__ 255
#endif
#ifndef __WCHAR_MAX__
#if __INT_MAX__ == 32767 || defined(_WIN32)
#define __WCHAR_MAX__ 0xffffu
#endif
#endif
#ifdef __THREAD_LOCAL_STORAGE
#if (defined(__cplusplus) && (__cplusplus) >= 201103L) \
|| (defined(__STDC_VERSION__) && (__STDC_VERSION__) >= 202311L)
#define __THREAD_LOCAL thread_local
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__) >= 201112L
#define __THREAD_LOCAL _Thread_local
#else
#define __THREAD_LOCAL __thread
#endif
#else
#define __THREAD_LOCAL
#endif
#ifndef __MB_CAPABLE
#undef __MB_EXTENDED_CHARSETS_ALL
#undef __MB_EXTENDED_CHARSETS_ANY
#undef __MB_EXTENDED_CHARSETS_UCS
#undef __MB_EXTENDED_CHARSETS_ISO
#undef __MB_EXTENDED_CHARSETS_WINDOWS
#undef __MB_EXTENDED_CHARSETS_JIS
#endif
#ifdef __MB_EXTENDED_CHARSETS_ALL
#define __MB_EXTENDED_CHARSETS_UCS 1
#define __MB_EXTENDED_CHARSETS_ISO 1
#define __MB_EXTENDED_CHARSETS_WINDOWS 1
#define __MB_EXTENDED_CHARSETS_JIS 1
#endif
#if defined(__MB_EXTENDED_CHARSETS_ISO) || defined(__MB_EXTENDED_CHARSETS_WINDOWS) \
|| defined(__MB_EXTENDED_CHARSETS_JIS)
#define __MB_EXTENDED_CHARSETS_NON_UNICODE
#endif
#if defined(__MB_EXTENDED_CHARSETS_UCS) || defined(__MB_EXTENDED_CHARSETS_NON_UNICODE)
#define __MB_EXTENDED_CHARSETS_ANY
#endif
#ifdef __SIZEOF_LONG_DOUBLE__
#define __HAVE_LONG_DOUBLE
#endif
#if defined(_LDBL_EQ_DBL) || defined(__CYGWIN__) \
|| (defined(__HAVE_LONG_DOUBLE) && __SIZEOF_LONG_DOUBLE__ <= 8) \
|| (__LDBL_MANT_DIG__ == 64 || __LDBL_MANT_DIG__ == 113)
#define __HAVE_LONG_DOUBLE_MATH
#endif
#endif