kusano 7d535a
/* ACC --- Automatic Compiler Configuration
kusano 7d535a
kusano 7d535a
   This file is part of the LZO real-time data compression library.
kusano 7d535a
kusano 7d535a
   Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
kusano 7d535a
   All Rights Reserved.
kusano 7d535a
kusano 7d535a
   The LZO library is free software; you can redistribute it and/or
kusano 7d535a
   modify it under the terms of the GNU General Public License as
kusano 7d535a
   published by the Free Software Foundation; either version 2 of
kusano 7d535a
   the License, or (at your option) any later version.
kusano 7d535a
kusano 7d535a
   The LZO library is distributed in the hope that it will be useful,
kusano 7d535a
   but WITHOUT ANY WARRANTY; without even the implied warranty of
kusano 7d535a
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
kusano 7d535a
   GNU General Public License for more details.
kusano 7d535a
kusano 7d535a
   You should have received a copy of the GNU General Public License
kusano 7d535a
   along with the LZO library; see the file COPYING.
kusano 7d535a
   If not, write to the Free Software Foundation, Inc.,
kusano 7d535a
   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
kusano 7d535a
kusano 7d535a
   Markus F.X.J. Oberhumer
kusano 7d535a
   <markus@oberhumer.com>
kusano 7d535a
   http://www.oberhumer.com/opensource/lzo/
kusano 7d535a
 */
kusano 7d535a
kusano 7d535a
kusano 7d535a
#ifndef __ACC_H_INCLUDED
kusano 7d535a
#define __ACC_H_INCLUDED 1
kusano 7d535a
#define ACC_VERSION     20080430L
kusano 7d535a
#if defined(__CYGWIN32__) && !defined(__CYGWIN__)
kusano 7d535a
#  define __CYGWIN__ __CYGWIN32__
kusano 7d535a
#endif
kusano 7d535a
#if defined(__IBMCPP__) && !defined(__IBMC__)
kusano 7d535a
#  define __IBMC__ __IBMCPP__
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ICL) && defined(_WIN32) && !defined(__INTEL_COMPILER)
kusano 7d535a
#  define __INTEL_COMPILER __ICL
kusano 7d535a
#endif
kusano 7d535a
#if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE)
kusano 7d535a
#  define _ALL_SOURCE 1
kusano 7d535a
#endif
kusano 7d535a
#if defined(__mips__) && defined(__R5900__)
kusano 7d535a
#  if !defined(__LONG_MAX__)
kusano 7d535a
#    define __LONG_MAX__ 9223372036854775807L
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__INTEL_COMPILER) && defined(__linux__)
kusano 7d535a
#  pragma warning(disable: 193)
kusano 7d535a
#endif
kusano 7d535a
#if defined(__KEIL__) && defined(__C166__)
kusano 7d535a
#  pragma warning disable = 322
kusano 7d535a
#elif 0 && defined(__C251__)
kusano 7d535a
#  pragma warning disable = 322
kusano 7d535a
#endif
kusano 7d535a
#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__)
kusano 7d535a
#  if (_MSC_VER >= 1300)
kusano 7d535a
#    pragma warning(disable: 4668)
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__POCC__) && defined(_WIN32)
kusano 7d535a
#  if (__POCC__ >= 400)
kusano 7d535a
#    pragma warn(disable: 2216)
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if 0 && defined(__WATCOMC__)
kusano 7d535a
#  if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060)
kusano 7d535a
#    pragma warning 203 9
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__)
kusano 7d535a
#  pragma option -h
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_CFG_NO_CONFIG_HEADER)
kusano 7d535a
#elif defined(ACC_CFG_CONFIG_HEADER)
kusano 7d535a
#  include ACC_CFG_CONFIG_HEADER
kusano 7d535a
#else
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_CFG_NO_LIMITS_H)
kusano 7d535a
#elif defined(ACC_LIBC_NAKED) || defined(ACC_BROKEN_LIMITS_H)
kusano 7d535a
#ifndef __ACC_FALLBACK_LIMITS_H_INCLUDED
kusano 7d535a
#define __ACC_FALLBACK_LIMITS_H_INCLUDED
kusano 7d535a
#undef CHAR_BIT
kusano 7d535a
#define CHAR_BIT        8
kusano 7d535a
#ifndef MB_LEN_MAX
kusano 7d535a
#define MB_LEN_MAX      1
kusano 7d535a
#endif
kusano 7d535a
#ifndef __SCHAR_MAX__
kusano 7d535a
#define __SCHAR_MAX__   127
kusano 7d535a
#endif
kusano 7d535a
#ifndef __SHRT_MAX__
kusano 7d535a
#define __SHRT_MAX__    32767
kusano 7d535a
#endif
kusano 7d535a
#ifndef __INT_MAX__
kusano 7d535a
#define __INT_MAX__     2147483647
kusano 7d535a
#endif
kusano 7d535a
#ifndef __LONG_MAX__
kusano 7d535a
#if defined(__alpha__) || defined(_LP64) || defined(__MIPS_PSX2__)
kusano 7d535a
#define __LONG_MAX__    9223372036854775807L
kusano 7d535a
#else
kusano 7d535a
#define __LONG_MAX__    2147483647L
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#undef SCHAR_MIN
kusano 7d535a
#undef SCHAR_MAX
kusano 7d535a
#undef UCHAR_MAX
kusano 7d535a
#define SCHAR_MIN       (-1 - SCHAR_MAX)
kusano 7d535a
#define SCHAR_MAX       (__SCHAR_MAX__)
kusano 7d535a
#define UCHAR_MAX       (SCHAR_MAX * 2 + 1)
kusano 7d535a
#undef SHRT_MIN
kusano 7d535a
#undef SHRT_MAX
kusano 7d535a
#undef USHRT_MAX
kusano 7d535a
#define SHRT_MIN        (-1 - SHRT_MAX)
kusano 7d535a
#define SHRT_MAX        (__SHRT_MAX__)
kusano 7d535a
#if ((__INT_MAX__) == (__SHRT_MAX__))
kusano 7d535a
#define USHRT_MAX       (SHRT_MAX * 2U + 1U)
kusano 7d535a
#else
kusano 7d535a
#define USHRT_MAX       (SHRT_MAX * 2 + 1)
kusano 7d535a
#endif
kusano 7d535a
#undef INT_MIN
kusano 7d535a
#undef INT_MAX
kusano 7d535a
#undef UINT_MAX
kusano 7d535a
#define INT_MIN         (-1 - INT_MAX)
kusano 7d535a
#define INT_MAX         (__INT_MAX__)
kusano 7d535a
#define UINT_MAX        (INT_MAX * 2U + 1U)
kusano 7d535a
#undef LONG_MIN
kusano 7d535a
#undef LONG_MAX
kusano 7d535a
#undef ULONG_MAX
kusano 7d535a
#define LONG_MIN        (-1L - LONG_MAX)
kusano 7d535a
#define LONG_MAX        ((__LONG_MAX__) + 0L)
kusano 7d535a
#define ULONG_MAX       (LONG_MAX * 2UL + 1UL)
kusano 7d535a
#undef CHAR_MIN
kusano 7d535a
#undef CHAR_MAX
kusano 7d535a
#if defined(__CHAR_UNSIGNED__) || defined(_CHAR_UNSIGNED)
kusano 7d535a
#define CHAR_MIN        0
kusano 7d535a
#define CHAR_MAX        UCHAR_MAX
kusano 7d535a
#else
kusano 7d535a
#define CHAR_MIN        SCHAR_MIN
kusano 7d535a
#define CHAR_MAX        SCHAR_MAX
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#else
kusano 7d535a
#  include <limits.h>
kusano 7d535a
#endif
kusano 7d535a
#if 0
kusano 7d535a
#define ACC_0xffffL             0xfffful
kusano 7d535a
#define ACC_0xffffffffL         0xfffffffful
kusano 7d535a
#else
kusano 7d535a
#define ACC_0xffffL             65535ul
kusano 7d535a
#define ACC_0xffffffffL         4294967295ul
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_0xffffL == ACC_0xffffffffL)
kusano 7d535a
#  error "your preprocessor is broken 1"
kusano 7d535a
#endif
kusano 7d535a
#if (16ul * 16384ul != 262144ul)
kusano 7d535a
#  error "your preprocessor is broken 2"
kusano 7d535a
#endif
kusano 7d535a
#if 0
kusano 7d535a
#if (32767 >= 4294967295ul)
kusano 7d535a
#  error "your preprocessor is broken 3"
kusano 7d535a
#endif
kusano 7d535a
#if (65535u >= 4294967295ul)
kusano 7d535a
#  error "your preprocessor is broken 4"
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (UINT_MAX == ACC_0xffffL)
kusano 7d535a
#if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__)
kusano 7d535a
#  if !defined(MSDOS)
kusano 7d535a
#    define MSDOS 1
kusano 7d535a
#  endif
kusano 7d535a
#  if !defined(_MSDOS)
kusano 7d535a
#    define _MSDOS 1
kusano 7d535a
#  endif
kusano 7d535a
#elif 0 && defined(__VERSION) && defined(MB_LEN_MAX)
kusano 7d535a
#  if (__VERSION == 520) && (MB_LEN_MAX == 1)
kusano 7d535a
#    if !defined(__AZTEC_C__)
kusano 7d535a
#      define __AZTEC_C__ __VERSION
kusano 7d535a
#    endif
kusano 7d535a
#    if !defined(__DOS__)
kusano 7d535a
#      define __DOS__ 1
kusano 7d535a
#    endif
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == ACC_0xffffL)
kusano 7d535a
#  define ptrdiff_t long
kusano 7d535a
#  define _PTRDIFF_T_DEFINED
kusano 7d535a
#endif
kusano 7d535a
#if (UINT_MAX == ACC_0xffffL)
kusano 7d535a
#  undef __ACC_RENAME_A
kusano 7d535a
#  undef __ACC_RENAME_B
kusano 7d535a
#  if defined(__AZTEC_C__) && defined(__DOS__)
kusano 7d535a
#    define __ACC_RENAME_A 1
kusano 7d535a
#  elif defined(_MSC_VER) && defined(MSDOS)
kusano 7d535a
#    if (_MSC_VER < 600)
kusano 7d535a
#      define __ACC_RENAME_A 1
kusano 7d535a
#    elif (_MSC_VER < 700)
kusano 7d535a
#      define __ACC_RENAME_B 1
kusano 7d535a
#    endif
kusano 7d535a
#  elif defined(__TSC__) && defined(__OS2__)
kusano 7d535a
#    define __ACC_RENAME_A 1
kusano 7d535a
#  elif defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0410)
kusano 7d535a
#    define __ACC_RENAME_A 1
kusano 7d535a
#  elif defined(__PACIFIC__) && defined(DOS)
kusano 7d535a
#    if !defined(__far)
kusano 7d535a
#      define __far far
kusano 7d535a
#    endif
kusano 7d535a
#    if !defined(__near)
kusano 7d535a
#      define __near near
kusano 7d535a
#    endif
kusano 7d535a
#  endif
kusano 7d535a
#  if defined(__ACC_RENAME_A)
kusano 7d535a
#    if !defined(__cdecl)
kusano 7d535a
#      define __cdecl cdecl
kusano 7d535a
#    endif
kusano 7d535a
#    if !defined(__far)
kusano 7d535a
#      define __far far
kusano 7d535a
#    endif
kusano 7d535a
#    if !defined(__huge)
kusano 7d535a
#      define __huge huge
kusano 7d535a
#    endif
kusano 7d535a
#    if !defined(__near)
kusano 7d535a
#      define __near near
kusano 7d535a
#    endif
kusano 7d535a
#    if !defined(__pascal)
kusano 7d535a
#      define __pascal pascal
kusano 7d535a
#    endif
kusano 7d535a
#    if !defined(__huge)
kusano 7d535a
#      define __huge huge
kusano 7d535a
#    endif
kusano 7d535a
#  elif defined(__ACC_RENAME_B)
kusano 7d535a
#    if !defined(__cdecl)
kusano 7d535a
#      define __cdecl _cdecl
kusano 7d535a
#    endif
kusano 7d535a
#    if !defined(__far)
kusano 7d535a
#      define __far _far
kusano 7d535a
#    endif
kusano 7d535a
#    if !defined(__huge)
kusano 7d535a
#      define __huge _huge
kusano 7d535a
#    endif
kusano 7d535a
#    if !defined(__near)
kusano 7d535a
#      define __near _near
kusano 7d535a
#    endif
kusano 7d535a
#    if !defined(__pascal)
kusano 7d535a
#      define __pascal _pascal
kusano 7d535a
#    endif
kusano 7d535a
#  elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
kusano 7d535a
#    if !defined(__cdecl)
kusano 7d535a
#      define __cdecl cdecl
kusano 7d535a
#    endif
kusano 7d535a
#    if !defined(__pascal)
kusano 7d535a
#      define __pascal pascal
kusano 7d535a
#    endif
kusano 7d535a
#  endif
kusano 7d535a
#  undef __ACC_RENAME_A
kusano 7d535a
#  undef __ACC_RENAME_B
kusano 7d535a
#endif
kusano 7d535a
#if (UINT_MAX == ACC_0xffffL)
kusano 7d535a
#if defined(__AZTEC_C__) && defined(__DOS__)
kusano 7d535a
#  define ACC_BROKEN_CDECL_ALT_SYNTAX 1
kusano 7d535a
#elif defined(_MSC_VER) && defined(MSDOS)
kusano 7d535a
#  if (_MSC_VER < 600)
kusano 7d535a
#    define ACC_BROKEN_INTEGRAL_CONSTANTS 1
kusano 7d535a
#  endif
kusano 7d535a
#  if (_MSC_VER < 700)
kusano 7d535a
#    define ACC_BROKEN_INTEGRAL_PROMOTION 1
kusano 7d535a
#    define ACC_BROKEN_SIZEOF 1
kusano 7d535a
#  endif
kusano 7d535a
#elif defined(__PACIFIC__) && defined(DOS)
kusano 7d535a
#  define ACC_BROKEN_INTEGRAL_CONSTANTS 1
kusano 7d535a
#elif defined(__TURBOC__) && defined(__MSDOS__)
kusano 7d535a
#  if (__TURBOC__ < 0x0150)
kusano 7d535a
#    define ACC_BROKEN_CDECL_ALT_SYNTAX 1
kusano 7d535a
#    define ACC_BROKEN_INTEGRAL_CONSTANTS 1
kusano 7d535a
#    define ACC_BROKEN_INTEGRAL_PROMOTION 1
kusano 7d535a
#  endif
kusano 7d535a
#  if (__TURBOC__ < 0x0200)
kusano 7d535a
#    define ACC_BROKEN_SIZEOF 1
kusano 7d535a
#  endif
kusano 7d535a
#  if (__TURBOC__ < 0x0400) && defined(__cplusplus)
kusano 7d535a
#    define ACC_BROKEN_CDECL_ALT_SYNTAX 1
kusano 7d535a
#  endif
kusano 7d535a
#elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
kusano 7d535a
#  define ACC_BROKEN_CDECL_ALT_SYNTAX 1
kusano 7d535a
#  define ACC_BROKEN_SIZEOF 1
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__WATCOMC__) && (__WATCOMC__ < 900)
kusano 7d535a
#  define ACC_BROKEN_INTEGRAL_CONSTANTS 1
kusano 7d535a
#endif
kusano 7d535a
#if defined(_CRAY) && defined(_CRAY1)
kusano 7d535a
#  define ACC_BROKEN_SIGNED_RIGHT_SHIFT 1
kusano 7d535a
#endif
kusano 7d535a
#define ACC_PP_STRINGIZE(x)             #x
kusano 7d535a
#define ACC_PP_MACRO_EXPAND(x)          ACC_PP_STRINGIZE(x)
kusano 7d535a
#define ACC_PP_CONCAT2(a,b)             a ## b
kusano 7d535a
#define ACC_PP_CONCAT3(a,b,c)           a ## b ## c
kusano 7d535a
#define ACC_PP_CONCAT4(a,b,c,d)         a ## b ## c ## d
kusano 7d535a
#define ACC_PP_CONCAT5(a,b,c,d,e)       a ## b ## c ## d ## e
kusano 7d535a
#define ACC_PP_ECONCAT2(a,b)            ACC_PP_CONCAT2(a,b)
kusano 7d535a
#define ACC_PP_ECONCAT3(a,b,c)          ACC_PP_CONCAT3(a,b,c)
kusano 7d535a
#define ACC_PP_ECONCAT4(a,b,c,d)        ACC_PP_CONCAT4(a,b,c,d)
kusano 7d535a
#define ACC_PP_ECONCAT5(a,b,c,d,e)      ACC_PP_CONCAT5(a,b,c,d,e)
kusano 7d535a
#if 1
kusano 7d535a
#define ACC_CPP_STRINGIZE(x)            #x
kusano 7d535a
#define ACC_CPP_MACRO_EXPAND(x)         ACC_CPP_STRINGIZE(x)
kusano 7d535a
#define ACC_CPP_CONCAT2(a,b)            a ## b
kusano 7d535a
#define ACC_CPP_CONCAT3(a,b,c)          a ## b ## c
kusano 7d535a
#define ACC_CPP_CONCAT4(a,b,c,d)        a ## b ## c ## d
kusano 7d535a
#define ACC_CPP_CONCAT5(a,b,c,d,e)      a ## b ## c ## d ## e
kusano 7d535a
#define ACC_CPP_ECONCAT2(a,b)           ACC_CPP_CONCAT2(a,b)
kusano 7d535a
#define ACC_CPP_ECONCAT3(a,b,c)         ACC_CPP_CONCAT3(a,b,c)
kusano 7d535a
#define ACC_CPP_ECONCAT4(a,b,c,d)       ACC_CPP_CONCAT4(a,b,c,d)
kusano 7d535a
#define ACC_CPP_ECONCAT5(a,b,c,d,e)     ACC_CPP_CONCAT5(a,b,c,d,e)
kusano 7d535a
#endif
kusano 7d535a
#define __ACC_MASK_GEN(o,b)     (((((o) << ((b)-1)) - (o)) << 1) + (o))
kusano 7d535a
#if 1 && defined(__cplusplus)
kusano 7d535a
#  if !defined(__STDC_CONSTANT_MACROS)
kusano 7d535a
#    define __STDC_CONSTANT_MACROS 1
kusano 7d535a
#  endif
kusano 7d535a
#  if !defined(__STDC_LIMIT_MACROS)
kusano 7d535a
#    define __STDC_LIMIT_MACROS 1
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__cplusplus)
kusano 7d535a
#  define ACC_EXTERN_C extern "C"
kusano 7d535a
#else
kusano 7d535a
#  define ACC_EXTERN_C extern
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__ACC_OS_OVERRIDE)
kusano 7d535a
#if defined(ACC_OS_FREESTANDING)
kusano 7d535a
#  define ACC_INFO_OS           "freestanding"
kusano 7d535a
#elif defined(ACC_OS_EMBEDDED)
kusano 7d535a
#  define ACC_INFO_OS           "embedded"
kusano 7d535a
#elif 1 && defined(__IAR_SYSTEMS_ICC__)
kusano 7d535a
#  define ACC_OS_EMBEDDED       1
kusano 7d535a
#  define ACC_INFO_OS           "embedded"
kusano 7d535a
#elif defined(__CYGWIN__) && defined(__GNUC__)
kusano 7d535a
#  define ACC_OS_CYGWIN         1
kusano 7d535a
#  define ACC_INFO_OS           "cygwin"
kusano 7d535a
#elif defined(__EMX__) && defined(__GNUC__)
kusano 7d535a
#  define ACC_OS_EMX            1
kusano 7d535a
#  define ACC_INFO_OS           "emx"
kusano 7d535a
#elif defined(__BEOS__)
kusano 7d535a
#  define ACC_OS_BEOS           1
kusano 7d535a
#  define ACC_INFO_OS           "beos"
kusano 7d535a
#elif defined(__Lynx__)
kusano 7d535a
#  define ACC_OS_LYNXOS         1
kusano 7d535a
#  define ACC_INFO_OS           "lynxos"
kusano 7d535a
#elif defined(__OS400__)
kusano 7d535a
#  define ACC_OS_OS400          1
kusano 7d535a
#  define ACC_INFO_OS           "os400"
kusano 7d535a
#elif defined(__QNX__)
kusano 7d535a
#  define ACC_OS_QNX            1
kusano 7d535a
#  define ACC_INFO_OS           "qnx"
kusano 7d535a
#elif defined(__BORLANDC__) && defined(__DPMI32__) && (__BORLANDC__ >= 0x0460)
kusano 7d535a
#  define ACC_OS_DOS32          1
kusano 7d535a
#  define ACC_INFO_OS           "dos32"
kusano 7d535a
#elif defined(__BORLANDC__) && defined(__DPMI16__)
kusano 7d535a
#  define ACC_OS_DOS16          1
kusano 7d535a
#  define ACC_INFO_OS           "dos16"
kusano 7d535a
#elif defined(__ZTC__) && defined(DOS386)
kusano 7d535a
#  define ACC_OS_DOS32          1
kusano 7d535a
#  define ACC_INFO_OS           "dos32"
kusano 7d535a
#elif defined(__OS2__) || defined(__OS2V2__)
kusano 7d535a
#  if (UINT_MAX == ACC_0xffffL)
kusano 7d535a
#    define ACC_OS_OS216        1
kusano 7d535a
#    define ACC_INFO_OS         "os216"
kusano 7d535a
#  elif (UINT_MAX == ACC_0xffffffffL)
kusano 7d535a
#    define ACC_OS_OS2          1
kusano 7d535a
#    define ACC_INFO_OS         "os2"
kusano 7d535a
#  else
kusano 7d535a
#    error "check your limits.h header"
kusano 7d535a
#  endif
kusano 7d535a
#elif defined(__WIN64__) || defined(_WIN64) || defined(WIN64)
kusano 7d535a
#  define ACC_OS_WIN64          1
kusano 7d535a
#  define ACC_INFO_OS           "win64"
kusano 7d535a
#elif defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS_386__)
kusano 7d535a
#  define ACC_OS_WIN32          1
kusano 7d535a
#  define ACC_INFO_OS           "win32"
kusano 7d535a
#elif defined(__MWERKS__) && defined(__INTEL__)
kusano 7d535a
#  define ACC_OS_WIN32          1
kusano 7d535a
#  define ACC_INFO_OS           "win32"
kusano 7d535a
#elif defined(__WINDOWS__) || defined(_WINDOWS) || defined(_Windows)
kusano 7d535a
#  if (UINT_MAX == ACC_0xffffL)
kusano 7d535a
#    define ACC_OS_WIN16        1
kusano 7d535a
#    define ACC_INFO_OS         "win16"
kusano 7d535a
#  elif (UINT_MAX == ACC_0xffffffffL)
kusano 7d535a
#    define ACC_OS_WIN32        1
kusano 7d535a
#    define ACC_INFO_OS         "win32"
kusano 7d535a
#  else
kusano 7d535a
#    error "check your limits.h header"
kusano 7d535a
#  endif
kusano 7d535a
#elif defined(__DOS__) || defined(__MSDOS__) || defined(_MSDOS) || defined(MSDOS) || (defined(__PACIFIC__) && defined(DOS))
kusano 7d535a
#  if (UINT_MAX == ACC_0xffffL)
kusano 7d535a
#    define ACC_OS_DOS16        1
kusano 7d535a
#    define ACC_INFO_OS         "dos16"
kusano 7d535a
#  elif (UINT_MAX == ACC_0xffffffffL)
kusano 7d535a
#    define ACC_OS_DOS32        1
kusano 7d535a
#    define ACC_INFO_OS         "dos32"
kusano 7d535a
#  else
kusano 7d535a
#    error "check your limits.h header"
kusano 7d535a
#  endif
kusano 7d535a
#elif defined(__WATCOMC__)
kusano 7d535a
#  if defined(__NT__) && (UINT_MAX == ACC_0xffffL)
kusano 7d535a
#    define ACC_OS_DOS16        1
kusano 7d535a
#    define ACC_INFO_OS         "dos16"
kusano 7d535a
#  elif defined(__NT__) && (__WATCOMC__ < 1100)
kusano 7d535a
#    define ACC_OS_WIN32        1
kusano 7d535a
#    define ACC_INFO_OS         "win32"
kusano 7d535a
#  elif defined(__linux__) || defined(__LINUX__)
kusano 7d535a
#    define ACC_OS_POSIX        1
kusano 7d535a
#    define ACC_INFO_OS         "posix"
kusano 7d535a
#  else
kusano 7d535a
#    error "please specify a target using the -bt compiler option"
kusano 7d535a
#  endif
kusano 7d535a
#elif defined(__palmos__)
kusano 7d535a
#  define ACC_OS_PALMOS         1
kusano 7d535a
#  define ACC_INFO_OS           "palmos"
kusano 7d535a
#elif defined(__TOS__) || defined(__atarist__)
kusano 7d535a
#  define ACC_OS_TOS            1
kusano 7d535a
#  define ACC_INFO_OS           "tos"
kusano 7d535a
#elif defined(macintosh) && !defined(__ppc__)
kusano 7d535a
#  define ACC_OS_MACCLASSIC     1
kusano 7d535a
#  define ACC_INFO_OS           "macclassic"
kusano 7d535a
#elif defined(__VMS)
kusano 7d535a
#  define ACC_OS_VMS            1
kusano 7d535a
#  define ACC_INFO_OS           "vms"
kusano 7d535a
#elif ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
kusano 7d535a
#  define ACC_OS_CONSOLE        1
kusano 7d535a
#  define ACC_OS_CONSOLE_PS2    1
kusano 7d535a
#  define ACC_INFO_OS           "console"
kusano 7d535a
#  define ACC_INFO_OS_CONSOLE   "ps2"
kusano 7d535a
#elif (defined(__mips__) && defined(__psp__))
kusano 7d535a
#  define ACC_OS_CONSOLE        1
kusano 7d535a
#  define ACC_OS_CONSOLE_PSP    1
kusano 7d535a
#  define ACC_INFO_OS           "console"
kusano 7d535a
#  define ACC_INFO_OS_CONSOLE   "psp"
kusano 7d535a
#else
kusano 7d535a
#  define ACC_OS_POSIX          1
kusano 7d535a
#  define ACC_INFO_OS           "posix"
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_POSIX)
kusano 7d535a
#  if defined(_AIX) || defined(__AIX__) || defined(__aix__)
kusano 7d535a
#    define ACC_OS_POSIX_AIX        1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "aix"
kusano 7d535a
#  elif defined(__FreeBSD__)
kusano 7d535a
#    define ACC_OS_POSIX_FREEBSD    1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "freebsd"
kusano 7d535a
#  elif defined(__hpux__) || defined(__hpux)
kusano 7d535a
#    define ACC_OS_POSIX_HPUX       1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "hpux"
kusano 7d535a
#  elif defined(__INTERIX)
kusano 7d535a
#    define ACC_OS_POSIX_INTERIX    1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "interix"
kusano 7d535a
#  elif defined(__IRIX__) || defined(__irix__)
kusano 7d535a
#    define ACC_OS_POSIX_IRIX       1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "irix"
kusano 7d535a
#  elif defined(__linux__) || defined(__linux) || defined(__LINUX__)
kusano 7d535a
#    define ACC_OS_POSIX_LINUX      1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "linux"
kusano 7d535a
#  elif defined(__APPLE__) || defined(__MACOS__)
kusano 7d535a
#    define ACC_OS_POSIX_MACOSX     1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "macosx"
kusano 7d535a
#  elif defined(__minix__) || defined(__minix)
kusano 7d535a
#    define ACC_OS_POSIX_MINIX      1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "minix"
kusano 7d535a
#  elif defined(__NetBSD__)
kusano 7d535a
#    define ACC_OS_POSIX_NETBSD     1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "netbsd"
kusano 7d535a
#  elif defined(__OpenBSD__)
kusano 7d535a
#    define ACC_OS_POSIX_OPENBSD    1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "openbsd"
kusano 7d535a
#  elif defined(__osf__)
kusano 7d535a
#    define ACC_OS_POSIX_OSF        1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "osf"
kusano 7d535a
#  elif defined(__solaris__) || defined(__sun)
kusano 7d535a
#    if defined(__SVR4) || defined(__svr4__)
kusano 7d535a
#      define ACC_OS_POSIX_SOLARIS  1
kusano 7d535a
#      define ACC_INFO_OS_POSIX     "solaris"
kusano 7d535a
#    else
kusano 7d535a
#      define ACC_OS_POSIX_SUNOS    1
kusano 7d535a
#      define ACC_INFO_OS_POSIX     "sunos"
kusano 7d535a
#    endif
kusano 7d535a
#  elif defined(__ultrix__) || defined(__ultrix)
kusano 7d535a
#    define ACC_OS_POSIX_ULTRIX     1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "ultrix"
kusano 7d535a
#  elif defined(_UNICOS)
kusano 7d535a
#    define ACC_OS_POSIX_UNICOS     1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "unicos"
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_OS_POSIX_UNKNOWN    1
kusano 7d535a
#    define ACC_INFO_OS_POSIX       "unknown"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
kusano 7d535a
#  if (UINT_MAX != ACC_0xffffL)
kusano 7d535a
#    error "this should not happen"
kusano 7d535a
#  endif
kusano 7d535a
#  if (ULONG_MAX != ACC_0xffffffffL)
kusano 7d535a
#    error "this should not happen"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
#  if (UINT_MAX != ACC_0xffffffffL)
kusano 7d535a
#    error "this should not happen"
kusano 7d535a
#  endif
kusano 7d535a
#  if (ULONG_MAX != ACC_0xffffffffL)
kusano 7d535a
#    error "this should not happen"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(CIL) && defined(_GNUCC) && defined(__GNUC__)
kusano 7d535a
#  define ACC_CC_CILLY          1
kusano 7d535a
#  define ACC_INFO_CC           "Cilly"
kusano 7d535a
#  if defined(__CILLY__)
kusano 7d535a
#    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(__CILLY__)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_INFO_CCVER      "unknown"
kusano 7d535a
#  endif
kusano 7d535a
#elif 0 && defined(SDCC) && defined(__VERSION__) && !defined(__GNUC__)
kusano 7d535a
#  define ACC_CC_SDCC           1
kusano 7d535a
#  define ACC_INFO_CC           "sdcc"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(SDCC)
kusano 7d535a
#elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__)
kusano 7d535a
#  define ACC_CC_PATHSCALE      (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x100 + __PATHCC_PATCHLEVEL__)
kusano 7d535a
#  define ACC_INFO_CC           "Pathscale C"
kusano 7d535a
#  define ACC_INFO_CCVER        __PATHSCALE__
kusano 7d535a
#elif defined(__INTEL_COMPILER)
kusano 7d535a
#  define ACC_CC_INTELC         1
kusano 7d535a
#  define ACC_INFO_CC           "Intel C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__INTEL_COMPILER)
kusano 7d535a
#  if defined(_WIN32) || defined(_WIN64)
kusano 7d535a
#    define ACC_CC_SYNTAX_MSC 1
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_CC_SYNTAX_GNUC 1
kusano 7d535a
#  endif
kusano 7d535a
#elif defined(__POCC__) && defined(_WIN32)
kusano 7d535a
#  define ACC_CC_PELLESC        1
kusano 7d535a
#  define ACC_INFO_CC           "Pelles C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__POCC__)
kusano 7d535a
#elif defined(__llvm__) && defined(__GNUC__) && defined(__VERSION__)
kusano 7d535a
#  if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
kusano 7d535a
#    define ACC_CC_LLVM         (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_CC_LLVM         (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
kusano 7d535a
#  endif
kusano 7d535a
#  define ACC_INFO_CC           "llvm-gcc"
kusano 7d535a
#  define ACC_INFO_CCVER        __VERSION__
kusano 7d535a
#elif defined(__GNUC__) && defined(__VERSION__)
kusano 7d535a
#  if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
kusano 7d535a
#    define ACC_CC_GNUC         (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
kusano 7d535a
#  elif defined(__GNUC_MINOR__)
kusano 7d535a
#    define ACC_CC_GNUC         (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_CC_GNUC         (__GNUC__ * 0x10000L)
kusano 7d535a
#  endif
kusano 7d535a
#  define ACC_INFO_CC           "gcc"
kusano 7d535a
#  define ACC_INFO_CCVER        __VERSION__
kusano 7d535a
#elif defined(__ACK__) && defined(_ACK)
kusano 7d535a
#  define ACC_CC_ACK            1
kusano 7d535a
#  define ACC_INFO_CC           "Amsterdam Compiler Kit C"
kusano 7d535a
#  define ACC_INFO_CCVER        "unknown"
kusano 7d535a
#elif defined(__AZTEC_C__)
kusano 7d535a
#  define ACC_CC_AZTECC         1
kusano 7d535a
#  define ACC_INFO_CC           "Aztec C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__AZTEC_C__)
kusano 7d535a
#elif defined(__BORLANDC__)
kusano 7d535a
#  define ACC_CC_BORLANDC       1
kusano 7d535a
#  define ACC_INFO_CC           "Borland C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__BORLANDC__)
kusano 7d535a
#elif defined(_CRAYC) && defined(_RELEASE)
kusano 7d535a
#  define ACC_CC_CRAYC          1
kusano 7d535a
#  define ACC_INFO_CC           "Cray C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(_RELEASE)
kusano 7d535a
#elif defined(__DMC__) && defined(__SC__)
kusano 7d535a
#  define ACC_CC_DMC            1
kusano 7d535a
#  define ACC_INFO_CC           "Digital Mars C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__DMC__)
kusano 7d535a
#elif defined(__DECC)
kusano 7d535a
#  define ACC_CC_DECC           1
kusano 7d535a
#  define ACC_INFO_CC           "DEC C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__DECC)
kusano 7d535a
#elif defined(__HIGHC__)
kusano 7d535a
#  define ACC_CC_HIGHC          1
kusano 7d535a
#  define ACC_INFO_CC           "MetaWare High C"
kusano 7d535a
#  define ACC_INFO_CCVER        "unknown"
kusano 7d535a
#elif defined(__IAR_SYSTEMS_ICC__)
kusano 7d535a
#  define ACC_CC_IARC           1
kusano 7d535a
#  define ACC_INFO_CC           "IAR C"
kusano 7d535a
#  if defined(__VER__)
kusano 7d535a
#    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(__VER__)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_INFO_CCVER      "unknown"
kusano 7d535a
#  endif
kusano 7d535a
#elif defined(__IBMC__)
kusano 7d535a
#  define ACC_CC_IBMC           1
kusano 7d535a
#  define ACC_INFO_CC           "IBM C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__IBMC__)
kusano 7d535a
#elif defined(__KEIL__) && defined(__C166__)
kusano 7d535a
#  define ACC_CC_KEILC          1
kusano 7d535a
#  define ACC_INFO_CC           "Keil C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__C166__)
kusano 7d535a
#elif defined(__LCC__) && defined(_WIN32) && defined(__LCCOPTIMLEVEL)
kusano 7d535a
#  define ACC_CC_LCCWIN32       1
kusano 7d535a
#  define ACC_INFO_CC           "lcc-win32"
kusano 7d535a
#  define ACC_INFO_CCVER        "unknown"
kusano 7d535a
#elif defined(__LCC__)
kusano 7d535a
#  define ACC_CC_LCC            1
kusano 7d535a
#  define ACC_INFO_CC           "lcc"
kusano 7d535a
#  if defined(__LCC_VERSION__)
kusano 7d535a
#    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(__LCC_VERSION__)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_INFO_CCVER      "unknown"
kusano 7d535a
#  endif
kusano 7d535a
#elif defined(_MSC_VER)
kusano 7d535a
#  define ACC_CC_MSC            1
kusano 7d535a
#  define ACC_INFO_CC           "Microsoft C"
kusano 7d535a
#  if defined(_MSC_FULL_VER)
kusano 7d535a
#    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(_MSC_VER) "." ACC_PP_MACRO_EXPAND(_MSC_FULL_VER)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(_MSC_VER)
kusano 7d535a
#  endif
kusano 7d535a
#elif defined(__MWERKS__)
kusano 7d535a
#  define ACC_CC_MWERKS         1
kusano 7d535a
#  define ACC_INFO_CC           "Metrowerks C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__MWERKS__)
kusano 7d535a
#elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386)
kusano 7d535a
#  define ACC_CC_NDPC           1
kusano 7d535a
#  define ACC_INFO_CC           "Microway NDP C"
kusano 7d535a
#  define ACC_INFO_CCVER        "unknown"
kusano 7d535a
#elif defined(__PACIFIC__)
kusano 7d535a
#  define ACC_CC_PACIFICC       1
kusano 7d535a
#  define ACC_INFO_CC           "Pacific C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__PACIFIC__)
kusano 7d535a
#elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__))
kusano 7d535a
#  define ACC_CC_PGI            1
kusano 7d535a
#  define ACC_INFO_CC           "Portland Group PGI C"
kusano 7d535a
#  define ACC_INFO_CCVER        "unknown"
kusano 7d535a
#elif defined(__PUREC__) && defined(__TOS__)
kusano 7d535a
#  define ACC_CC_PUREC          1
kusano 7d535a
#  define ACC_INFO_CC           "Pure C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__PUREC__)
kusano 7d535a
#elif defined(__SC__) && defined(__ZTC__)
kusano 7d535a
#  define ACC_CC_SYMANTECC      1
kusano 7d535a
#  define ACC_INFO_CC           "Symantec C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__SC__)
kusano 7d535a
#elif defined(__SUNPRO_C)
kusano 7d535a
#  define ACC_INFO_CC           "SunPro C"
kusano 7d535a
#  if ((__SUNPRO_C)+0 > 0)
kusano 7d535a
#    define ACC_CC_SUNPROC      __SUNPRO_C
kusano 7d535a
#    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(__SUNPRO_C)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_CC_SUNPROC      1
kusano 7d535a
#    define ACC_INFO_CCVER      "unknown"
kusano 7d535a
#  endif
kusano 7d535a
#elif defined(__SUNPRO_CC)
kusano 7d535a
#  define ACC_INFO_CC           "SunPro C"
kusano 7d535a
#  if ((__SUNPRO_CC)+0 > 0)
kusano 7d535a
#    define ACC_CC_SUNPROC      __SUNPRO_CC
kusano 7d535a
#    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(__SUNPRO_CC)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_CC_SUNPROC      1
kusano 7d535a
#    define ACC_INFO_CCVER      "unknown"
kusano 7d535a
#  endif
kusano 7d535a
#elif defined(__TINYC__)
kusano 7d535a
#  define ACC_CC_TINYC          1
kusano 7d535a
#  define ACC_INFO_CC           "Tiny C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__TINYC__)
kusano 7d535a
#elif defined(__TSC__)
kusano 7d535a
#  define ACC_CC_TOPSPEEDC      1
kusano 7d535a
#  define ACC_INFO_CC           "TopSpeed C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__TSC__)
kusano 7d535a
#elif defined(__WATCOMC__)
kusano 7d535a
#  define ACC_CC_WATCOMC        1
kusano 7d535a
#  define ACC_INFO_CC           "Watcom C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__WATCOMC__)
kusano 7d535a
#elif defined(__TURBOC__)
kusano 7d535a
#  define ACC_CC_TURBOC         1
kusano 7d535a
#  define ACC_INFO_CC           "Turbo C"
kusano 7d535a
#  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__TURBOC__)
kusano 7d535a
#elif defined(__ZTC__)
kusano 7d535a
#  define ACC_CC_ZORTECHC       1
kusano 7d535a
#  define ACC_INFO_CC           "Zortech C"
kusano 7d535a
#  if (__ZTC__ == 0x310)
kusano 7d535a
#    define ACC_INFO_CCVER      "0x310"
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(__ZTC__)
kusano 7d535a
#  endif
kusano 7d535a
#else
kusano 7d535a
#  define ACC_CC_UNKNOWN        1
kusano 7d535a
#  define ACC_INFO_CC           "unknown"
kusano 7d535a
#  define ACC_INFO_CCVER        "unknown"
kusano 7d535a
#endif
kusano 7d535a
#if 0 && (ACC_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER)
kusano 7d535a
#  error "ACC_CC_MSC: _MSC_FULL_VER is not defined"
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__ACC_ARCH_OVERRIDE) && !defined(ACC_ARCH_GENERIC) && defined(_CRAY)
kusano 7d535a
#  if (UINT_MAX > ACC_0xffffffffL) && defined(_CRAY)
kusano 7d535a
#    if defined(_CRAYMPP) || defined(_CRAYT3D) || defined(_CRAYT3E)
kusano 7d535a
#      define ACC_ARCH_CRAY_MPP     1
kusano 7d535a
#    elif defined(_CRAY1)
kusano 7d535a
#      define ACC_ARCH_CRAY_PVP     1
kusano 7d535a
#    endif
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__ACC_ARCH_OVERRIDE)
kusano 7d535a
#if defined(ACC_ARCH_GENERIC)
kusano 7d535a
#  define ACC_INFO_ARCH             "generic"
kusano 7d535a
#elif (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
kusano 7d535a
#  define ACC_ARCH_I086             1
kusano 7d535a
#  define ACC_ARCH_IA16             1
kusano 7d535a
#  define ACC_INFO_ARCH             "i086"
kusano 7d535a
#elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
kusano 7d535a
#  define ACC_ARCH_ALPHA            1
kusano 7d535a
#  define ACC_INFO_ARCH             "alpha"
kusano 7d535a
#elif (ACC_ARCH_CRAY_MPP) && (defined(_CRAYT3D) || defined(_CRAYT3E))
kusano 7d535a
#  define ACC_ARCH_ALPHA            1
kusano 7d535a
#  define ACC_INFO_ARCH             "alpha"
kusano 7d535a
#elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
kusano 7d535a
#  define ACC_ARCH_AMD64            1
kusano 7d535a
#  define ACC_INFO_ARCH             "amd64"
kusano 7d535a
#elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB))
kusano 7d535a
#  define ACC_ARCH_ARM              1
kusano 7d535a
#  define ACC_ARCH_ARM_THUMB        1
kusano 7d535a
#  define ACC_INFO_ARCH             "arm_thumb"
kusano 7d535a
#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__)
kusano 7d535a
#  define ACC_ARCH_ARM              1
kusano 7d535a
#  if defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 1)
kusano 7d535a
#    define ACC_ARCH_ARM_THUMB      1
kusano 7d535a
#    define ACC_INFO_ARCH           "arm_thumb"
kusano 7d535a
#  elif defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 2)
kusano 7d535a
#    define ACC_INFO_ARCH           "arm"
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_INFO_ARCH           "arm"
kusano 7d535a
#  endif
kusano 7d535a
#elif defined(__arm__) || defined(_M_ARM)
kusano 7d535a
#  define ACC_ARCH_ARM              1
kusano 7d535a
#  define ACC_INFO_ARCH             "arm"
kusano 7d535a
#elif (UINT_MAX <= ACC_0xffffL) && defined(__AVR__)
kusano 7d535a
#  define ACC_ARCH_AVR              1
kusano 7d535a
#  define ACC_INFO_ARCH             "avr"
kusano 7d535a
#elif defined(__bfin__)
kusano 7d535a
#  define ACC_ARCH_BLACKFIN         1
kusano 7d535a
#  define ACC_INFO_ARCH             "blackfin"
kusano 7d535a
#elif (UINT_MAX == ACC_0xffffL) && defined(__C166__)
kusano 7d535a
#  define ACC_ARCH_C166             1
kusano 7d535a
#  define ACC_INFO_ARCH             "c166"
kusano 7d535a
#elif defined(__cris__)
kusano 7d535a
#  define ACC_ARCH_CRIS             1
kusano 7d535a
#  define ACC_INFO_ARCH             "cris"
kusano 7d535a
#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCEZ80__)
kusano 7d535a
#  define ACC_ARCH_EZ80             1
kusano 7d535a
#  define ACC_INFO_ARCH             "ez80"
kusano 7d535a
#elif defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
kusano 7d535a
#  define ACC_ARCH_H8300            1
kusano 7d535a
#  define ACC_INFO_ARCH             "h8300"
kusano 7d535a
#elif defined(__hppa__) || defined(__hppa)
kusano 7d535a
#  define ACC_ARCH_HPPA             1
kusano 7d535a
#  define ACC_INFO_ARCH             "hppa"
kusano 7d535a
#elif defined(__386__) || defined(__i386__) || defined(__i386) || defined(_M_IX86) || defined(_M_I386)
kusano 7d535a
#  define ACC_ARCH_I386             1
kusano 7d535a
#  define ACC_ARCH_IA32             1
kusano 7d535a
#  define ACC_INFO_ARCH             "i386"
kusano 7d535a
#elif (ACC_CC_ZORTECHC && defined(__I86__))
kusano 7d535a
#  define ACC_ARCH_I386             1
kusano 7d535a
#  define ACC_ARCH_IA32             1
kusano 7d535a
#  define ACC_INFO_ARCH             "i386"
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_HIGHC) && defined(_I386)
kusano 7d535a
#  define ACC_ARCH_I386             1
kusano 7d535a
#  define ACC_ARCH_IA32             1
kusano 7d535a
#  define ACC_INFO_ARCH             "i386"
kusano 7d535a
#elif defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
kusano 7d535a
#  define ACC_ARCH_IA64             1
kusano 7d535a
#  define ACC_INFO_ARCH             "ia64"
kusano 7d535a
#elif (UINT_MAX == ACC_0xffffL) && defined(__m32c__)
kusano 7d535a
#  define ACC_ARCH_M16C             1
kusano 7d535a
#  define ACC_INFO_ARCH             "m16c"
kusano 7d535a
#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCM16C__)
kusano 7d535a
#  define ACC_ARCH_M16C             1
kusano 7d535a
#  define ACC_INFO_ARCH             "m16c"
kusano 7d535a
#elif defined(__m32r__)
kusano 7d535a
#  define ACC_ARCH_M32R             1
kusano 7d535a
#  define ACC_INFO_ARCH             "m32r"
kusano 7d535a
#elif (ACC_OS_TOS) || defined(__m68k__) || defined(__m68000__) || defined(__mc68000__) || defined(__mc68020__) || defined(_M_M68K)
kusano 7d535a
#  define ACC_ARCH_M68K             1
kusano 7d535a
#  define ACC_INFO_ARCH             "m68k"
kusano 7d535a
#elif (UINT_MAX == ACC_0xffffL) && defined(__C251__)
kusano 7d535a
#  define ACC_ARCH_MCS251           1
kusano 7d535a
#  define ACC_INFO_ARCH             "mcs251"
kusano 7d535a
#elif (UINT_MAX == ACC_0xffffL) && defined(__C51__)
kusano 7d535a
#  define ACC_ARCH_MCS51            1
kusano 7d535a
#  define ACC_INFO_ARCH             "mcs51"
kusano 7d535a
#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC8051__)
kusano 7d535a
#  define ACC_ARCH_MCS51            1
kusano 7d535a
#  define ACC_INFO_ARCH             "mcs51"
kusano 7d535a
#elif defined(__mips__) || defined(__mips) || defined(_MIPS_ARCH) || defined(_M_MRX000)
kusano 7d535a
#  define ACC_ARCH_MIPS             1
kusano 7d535a
#  define ACC_INFO_ARCH             "mips"
kusano 7d535a
#elif (UINT_MAX == ACC_0xffffL) && defined(__MSP430__)
kusano 7d535a
#  define ACC_ARCH_MSP430           1
kusano 7d535a
#  define ACC_INFO_ARCH             "msp430"
kusano 7d535a
#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC430__)
kusano 7d535a
#  define ACC_ARCH_MSP430           1
kusano 7d535a
#  define ACC_INFO_ARCH             "msp430"
kusano 7d535a
#elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR)
kusano 7d535a
#  define ACC_ARCH_POWERPC          1
kusano 7d535a
#  define ACC_INFO_ARCH             "powerpc"
kusano 7d535a
#elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
kusano 7d535a
#  define ACC_ARCH_S390             1
kusano 7d535a
#  define ACC_INFO_ARCH             "s390"
kusano 7d535a
#elif defined(__sh__) || defined(_M_SH)
kusano 7d535a
#  define ACC_ARCH_SH               1
kusano 7d535a
#  define ACC_INFO_ARCH             "sh"
kusano 7d535a
#elif defined(__sparc__) || defined(__sparc) || defined(__sparcv8)
kusano 7d535a
#  define ACC_ARCH_SPARC            1
kusano 7d535a
#  define ACC_INFO_ARCH             "sparc"
kusano 7d535a
#elif defined(__SPU__)
kusano 7d535a
#  define ACC_ARCH_SPU              1
kusano 7d535a
#  define ACC_INFO_ARCH             "spu"
kusano 7d535a
#elif (UINT_MAX == ACC_0xffffL) && defined(__z80)
kusano 7d535a
#  define ACC_ARCH_Z80              1
kusano 7d535a
#  define ACC_INFO_ARCH             "z80"
kusano 7d535a
#elif (ACC_ARCH_CRAY_PVP)
kusano 7d535a
#  if defined(_CRAYSV1)
kusano 7d535a
#    define ACC_ARCH_CRAY_SV1       1
kusano 7d535a
#    define ACC_INFO_ARCH           "cray_sv1"
kusano 7d535a
#  elif (_ADDR64)
kusano 7d535a
#    define ACC_ARCH_CRAY_T90       1
kusano 7d535a
#    define ACC_INFO_ARCH           "cray_t90"
kusano 7d535a
#  elif (_ADDR32)
kusano 7d535a
#    define ACC_ARCH_CRAY_YMP       1
kusano 7d535a
#    define ACC_INFO_ARCH           "cray_ymp"
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_ARCH_CRAY_XMP       1
kusano 7d535a
#    define ACC_INFO_ARCH           "cray_xmp"
kusano 7d535a
#  endif
kusano 7d535a
#else
kusano 7d535a
#  define ACC_ARCH_UNKNOWN          1
kusano 7d535a
#  define ACC_INFO_ARCH             "unknown"
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_DOS32 || ACC_OS_OS2)
kusano 7d535a
#  error "FIXME - missing define for CPU architecture"
kusano 7d535a
#endif
kusano 7d535a
#if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_WIN32)
kusano 7d535a
#  error "FIXME - missing WIN32 define for CPU architecture"
kusano 7d535a
#endif
kusano 7d535a
#if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_WIN64)
kusano 7d535a
#  error "FIXME - missing WIN64 define for CPU architecture"
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_OS216 || ACC_OS_WIN16)
kusano 7d535a
#  define ACC_ARCH_I086PM           1
kusano 7d535a
#  define ACC_ARCH_IA16PM           1
kusano 7d535a
#elif 1 && (ACC_OS_DOS16 && defined(BLX286))
kusano 7d535a
#  define ACC_ARCH_I086PM           1
kusano 7d535a
#  define ACC_ARCH_IA16PM           1
kusano 7d535a
#elif 1 && (ACC_OS_DOS16 && defined(DOSX286))
kusano 7d535a
#  define ACC_ARCH_I086PM           1
kusano 7d535a
#  define ACC_ARCH_IA16PM           1
kusano 7d535a
#elif 1 && (ACC_OS_DOS16 && ACC_CC_BORLANDC && defined(__DPMI16__))
kusano 7d535a
#  define ACC_ARCH_I086PM           1
kusano 7d535a
#  define ACC_ARCH_IA16PM           1
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_ARCH_ARM_THUMB) && !defined(ACC_ARCH_ARM)
kusano 7d535a
#  error "this should not happen"
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_ARCH_I086PM) && !defined(ACC_ARCH_I086)
kusano 7d535a
#  error "this should not happen"
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ARCH_I086)
kusano 7d535a
#  if (UINT_MAX != ACC_0xffffL)
kusano 7d535a
#    error "this should not happen"
kusano 7d535a
#  endif
kusano 7d535a
#  if (ULONG_MAX != ACC_0xffffffffL)
kusano 7d535a
#    error "this should not happen"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ARCH_I386)
kusano 7d535a
#  if (UINT_MAX != ACC_0xffffL) && defined(__i386_int16__)
kusano 7d535a
#    error "this should not happen"
kusano 7d535a
#  endif
kusano 7d535a
#  if (UINT_MAX != ACC_0xffffffffL) && !defined(__i386_int16__)
kusano 7d535a
#    error "this should not happen"
kusano 7d535a
#  endif
kusano 7d535a
#  if (ULONG_MAX != ACC_0xffffffffL)
kusano 7d535a
#    error "this should not happen"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__ACC_MM_OVERRIDE)
kusano 7d535a
#if (ACC_ARCH_I086)
kusano 7d535a
#if (UINT_MAX != ACC_0xffffL)
kusano 7d535a
#  error "this should not happen"
kusano 7d535a
#endif
kusano 7d535a
#if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM)
kusano 7d535a
#  define ACC_MM_TINY           1
kusano 7d535a
#elif defined(__HUGE__) || defined(_HUGE_) || defined(M_I86HM) || defined(_M_I86HM)
kusano 7d535a
#  define ACC_MM_HUGE           1
kusano 7d535a
#elif defined(__SMALL__) || defined(M_I86SM) || defined(_M_I86SM) || defined(SMALL_MODEL)
kusano 7d535a
#  define ACC_MM_SMALL          1
kusano 7d535a
#elif defined(__MEDIUM__) || defined(M_I86MM) || defined(_M_I86MM)
kusano 7d535a
#  define ACC_MM_MEDIUM         1
kusano 7d535a
#elif defined(__COMPACT__) || defined(M_I86CM) || defined(_M_I86CM)
kusano 7d535a
#  define ACC_MM_COMPACT        1
kusano 7d535a
#elif defined(__LARGE__) || defined(M_I86LM) || defined(_M_I86LM) || defined(LARGE_MODEL)
kusano 7d535a
#  define ACC_MM_LARGE          1
kusano 7d535a
#elif (ACC_CC_AZTECC)
kusano 7d535a
#  if defined(_LARGE_CODE) && defined(_LARGE_DATA)
kusano 7d535a
#    define ACC_MM_LARGE        1
kusano 7d535a
#  elif defined(_LARGE_CODE)
kusano 7d535a
#    define ACC_MM_MEDIUM       1
kusano 7d535a
#  elif defined(_LARGE_DATA)
kusano 7d535a
#    define ACC_MM_COMPACT      1
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_MM_SMALL        1
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_CC_ZORTECHC && defined(__VCM__))
kusano 7d535a
#  define ACC_MM_LARGE          1
kusano 7d535a
#else
kusano 7d535a
#  error "unknown memory model"
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
kusano 7d535a
#define ACC_HAVE_MM_HUGE_PTR        1
kusano 7d535a
#define ACC_HAVE_MM_HUGE_ARRAY      1
kusano 7d535a
#if (ACC_MM_TINY)
kusano 7d535a
#  undef ACC_HAVE_MM_HUGE_ARRAY
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_CC_AZTECC || ACC_CC_PACIFICC || ACC_CC_ZORTECHC)
kusano 7d535a
#  undef ACC_HAVE_MM_HUGE_PTR
kusano 7d535a
#  undef ACC_HAVE_MM_HUGE_ARRAY
kusano 7d535a
#elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
kusano 7d535a
#  undef ACC_HAVE_MM_HUGE_ARRAY
kusano 7d535a
#elif (ACC_CC_MSC && defined(_QC))
kusano 7d535a
#  undef ACC_HAVE_MM_HUGE_ARRAY
kusano 7d535a
#  if (_MSC_VER < 600)
kusano 7d535a
#    undef ACC_HAVE_MM_HUGE_PTR
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_CC_TURBOC && (__TURBOC__ < 0x0295))
kusano 7d535a
#  undef ACC_HAVE_MM_HUGE_ARRAY
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ARCH_I086PM) && !defined(ACC_HAVE_MM_HUGE_PTR)
kusano 7d535a
#  if (ACC_OS_DOS16)
kusano 7d535a
#    error "this should not happen"
kusano 7d535a
#  elif (ACC_CC_ZORTECHC)
kusano 7d535a
#  else
kusano 7d535a
#    error "this should not happen"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#ifdef __cplusplus
kusano 7d535a
extern "C" {
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
kusano 7d535a
   extern void __near __cdecl _AHSHIFT(void);
kusano 7d535a
#  define ACC_MM_AHSHIFT      ((unsigned) _AHSHIFT)
kusano 7d535a
#elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
kusano 7d535a
   extern void __near __cdecl _AHSHIFT(void);
kusano 7d535a
#  define ACC_MM_AHSHIFT      ((unsigned) _AHSHIFT)
kusano 7d535a
#elif (ACC_CC_MSC || ACC_CC_TOPSPEEDC)
kusano 7d535a
   extern void __near __cdecl _AHSHIFT(void);
kusano 7d535a
#  define ACC_MM_AHSHIFT      ((unsigned) _AHSHIFT)
kusano 7d535a
#elif (ACC_CC_TURBOC && (__TURBOC__ >= 0x0295))
kusano 7d535a
   extern void __near __cdecl _AHSHIFT(void);
kusano 7d535a
#  define ACC_MM_AHSHIFT      ((unsigned) _AHSHIFT)
kusano 7d535a
#elif ((ACC_CC_AZTECC || ACC_CC_PACIFICC || ACC_CC_TURBOC) && ACC_OS_DOS16)
kusano 7d535a
#  define ACC_MM_AHSHIFT      12
kusano 7d535a
#elif (ACC_CC_WATCOMC)
kusano 7d535a
   extern unsigned char _HShift;
kusano 7d535a
#  define ACC_MM_AHSHIFT      ((unsigned) _HShift)
kusano 7d535a
#else
kusano 7d535a
#  error "FIXME - implement ACC_MM_AHSHIFT"
kusano 7d535a
#endif
kusano 7d535a
#ifdef __cplusplus
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#elif (ACC_ARCH_C166)
kusano 7d535a
#if !defined(__MODEL__)
kusano 7d535a
#  error "FIXME - C166 __MODEL__"
kusano 7d535a
#elif ((__MODEL__) == 0)
kusano 7d535a
#  define ACC_MM_SMALL          1
kusano 7d535a
#elif ((__MODEL__) == 1)
kusano 7d535a
#  define ACC_MM_SMALL          1
kusano 7d535a
#elif ((__MODEL__) == 2)
kusano 7d535a
#  define ACC_MM_LARGE          1
kusano 7d535a
#elif ((__MODEL__) == 3)
kusano 7d535a
#  define ACC_MM_TINY           1
kusano 7d535a
#elif ((__MODEL__) == 4)
kusano 7d535a
#  define ACC_MM_XTINY          1
kusano 7d535a
#elif ((__MODEL__) == 5)
kusano 7d535a
#  define ACC_MM_XSMALL         1
kusano 7d535a
#else
kusano 7d535a
#  error "FIXME - C166 __MODEL__"
kusano 7d535a
#endif
kusano 7d535a
#elif (ACC_ARCH_MCS251)
kusano 7d535a
#if !defined(__MODEL__)
kusano 7d535a
#  error "FIXME - MCS251 __MODEL__"
kusano 7d535a
#elif ((__MODEL__) == 0)
kusano 7d535a
#  define ACC_MM_SMALL          1
kusano 7d535a
#elif ((__MODEL__) == 2)
kusano 7d535a
#  define ACC_MM_LARGE          1
kusano 7d535a
#elif ((__MODEL__) == 3)
kusano 7d535a
#  define ACC_MM_TINY           1
kusano 7d535a
#elif ((__MODEL__) == 4)
kusano 7d535a
#  define ACC_MM_XTINY          1
kusano 7d535a
#elif ((__MODEL__) == 5)
kusano 7d535a
#  define ACC_MM_XSMALL         1
kusano 7d535a
#else
kusano 7d535a
#  error "FIXME - MCS251 __MODEL__"
kusano 7d535a
#endif
kusano 7d535a
#elif (ACC_ARCH_MCS51)
kusano 7d535a
#if !defined(__MODEL__)
kusano 7d535a
#  error "FIXME - MCS51 __MODEL__"
kusano 7d535a
#elif ((__MODEL__) == 1)
kusano 7d535a
#  define ACC_MM_SMALL          1
kusano 7d535a
#elif ((__MODEL__) == 2)
kusano 7d535a
#  define ACC_MM_LARGE          1
kusano 7d535a
#elif ((__MODEL__) == 3)
kusano 7d535a
#  define ACC_MM_TINY           1
kusano 7d535a
#elif ((__MODEL__) == 4)
kusano 7d535a
#  define ACC_MM_XTINY          1
kusano 7d535a
#elif ((__MODEL__) == 5)
kusano 7d535a
#  define ACC_MM_XSMALL         1
kusano 7d535a
#else
kusano 7d535a
#  error "FIXME - MCS51 __MODEL__"
kusano 7d535a
#endif
kusano 7d535a
#elif (ACC_ARCH_CRAY_PVP)
kusano 7d535a
#  define ACC_MM_PVP            1
kusano 7d535a
#else
kusano 7d535a
#  define ACC_MM_FLAT           1
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_MM_COMPACT)
kusano 7d535a
#  define ACC_INFO_MM           "compact"
kusano 7d535a
#elif (ACC_MM_FLAT)
kusano 7d535a
#  define ACC_INFO_MM           "flat"
kusano 7d535a
#elif (ACC_MM_HUGE)
kusano 7d535a
#  define ACC_INFO_MM           "huge"
kusano 7d535a
#elif (ACC_MM_LARGE)
kusano 7d535a
#  define ACC_INFO_MM           "large"
kusano 7d535a
#elif (ACC_MM_MEDIUM)
kusano 7d535a
#  define ACC_INFO_MM           "medium"
kusano 7d535a
#elif (ACC_MM_PVP)
kusano 7d535a
#  define ACC_INFO_MM           "pvp"
kusano 7d535a
#elif (ACC_MM_SMALL)
kusano 7d535a
#  define ACC_INFO_MM           "small"
kusano 7d535a
#elif (ACC_MM_TINY)
kusano 7d535a
#  define ACC_INFO_MM           "tiny"
kusano 7d535a
#else
kusano 7d535a
#  error "unknown memory model"
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(SIZEOF_SHORT)
kusano 7d535a
#  define ACC_SIZEOF_SHORT          (SIZEOF_SHORT)
kusano 7d535a
#endif
kusano 7d535a
#if defined(SIZEOF_INT)
kusano 7d535a
#  define ACC_SIZEOF_INT            (SIZEOF_INT)
kusano 7d535a
#endif
kusano 7d535a
#if defined(SIZEOF_LONG)
kusano 7d535a
#  define ACC_SIZEOF_LONG           (SIZEOF_LONG)
kusano 7d535a
#endif
kusano 7d535a
#if defined(SIZEOF_LONG_LONG)
kusano 7d535a
#  define ACC_SIZEOF_LONG_LONG      (SIZEOF_LONG_LONG)
kusano 7d535a
#endif
kusano 7d535a
#if defined(SIZEOF___INT16)
kusano 7d535a
#  define ACC_SIZEOF___INT16        (SIZEOF___INT16)
kusano 7d535a
#endif
kusano 7d535a
#if defined(SIZEOF___INT32)
kusano 7d535a
#  define ACC_SIZEOF___INT32        (SIZEOF___INT32)
kusano 7d535a
#endif
kusano 7d535a
#if defined(SIZEOF___INT64)
kusano 7d535a
#  define ACC_SIZEOF___INT64        (SIZEOF___INT64)
kusano 7d535a
#endif
kusano 7d535a
#if defined(SIZEOF_VOID_P)
kusano 7d535a
#  define ACC_SIZEOF_VOID_P         (SIZEOF_VOID_P)
kusano 7d535a
#endif
kusano 7d535a
#if defined(SIZEOF_SIZE_T)
kusano 7d535a
#  define ACC_SIZEOF_SIZE_T         (SIZEOF_SIZE_T)
kusano 7d535a
#endif
kusano 7d535a
#if defined(SIZEOF_PTRDIFF_T)
kusano 7d535a
#  define ACC_SIZEOF_PTRDIFF_T      (SIZEOF_PTRDIFF_T)
kusano 7d535a
#endif
kusano 7d535a
#define __ACC_LSR(x,b)    (((x)+0ul) >> (b))
kusano 7d535a
#if !defined(ACC_SIZEOF_SHORT)
kusano 7d535a
#  if (ACC_ARCH_CRAY_PVP)
kusano 7d535a
#    define ACC_SIZEOF_SHORT        8
kusano 7d535a
#  elif (USHRT_MAX == ACC_0xffffL)
kusano 7d535a
#    define ACC_SIZEOF_SHORT        2
kusano 7d535a
#  elif (__ACC_LSR(USHRT_MAX,7) == 1)
kusano 7d535a
#    define ACC_SIZEOF_SHORT        1
kusano 7d535a
#  elif (__ACC_LSR(USHRT_MAX,15) == 1)
kusano 7d535a
#    define ACC_SIZEOF_SHORT        2
kusano 7d535a
#  elif (__ACC_LSR(USHRT_MAX,31) == 1)
kusano 7d535a
#    define ACC_SIZEOF_SHORT        4
kusano 7d535a
#  elif (__ACC_LSR(USHRT_MAX,63) == 1)
kusano 7d535a
#    define ACC_SIZEOF_SHORT        8
kusano 7d535a
#  elif (__ACC_LSR(USHRT_MAX,127) == 1)
kusano 7d535a
#    define ACC_SIZEOF_SHORT        16
kusano 7d535a
#  else
kusano 7d535a
#    error "ACC_SIZEOF_SHORT"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_SIZEOF_INT)
kusano 7d535a
#  if (ACC_ARCH_CRAY_PVP)
kusano 7d535a
#    define ACC_SIZEOF_INT          8
kusano 7d535a
#  elif (UINT_MAX == ACC_0xffffL)
kusano 7d535a
#    define ACC_SIZEOF_INT          2
kusano 7d535a
#  elif (UINT_MAX == ACC_0xffffffffL)
kusano 7d535a
#    define ACC_SIZEOF_INT          4
kusano 7d535a
#  elif (__ACC_LSR(UINT_MAX,7) == 1)
kusano 7d535a
#    define ACC_SIZEOF_INT          1
kusano 7d535a
#  elif (__ACC_LSR(UINT_MAX,15) == 1)
kusano 7d535a
#    define ACC_SIZEOF_INT          2
kusano 7d535a
#  elif (__ACC_LSR(UINT_MAX,31) == 1)
kusano 7d535a
#    define ACC_SIZEOF_INT          4
kusano 7d535a
#  elif (__ACC_LSR(UINT_MAX,63) == 1)
kusano 7d535a
#    define ACC_SIZEOF_INT          8
kusano 7d535a
#  elif (__ACC_LSR(UINT_MAX,127) == 1)
kusano 7d535a
#    define ACC_SIZEOF_INT          16
kusano 7d535a
#  else
kusano 7d535a
#    error "ACC_SIZEOF_INT"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_SIZEOF_LONG)
kusano 7d535a
#  if (ULONG_MAX == ACC_0xffffffffL)
kusano 7d535a
#    define ACC_SIZEOF_LONG         4
kusano 7d535a
#  elif (__ACC_LSR(ULONG_MAX,7) == 1)
kusano 7d535a
#    define ACC_SIZEOF_LONG         1
kusano 7d535a
#  elif (__ACC_LSR(ULONG_MAX,15) == 1)
kusano 7d535a
#    define ACC_SIZEOF_LONG         2
kusano 7d535a
#  elif (__ACC_LSR(ULONG_MAX,31) == 1)
kusano 7d535a
#    define ACC_SIZEOF_LONG         4
kusano 7d535a
#  elif (__ACC_LSR(ULONG_MAX,63) == 1)
kusano 7d535a
#    define ACC_SIZEOF_LONG         8
kusano 7d535a
#  elif (__ACC_LSR(ULONG_MAX,127) == 1)
kusano 7d535a
#    define ACC_SIZEOF_LONG         16
kusano 7d535a
#  else
kusano 7d535a
#    error "ACC_SIZEOF_LONG"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_SIZEOF_LONG_LONG) && !defined(ACC_SIZEOF___INT64)
kusano 7d535a
#if (ACC_SIZEOF_LONG > 0 && ACC_SIZEOF_LONG < 8)
kusano 7d535a
#  if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__)
kusano 7d535a
#    if (ACC_CC_GNUC >= 0x030300ul)
kusano 7d535a
#      if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0)
kusano 7d535a
#        define ACC_SIZEOF_LONG_LONG      ACC_SIZEOF_LONG
kusano 7d535a
#      elif (__ACC_LSR(__LONG_LONG_MAX__,30) == 1)
kusano 7d535a
#        define ACC_SIZEOF_LONG_LONG      4
kusano 7d535a
#      endif
kusano 7d535a
#    endif
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_SIZEOF_LONG_LONG) && !defined(ACC_SIZEOF___INT64)
kusano 7d535a
#if (ACC_SIZEOF_LONG > 0 && ACC_SIZEOF_LONG < 8)
kusano 7d535a
#if (ACC_ARCH_I086 && ACC_CC_DMC)
kusano 7d535a
#elif (ACC_CC_CILLY) && defined(__GNUC__)
kusano 7d535a
#  define ACC_SIZEOF_LONG_LONG      8
kusano 7d535a
#elif (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#  define ACC_SIZEOF_LONG_LONG      8
kusano 7d535a
#elif ((ACC_OS_WIN32 || ACC_OS_WIN64 || defined(_WIN32)) && ACC_CC_MSC && (_MSC_VER >= 1400))
kusano 7d535a
#  define ACC_SIZEOF_LONG_LONG      8
kusano 7d535a
#elif (ACC_OS_WIN64 || defined(_WIN64))
kusano 7d535a
#  define ACC_SIZEOF___INT64        8
kusano 7d535a
#elif (ACC_ARCH_I386 && (ACC_CC_DMC))
kusano 7d535a
#  define ACC_SIZEOF_LONG_LONG      8
kusano 7d535a
#elif (ACC_ARCH_I386 && (ACC_CC_SYMANTECC && (__SC__ >= 0x700)))
kusano 7d535a
#  define ACC_SIZEOF_LONG_LONG      8
kusano 7d535a
#elif (ACC_ARCH_I386 && (ACC_CC_INTELC && defined(__linux__)))
kusano 7d535a
#  define ACC_SIZEOF_LONG_LONG      8
kusano 7d535a
#elif (ACC_ARCH_I386 && (ACC_CC_MWERKS || ACC_CC_PELLESC || ACC_CC_PGI || ACC_CC_SUNPROC))
kusano 7d535a
#  define ACC_SIZEOF_LONG_LONG      8
kusano 7d535a
#elif (ACC_ARCH_I386 && (ACC_CC_INTELC || ACC_CC_MSC))
kusano 7d535a
#  define ACC_SIZEOF___INT64        8
kusano 7d535a
#elif ((ACC_OS_WIN32 || defined(_WIN32)) && (ACC_CC_MSC))
kusano 7d535a
#  define ACC_SIZEOF___INT64        8
kusano 7d535a
#elif (ACC_ARCH_I386 && (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0520)))
kusano 7d535a
#  define ACC_SIZEOF___INT64        8
kusano 7d535a
#elif (ACC_ARCH_I386 && (ACC_CC_WATCOMC && (__WATCOMC__ >= 1100)))
kusano 7d535a
#  define ACC_SIZEOF___INT64        8
kusano 7d535a
#elif (ACC_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64))
kusano 7d535a
#  define ACC_SIZEOF___INT64        8
kusano 7d535a
#elif (ACC_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
kusano 7d535a
#  define ACC_SIZEOF_LONG_LONG      8
kusano 7d535a
#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
kusano 7d535a
#  define ACC_SIZEOF_LONG_LONG      8
kusano 7d535a
#elif (ACC_CC_SDCC) && (ACC_SIZEOF_INT == 2)
kusano 7d535a
#elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
kusano 7d535a
#  define ACC_SIZEOF_LONG_LONG      8
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__cplusplus) && defined(ACC_CC_GNUC)
kusano 7d535a
#  if (ACC_CC_GNUC < 0x020800ul)
kusano 7d535a
#    undef ACC_SIZEOF_LONG_LONG
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG)
kusano 7d535a
#  undef ACC_SIZEOF_LONG_LONG
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_SIZEOF_VOID_P)
kusano 7d535a
#if (ACC_ARCH_I086)
kusano 7d535a
#  define __ACC_WORDSIZE            2
kusano 7d535a
#  if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
kusano 7d535a
#    define ACC_SIZEOF_VOID_P       2
kusano 7d535a
#  elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
kusano 7d535a
#    define ACC_SIZEOF_VOID_P       4
kusano 7d535a
#  else
kusano 7d535a
#    error "ACC_MM"
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_ARCH_AVR || ACC_ARCH_Z80)
kusano 7d535a
#  define __ACC_WORDSIZE            1
kusano 7d535a
#  define ACC_SIZEOF_VOID_P         2
kusano 7d535a
#elif (ACC_ARCH_C166 || ACC_ARCH_MCS51 || ACC_ARCH_MCS251 || ACC_ARCH_MSP430)
kusano 7d535a
#  define ACC_SIZEOF_VOID_P         2
kusano 7d535a
#elif (ACC_ARCH_H8300)
kusano 7d535a
#  if defined(__NORMAL_MODE__)
kusano 7d535a
#    define __ACC_WORDSIZE          4
kusano 7d535a
#    define ACC_SIZEOF_VOID_P       2
kusano 7d535a
#  elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
kusano 7d535a
#    define __ACC_WORDSIZE          4
kusano 7d535a
#    define ACC_SIZEOF_VOID_P       4
kusano 7d535a
#  else
kusano 7d535a
#    define __ACC_WORDSIZE          2
kusano 7d535a
#    define ACC_SIZEOF_VOID_P       2
kusano 7d535a
#  endif
kusano 7d535a
#  if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x040000ul)) && (ACC_SIZEOF_INT == 4)
kusano 7d535a
#    define ACC_SIZEOF_SIZE_T       ACC_SIZEOF_INT
kusano 7d535a
#    define ACC_SIZEOF_PTRDIFF_T    ACC_SIZEOF_INT
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_ARCH_M16C)
kusano 7d535a
#  define __ACC_WORDSIZE            2
kusano 7d535a
#  if defined(__m32c_cpu__) || defined(__m32cm_cpu__)
kusano 7d535a
#    define ACC_SIZEOF_VOID_P       4
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_SIZEOF_VOID_P       2
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
kusano 7d535a
#  define __ACC_WORDSIZE            8
kusano 7d535a
#  define ACC_SIZEOF_VOID_P         4
kusano 7d535a
#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64)
kusano 7d535a
#  define __ACC_WORDSIZE            8
kusano 7d535a
#  define ACC_SIZEOF_VOID_P         8
kusano 7d535a
#elif (ACC_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
kusano 7d535a
#  define ACC_SIZEOF_VOID_P         ACC_SIZEOF_LONG
kusano 7d535a
#  define ACC_SIZEOF_SIZE_T         ACC_SIZEOF_LONG
kusano 7d535a
#  define ACC_SIZEOF_PTRDIFF_T      ACC_SIZEOF_LONG
kusano 7d535a
#elif (ACC_OS_OS400 || defined(__OS400__))
kusano 7d535a
#  define __ACC_WORDSIZE            ACC_SIZEOF_LONG
kusano 7d535a
#  define ACC_SIZEOF_VOID_P         16
kusano 7d535a
#  define ACC_SIZEOF_SIZE_T         ACC_SIZEOF_LONG
kusano 7d535a
#  define ACC_SIZEOF_PTRDIFF_T      ACC_SIZEOF_LONG
kusano 7d535a
#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
kusano 7d535a
#  define ACC_SIZEOF_VOID_P         8
kusano 7d535a
#  define ACC_SIZEOF_SIZE_T         ACC_SIZEOF_LONG
kusano 7d535a
#  define ACC_SIZEOF_PTRDIFF_T      ACC_SIZEOF_LONG
kusano 7d535a
#elif (ACC_ARCH_SPU)
kusano 7d535a
# if 0
kusano 7d535a
#  define __ACC_WORDSIZE            16
kusano 7d535a
# endif
kusano 7d535a
#  define ACC_SIZEOF_VOID_P         4
kusano 7d535a
#else
kusano 7d535a
#  define ACC_SIZEOF_VOID_P         ACC_SIZEOF_LONG
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_WORDSIZE)
kusano 7d535a
#  if defined(__ACC_WORDSIZE)
kusano 7d535a
#    define ACC_WORDSIZE            __ACC_WORDSIZE
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_WORDSIZE            ACC_SIZEOF_VOID_P
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_SIZEOF_SIZE_T)
kusano 7d535a
#if (ACC_ARCH_I086 || ACC_ARCH_M16C)
kusano 7d535a
#  define ACC_SIZEOF_SIZE_T         2
kusano 7d535a
#else
kusano 7d535a
#  define ACC_SIZEOF_SIZE_T         ACC_SIZEOF_VOID_P
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_SIZEOF_PTRDIFF_T)
kusano 7d535a
#if (ACC_ARCH_I086)
kusano 7d535a
#  if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM || ACC_MM_HUGE)
kusano 7d535a
#    define ACC_SIZEOF_PTRDIFF_T    ACC_SIZEOF_VOID_P
kusano 7d535a
#  elif (ACC_MM_COMPACT || ACC_MM_LARGE)
kusano 7d535a
#    if (ACC_CC_BORLANDC || ACC_CC_TURBOC)
kusano 7d535a
#      define ACC_SIZEOF_PTRDIFF_T  4
kusano 7d535a
#    else
kusano 7d535a
#      define ACC_SIZEOF_PTRDIFF_T  2
kusano 7d535a
#    endif
kusano 7d535a
#  else
kusano 7d535a
#    error "ACC_MM"
kusano 7d535a
#  endif
kusano 7d535a
#else
kusano 7d535a
#  define ACC_SIZEOF_PTRDIFF_T      ACC_SIZEOF_SIZE_T
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_ABI_NEUTRAL_ENDIAN)
kusano 7d535a
#  undef ACC_ABI_BIG_ENDIAN
kusano 7d535a
#  undef ACC_ABI_LITTLE_ENDIAN
kusano 7d535a
#elif !defined(ACC_ABI_BIG_ENDIAN) && !defined(ACC_ABI_LITTLE_ENDIAN)
kusano 7d535a
#if (ACC_ARCH_ALPHA) && (ACC_ARCH_CRAY_MPP)
kusano 7d535a
#  define ACC_ABI_BIG_ENDIAN        1
kusano 7d535a
#elif (ACC_ARCH_ALPHA || ACC_ARCH_AMD64 || ACC_ARCH_BLACKFIN || ACC_ARCH_CRIS || ACC_ARCH_I086 || ACC_ARCH_I386 || ACC_ARCH_MSP430)
kusano 7d535a
#  define ACC_ABI_LITTLE_ENDIAN     1
kusano 7d535a
#elif (ACC_ARCH_M68K || ACC_ARCH_S390)
kusano 7d535a
#  define ACC_ABI_BIG_ENDIAN        1
kusano 7d535a
#elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__)
kusano 7d535a
#  if (__LITTLE_ENDIAN__ == 1)
kusano 7d535a
#    define ACC_ABI_LITTLE_ENDIAN   1
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_ABI_BIG_ENDIAN      1
kusano 7d535a
#  endif
kusano 7d535a
#elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
kusano 7d535a
#  define ACC_ABI_BIG_ENDIAN        1
kusano 7d535a
#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
kusano 7d535a
#  define ACC_ABI_LITTLE_ENDIAN     1
kusano 7d535a
#elif 1 && (ACC_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
kusano 7d535a
#  define ACC_ABI_BIG_ENDIAN        1
kusano 7d535a
#elif 1 && (ACC_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
kusano 7d535a
#  define ACC_ABI_LITTLE_ENDIAN     1
kusano 7d535a
#elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
kusano 7d535a
#  define ACC_ABI_BIG_ENDIAN        1
kusano 7d535a
#elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
kusano 7d535a
#  define ACC_ABI_LITTLE_ENDIAN     1
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_ABI_BIG_ENDIAN) && defined(ACC_ABI_LITTLE_ENDIAN)
kusano 7d535a
#  error "this should not happen"
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_ABI_BIG_ENDIAN)
kusano 7d535a
#  define ACC_INFO_ABI_ENDIAN       "be"
kusano 7d535a
#elif defined(ACC_ABI_LITTLE_ENDIAN)
kusano 7d535a
#  define ACC_INFO_ABI_ENDIAN       "le"
kusano 7d535a
#elif defined(ACC_ABI_NEUTRAL_ENDIAN)
kusano 7d535a
#  define ACC_INFO_ABI_ENDIAN       "neutral"
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_SIZEOF_INT == 1 && ACC_SIZEOF_LONG == 2 && ACC_SIZEOF_VOID_P == 2)
kusano 7d535a
#  define ACC_ABI_I8LP16         1
kusano 7d535a
#  define ACC_INFO_ABI_PM       "i8lp16"
kusano 7d535a
#elif (ACC_SIZEOF_INT == 2 && ACC_SIZEOF_LONG == 2 && ACC_SIZEOF_VOID_P == 2)
kusano 7d535a
#  define ACC_ABI_ILP16         1
kusano 7d535a
#  define ACC_INFO_ABI_PM       "ilp16"
kusano 7d535a
#elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 4)
kusano 7d535a
#  define ACC_ABI_ILP32         1
kusano 7d535a
#  define ACC_INFO_ABI_PM       "ilp32"
kusano 7d535a
#elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 8 && ACC_SIZEOF_SIZE_T == 8)
kusano 7d535a
#  define ACC_ABI_LLP64         1
kusano 7d535a
#  define ACC_INFO_ABI_PM       "llp64"
kusano 7d535a
#elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 8)
kusano 7d535a
#  define ACC_ABI_LP64          1
kusano 7d535a
#  define ACC_INFO_ABI_PM       "lp64"
kusano 7d535a
#elif (ACC_SIZEOF_INT == 8 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 8)
kusano 7d535a
#  define ACC_ABI_ILP64         1
kusano 7d535a
#  define ACC_INFO_ABI_PM       "ilp64"
kusano 7d535a
#elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 4)
kusano 7d535a
#  define ACC_ABI_IP32L64       1
kusano 7d535a
#  define ACC_INFO_ABI_PM       "ip32l64"
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__ACC_LIBC_OVERRIDE)
kusano 7d535a
#if defined(ACC_LIBC_NAKED)
kusano 7d535a
#  define ACC_INFO_LIBC         "naked"
kusano 7d535a
#elif defined(ACC_LIBC_FREESTANDING)
kusano 7d535a
#  define ACC_INFO_LIBC         "freestanding"
kusano 7d535a
#elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
kusano 7d535a
#  define ACC_INFO_LIBC         "mfreestanding"
kusano 7d535a
#elif defined(ACC_LIBC_ISOC90)
kusano 7d535a
#  define ACC_INFO_LIBC         "isoc90"
kusano 7d535a
#elif defined(ACC_LIBC_ISOC99)
kusano 7d535a
#  define ACC_INFO_LIBC         "isoc99"
kusano 7d535a
#elif defined(__dietlibc__)
kusano 7d535a
#  define ACC_LIBC_DIETLIBC     1
kusano 7d535a
#  define ACC_INFO_LIBC         "dietlibc"
kusano 7d535a
#elif defined(_NEWLIB_VERSION)
kusano 7d535a
#  define ACC_LIBC_NEWLIB       1
kusano 7d535a
#  define ACC_INFO_LIBC         "newlib"
kusano 7d535a
#elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__)
kusano 7d535a
#  if defined(__UCLIBC_SUBLEVEL__)
kusano 7d535a
#    define ACC_LIBC_UCLIBC     (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_LIBC_UCLIBC     0x00090bL
kusano 7d535a
#  endif
kusano 7d535a
#  define ACC_INFO_LIBC         "uclibc"
kusano 7d535a
#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__)
kusano 7d535a
#  define ACC_LIBC_GLIBC        (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100)
kusano 7d535a
#  define ACC_INFO_LIBC         "glibc"
kusano 7d535a
#elif (ACC_CC_MWERKS) && defined(__MSL__)
kusano 7d535a
#  define ACC_LIBC_MSL          __MSL__
kusano 7d535a
#  define ACC_INFO_LIBC         "msl"
kusano 7d535a
#elif 1 && defined(__IAR_SYSTEMS_ICC__)
kusano 7d535a
#  define ACC_LIBC_ISOC90       1
kusano 7d535a
#  define ACC_INFO_LIBC         "isoc90"
kusano 7d535a
#else
kusano 7d535a
#  define ACC_LIBC_DEFAULT      1
kusano 7d535a
#  define ACC_INFO_LIBC         "default"
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_gnuc_extension__)
kusano 7d535a
#if (ACC_CC_GNUC >= 0x020800ul)
kusano 7d535a
#  define __acc_gnuc_extension__    __extension__
kusano 7d535a
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#  define __acc_gnuc_extension__    __extension__
kusano 7d535a
#else
kusano 7d535a
#  define __acc_gnuc_extension__
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_ua_volatile)
kusano 7d535a
#  define __acc_ua_volatile     volatile
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_alignof)
kusano 7d535a
#if (ACC_CC_CILLY || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
kusano 7d535a
#  define __acc_alignof(e)      __alignof__(e)
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 700))
kusano 7d535a
#  define __acc_alignof(e)      __alignof__(e)
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER >= 1300))
kusano 7d535a
#  define __acc_alignof(e)      __alignof(e)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_alignof)
kusano 7d535a
#  define __acc_HAVE_alignof 1
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_constructor)
kusano 7d535a
#if (ACC_CC_GNUC >= 0x030400ul)
kusano 7d535a
#  define __acc_constructor     __attribute__((__constructor__,__used__))
kusano 7d535a
#elif (ACC_CC_GNUC >= 0x020700ul)
kusano 7d535a
#  define __acc_constructor     __attribute__((__constructor__))
kusano 7d535a
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#  define __acc_constructor     __attribute__((__constructor__))
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_constructor)
kusano 7d535a
#  define __acc_HAVE_constructor 1
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_destructor)
kusano 7d535a
#if (ACC_CC_GNUC >= 0x030400ul)
kusano 7d535a
#  define __acc_destructor      __attribute__((__destructor__,__used__))
kusano 7d535a
#elif (ACC_CC_GNUC >= 0x020700ul)
kusano 7d535a
#  define __acc_destructor      __attribute__((__destructor__))
kusano 7d535a
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#  define __acc_destructor      __attribute__((__destructor__))
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_destructor)
kusano 7d535a
#  define __acc_HAVE_destructor 1
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_HAVE_destructor) && !defined(__acc_HAVE_constructor)
kusano 7d535a
#  error "this should not happen"
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_inline)
kusano 7d535a
#if (ACC_CC_TURBOC && (__TURBOC__ <= 0x0295))
kusano 7d535a
#elif defined(__cplusplus)
kusano 7d535a
#  define __acc_inline          inline
kusano 7d535a
#elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
kusano 7d535a
#  define __acc_inline          __inline
kusano 7d535a
#elif (ACC_CC_CILLY || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
kusano 7d535a
#  define __acc_inline          __inline__
kusano 7d535a
#elif (ACC_CC_DMC)
kusano 7d535a
#  define __acc_inline          __inline
kusano 7d535a
#elif (ACC_CC_INTELC)
kusano 7d535a
#  define __acc_inline          __inline
kusano 7d535a
#elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x2405))
kusano 7d535a
#  define __acc_inline          __inline
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER >= 900))
kusano 7d535a
#  define __acc_inline          __inline
kusano 7d535a
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
kusano 7d535a
#  define __acc_inline          inline
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_inline)
kusano 7d535a
#  define __acc_HAVE_inline 1
kusano 7d535a
#else
kusano 7d535a
#  define __acc_inline
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_forceinline)
kusano 7d535a
#if (ACC_CC_GNUC >= 0x030200ul)
kusano 7d535a
#  define __acc_forceinline     __inline__ __attribute__((__always_inline__))
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC)
kusano 7d535a
#  define __acc_forceinline     __forceinline
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
kusano 7d535a
#  define __acc_forceinline     __inline__ __attribute__((__always_inline__))
kusano 7d535a
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#  define __acc_forceinline     __inline__ __attribute__((__always_inline__))
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER >= 1200))
kusano 7d535a
#  define __acc_forceinline     __forceinline
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_forceinline)
kusano 7d535a
#  define __acc_HAVE_forceinline 1
kusano 7d535a
#else
kusano 7d535a
#  define __acc_forceinline
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_noinline)
kusano 7d535a
#if 1 && (ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x040000ul) && (ACC_CC_GNUC < 0x040003ul)
kusano 7d535a
#  define __acc_noinline        __attribute__((__noinline__,__used__))
kusano 7d535a
#elif (ACC_CC_GNUC >= 0x030200ul)
kusano 7d535a
#  define __acc_noinline        __attribute__((__noinline__))
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_MSC)
kusano 7d535a
#  define __acc_noinline        __declspec(noinline)
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
kusano 7d535a
#  define __acc_noinline        __attribute__((__noinline__))
kusano 7d535a
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#  define __acc_noinline        __attribute__((__noinline__))
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER >= 1300))
kusano 7d535a
#  define __acc_noinline        __declspec(noinline)
kusano 7d535a
#elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3200) && (ACC_OS_WIN32 || ACC_OS_WIN64))
kusano 7d535a
#  if defined(__cplusplus)
kusano 7d535a
#  else
kusano 7d535a
#    define __acc_noinline      __declspec(noinline)
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_noinline)
kusano 7d535a
#  define __acc_HAVE_noinline 1
kusano 7d535a
#else
kusano 7d535a
#  define __acc_noinline
kusano 7d535a
#endif
kusano 7d535a
#if (defined(__acc_HAVE_forceinline) || defined(__acc_HAVE_noinline)) && !defined(__acc_HAVE_inline)
kusano 7d535a
#  error "this should not happen"
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_noreturn)
kusano 7d535a
#if (ACC_CC_GNUC >= 0x020700ul)
kusano 7d535a
#  define __acc_noreturn        __attribute__((__noreturn__))
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC)
kusano 7d535a
#  define __acc_noreturn        __declspec(noreturn)
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_GNUC)
kusano 7d535a
#  define __acc_noreturn        __attribute__((__noreturn__))
kusano 7d535a
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#  define __acc_noreturn        __attribute__((__noreturn__))
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER >= 1200))
kusano 7d535a
#  define __acc_noreturn        __declspec(noreturn)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_noreturn)
kusano 7d535a
#  define __acc_HAVE_noreturn 1
kusano 7d535a
#else
kusano 7d535a
#  define __acc_noreturn
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_nothrow)
kusano 7d535a
#if (ACC_CC_GNUC >= 0x030300ul)
kusano 7d535a
#  define __acc_nothrow         __attribute__((__nothrow__))
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC) && defined(__cplusplus)
kusano 7d535a
#  define __acc_nothrow         __declspec(nothrow)
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
kusano 7d535a
#  define __acc_nothrow         __attribute__((__nothrow__))
kusano 7d535a
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#  define __acc_nothrow         __attribute__((__nothrow__))
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus)
kusano 7d535a
#  define __acc_nothrow         __declspec(nothrow)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_nothrow)
kusano 7d535a
#  define __acc_HAVE_nothrow 1
kusano 7d535a
#else
kusano 7d535a
#  define __acc_nothrow
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_restrict)
kusano 7d535a
#if (ACC_CC_GNUC >= 0x030400ul)
kusano 7d535a
#  define __acc_restrict        __restrict__
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_GNUC)
kusano 7d535a
#  define __acc_restrict        __restrict__
kusano 7d535a
#elif (ACC_CC_LLVM)
kusano 7d535a
#  define __acc_restrict        __restrict__
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER >= 1400))
kusano 7d535a
#  define __acc_restrict        __restrict
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_restrict)
kusano 7d535a
#  define __acc_HAVE_restrict 1
kusano 7d535a
#else
kusano 7d535a
#  define __acc_restrict
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_likely) && !defined(__acc_unlikely)
kusano 7d535a
#if (ACC_CC_GNUC >= 0x030200ul)
kusano 7d535a
#  define __acc_likely(e)       (__builtin_expect(!!(e),1))
kusano 7d535a
#  define __acc_unlikely(e)     (__builtin_expect(!!(e),0))
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800))
kusano 7d535a
#  define __acc_likely(e)       (__builtin_expect(!!(e),1))
kusano 7d535a
#  define __acc_unlikely(e)     (__builtin_expect(!!(e),0))
kusano 7d535a
#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#  define __acc_likely(e)       (__builtin_expect(!!(e),1))
kusano 7d535a
#  define __acc_unlikely(e)     (__builtin_expect(!!(e),0))
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_likely)
kusano 7d535a
#  define __acc_HAVE_likely 1
kusano 7d535a
#else
kusano 7d535a
#  define __acc_likely(e)       (e)
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_unlikely)
kusano 7d535a
#  define __acc_HAVE_unlikely 1
kusano 7d535a
#else
kusano 7d535a
#  define __acc_unlikely(e)     (e)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UNUSED)
kusano 7d535a
#  if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
kusano 7d535a
#    define ACC_UNUSED(var)         ((void) &var)
kusano 7d535a
#  elif (ACC_CC_BORLANDC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PELLESC || ACC_CC_TURBOC)
kusano 7d535a
#    define ACC_UNUSED(var)         if (&var) ; else
kusano 7d535a
#  elif (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#    define ACC_UNUSED(var)         ((void) var)
kusano 7d535a
#  elif (ACC_CC_MSC && (_MSC_VER < 900))
kusano 7d535a
#    define ACC_UNUSED(var)         if (&var) ; else
kusano 7d535a
#  elif (ACC_CC_KEILC)
kusano 7d535a
#    define ACC_UNUSED(var)         {extern int __acc_unused[1-2*!(sizeof(var)>0)];}
kusano 7d535a
#  elif (ACC_CC_PACIFICC)
kusano 7d535a
#    define ACC_UNUSED(var)         ((void) sizeof(var))
kusano 7d535a
#  elif (ACC_CC_WATCOMC) && defined(__cplusplus)
kusano 7d535a
#    define ACC_UNUSED(var)         ((void) var)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_UNUSED(var)         ((void) &var)
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UNUSED_FUNC)
kusano 7d535a
#  if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
kusano 7d535a
#    define ACC_UNUSED_FUNC(func)   ((void) func)
kusano 7d535a
#  elif (ACC_CC_BORLANDC || ACC_CC_NDPC || ACC_CC_TURBOC)
kusano 7d535a
#    define ACC_UNUSED_FUNC(func)   if (func) ; else
kusano 7d535a
#  elif (ACC_CC_LLVM)
kusano 7d535a
#    define ACC_UNUSED_FUNC(func)   ((void) &func)
kusano 7d535a
#  elif (ACC_CC_MSC && (_MSC_VER < 900))
kusano 7d535a
#    define ACC_UNUSED_FUNC(func)   if (func) ; else
kusano 7d535a
#  elif (ACC_CC_MSC)
kusano 7d535a
#    define ACC_UNUSED_FUNC(func)   ((void) &func)
kusano 7d535a
#  elif (ACC_CC_KEILC || ACC_CC_PELLESC)
kusano 7d535a
#    define ACC_UNUSED_FUNC(func)   {extern int __acc_unused[1-2*!(sizeof((int)func)>0)];}
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_UNUSED_FUNC(func)   ((void) func)
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UNUSED_LABEL)
kusano 7d535a
#  if (ACC_CC_WATCOMC) && defined(__cplusplus)
kusano 7d535a
#    define ACC_UNUSED_LABEL(l)     switch(0) case 1:goto l
kusano 7d535a
#  elif (ACC_CC_INTELC || ACC_CC_WATCOMC)
kusano 7d535a
#    define ACC_UNUSED_LABEL(l)     if (0) goto l
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_UNUSED_LABEL(l)     switch(0) case 1:goto l
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_DEFINE_UNINITIALIZED_VAR)
kusano 7d535a
#  if 0
kusano 7d535a
#    define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init)  type var
kusano 7d535a
#  elif 0 && (ACC_CC_GNUC)
kusano 7d535a
#    define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init)  type var = var
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init)  type var = init
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_COMPILE_TIME_ASSERT_HEADER)
kusano 7d535a
#  if (ACC_CC_AZTECC || ACC_CC_ZORTECHC)
kusano 7d535a
#    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  extern int __acc_cta[1-!(e)];
kusano 7d535a
#  elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
kusano 7d535a
#    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  extern int __acc_cta[1u-2*!(e)];
kusano 7d535a
#  elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
kusano 7d535a
#    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  extern int __acc_cta[1-!(e)];
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  extern int __acc_cta[1-2*!(e)];
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_COMPILE_TIME_ASSERT)
kusano 7d535a
#  if (ACC_CC_AZTECC)
kusano 7d535a
#    define ACC_COMPILE_TIME_ASSERT(e)  {typedef int __acc_cta_t[1-!(e)];}
kusano 7d535a
#  elif (ACC_CC_DMC || ACC_CC_PACIFICC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
kusano 7d535a
#    define ACC_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
kusano 7d535a
#  elif (ACC_CC_MSC && (_MSC_VER < 900))
kusano 7d535a
#    define ACC_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
kusano 7d535a
#  elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
kusano 7d535a
#    define ACC_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_COMPILE_TIME_ASSERT(e)  {typedef int __acc_cta_t[1-2*!(e)];}
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
#  if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC)
kusano 7d535a
#  elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
kusano 7d535a
#    define __acc_cdecl                 __cdecl
kusano 7d535a
#    define __acc_cdecl_atexit
kusano 7d535a
#    define __acc_cdecl_main            __cdecl
kusano 7d535a
#    if (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
kusano 7d535a
#      define __acc_cdecl_qsort         __pascal
kusano 7d535a
#    elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
kusano 7d535a
#      define __acc_cdecl_qsort         _stdcall
kusano 7d535a
#    else
kusano 7d535a
#      define __acc_cdecl_qsort         __cdecl
kusano 7d535a
#    endif
kusano 7d535a
#  elif (ACC_CC_WATCOMC)
kusano 7d535a
#    define __acc_cdecl                 __cdecl
kusano 7d535a
#  else
kusano 7d535a
#    define __acc_cdecl                 __cdecl
kusano 7d535a
#    define __acc_cdecl_atexit          __cdecl
kusano 7d535a
#    define __acc_cdecl_main            __cdecl
kusano 7d535a
#    define __acc_cdecl_qsort           __cdecl
kusano 7d535a
#  endif
kusano 7d535a
#  if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC || ACC_CC_WATCOMC)
kusano 7d535a
#  elif (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
kusano 7d535a
#    define __acc_cdecl_sighandler      __pascal
kusano 7d535a
#  elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
kusano 7d535a
#    define __acc_cdecl_sighandler      _stdcall
kusano 7d535a
#  elif (ACC_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE)
kusano 7d535a
#    define __acc_cdecl_sighandler      __clrcall
kusano 7d535a
#  elif (ACC_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700))
kusano 7d535a
#    if defined(_DLL)
kusano 7d535a
#      define __acc_cdecl_sighandler    _far _cdecl _loadds
kusano 7d535a
#    elif defined(_MT)
kusano 7d535a
#      define __acc_cdecl_sighandler    _far _cdecl
kusano 7d535a
#    else
kusano 7d535a
#      define __acc_cdecl_sighandler    _cdecl
kusano 7d535a
#    endif
kusano 7d535a
#  else
kusano 7d535a
#    define __acc_cdecl_sighandler      __cdecl
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_ARCH_I386) && (ACC_CC_WATCOMC)
kusano 7d535a
#  define __acc_cdecl                   __cdecl
kusano 7d535a
#elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
kusano 7d535a
#  define __acc_cdecl                   cdecl
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_cdecl)
kusano 7d535a
#  define __acc_cdecl
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_cdecl_atexit)
kusano 7d535a
#  define __acc_cdecl_atexit
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_cdecl_main)
kusano 7d535a
#  define __acc_cdecl_main
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_cdecl_qsort)
kusano 7d535a
#  define __acc_cdecl_qsort
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_cdecl_sighandler)
kusano 7d535a
#  define __acc_cdecl_sighandler
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_cdecl_va)
kusano 7d535a
#  define __acc_cdecl_va                __acc_cdecl
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_CFG_NO_WINDOWS_H)
kusano 7d535a
#if (ACC_OS_CYGWIN || (ACC_OS_EMX && defined(__RSXNT__)) || ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
#  if (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))
kusano 7d535a
#  elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
kusano 7d535a
#  elif ((ACC_OS_CYGWIN || defined(__MINGW32__)) && (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025f00ul)))
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_HAVE_WINDOWS_H 1
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ARCH_ALPHA)
kusano 7d535a
#  define ACC_OPT_AVOID_UINT_INDEX  1
kusano 7d535a
#  define ACC_OPT_AVOID_SHORT       1
kusano 7d535a
#  define ACC_OPT_AVOID_USHORT      1
kusano 7d535a
#elif (ACC_ARCH_AMD64)
kusano 7d535a
#  define ACC_OPT_AVOID_INT_INDEX   1
kusano 7d535a
#  define ACC_OPT_AVOID_UINT_INDEX  1
kusano 7d535a
#  define ACC_OPT_UNALIGNED16       1
kusano 7d535a
#  define ACC_OPT_UNALIGNED32       1
kusano 7d535a
#  define ACC_OPT_UNALIGNED64       1
kusano 7d535a
#elif (ACC_ARCH_ARM && ACC_ARCH_ARM_THUMB)
kusano 7d535a
#elif (ACC_ARCH_ARM)
kusano 7d535a
#  define ACC_OPT_AVOID_SHORT       1
kusano 7d535a
#  define ACC_OPT_AVOID_USHORT      1
kusano 7d535a
#elif (ACC_ARCH_CRIS)
kusano 7d535a
#  define ACC_OPT_UNALIGNED16       1
kusano 7d535a
#  define ACC_OPT_UNALIGNED32       1
kusano 7d535a
#elif (ACC_ARCH_I386)
kusano 7d535a
#  define ACC_OPT_UNALIGNED16       1
kusano 7d535a
#  define ACC_OPT_UNALIGNED32       1
kusano 7d535a
#elif (ACC_ARCH_IA64)
kusano 7d535a
#  define ACC_OPT_AVOID_INT_INDEX   1
kusano 7d535a
#  define ACC_OPT_AVOID_UINT_INDEX  1
kusano 7d535a
#  define ACC_OPT_PREFER_POSTINC    1
kusano 7d535a
#elif (ACC_ARCH_M68K)
kusano 7d535a
#  define ACC_OPT_PREFER_POSTINC    1
kusano 7d535a
#  define ACC_OPT_PREFER_PREDEC     1
kusano 7d535a
#  if defined(__mc68020__) && !defined(__mcoldfire__)
kusano 7d535a
#    define ACC_OPT_UNALIGNED16     1
kusano 7d535a
#    define ACC_OPT_UNALIGNED32     1
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_ARCH_MIPS)
kusano 7d535a
#  define ACC_OPT_AVOID_UINT_INDEX  1
kusano 7d535a
#elif (ACC_ARCH_POWERPC)
kusano 7d535a
#  define ACC_OPT_PREFER_PREINC     1
kusano 7d535a
#  define ACC_OPT_PREFER_PREDEC     1
kusano 7d535a
#  if defined(ACC_ABI_BIG_ENDIAN)
kusano 7d535a
#    define ACC_OPT_UNALIGNED16     1
kusano 7d535a
#    define ACC_OPT_UNALIGNED32     1
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_ARCH_S390)
kusano 7d535a
#  define ACC_OPT_UNALIGNED16       1
kusano 7d535a
#  define ACC_OPT_UNALIGNED32       1
kusano 7d535a
#  if (ACC_SIZEOF_SIZE_T == 8)
kusano 7d535a
#    define ACC_OPT_UNALIGNED64     1
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_ARCH_SH)
kusano 7d535a
#  define ACC_OPT_PREFER_POSTINC    1
kusano 7d535a
#  define ACC_OPT_PREFER_PREDEC     1
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_CFG_NO_INLINE_ASM)
kusano 7d535a
#if defined(ACC_CC_LLVM)
kusano 7d535a
#  define ACC_CFG_NO_INLINE_ASM 1
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_CFG_NO_UNALIGNED)
kusano 7d535a
#if defined(ACC_ABI_NEUTRAL_ENDIAN) || defined(ACC_ARCH_GENERIC)
kusano 7d535a
#  define ACC_CFG_NO_UNALIGNED 1
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_CFG_NO_UNALIGNED)
kusano 7d535a
#  undef ACC_OPT_UNALIGNED16
kusano 7d535a
#  undef ACC_OPT_UNALIGNED32
kusano 7d535a
#  undef ACC_OPT_UNALIGNED64
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_CFG_NO_INLINE_ASM)
kusano 7d535a
#elif (ACC_ARCH_I386 && (ACC_OS_DOS32 || ACC_OS_WIN32) && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
kusano 7d535a
#  define ACC_ASM_SYNTAX_MSC 1
kusano 7d535a
#elif (ACC_OS_WIN64 && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
kusano 7d535a
#elif (ACC_ARCH_I386 && (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
kusano 7d535a
#  define ACC_ASM_SYNTAX_GNUC 1
kusano 7d535a
#elif (ACC_ARCH_AMD64 && (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
kusano 7d535a
#  define ACC_ASM_SYNTAX_GNUC 1
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ASM_SYNTAX_GNUC)
kusano 7d535a
#if (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
kusano 7d535a
#  define __ACC_ASM_CLOBBER         "ax"
kusano 7d535a
#elif (ACC_CC_INTELC)
kusano 7d535a
#  define __ACC_ASM_CLOBBER         "memory"
kusano 7d535a
#else
kusano 7d535a
#  define __ACC_ASM_CLOBBER         "cc", "memory"
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ACC_INFOSTR_MM)
kusano 7d535a
#elif (ACC_MM_FLAT) && (defined(__ACC_INFOSTR_PM) || defined(ACC_INFO_ABI_PM))
kusano 7d535a
#  define __ACC_INFOSTR_MM          ""
kusano 7d535a
#elif defined(ACC_INFO_MM)
kusano 7d535a
#  define __ACC_INFOSTR_MM          "." ACC_INFO_MM
kusano 7d535a
#else
kusano 7d535a
#  define __ACC_INFOSTR_MM          ""
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ACC_INFOSTR_PM)
kusano 7d535a
#elif defined(ACC_INFO_ABI_PM)
kusano 7d535a
#  define __ACC_INFOSTR_PM          "." ACC_INFO_ABI_PM
kusano 7d535a
#else
kusano 7d535a
#  define __ACC_INFOSTR_PM          ""
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ACC_INFOSTR_ENDIAN)
kusano 7d535a
#elif defined(ACC_INFO_ABI_ENDIAN)
kusano 7d535a
#  define __ACC_INFOSTR_ENDIAN      "." ACC_INFO_ABI_ENDIAN
kusano 7d535a
#else
kusano 7d535a
#  define __ACC_INFOSTR_ENDIAN      ""
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ACC_INFOSTR_OSNAME)
kusano 7d535a
#elif defined(ACC_INFO_OS_CONSOLE)
kusano 7d535a
#  define __ACC_INFOSTR_OSNAME      ACC_INFO_OS "." ACC_INFO_OS_CONSOLE
kusano 7d535a
#elif defined(ACC_INFO_OS_POSIX)
kusano 7d535a
#  define __ACC_INFOSTR_OSNAME      ACC_INFO_OS "." ACC_INFO_OS_POSIX
kusano 7d535a
#else
kusano 7d535a
#  define __ACC_INFOSTR_OSNAME      ACC_INFO_OS
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ACC_INFOSTR_LIBC)
kusano 7d535a
#elif defined(ACC_INFO_LIBC)
kusano 7d535a
#  define __ACC_INFOSTR_LIBC        "." ACC_INFO_LIBC
kusano 7d535a
#else
kusano 7d535a
#  define __ACC_INFOSTR_LIBC        ""
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ACC_INFOSTR_CCVER)
kusano 7d535a
#elif defined(ACC_INFO_CCVER)
kusano 7d535a
#  define __ACC_INFOSTR_CCVER       " " ACC_INFO_CCVER
kusano 7d535a
#else
kusano 7d535a
#  define __ACC_INFOSTR_CCVER       ""
kusano 7d535a
#endif
kusano 7d535a
#define ACC_INFO_STRING \
kusano 7d535a
    ACC_INFO_ARCH __ACC_INFOSTR_MM __ACC_INFOSTR_PM __ACC_INFOSTR_ENDIAN \
kusano 7d535a
    " " __ACC_INFOSTR_OSNAME __ACC_INFOSTR_LIBC " " ACC_INFO_CC __ACC_INFOSTR_CCVER
kusano 7d535a
#if defined(ACC_CFG_NO_CONFIG_HEADER)
kusano 7d535a
#elif defined(ACC_CFG_CONFIG_HEADER)
kusano 7d535a
#else
kusano 7d535a
#if !defined(ACC_CFG_AUTO_NO_HEADERS)
kusano 7d535a
#if defined(ACC_LIBC_NAKED)
kusano 7d535a
#elif defined(ACC_LIBC_FREESTANDING)
kusano 7d535a
#  define HAVE_LIMITS_H 1
kusano 7d535a
#  define HAVE_STDARG_H 1
kusano 7d535a
#  define HAVE_STDDEF_H 1
kusano 7d535a
#elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
kusano 7d535a
#  define HAVE_LIMITS_H 1
kusano 7d535a
#  define HAVE_SETJMP_H 1
kusano 7d535a
#  define HAVE_STDARG_H 1
kusano 7d535a
#  define HAVE_STDDEF_H 1
kusano 7d535a
#  define HAVE_STDIO_H 1
kusano 7d535a
#  define HAVE_STRING_H 1
kusano 7d535a
#else
kusano 7d535a
#define STDC_HEADERS 1
kusano 7d535a
#define HAVE_ASSERT_H 1
kusano 7d535a
#define HAVE_CTYPE_H 1
kusano 7d535a
#define HAVE_DIRENT_H 1
kusano 7d535a
#define HAVE_ERRNO_H 1
kusano 7d535a
#define HAVE_FCNTL_H 1
kusano 7d535a
#define HAVE_FLOAT_H 1
kusano 7d535a
#define HAVE_LIMITS_H 1
kusano 7d535a
#define HAVE_MALLOC_H 1
kusano 7d535a
#define HAVE_MEMORY_H 1
kusano 7d535a
#define HAVE_SETJMP_H 1
kusano 7d535a
#define HAVE_SIGNAL_H 1
kusano 7d535a
#define HAVE_STDARG_H 1
kusano 7d535a
#define HAVE_STDDEF_H 1
kusano 7d535a
#define HAVE_STDIO_H 1
kusano 7d535a
#define HAVE_STDLIB_H 1
kusano 7d535a
#define HAVE_STRING_H 1
kusano 7d535a
#define HAVE_TIME_H 1
kusano 7d535a
#define HAVE_UNISTD_H 1
kusano 7d535a
#define HAVE_UTIME_H 1
kusano 7d535a
#define HAVE_SYS_STAT_H 1
kusano 7d535a
#define HAVE_SYS_TIME_H 1
kusano 7d535a
#define HAVE_SYS_TYPES_H 1
kusano 7d535a
#if (ACC_OS_POSIX)
kusano 7d535a
#  if (ACC_OS_POSIX_AIX)
kusano 7d535a
#    define HAVE_SYS_RESOURCE_H 1
kusano 7d535a
#  elif (ACC_OS_POSIX_FREEBSD || ACC_OS_POSIX_MACOSX || ACC_OS_POSIX_NETBSD || ACC_OS_POSIX_OPENBSD)
kusano 7d535a
#    define HAVE_STRINGS_H 1
kusano 7d535a
#    undef HAVE_MALLOC_H
kusano 7d535a
#  elif (ACC_OS_POSIX_HPUX || ACC_OS_POSIX_INTERIX)
kusano 7d535a
#    define HAVE_ALLOCA_H 1
kusano 7d535a
#  elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
kusano 7d535a
#    undef HAVE_SYS_TIME_H
kusano 7d535a
#    undef HAVE_SYS_TYPES_H
kusano 7d535a
#  elif (ACC_OS_POSIX_SOLARIS || ACC_OS_POSIX_SUNOS)
kusano 7d535a
#    define HAVE_ALLOCA_H 1
kusano 7d535a
#  endif
kusano 7d535a
#  if (ACC_LIBC_DIETLIBC || ACC_LIBC_GLIBC || ACC_LIBC_UCLIBC)
kusano 7d535a
#    define HAVE_STRINGS_H 1
kusano 7d535a
#    define HAVE_SYS_MMAN_H 1
kusano 7d535a
#    define HAVE_SYS_RESOURCE_H 1
kusano 7d535a
#    define HAVE_SYS_WAIT_H 1
kusano 7d535a
#  endif
kusano 7d535a
#  if (ACC_LIBC_NEWLIB)
kusano 7d535a
#    undef HAVE_STRINGS_H
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_OS_CYGWIN)
kusano 7d535a
#  define HAVE_IO_H 1
kusano 7d535a
#elif (ACC_OS_EMX)
kusano 7d535a
#  define HAVE_ALLOCA_H 1
kusano 7d535a
#  define HAVE_IO_H 1
kusano 7d535a
#elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
kusano 7d535a
#  if !defined(__MINT__)
kusano 7d535a
#    undef HAVE_MALLOC_H
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_FCNTL_H
kusano 7d535a
#  undef HAVE_MALLOC_H
kusano 7d535a
#  undef HAVE_MEMORY_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  undef HAVE_SYS_STAT_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#  undef HAVE_SYS_TYPES_H
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
#define HAVE_CONIO_H 1
kusano 7d535a
#define HAVE_DIRECT_H 1
kusano 7d535a
#define HAVE_DOS_H 1
kusano 7d535a
#define HAVE_IO_H 1
kusano 7d535a
#define HAVE_SHARE_H 1
kusano 7d535a
#if (ACC_CC_AZTECC)
kusano 7d535a
#  undef HAVE_CONIO_H
kusano 7d535a
#  undef HAVE_DIRECT_H
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_MALLOC_H
kusano 7d535a
#  undef HAVE_SHARE_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  undef HAVE_SYS_STAT_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#  undef HAVE_SYS_TYPES_H
kusano 7d535a
#elif (ACC_CC_BORLANDC)
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#  if (ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
#    undef HAVE_DIRENT_H
kusano 7d535a
#  endif
kusano 7d535a
#  if (__BORLANDC__ < 0x0400)
kusano 7d535a
#    undef HAVE_DIRENT_H
kusano 7d535a
#    undef HAVE_UTIME_H
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_CC_DMC)
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  define HAVE_SYS_DIRENT_H 1
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
kusano 7d535a
#  define HAVE_ALLOCA_H 1
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#elif (ACC_CC_IBMC && ACC_OS_OS2)
kusano 7d535a
#  undef HAVE_DOS_H
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#  define HAVE_SYS_UTIME_H 1
kusano 7d535a
#elif (ACC_CC_INTELC || ACC_CC_MSC)
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#  define HAVE_SYS_UTIME_H 1
kusano 7d535a
#elif (ACC_CC_LCCWIN32)
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_DOS_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__MINGW32__)
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  define HAVE_SYS_UTIME_H 1
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_LIBC_MSL)
kusano 7d535a
#  define HAVE_ALLOCA_H 1
kusano 7d535a
#  undef HAVE_DOS_H
kusano 7d535a
#  undef HAVE_SHARE_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#elif (ACC_CC_NDPC)
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_DOS_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#elif (ACC_CC_PACIFICC)
kusano 7d535a
#  undef HAVE_DIRECT_H
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_FCNTL_H
kusano 7d535a
#  undef HAVE_IO_H
kusano 7d535a
#  undef HAVE_MALLOC_H
kusano 7d535a
#  undef HAVE_MEMORY_H
kusano 7d535a
#  undef HAVE_SHARE_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  undef HAVE_SYS_STAT_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#  undef HAVE_SYS_TYPES_H
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_PELLESC)
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_DOS_H
kusano 7d535a
#  undef HAVE_MALLOC_H
kusano 7d535a
#  undef HAVE_SHARE_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#  if (__POCC__ < 280)
kusano 7d535a
#  else
kusano 7d535a
#    define HAVE_SYS_UTIME_H 1
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_PGI) && defined(__MINGW32__)
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  define HAVE_SYS_UTIME_H 1
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
kusano 7d535a
#elif (ACC_CC_SYMANTECC)
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  if (__SC__ < 0x700)
kusano 7d535a
#    undef HAVE_UTIME_H
kusano 7d535a
#    undef HAVE_SYS_TIME_H
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_CC_TOPSPEEDC)
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  undef HAVE_SYS_STAT_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#  undef HAVE_SYS_TYPES_H
kusano 7d535a
#elif (ACC_CC_TURBOC)
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#  undef HAVE_SYS_TYPES_H
kusano 7d535a
#  if (ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
#    undef HAVE_DIRENT_H
kusano 7d535a
#  endif
kusano 7d535a
#  if (__TURBOC__ < 0x0200)
kusano 7d535a
#    undef HAVE_SIGNAL_H
kusano 7d535a
#  endif
kusano 7d535a
#  if (__TURBOC__ < 0x0400)
kusano 7d535a
#    undef HAVE_DIRECT_H
kusano 7d535a
#    undef HAVE_DIRENT_H
kusano 7d535a
#    undef HAVE_MALLOC_H
kusano 7d535a
#    undef HAVE_MEMORY_H
kusano 7d535a
#    undef HAVE_UTIME_H
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_CC_WATCOMC)
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#  define HAVE_SYS_UTIME_H 1
kusano 7d535a
#  if (__WATCOMC__ < 950)
kusano 7d535a
#    undef HAVE_UNISTD_H
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_CC_ZORTECHC)
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_MEMORY_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_CONSOLE)
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_EMBEDDED)
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99)
kusano 7d535a
#  undef HAVE_DIRENT_H
kusano 7d535a
#  undef HAVE_FCNTL_H
kusano 7d535a
#  undef HAVE_MALLOC_H
kusano 7d535a
#  undef HAVE_UNISTD_H
kusano 7d535a
#  undef HAVE_UTIME_H
kusano 7d535a
#  undef HAVE_SYS_STAT_H
kusano 7d535a
#  undef HAVE_SYS_TIME_H
kusano 7d535a
#  undef HAVE_SYS_TYPES_H
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_LIBC_GLIBC >= 0x020100ul)
kusano 7d535a
#  define HAVE_STDINT_H 1
kusano 7d535a
#elif (ACC_LIBC_DIETLIBC)
kusano 7d535a
#  undef HAVE_STDINT_H
kusano 7d535a
#elif (ACC_LIBC_UCLIBC)
kusano 7d535a
#  define HAVE_STDINT_H 1
kusano 7d535a
#elif (ACC_CC_BORLANDC) && (__BORLANDC__ >= 0x560)
kusano 7d535a
#  undef HAVE_STDINT_H
kusano 7d535a
#elif (ACC_CC_DMC) && (__DMC__ >= 0x825)
kusano 7d535a
#  define HAVE_STDINT_H 1
kusano 7d535a
#endif
kusano 7d535a
#if (HAVE_SYS_TIME_H && HAVE_TIME_H)
kusano 7d535a
#  define TIME_WITH_SYS_TIME 1
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_CFG_AUTO_NO_FUNCTIONS)
kusano 7d535a
#if defined(ACC_LIBC_NAKED)
kusano 7d535a
#elif defined(ACC_LIBC_FREESTANDING)
kusano 7d535a
#elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
kusano 7d535a
#  define HAVE_LONGJMP 1
kusano 7d535a
#  define HAVE_MEMCMP 1
kusano 7d535a
#  define HAVE_MEMCPY 1
kusano 7d535a
#  define HAVE_MEMMOVE 1
kusano 7d535a
#  define HAVE_MEMSET 1
kusano 7d535a
#  define HAVE_SETJMP 1
kusano 7d535a
#else
kusano 7d535a
#define HAVE_ACCESS 1
kusano 7d535a
#define HAVE_ALLOCA 1
kusano 7d535a
#define HAVE_ATEXIT 1
kusano 7d535a
#define HAVE_ATOI 1
kusano 7d535a
#define HAVE_ATOL 1
kusano 7d535a
#define HAVE_CHMOD 1
kusano 7d535a
#define HAVE_CHOWN 1
kusano 7d535a
#define HAVE_CTIME 1
kusano 7d535a
#define HAVE_DIFFTIME 1
kusano 7d535a
#define HAVE_FILENO 1
kusano 7d535a
#define HAVE_FSTAT 1
kusano 7d535a
#define HAVE_GETENV 1
kusano 7d535a
#define HAVE_GETTIMEOFDAY 1
kusano 7d535a
#define HAVE_GMTIME 1
kusano 7d535a
#define HAVE_ISATTY 1
kusano 7d535a
#define HAVE_LOCALTIME 1
kusano 7d535a
#define HAVE_LONGJMP 1
kusano 7d535a
#define HAVE_LSTAT 1
kusano 7d535a
#define HAVE_MEMCMP 1
kusano 7d535a
#define HAVE_MEMCPY 1
kusano 7d535a
#define HAVE_MEMMOVE 1
kusano 7d535a
#define HAVE_MEMSET 1
kusano 7d535a
#define HAVE_MKDIR 1
kusano 7d535a
#define HAVE_MKTIME 1
kusano 7d535a
#define HAVE_QSORT 1
kusano 7d535a
#define HAVE_RAISE 1
kusano 7d535a
#define HAVE_RMDIR 1
kusano 7d535a
#define HAVE_SETJMP 1
kusano 7d535a
#define HAVE_SIGNAL 1
kusano 7d535a
#define HAVE_SNPRINTF 1
kusano 7d535a
#define HAVE_STAT 1
kusano 7d535a
#define HAVE_STRCHR 1
kusano 7d535a
#define HAVE_STRDUP 1
kusano 7d535a
#define HAVE_STRERROR 1
kusano 7d535a
#define HAVE_STRFTIME 1
kusano 7d535a
#define HAVE_STRRCHR 1
kusano 7d535a
#define HAVE_STRSTR 1
kusano 7d535a
#define HAVE_TIME 1
kusano 7d535a
#define HAVE_UMASK 1
kusano 7d535a
#define HAVE_UTIME 1
kusano 7d535a
#define HAVE_VSNPRINTF 1
kusano 7d535a
#if (ACC_OS_BEOS || ACC_OS_CYGWIN || ACC_OS_POSIX || ACC_OS_QNX || ACC_OS_VMS)
kusano 7d535a
#  define HAVE_STRCASECMP 1
kusano 7d535a
#  define HAVE_STRNCASECMP 1
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
kusano 7d535a
#  define HAVE_STRCASECMP 1
kusano 7d535a
#  define HAVE_STRNCASECMP 1
kusano 7d535a
#else
kusano 7d535a
#  define HAVE_STRICMP 1
kusano 7d535a
#  define HAVE_STRNICMP 1
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_POSIX)
kusano 7d535a
#  if (ACC_OS_POSIX_AIX)
kusano 7d535a
#    define HAVE_GETRUSAGE 1
kusano 7d535a
#  elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
kusano 7d535a
#    undef HAVE_CHOWN
kusano 7d535a
#    undef HAVE_LSTAT
kusano 7d535a
#  elif (ACC_OS_POSIX_UNICOS)
kusano 7d535a
#    undef HAVE_ALLOCA
kusano 7d535a
#    undef HAVE_SNPRINTF
kusano 7d535a
#    undef HAVE_VSNPRINTF
kusano 7d535a
#  endif
kusano 7d535a
#  if (ACC_CC_TINYC)
kusano 7d535a
#    undef HAVE_ALLOCA
kusano 7d535a
#  endif
kusano 7d535a
#  if (ACC_LIBC_DIETLIBC || ACC_LIBC_GLIBC || ACC_LIBC_UCLIBC)
kusano 7d535a
#    define HAVE_GETRUSAGE 1
kusano 7d535a
#    define HAVE_GETPAGESIZE 1
kusano 7d535a
#    define HAVE_MMAP 1
kusano 7d535a
#    define HAVE_MPROTECT 1
kusano 7d535a
#    define HAVE_MUNMAP 1
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_OS_CYGWIN)
kusano 7d535a
#  if (ACC_CC_GNUC < 0x025a00ul)
kusano 7d535a
#    undef HAVE_GETTIMEOFDAY
kusano 7d535a
#    undef HAVE_LSTAT
kusano 7d535a
#  endif
kusano 7d535a
#  if (ACC_CC_GNUC < 0x025f00ul)
kusano 7d535a
#    undef HAVE_SNPRINTF
kusano 7d535a
#    undef HAVE_VSNPRINTF
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_OS_EMX)
kusano 7d535a
#  undef HAVE_CHOWN
kusano 7d535a
#  undef HAVE_LSTAT
kusano 7d535a
#elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
kusano 7d535a
#  if !defined(__MINT__)
kusano 7d535a
#    undef HAVE_SNPRINTF
kusano 7d535a
#    undef HAVE_VSNPRINTF
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
kusano 7d535a
#  undef HAVE_ALLOCA
kusano 7d535a
#  undef HAVE_ACCESS
kusano 7d535a
#  undef HAVE_CHMOD
kusano 7d535a
#  undef HAVE_CHOWN
kusano 7d535a
#  undef HAVE_FSTAT
kusano 7d535a
#  undef HAVE_GETTIMEOFDAY
kusano 7d535a
#  undef HAVE_LSTAT
kusano 7d535a
#  undef HAVE_SNPRINTF
kusano 7d535a
#  undef HAVE_UMASK
kusano 7d535a
#  undef HAVE_UTIME
kusano 7d535a
#  undef HAVE_VSNPRINTF
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
#undef HAVE_CHOWN
kusano 7d535a
#undef HAVE_GETTIMEOFDAY
kusano 7d535a
#undef HAVE_LSTAT
kusano 7d535a
#undef HAVE_UMASK
kusano 7d535a
#if (ACC_CC_AZTECC)
kusano 7d535a
#  undef HAVE_ALLOCA
kusano 7d535a
#  undef HAVE_DIFFTIME
kusano 7d535a
#  undef HAVE_FSTAT
kusano 7d535a
#  undef HAVE_STRDUP
kusano 7d535a
#  undef HAVE_SNPRINTF
kusano 7d535a
#  undef HAVE_UTIME
kusano 7d535a
#  undef HAVE_VSNPRINTF
kusano 7d535a
#elif (ACC_CC_BORLANDC)
kusano 7d535a
#  if (__BORLANDC__ < 0x0400)
kusano 7d535a
#    undef HAVE_ALLOCA
kusano 7d535a
#    undef HAVE_UTIME
kusano 7d535a
#  endif
kusano 7d535a
#  if ((__BORLANDC__ < 0x0410) && ACC_OS_WIN16)
kusano 7d535a
#    undef HAVE_ALLOCA
kusano 7d535a
#  endif
kusano 7d535a
#  if (__BORLANDC__ < 0x0550)
kusano 7d535a
#    undef HAVE_SNPRINTF
kusano 7d535a
#    undef HAVE_VSNPRINTF
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_CC_DMC)
kusano 7d535a
#  if (ACC_OS_WIN16)
kusano 7d535a
#    undef HAVE_ALLOCA
kusano 7d535a
#  endif
kusano 7d535a
#  define snprintf _snprintf
kusano 7d535a
#  define vsnprintf _vsnprintf
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
kusano 7d535a
#  undef HAVE_SNPRINTF
kusano 7d535a
#  undef HAVE_VSNPRINTF
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
kusano 7d535a
#  undef HAVE_SNPRINTF
kusano 7d535a
#  undef HAVE_VSNPRINTF
kusano 7d535a
#elif (ACC_CC_IBMC)
kusano 7d535a
#  undef HAVE_SNPRINTF
kusano 7d535a
#  undef HAVE_VSNPRINTF
kusano 7d535a
#elif (ACC_CC_INTELC)
kusano 7d535a
#  define snprintf _snprintf
kusano 7d535a
#  define vsnprintf _vsnprintf
kusano 7d535a
#elif (ACC_CC_LCCWIN32)
kusano 7d535a
#  define utime _utime
kusano 7d535a
#elif (ACC_CC_MSC)
kusano 7d535a
#  if (_MSC_VER < 600)
kusano 7d535a
#    undef HAVE_STRFTIME
kusano 7d535a
#  endif
kusano 7d535a
#  if (_MSC_VER < 700)
kusano 7d535a
#    undef HAVE_SNPRINTF
kusano 7d535a
#    undef HAVE_VSNPRINTF
kusano 7d535a
#  elif (_MSC_VER < 1500)
kusano 7d535a
#    define snprintf _snprintf
kusano 7d535a
#    define vsnprintf _vsnprintf
kusano 7d535a
#  endif
kusano 7d535a
#  if ((_MSC_VER < 800) && ACC_OS_WIN16)
kusano 7d535a
#    undef HAVE_ALLOCA
kusano 7d535a
#  endif
kusano 7d535a
#  if (ACC_ARCH_I086) && defined(__cplusplus)
kusano 7d535a
#    undef HAVE_LONGJMP
kusano 7d535a
#    undef HAVE_SETJMP
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__MINGW32__)
kusano 7d535a
#  if (ACC_CC_GNUC < 0x025f00ul)
kusano 7d535a
#    undef HAVE_SNPRINTF
kusano 7d535a
#    undef HAVE_VSNPRINTF
kusano 7d535a
#  else
kusano 7d535a
#    define snprintf _snprintf
kusano 7d535a
#    define vsnprintf _vsnprintf
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_LIBC_MSL)
kusano 7d535a
#  if (__MSL__ < 0x8000ul)
kusano 7d535a
#    undef HAVE_CHMOD
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_CC_NDPC)
kusano 7d535a
#  undef HAVE_ALLOCA
kusano 7d535a
#  undef HAVE_SNPRINTF
kusano 7d535a
#  undef HAVE_STRNICMP
kusano 7d535a
#  undef HAVE_UTIME
kusano 7d535a
#  undef HAVE_VSNPRINTF
kusano 7d535a
#  if defined(__cplusplus)
kusano 7d535a
#    undef HAVE_STAT
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_CC_PACIFICC)
kusano 7d535a
#  undef HAVE_ACCESS
kusano 7d535a
#  undef HAVE_ALLOCA
kusano 7d535a
#  undef HAVE_CHMOD
kusano 7d535a
#  undef HAVE_DIFFTIME
kusano 7d535a
#  undef HAVE_FSTAT
kusano 7d535a
#  undef HAVE_MKTIME
kusano 7d535a
#  undef HAVE_RAISE
kusano 7d535a
#  undef HAVE_SNPRINTF
kusano 7d535a
#  undef HAVE_STRFTIME
kusano 7d535a
#  undef HAVE_UTIME
kusano 7d535a
#  undef HAVE_VSNPRINTF
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_PELLESC)
kusano 7d535a
#  if (__POCC__ < 280)
kusano 7d535a
#    define alloca _alloca
kusano 7d535a
#    undef HAVE_UTIME
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_PGI) && defined(__MINGW32__)
kusano 7d535a
#  define snprintf _snprintf
kusano 7d535a
#  define vsnprintf _vsnprintf
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
kusano 7d535a
#  undef HAVE_SNPRINTF
kusano 7d535a
#  undef HAVE_VSNPRINTF
kusano 7d535a
#elif (ACC_CC_SYMANTECC)
kusano 7d535a
#  if (ACC_OS_WIN16 && (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE))
kusano 7d535a
#    undef HAVE_ALLOCA
kusano 7d535a
#  endif
kusano 7d535a
#  if (__SC__ < 0x600)
kusano 7d535a
#    undef HAVE_SNPRINTF
kusano 7d535a
#    undef HAVE_VSNPRINTF
kusano 7d535a
#  else
kusano 7d535a
#    define snprintf _snprintf
kusano 7d535a
#    define vsnprintf _vsnprintf
kusano 7d535a
#  endif
kusano 7d535a
#  if (__SC__ < 0x700)
kusano 7d535a
#    undef HAVE_DIFFTIME
kusano 7d535a
#    undef HAVE_UTIME
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_CC_TOPSPEEDC)
kusano 7d535a
#  undef HAVE_SNPRINTF
kusano 7d535a
#  undef HAVE_VSNPRINTF
kusano 7d535a
#elif (ACC_CC_TURBOC)
kusano 7d535a
#  undef HAVE_ALLOCA
kusano 7d535a
#  undef HAVE_SNPRINTF
kusano 7d535a
#  undef HAVE_VSNPRINTF
kusano 7d535a
#  if (__TURBOC__ < 0x0200)
kusano 7d535a
#    undef HAVE_RAISE
kusano 7d535a
#    undef HAVE_SIGNAL
kusano 7d535a
#  endif
kusano 7d535a
#  if (__TURBOC__ < 0x0295)
kusano 7d535a
#    undef HAVE_MKTIME
kusano 7d535a
#    undef HAVE_STRFTIME
kusano 7d535a
#  endif
kusano 7d535a
#  if (__TURBOC__ < 0x0400)
kusano 7d535a
#    undef HAVE_UTIME
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_CC_WATCOMC)
kusano 7d535a
#  if (__WATCOMC__ < 1100)
kusano 7d535a
#    undef HAVE_SNPRINTF
kusano 7d535a
#    undef HAVE_VSNPRINTF
kusano 7d535a
#  elif (__WATCOMC__ < 1200)
kusano 7d535a
#    define snprintf _snprintf
kusano 7d535a
#    define vsnprintf _vsnprintf
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_CC_ZORTECHC)
kusano 7d535a
#  if (ACC_OS_WIN16 && (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE))
kusano 7d535a
#    undef HAVE_ALLOCA
kusano 7d535a
#  endif
kusano 7d535a
#  undef HAVE_DIFFTIME
kusano 7d535a
#  undef HAVE_SNPRINTF
kusano 7d535a
#  undef HAVE_UTIME
kusano 7d535a
#  undef HAVE_VSNPRINTF
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_CONSOLE)
kusano 7d535a
#  undef HAVE_ACCESS
kusano 7d535a
#  undef HAVE_CHMOD
kusano 7d535a
#  undef HAVE_CHOWN
kusano 7d535a
#  undef HAVE_GETTIMEOFDAY
kusano 7d535a
#  undef HAVE_LSTAT
kusano 7d535a
#  undef HAVE_TIME
kusano 7d535a
#  undef HAVE_UMASK
kusano 7d535a
#  undef HAVE_UTIME
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99)
kusano 7d535a
#  undef HAVE_ACCESS
kusano 7d535a
#  undef HAVE_CHMOD
kusano 7d535a
#  undef HAVE_CHOWN
kusano 7d535a
#  undef HAVE_FSTAT
kusano 7d535a
#  undef HAVE_GETTIMEOFDAY
kusano 7d535a
#  undef HAVE_LSTAT
kusano 7d535a
#  undef HAVE_STAT
kusano 7d535a
#  undef HAVE_UMASK
kusano 7d535a
#  undef HAVE_UTIME
kusano 7d535a
# if 1
kusano 7d535a
#  undef HAVE_ALLOCA
kusano 7d535a
#  undef HAVE_ISATTY
kusano 7d535a
#  undef HAVE_MKDIR
kusano 7d535a
#  undef HAVE_RMDIR
kusano 7d535a
#  undef HAVE_STRDUP
kusano 7d535a
#  undef HAVE_STRICMP
kusano 7d535a
#  undef HAVE_STRNICMP
kusano 7d535a
# endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_CFG_AUTO_NO_SIZES)
kusano 7d535a
#if !defined(SIZEOF_SHORT) && defined(ACC_SIZEOF_SHORT)
kusano 7d535a
#  define SIZEOF_SHORT          ACC_SIZEOF_SHORT
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_INT) && defined(ACC_SIZEOF_INT)
kusano 7d535a
#  define SIZEOF_INT            ACC_SIZEOF_INT
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_LONG) && defined(ACC_SIZEOF_LONG)
kusano 7d535a
#  define SIZEOF_LONG           ACC_SIZEOF_LONG
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_LONG_LONG) && defined(ACC_SIZEOF_LONG_LONG)
kusano 7d535a
#  define SIZEOF_LONG_LONG      ACC_SIZEOF_LONG_LONG
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF___INT32) && defined(ACC_SIZEOF___INT32)
kusano 7d535a
#  define SIZEOF___INT32        ACC_SIZEOF___INT32
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF___INT64) && defined(ACC_SIZEOF___INT64)
kusano 7d535a
#  define SIZEOF___INT64        ACC_SIZEOF___INT64
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_VOID_P) && defined(ACC_SIZEOF_VOID_P)
kusano 7d535a
#  define SIZEOF_VOID_P         ACC_SIZEOF_VOID_P
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_SIZE_T) && defined(ACC_SIZEOF_SIZE_T)
kusano 7d535a
#  define SIZEOF_SIZE_T         ACC_SIZEOF_SIZE_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_PTRDIFF_T) && defined(ACC_SIZEOF_PTRDIFF_T)
kusano 7d535a
#  define SIZEOF_PTRDIFF_T      ACC_SIZEOF_PTRDIFF_T
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_SIGNAL) && !defined(RETSIGTYPE)
kusano 7d535a
#  define RETSIGTYPE void
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_CFG_NO_ACC_TYPE_H)
kusano 7d535a
#else
kusano 7d535a
#if (ACC_SIZEOF_LONG_LONG+0 > 0)
kusano 7d535a
__acc_gnuc_extension__ typedef long long acc_llong_t;
kusano 7d535a
__acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
kusano 7d535a
#endif
kusano 7d535a
#if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
kusano 7d535a
#  error "missing defines for sizes"
kusano 7d535a
#endif
kusano 7d535a
#if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
kusano 7d535a
#  error "missing defines for sizes"
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_int16e_t)
kusano 7d535a
#if (ACC_SIZEOF_LONG == 2)
kusano 7d535a
#  define acc_int16e_t          long
kusano 7d535a
#  define acc_uint16e_t         unsigned long
kusano 7d535a
#elif (ACC_SIZEOF_INT == 2)
kusano 7d535a
#  define acc_int16e_t          int
kusano 7d535a
#  define acc_uint16e_t         unsigned int
kusano 7d535a
#elif (ACC_SIZEOF_SHORT == 2)
kusano 7d535a
#  define acc_int16e_t          short int
kusano 7d535a
#  define acc_uint16e_t         unsigned short int
kusano 7d535a
#elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_GNUC >= 0x025f00ul || ACC_CC_LLVM)
kusano 7d535a
   typedef int __acc_int16e_hi_t __attribute__((__mode__(__HI__)));
kusano 7d535a
   typedef unsigned int __acc_uint16e_hi_t __attribute__((__mode__(__HI__)));
kusano 7d535a
#  define acc_int16e_t          __acc_int16e_hi_t
kusano 7d535a
#  define acc_uint16e_t         __acc_uint16e_hi_t
kusano 7d535a
#elif (ACC_SIZEOF___INT16 == 2)
kusano 7d535a
#  define acc_int16e_t          __int16
kusano 7d535a
#  define acc_uint16e_t         unsigned __int16
kusano 7d535a
#else
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int16e_t)
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT16E_T   2
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_int32e_t)
kusano 7d535a
#if (ACC_SIZEOF_LONG == 4)
kusano 7d535a
#  define acc_int32e_t          long int
kusano 7d535a
#  define acc_uint32e_t         unsigned long int
kusano 7d535a
#elif (ACC_SIZEOF_INT == 4)
kusano 7d535a
#  define acc_int32e_t          int
kusano 7d535a
#  define acc_uint32e_t         unsigned int
kusano 7d535a
#elif (ACC_SIZEOF_SHORT == 4)
kusano 7d535a
#  define acc_int32e_t          short int
kusano 7d535a
#  define acc_uint32e_t         unsigned short int
kusano 7d535a
#elif (ACC_SIZEOF_LONG_LONG == 4)
kusano 7d535a
#  define acc_int32e_t          acc_llong_t
kusano 7d535a
#  define acc_uint32e_t         acc_ullong_t
kusano 7d535a
#elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
kusano 7d535a
   typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
kusano 7d535a
   typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
kusano 7d535a
#  define acc_int32e_t          __acc_int32e_si_t
kusano 7d535a
#  define acc_uint32e_t         __acc_uint32e_si_t
kusano 7d535a
#elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
kusano 7d535a
   typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
kusano 7d535a
   typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
kusano 7d535a
#  define acc_int32e_t          __acc_int32e_si_t
kusano 7d535a
#  define acc_uint32e_t         __acc_uint32e_si_t
kusano 7d535a
#  define ACC_INT32_C(c)        c##LL
kusano 7d535a
#  define ACC_UINT32_C(c)       c##ULL
kusano 7d535a
#elif (ACC_SIZEOF___INT32 == 4)
kusano 7d535a
#  define acc_int32e_t          __int32
kusano 7d535a
#  define acc_uint32e_t         unsigned __int32
kusano 7d535a
#else
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int32e_t)
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT32E_T   4
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_int64e_t)
kusano 7d535a
#if (ACC_SIZEOF___INT64 == 8)
kusano 7d535a
#  if (ACC_CC_BORLANDC) && !defined(ACC_CFG_TYPE_PREFER___INT64)
kusano 7d535a
#    define ACC_CFG_TYPE_PREFER___INT64 1
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
kusano 7d535a
#  define acc_int64e_t          int
kusano 7d535a
#  define acc_uint64e_t         unsigned int
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF_INT
kusano 7d535a
#elif (ACC_SIZEOF_LONG == 8)
kusano 7d535a
#  define acc_int64e_t          long int
kusano 7d535a
#  define acc_uint64e_t         unsigned long int
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF_LONG
kusano 7d535a
#elif (ACC_SIZEOF_LONG_LONG == 8) && !defined(ACC_CFG_TYPE_PREFER___INT64)
kusano 7d535a
#  define acc_int64e_t          acc_llong_t
kusano 7d535a
#  define acc_uint64e_t         acc_ullong_t
kusano 7d535a
#  if (ACC_CC_BORLANDC)
kusano 7d535a
#    define ACC_INT64_C(c)      ((c) + 0ll)
kusano 7d535a
#    define ACC_UINT64_C(c)     ((c) + 0ull)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_INT64_C(c)      c##LL
kusano 7d535a
#    define ACC_UINT64_C(c)     c##ULL
kusano 7d535a
#  endif
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF_LONG_LONG
kusano 7d535a
#elif (ACC_SIZEOF___INT64 == 8)
kusano 7d535a
#  define acc_int64e_t          __int64
kusano 7d535a
#  define acc_uint64e_t         unsigned __int64
kusano 7d535a
#  if (ACC_CC_BORLANDC)
kusano 7d535a
#    define ACC_INT64_C(c)      ((c) + 0i64)
kusano 7d535a
#    define ACC_UINT64_C(c)     ((c) + 0ui64)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_INT64_C(c)      c##i64
kusano 7d535a
#    define ACC_UINT64_C(c)     c##ui64
kusano 7d535a
#  endif
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF___INT64
kusano 7d535a
#else
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_int32l_t)
kusano 7d535a
#if defined(acc_int32e_t)
kusano 7d535a
#  define acc_int32l_t          acc_int32e_t
kusano 7d535a
#  define acc_uint32l_t         acc_uint32e_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT32L_T   ACC_SIZEOF_ACC_INT32E_T
kusano 7d535a
#elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
kusano 7d535a
#  define acc_int32l_t          int
kusano 7d535a
#  define acc_uint32l_t         unsigned int
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT32L_T   ACC_SIZEOF_INT
kusano 7d535a
#elif (ACC_SIZEOF_LONG >= 4)
kusano 7d535a
#  define acc_int32l_t          long int
kusano 7d535a
#  define acc_uint32l_t         unsigned long int
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT32L_T   ACC_SIZEOF_LONG
kusano 7d535a
#else
kusano 7d535a
#  error "acc_int32l_t"
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_int64l_t)
kusano 7d535a
#if defined(acc_int64e_t)
kusano 7d535a
#  define acc_int64l_t          acc_int64e_t
kusano 7d535a
#  define acc_uint64l_t         acc_uint64e_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT64L_T   ACC_SIZEOF_ACC_INT64E_T
kusano 7d535a
#else
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_int32f_t)
kusano 7d535a
#if (ACC_SIZEOF_SIZE_T >= 8)
kusano 7d535a
#  define acc_int32f_t          acc_int64l_t
kusano 7d535a
#  define acc_uint32f_t         acc_uint64l_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT32F_T   ACC_SIZEOF_ACC_INT64L_T
kusano 7d535a
#else
kusano 7d535a
#  define acc_int32f_t          acc_int32l_t
kusano 7d535a
#  define acc_uint32f_t         acc_uint32l_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT32F_T   ACC_SIZEOF_ACC_INT32L_T
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_intptr_t)
kusano 7d535a
#if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
kusano 7d535a
#  define __ACC_INTPTR_T_IS_POINTER 1
kusano 7d535a
   typedef char*                acc_intptr_t;
kusano 7d535a
   typedef char*                acc_uintptr_t;
kusano 7d535a
#  define acc_intptr_t          acc_intptr_t
kusano 7d535a
#  define acc_uintptr_t         acc_uintptr_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_VOID_P
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
kusano 7d535a
   typedef __w64 int            acc_intptr_t;
kusano 7d535a
   typedef __w64 unsigned int   acc_uintptr_t;
kusano 7d535a
#  define acc_intptr_t          acc_intptr_t
kusano 7d535a
#  define acc_uintptr_t         acc_uintptr_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_INT
kusano 7d535a
#elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
kusano 7d535a
#  define acc_intptr_t          short
kusano 7d535a
#  define acc_uintptr_t         unsigned short
kusano 7d535a
#  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_SHORT
kusano 7d535a
#elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
kusano 7d535a
#  define acc_intptr_t          int
kusano 7d535a
#  define acc_uintptr_t         unsigned int
kusano 7d535a
#  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_INT
kusano 7d535a
#elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
kusano 7d535a
#  define acc_intptr_t          long
kusano 7d535a
#  define acc_uintptr_t         unsigned long
kusano 7d535a
#  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_LONG
kusano 7d535a
#elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
kusano 7d535a
#  define acc_intptr_t          acc_int64l_t
kusano 7d535a
#  define acc_uintptr_t         acc_uint64l_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_ACC_INT64L_T
kusano 7d535a
#else
kusano 7d535a
#  error "acc_intptr_t"
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_word_t)
kusano 7d535a
#if defined(ACC_WORDSIZE) && (ACC_WORDSIZE > 0)
kusano 7d535a
#if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !defined(__ACC_INTPTR_T_IS_POINTER)
kusano 7d535a
#  define acc_word_t            acc_uintptr_t
kusano 7d535a
#  define acc_sword_t           acc_intptr_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
kusano 7d535a
#elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
kusano 7d535a
#  define acc_word_t            unsigned long
kusano 7d535a
#  define acc_sword_t           long
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
kusano 7d535a
#elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
kusano 7d535a
#  define acc_word_t            unsigned int
kusano 7d535a
#  define acc_sword_t           int
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
kusano 7d535a
#elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
kusano 7d535a
#  define acc_word_t            unsigned short
kusano 7d535a
#  define acc_sword_t           short
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
kusano 7d535a
#elif (ACC_WORDSIZE == 1)
kusano 7d535a
#  define acc_word_t            unsigned char
kusano 7d535a
#  define acc_sword_t           signed char
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T 1
kusano 7d535a
#elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
kusano 7d535a
#  define acc_word_t            acc_uint64l_t
kusano 7d535a
#  define acc_sword_t           acc_int64l_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
kusano 7d535a
#elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
kusano 7d535a
#if 0
kusano 7d535a
   typedef unsigned acc_word_t  __attribute__((__mode__(__V16QI__)));
kusano 7d535a
   typedef int      acc_sword_t __attribute__((__mode__(__V16QI__)));
kusano 7d535a
#  define acc_word_t            acc_word_t
kusano 7d535a
#  define acc_sword_t           acc_sword_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T 16
kusano 7d535a
#endif
kusano 7d535a
#else
kusano 7d535a
#  error "acc_word_t"
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_INT16_C)
kusano 7d535a
#  if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
kusano 7d535a
#    define ACC_INT16_C(c)      ((c) + 0)
kusano 7d535a
#    define ACC_UINT16_C(c)     ((c) + 0U)
kusano 7d535a
#  elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
kusano 7d535a
#    define ACC_INT16_C(c)      ((c) + 0L)
kusano 7d535a
#    define ACC_UINT16_C(c)     ((c) + 0UL)
kusano 7d535a
#  elif (ACC_SIZEOF_INT >= 2)
kusano 7d535a
#    define ACC_INT16_C(c)      c
kusano 7d535a
#    define ACC_UINT16_C(c)     c##U
kusano 7d535a
#  elif (ACC_SIZEOF_LONG >= 2)
kusano 7d535a
#    define ACC_INT16_C(c)      c##L
kusano 7d535a
#    define ACC_UINT16_C(c)     c##UL
kusano 7d535a
#  else
kusano 7d535a
#    error "ACC_INT16_C"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_INT32_C)
kusano 7d535a
#  if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
kusano 7d535a
#    define ACC_INT32_C(c)      ((c) + 0)
kusano 7d535a
#    define ACC_UINT32_C(c)     ((c) + 0U)
kusano 7d535a
#  elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
kusano 7d535a
#    define ACC_INT32_C(c)      ((c) + 0L)
kusano 7d535a
#    define ACC_UINT32_C(c)     ((c) + 0UL)
kusano 7d535a
#  elif (ACC_SIZEOF_INT >= 4)
kusano 7d535a
#    define ACC_INT32_C(c)      c
kusano 7d535a
#    define ACC_UINT32_C(c)     c##U
kusano 7d535a
#  elif (ACC_SIZEOF_LONG >= 4)
kusano 7d535a
#    define ACC_INT32_C(c)      c##L
kusano 7d535a
#    define ACC_UINT32_C(c)     c##UL
kusano 7d535a
#  elif (ACC_SIZEOF_LONG_LONG >= 4)
kusano 7d535a
#    define ACC_INT32_C(c)      c##LL
kusano 7d535a
#    define ACC_UINT32_C(c)     c##ULL
kusano 7d535a
#  else
kusano 7d535a
#    error "ACC_INT32_C"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_INT64_C) && defined(acc_int64l_t)
kusano 7d535a
#  if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
kusano 7d535a
#    define ACC_INT64_C(c)      ((c) + 0)
kusano 7d535a
#    define ACC_UINT64_C(c)     ((c) + 0U)
kusano 7d535a
#  elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
kusano 7d535a
#    define ACC_INT64_C(c)      ((c) + 0L)
kusano 7d535a
#    define ACC_UINT64_C(c)     ((c) + 0UL)
kusano 7d535a
#  elif (ACC_SIZEOF_INT >= 8)
kusano 7d535a
#    define ACC_INT64_C(c)      c
kusano 7d535a
#    define ACC_UINT64_C(c)     c##U
kusano 7d535a
#  elif (ACC_SIZEOF_LONG >= 8)
kusano 7d535a
#    define ACC_INT64_C(c)      c##L
kusano 7d535a
#    define ACC_UINT64_C(c)     c##UL
kusano 7d535a
#  else
kusano 7d535a
#    error "ACC_INT64_C"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INT16E_T) && defined(ACC_SIZEOF_ACC_INT16E_T)
kusano 7d535a
#  define SIZEOF_ACC_INT16E_T   ACC_SIZEOF_ACC_INT16E_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INT32E_T) && defined(ACC_SIZEOF_ACC_INT32E_T)
kusano 7d535a
#  define SIZEOF_ACC_INT32E_T   ACC_SIZEOF_ACC_INT32E_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INT64E_T) && defined(ACC_SIZEOF_ACC_INT64E_T)
kusano 7d535a
#  define SIZEOF_ACC_INT64E_T   ACC_SIZEOF_ACC_INT64E_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INT32L_T) && defined(ACC_SIZEOF_ACC_INT32L_T)
kusano 7d535a
#  define SIZEOF_ACC_INT32L_T   ACC_SIZEOF_ACC_INT32L_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INT64L_T) && defined(ACC_SIZEOF_ACC_INT64L_T)
kusano 7d535a
#  define SIZEOF_ACC_INT64L_T   ACC_SIZEOF_ACC_INT64L_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INT32F_T) && defined(ACC_SIZEOF_ACC_INT32F_T)
kusano 7d535a
#  define SIZEOF_ACC_INT32F_T   ACC_SIZEOF_ACC_INT32F_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INTPTR_T) && defined(ACC_SIZEOF_ACC_INTPTR_T)
kusano 7d535a
#  define SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_ACC_INTPTR_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_WORD_T) && defined(ACC_SIZEOF_ACC_WORD_T)
kusano 7d535a
#  define SIZEOF_ACC_WORD_T     ACC_SIZEOF_ACC_WORD_T
kusano 7d535a
#endif
kusano 7d535a
#if 1 && !defined(acc_signo_t) && defined(__linux__) && defined(__dietlibc__) && (ACC_SIZEOF_INT != 4)
kusano 7d535a
#  define acc_signo_t           acc_int32e_t
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_signo_t)
kusano 7d535a
#  define acc_signo_t           int
kusano 7d535a
#endif
kusano 7d535a
#if defined(__cplusplus)
kusano 7d535a
extern "C" {
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_BROKEN_CDECL_ALT_SYNTAX)
kusano 7d535a
typedef void __acc_cdecl_sighandler (*acc_sighandler_t)(acc_signo_t);
kusano 7d535a
#elif defined(RETSIGTYPE)
kusano 7d535a
typedef RETSIGTYPE (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
kusano 7d535a
#else
kusano 7d535a
typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
kusano 7d535a
#endif
kusano 7d535a
#if defined(__cplusplus)
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#  if defined(ACC_CFG_NO_ACC_UA_H)
kusano 7d535a
#  else
kusano 7d535a
#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
kusano 7d535a
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
kusano 7d535a
#elif (ACC_CC_INTELC) && defined(_WIN32)
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER < 700))
kusano 7d535a
#elif (ACC_CC_LLVM)
kusano 7d535a
#elif (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE)
kusano 7d535a
#if !defined(__acc_ua16_t) && (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
kusano 7d535a
   typedef struct { __acc_ua_volatile acc_uint16e_t v __attribute__((__packed__)); } __acc_ua16_t;
kusano 7d535a
#  define __acc_ua16_t __acc_ua16_t
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_ua32_t) && (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
kusano 7d535a
   typedef struct { __acc_ua_volatile acc_uint32e_t v __attribute__((__packed__)); } __acc_ua32_t;
kusano 7d535a
#  define __acc_ua32_t __acc_ua32_t
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_ua64_t) && (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
kusano 7d535a
   typedef struct { __acc_ua_volatile acc_uint64l_t v __attribute__((__packed__)); } __acc_ua64_t;
kusano 7d535a
#  define __acc_ua64_t __acc_ua64_t
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
kusano 7d535a
#define ACC_UA_GET16(p)         (* (__acc_ua_volatile const acc_uint16e_t*) (__acc_ua_volatile const void*) (p))
kusano 7d535a
#define ACC_UA_SET16(p,v)       (* (__acc_ua_volatile acc_uint16e_t*) (__acc_ua_volatile void*) (p) = (acc_uint16e_t) (v))
kusano 7d535a
#if (ACC_ABI_BIG_ENDIAN)
kusano 7d535a
#  define ACC_UA_GET_BE16(p)    ACC_UA_GET16(p)
kusano 7d535a
#  define ACC_UA_SET_BE16(p,v)  ACC_UA_SET16(p,v)
kusano 7d535a
#elif (ACC_ABI_LITTLE_ENDIAN)
kusano 7d535a
#  define ACC_UA_GET_LE16(p)    ACC_UA_GET16(p)
kusano 7d535a
#  define ACC_UA_SET_LE16(p,v)  ACC_UA_SET16(p,v)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_CFG_NO_INLINE_ASM) && defined(__acc_HAVE_forceinline)
kusano 7d535a
#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
kusano 7d535a
#if !defined(ACC_UA_GET_LE16)
kusano 7d535a
extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp);
kusano 7d535a
extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
kusano 7d535a
    __acc_ua_volatile const acc_uint16e_t* p = (__acc_ua_volatile const acc_uint16e_t*) pp;
kusano 7d535a
    unsigned long v;
kusano 7d535a
    __asm__ __volatile__("lhbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
kusano 7d535a
    return v;
kusano 7d535a
}
kusano 7d535a
#define ACC_UA_GET_LE16(p)      __ACC_UA_GET_LE16(p)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UA_SET_LE16)
kusano 7d535a
extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v);
kusano 7d535a
extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
kusano 7d535a
    __acc_ua_volatile acc_uint16e_t* p = (__acc_ua_volatile acc_uint16e_t*) pp;
kusano 7d535a
    __asm__ __volatile__("sthbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
kusano 7d535a
}
kusano 7d535a
#define ACC_UA_SET_LE16(p,v)    __ACC_UA_SET_LE16(p,v)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UA_COPY16)
kusano 7d535a
#  define ACC_UA_COPY16(d,s)    ACC_UA_SET16(d, ACC_UA_GET16(s))
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
kusano 7d535a
#define ACC_UA_GET32(p)         (* (__acc_ua_volatile const acc_uint32e_t*) (__acc_ua_volatile const void*) (p))
kusano 7d535a
#define ACC_UA_SET32(p,v)       (* (__acc_ua_volatile acc_uint32e_t*) (__acc_ua_volatile void*) (p) = (acc_uint32e_t) (v))
kusano 7d535a
#if (ACC_ABI_BIG_ENDIAN)
kusano 7d535a
#  define ACC_UA_GET_BE32(p)    ACC_UA_GET32(p)
kusano 7d535a
#  define ACC_UA_SET_BE32(p,v)  ACC_UA_SET32(p,v)
kusano 7d535a
#elif (ACC_ABI_LITTLE_ENDIAN)
kusano 7d535a
#  define ACC_UA_GET_LE32(p)    ACC_UA_GET32(p)
kusano 7d535a
#  define ACC_UA_SET_LE32(p,v)  ACC_UA_SET32(p,v)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_CFG_NO_INLINE_ASM) && defined(__acc_HAVE_forceinline)
kusano 7d535a
#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
kusano 7d535a
#if !defined(ACC_UA_GET_LE32)
kusano 7d535a
extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp);
kusano 7d535a
extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
kusano 7d535a
    __acc_ua_volatile const acc_uint32e_t* p = (__acc_ua_volatile const acc_uint32e_t*) pp;
kusano 7d535a
    unsigned long v;
kusano 7d535a
    __asm__ __volatile__("lwbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
kusano 7d535a
    return v;
kusano 7d535a
}
kusano 7d535a
#define ACC_UA_GET_LE32(p)      __ACC_UA_GET_LE32(p)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UA_SET_LE32)
kusano 7d535a
extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v);
kusano 7d535a
extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
kusano 7d535a
    __acc_ua_volatile acc_uint32e_t* p = (__acc_ua_volatile acc_uint32e_t*) pp;
kusano 7d535a
    __asm__ __volatile__("stwbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
kusano 7d535a
}
kusano 7d535a
#define ACC_UA_SET_LE32(p,v)    __ACC_UA_SET_LE32(p,v)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UA_COPY32)
kusano 7d535a
#  define ACC_UA_COPY32(d,s)    ACC_UA_SET32(d, ACC_UA_GET32(s))
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
kusano 7d535a
#define ACC_UA_GET64(p)         (* (__acc_ua_volatile const acc_uint64l_t*) (__acc_ua_volatile const void*) (p))
kusano 7d535a
#define ACC_UA_SET64(p,v)       (* (__acc_ua_volatile acc_uint64l_t*) (__acc_ua_volatile void*) (p) = (acc_uint64l_t) (v))
kusano 7d535a
#if (ACC_ABI_BIG_ENDIAN)
kusano 7d535a
#  define ACC_UA_GET_BE64(p)    ACC_UA_GET64(p)
kusano 7d535a
#  define ACC_UA_SET_BE64(p,v)  ACC_UA_SET64(p,v)
kusano 7d535a
#elif (ACC_ABI_LITTLE_ENDIAN)
kusano 7d535a
#  define ACC_UA_GET_LE64(p)    ACC_UA_GET64(p)
kusano 7d535a
#  define ACC_UA_SET_LE64(p,v)  ACC_UA_SET64(p,v)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UA_COPY64)
kusano 7d535a
#  define ACC_UA_COPY64(d,s)    ACC_UA_SET64(d, ACC_UA_GET64(s))
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACC_TYPE_H)
kusano 7d535a
#  undef ACC_WANT_ACC_TYPE_H
kusano 7d535a
#  if defined(ACC_CFG_NO_ACC_TYPE_H)
kusano 7d535a
#    error "ACC_WANT_ACC_TYPE_H with ACC_CFG_NO_ACC_TYPE_H"
kusano 7d535a
#  endif
kusano 7d535a
#if (ACC_SIZEOF_LONG_LONG+0 > 0)
kusano 7d535a
__acc_gnuc_extension__ typedef long long acc_llong_t;
kusano 7d535a
__acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
kusano 7d535a
#endif
kusano 7d535a
#if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
kusano 7d535a
#  error "missing defines for sizes"
kusano 7d535a
#endif
kusano 7d535a
#if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
kusano 7d535a
#  error "missing defines for sizes"
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_int16e_t)
kusano 7d535a
#if (ACC_SIZEOF_LONG == 2)
kusano 7d535a
#  define acc_int16e_t          long
kusano 7d535a
#  define acc_uint16e_t         unsigned long
kusano 7d535a
#elif (ACC_SIZEOF_INT == 2)
kusano 7d535a
#  define acc_int16e_t          int
kusano 7d535a
#  define acc_uint16e_t         unsigned int
kusano 7d535a
#elif (ACC_SIZEOF_SHORT == 2)
kusano 7d535a
#  define acc_int16e_t          short int
kusano 7d535a
#  define acc_uint16e_t         unsigned short int
kusano 7d535a
#elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_GNUC >= 0x025f00ul || ACC_CC_LLVM)
kusano 7d535a
   typedef int __acc_int16e_hi_t __attribute__((__mode__(__HI__)));
kusano 7d535a
   typedef unsigned int __acc_uint16e_hi_t __attribute__((__mode__(__HI__)));
kusano 7d535a
#  define acc_int16e_t          __acc_int16e_hi_t
kusano 7d535a
#  define acc_uint16e_t         __acc_uint16e_hi_t
kusano 7d535a
#elif (ACC_SIZEOF___INT16 == 2)
kusano 7d535a
#  define acc_int16e_t          __int16
kusano 7d535a
#  define acc_uint16e_t         unsigned __int16
kusano 7d535a
#else
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int16e_t)
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT16E_T   2
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_int32e_t)
kusano 7d535a
#if (ACC_SIZEOF_LONG == 4)
kusano 7d535a
#  define acc_int32e_t          long int
kusano 7d535a
#  define acc_uint32e_t         unsigned long int
kusano 7d535a
#elif (ACC_SIZEOF_INT == 4)
kusano 7d535a
#  define acc_int32e_t          int
kusano 7d535a
#  define acc_uint32e_t         unsigned int
kusano 7d535a
#elif (ACC_SIZEOF_SHORT == 4)
kusano 7d535a
#  define acc_int32e_t          short int
kusano 7d535a
#  define acc_uint32e_t         unsigned short int
kusano 7d535a
#elif (ACC_SIZEOF_LONG_LONG == 4)
kusano 7d535a
#  define acc_int32e_t          acc_llong_t
kusano 7d535a
#  define acc_uint32e_t         acc_ullong_t
kusano 7d535a
#elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
kusano 7d535a
   typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
kusano 7d535a
   typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
kusano 7d535a
#  define acc_int32e_t          __acc_int32e_si_t
kusano 7d535a
#  define acc_uint32e_t         __acc_uint32e_si_t
kusano 7d535a
#elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
kusano 7d535a
   typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
kusano 7d535a
   typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
kusano 7d535a
#  define acc_int32e_t          __acc_int32e_si_t
kusano 7d535a
#  define acc_uint32e_t         __acc_uint32e_si_t
kusano 7d535a
#  define ACC_INT32_C(c)        c##LL
kusano 7d535a
#  define ACC_UINT32_C(c)       c##ULL
kusano 7d535a
#elif (ACC_SIZEOF___INT32 == 4)
kusano 7d535a
#  define acc_int32e_t          __int32
kusano 7d535a
#  define acc_uint32e_t         unsigned __int32
kusano 7d535a
#else
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int32e_t)
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT32E_T   4
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_int64e_t)
kusano 7d535a
#if (ACC_SIZEOF___INT64 == 8)
kusano 7d535a
#  if (ACC_CC_BORLANDC) && !defined(ACC_CFG_TYPE_PREFER___INT64)
kusano 7d535a
#    define ACC_CFG_TYPE_PREFER___INT64 1
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
kusano 7d535a
#  define acc_int64e_t          int
kusano 7d535a
#  define acc_uint64e_t         unsigned int
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF_INT
kusano 7d535a
#elif (ACC_SIZEOF_LONG == 8)
kusano 7d535a
#  define acc_int64e_t          long int
kusano 7d535a
#  define acc_uint64e_t         unsigned long int
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF_LONG
kusano 7d535a
#elif (ACC_SIZEOF_LONG_LONG == 8) && !defined(ACC_CFG_TYPE_PREFER___INT64)
kusano 7d535a
#  define acc_int64e_t          acc_llong_t
kusano 7d535a
#  define acc_uint64e_t         acc_ullong_t
kusano 7d535a
#  if (ACC_CC_BORLANDC)
kusano 7d535a
#    define ACC_INT64_C(c)      ((c) + 0ll)
kusano 7d535a
#    define ACC_UINT64_C(c)     ((c) + 0ull)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_INT64_C(c)      c##LL
kusano 7d535a
#    define ACC_UINT64_C(c)     c##ULL
kusano 7d535a
#  endif
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF_LONG_LONG
kusano 7d535a
#elif (ACC_SIZEOF___INT64 == 8)
kusano 7d535a
#  define acc_int64e_t          __int64
kusano 7d535a
#  define acc_uint64e_t         unsigned __int64
kusano 7d535a
#  if (ACC_CC_BORLANDC)
kusano 7d535a
#    define ACC_INT64_C(c)      ((c) + 0i64)
kusano 7d535a
#    define ACC_UINT64_C(c)     ((c) + 0ui64)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_INT64_C(c)      c##i64
kusano 7d535a
#    define ACC_UINT64_C(c)     c##ui64
kusano 7d535a
#  endif
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF___INT64
kusano 7d535a
#else
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_int32l_t)
kusano 7d535a
#if defined(acc_int32e_t)
kusano 7d535a
#  define acc_int32l_t          acc_int32e_t
kusano 7d535a
#  define acc_uint32l_t         acc_uint32e_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT32L_T   ACC_SIZEOF_ACC_INT32E_T
kusano 7d535a
#elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
kusano 7d535a
#  define acc_int32l_t          int
kusano 7d535a
#  define acc_uint32l_t         unsigned int
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT32L_T   ACC_SIZEOF_INT
kusano 7d535a
#elif (ACC_SIZEOF_LONG >= 4)
kusano 7d535a
#  define acc_int32l_t          long int
kusano 7d535a
#  define acc_uint32l_t         unsigned long int
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT32L_T   ACC_SIZEOF_LONG
kusano 7d535a
#else
kusano 7d535a
#  error "acc_int32l_t"
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_int64l_t)
kusano 7d535a
#if defined(acc_int64e_t)
kusano 7d535a
#  define acc_int64l_t          acc_int64e_t
kusano 7d535a
#  define acc_uint64l_t         acc_uint64e_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT64L_T   ACC_SIZEOF_ACC_INT64E_T
kusano 7d535a
#else
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_int32f_t)
kusano 7d535a
#if (ACC_SIZEOF_SIZE_T >= 8)
kusano 7d535a
#  define acc_int32f_t          acc_int64l_t
kusano 7d535a
#  define acc_uint32f_t         acc_uint64l_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT32F_T   ACC_SIZEOF_ACC_INT64L_T
kusano 7d535a
#else
kusano 7d535a
#  define acc_int32f_t          acc_int32l_t
kusano 7d535a
#  define acc_uint32f_t         acc_uint32l_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INT32F_T   ACC_SIZEOF_ACC_INT32L_T
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_intptr_t)
kusano 7d535a
#if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
kusano 7d535a
#  define __ACC_INTPTR_T_IS_POINTER 1
kusano 7d535a
   typedef char*                acc_intptr_t;
kusano 7d535a
   typedef char*                acc_uintptr_t;
kusano 7d535a
#  define acc_intptr_t          acc_intptr_t
kusano 7d535a
#  define acc_uintptr_t         acc_uintptr_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_VOID_P
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
kusano 7d535a
   typedef __w64 int            acc_intptr_t;
kusano 7d535a
   typedef __w64 unsigned int   acc_uintptr_t;
kusano 7d535a
#  define acc_intptr_t          acc_intptr_t
kusano 7d535a
#  define acc_uintptr_t         acc_uintptr_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_INT
kusano 7d535a
#elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
kusano 7d535a
#  define acc_intptr_t          short
kusano 7d535a
#  define acc_uintptr_t         unsigned short
kusano 7d535a
#  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_SHORT
kusano 7d535a
#elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
kusano 7d535a
#  define acc_intptr_t          int
kusano 7d535a
#  define acc_uintptr_t         unsigned int
kusano 7d535a
#  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_INT
kusano 7d535a
#elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
kusano 7d535a
#  define acc_intptr_t          long
kusano 7d535a
#  define acc_uintptr_t         unsigned long
kusano 7d535a
#  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_LONG
kusano 7d535a
#elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
kusano 7d535a
#  define acc_intptr_t          acc_int64l_t
kusano 7d535a
#  define acc_uintptr_t         acc_uint64l_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_ACC_INT64L_T
kusano 7d535a
#else
kusano 7d535a
#  error "acc_intptr_t"
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_word_t)
kusano 7d535a
#if defined(ACC_WORDSIZE) && (ACC_WORDSIZE > 0)
kusano 7d535a
#if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !defined(__ACC_INTPTR_T_IS_POINTER)
kusano 7d535a
#  define acc_word_t            acc_uintptr_t
kusano 7d535a
#  define acc_sword_t           acc_intptr_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
kusano 7d535a
#elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
kusano 7d535a
#  define acc_word_t            unsigned long
kusano 7d535a
#  define acc_sword_t           long
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
kusano 7d535a
#elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
kusano 7d535a
#  define acc_word_t            unsigned int
kusano 7d535a
#  define acc_sword_t           int
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
kusano 7d535a
#elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
kusano 7d535a
#  define acc_word_t            unsigned short
kusano 7d535a
#  define acc_sword_t           short
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
kusano 7d535a
#elif (ACC_WORDSIZE == 1)
kusano 7d535a
#  define acc_word_t            unsigned char
kusano 7d535a
#  define acc_sword_t           signed char
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T 1
kusano 7d535a
#elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
kusano 7d535a
#  define acc_word_t            acc_uint64l_t
kusano 7d535a
#  define acc_sword_t           acc_int64l_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
kusano 7d535a
#elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
kusano 7d535a
#if 0
kusano 7d535a
   typedef unsigned acc_word_t  __attribute__((__mode__(__V16QI__)));
kusano 7d535a
   typedef int      acc_sword_t __attribute__((__mode__(__V16QI__)));
kusano 7d535a
#  define acc_word_t            acc_word_t
kusano 7d535a
#  define acc_sword_t           acc_sword_t
kusano 7d535a
#  define ACC_SIZEOF_ACC_WORD_T 16
kusano 7d535a
#endif
kusano 7d535a
#else
kusano 7d535a
#  error "acc_word_t"
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_INT16_C)
kusano 7d535a
#  if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
kusano 7d535a
#    define ACC_INT16_C(c)      ((c) + 0)
kusano 7d535a
#    define ACC_UINT16_C(c)     ((c) + 0U)
kusano 7d535a
#  elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
kusano 7d535a
#    define ACC_INT16_C(c)      ((c) + 0L)
kusano 7d535a
#    define ACC_UINT16_C(c)     ((c) + 0UL)
kusano 7d535a
#  elif (ACC_SIZEOF_INT >= 2)
kusano 7d535a
#    define ACC_INT16_C(c)      c
kusano 7d535a
#    define ACC_UINT16_C(c)     c##U
kusano 7d535a
#  elif (ACC_SIZEOF_LONG >= 2)
kusano 7d535a
#    define ACC_INT16_C(c)      c##L
kusano 7d535a
#    define ACC_UINT16_C(c)     c##UL
kusano 7d535a
#  else
kusano 7d535a
#    error "ACC_INT16_C"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_INT32_C)
kusano 7d535a
#  if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
kusano 7d535a
#    define ACC_INT32_C(c)      ((c) + 0)
kusano 7d535a
#    define ACC_UINT32_C(c)     ((c) + 0U)
kusano 7d535a
#  elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
kusano 7d535a
#    define ACC_INT32_C(c)      ((c) + 0L)
kusano 7d535a
#    define ACC_UINT32_C(c)     ((c) + 0UL)
kusano 7d535a
#  elif (ACC_SIZEOF_INT >= 4)
kusano 7d535a
#    define ACC_INT32_C(c)      c
kusano 7d535a
#    define ACC_UINT32_C(c)     c##U
kusano 7d535a
#  elif (ACC_SIZEOF_LONG >= 4)
kusano 7d535a
#    define ACC_INT32_C(c)      c##L
kusano 7d535a
#    define ACC_UINT32_C(c)     c##UL
kusano 7d535a
#  elif (ACC_SIZEOF_LONG_LONG >= 4)
kusano 7d535a
#    define ACC_INT32_C(c)      c##LL
kusano 7d535a
#    define ACC_UINT32_C(c)     c##ULL
kusano 7d535a
#  else
kusano 7d535a
#    error "ACC_INT32_C"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_INT64_C) && defined(acc_int64l_t)
kusano 7d535a
#  if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
kusano 7d535a
#    define ACC_INT64_C(c)      ((c) + 0)
kusano 7d535a
#    define ACC_UINT64_C(c)     ((c) + 0U)
kusano 7d535a
#  elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
kusano 7d535a
#    define ACC_INT64_C(c)      ((c) + 0L)
kusano 7d535a
#    define ACC_UINT64_C(c)     ((c) + 0UL)
kusano 7d535a
#  elif (ACC_SIZEOF_INT >= 8)
kusano 7d535a
#    define ACC_INT64_C(c)      c
kusano 7d535a
#    define ACC_UINT64_C(c)     c##U
kusano 7d535a
#  elif (ACC_SIZEOF_LONG >= 8)
kusano 7d535a
#    define ACC_INT64_C(c)      c##L
kusano 7d535a
#    define ACC_UINT64_C(c)     c##UL
kusano 7d535a
#  else
kusano 7d535a
#    error "ACC_INT64_C"
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INT16E_T) && defined(ACC_SIZEOF_ACC_INT16E_T)
kusano 7d535a
#  define SIZEOF_ACC_INT16E_T   ACC_SIZEOF_ACC_INT16E_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INT32E_T) && defined(ACC_SIZEOF_ACC_INT32E_T)
kusano 7d535a
#  define SIZEOF_ACC_INT32E_T   ACC_SIZEOF_ACC_INT32E_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INT64E_T) && defined(ACC_SIZEOF_ACC_INT64E_T)
kusano 7d535a
#  define SIZEOF_ACC_INT64E_T   ACC_SIZEOF_ACC_INT64E_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INT32L_T) && defined(ACC_SIZEOF_ACC_INT32L_T)
kusano 7d535a
#  define SIZEOF_ACC_INT32L_T   ACC_SIZEOF_ACC_INT32L_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INT64L_T) && defined(ACC_SIZEOF_ACC_INT64L_T)
kusano 7d535a
#  define SIZEOF_ACC_INT64L_T   ACC_SIZEOF_ACC_INT64L_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INT32F_T) && defined(ACC_SIZEOF_ACC_INT32F_T)
kusano 7d535a
#  define SIZEOF_ACC_INT32F_T   ACC_SIZEOF_ACC_INT32F_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_INTPTR_T) && defined(ACC_SIZEOF_ACC_INTPTR_T)
kusano 7d535a
#  define SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_ACC_INTPTR_T
kusano 7d535a
#endif
kusano 7d535a
#if !defined(SIZEOF_ACC_WORD_T) && defined(ACC_SIZEOF_ACC_WORD_T)
kusano 7d535a
#  define SIZEOF_ACC_WORD_T     ACC_SIZEOF_ACC_WORD_T
kusano 7d535a
#endif
kusano 7d535a
#if 1 && !defined(acc_signo_t) && defined(__linux__) && defined(__dietlibc__) && (ACC_SIZEOF_INT != 4)
kusano 7d535a
#  define acc_signo_t           acc_int32e_t
kusano 7d535a
#endif
kusano 7d535a
#if !defined(acc_signo_t)
kusano 7d535a
#  define acc_signo_t           int
kusano 7d535a
#endif
kusano 7d535a
#if defined(__cplusplus)
kusano 7d535a
extern "C" {
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_BROKEN_CDECL_ALT_SYNTAX)
kusano 7d535a
typedef void __acc_cdecl_sighandler (*acc_sighandler_t)(acc_signo_t);
kusano 7d535a
#elif defined(RETSIGTYPE)
kusano 7d535a
typedef RETSIGTYPE (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
kusano 7d535a
#else
kusano 7d535a
typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
kusano 7d535a
#endif
kusano 7d535a
#if defined(__cplusplus)
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#  if !defined(ACC_CFG_NO_ACC_UA_H)
kusano 7d535a
#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
kusano 7d535a
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
kusano 7d535a
#elif (ACC_CC_INTELC) && defined(_WIN32)
kusano 7d535a
#elif (ACC_CC_INTELC && (__INTEL_COMPILER < 700))
kusano 7d535a
#elif (ACC_CC_LLVM)
kusano 7d535a
#elif (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE)
kusano 7d535a
#if !defined(__acc_ua16_t) && (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
kusano 7d535a
   typedef struct { __acc_ua_volatile acc_uint16e_t v __attribute__((__packed__)); } __acc_ua16_t;
kusano 7d535a
#  define __acc_ua16_t __acc_ua16_t
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_ua32_t) && (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
kusano 7d535a
   typedef struct { __acc_ua_volatile acc_uint32e_t v __attribute__((__packed__)); } __acc_ua32_t;
kusano 7d535a
#  define __acc_ua32_t __acc_ua32_t
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__acc_ua64_t) && (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
kusano 7d535a
   typedef struct { __acc_ua_volatile acc_uint64l_t v __attribute__((__packed__)); } __acc_ua64_t;
kusano 7d535a
#  define __acc_ua64_t __acc_ua64_t
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
kusano 7d535a
#define ACC_UA_GET16(p)         (* (__acc_ua_volatile const acc_uint16e_t*) (__acc_ua_volatile const void*) (p))
kusano 7d535a
#define ACC_UA_SET16(p,v)       (* (__acc_ua_volatile acc_uint16e_t*) (__acc_ua_volatile void*) (p) = (acc_uint16e_t) (v))
kusano 7d535a
#if (ACC_ABI_BIG_ENDIAN)
kusano 7d535a
#  define ACC_UA_GET_BE16(p)    ACC_UA_GET16(p)
kusano 7d535a
#  define ACC_UA_SET_BE16(p,v)  ACC_UA_SET16(p,v)
kusano 7d535a
#elif (ACC_ABI_LITTLE_ENDIAN)
kusano 7d535a
#  define ACC_UA_GET_LE16(p)    ACC_UA_GET16(p)
kusano 7d535a
#  define ACC_UA_SET_LE16(p,v)  ACC_UA_SET16(p,v)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_CFG_NO_INLINE_ASM) && defined(__acc_HAVE_forceinline)
kusano 7d535a
#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
kusano 7d535a
#if !defined(ACC_UA_GET_LE16)
kusano 7d535a
extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp);
kusano 7d535a
extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
kusano 7d535a
    __acc_ua_volatile const acc_uint16e_t* p = (__acc_ua_volatile const acc_uint16e_t*) pp;
kusano 7d535a
    unsigned long v;
kusano 7d535a
    __asm__ __volatile__("lhbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
kusano 7d535a
    return v;
kusano 7d535a
}
kusano 7d535a
#define ACC_UA_GET_LE16(p)      __ACC_UA_GET_LE16(p)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UA_SET_LE16)
kusano 7d535a
extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v);
kusano 7d535a
extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
kusano 7d535a
    __acc_ua_volatile acc_uint16e_t* p = (__acc_ua_volatile acc_uint16e_t*) pp;
kusano 7d535a
    __asm__ __volatile__("sthbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
kusano 7d535a
}
kusano 7d535a
#define ACC_UA_SET_LE16(p,v)    __ACC_UA_SET_LE16(p,v)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UA_COPY16)
kusano 7d535a
#  define ACC_UA_COPY16(d,s)    ACC_UA_SET16(d, ACC_UA_GET16(s))
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
kusano 7d535a
#define ACC_UA_GET32(p)         (* (__acc_ua_volatile const acc_uint32e_t*) (__acc_ua_volatile const void*) (p))
kusano 7d535a
#define ACC_UA_SET32(p,v)       (* (__acc_ua_volatile acc_uint32e_t*) (__acc_ua_volatile void*) (p) = (acc_uint32e_t) (v))
kusano 7d535a
#if (ACC_ABI_BIG_ENDIAN)
kusano 7d535a
#  define ACC_UA_GET_BE32(p)    ACC_UA_GET32(p)
kusano 7d535a
#  define ACC_UA_SET_BE32(p,v)  ACC_UA_SET32(p,v)
kusano 7d535a
#elif (ACC_ABI_LITTLE_ENDIAN)
kusano 7d535a
#  define ACC_UA_GET_LE32(p)    ACC_UA_GET32(p)
kusano 7d535a
#  define ACC_UA_SET_LE32(p,v)  ACC_UA_SET32(p,v)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_CFG_NO_INLINE_ASM) && defined(__acc_HAVE_forceinline)
kusano 7d535a
#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
kusano 7d535a
#if !defined(ACC_UA_GET_LE32)
kusano 7d535a
extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp);
kusano 7d535a
extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
kusano 7d535a
    __acc_ua_volatile const acc_uint32e_t* p = (__acc_ua_volatile const acc_uint32e_t*) pp;
kusano 7d535a
    unsigned long v;
kusano 7d535a
    __asm__ __volatile__("lwbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
kusano 7d535a
    return v;
kusano 7d535a
}
kusano 7d535a
#define ACC_UA_GET_LE32(p)      __ACC_UA_GET_LE32(p)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UA_SET_LE32)
kusano 7d535a
extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v);
kusano 7d535a
extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
kusano 7d535a
    __acc_ua_volatile acc_uint32e_t* p = (__acc_ua_volatile acc_uint32e_t*) pp;
kusano 7d535a
    __asm__ __volatile__("stwbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
kusano 7d535a
}
kusano 7d535a
#define ACC_UA_SET_LE32(p,v)    __ACC_UA_SET_LE32(p,v)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UA_COPY32)
kusano 7d535a
#  define ACC_UA_COPY32(d,s)    ACC_UA_SET32(d, ACC_UA_GET32(s))
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
kusano 7d535a
#define ACC_UA_GET64(p)         (* (__acc_ua_volatile const acc_uint64l_t*) (__acc_ua_volatile const void*) (p))
kusano 7d535a
#define ACC_UA_SET64(p,v)       (* (__acc_ua_volatile acc_uint64l_t*) (__acc_ua_volatile void*) (p) = (acc_uint64l_t) (v))
kusano 7d535a
#if (ACC_ABI_BIG_ENDIAN)
kusano 7d535a
#  define ACC_UA_GET_BE64(p)    ACC_UA_GET64(p)
kusano 7d535a
#  define ACC_UA_SET_BE64(p,v)  ACC_UA_SET64(p,v)
kusano 7d535a
#elif (ACC_ABI_LITTLE_ENDIAN)
kusano 7d535a
#  define ACC_UA_GET_LE64(p)    ACC_UA_GET64(p)
kusano 7d535a
#  define ACC_UA_SET_LE64(p,v)  ACC_UA_SET64(p,v)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_UA_COPY64)
kusano 7d535a
#  define ACC_UA_COPY64(d,s)    ACC_UA_SET64(d, ACC_UA_GET64(s))
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACC_INCD_H)
kusano 7d535a
#  undef ACC_WANT_ACC_INCD_H
kusano 7d535a
#ifndef __ACC_INCD_H_INCLUDED
kusano 7d535a
#define __ACC_INCD_H_INCLUDED 1
kusano 7d535a
#if defined(ACC_LIBC_NAKED)
kusano 7d535a
#ifndef __ACC_FALLBACK_STDDEF_H_INCLUDED
kusano 7d535a
#define __ACC_FALLBACK_STDDEF_H_INCLUDED
kusano 7d535a
#if defined(__PTRDIFF_TYPE__)
kusano 7d535a
typedef __PTRDIFF_TYPE__ acc_fallback_ptrdiff_t;
kusano 7d535a
#elif defined(__MIPS_PSX2__)
kusano 7d535a
typedef int acc_fallback_ptrdiff_t;
kusano 7d535a
#else
kusano 7d535a
typedef long acc_fallback_ptrdiff_t;
kusano 7d535a
#endif
kusano 7d535a
#if defined(__SIZE_TYPE__)
kusano 7d535a
typedef __SIZE_TYPE__ acc_fallback_size_t;
kusano 7d535a
#elif defined(__MIPS_PSX2__)
kusano 7d535a
typedef unsigned int acc_fallback_size_t;
kusano 7d535a
#else
kusano 7d535a
typedef unsigned long acc_fallback_size_t;
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ptrdiff_t)
kusano 7d535a
typedef acc_fallback_ptrdiff_t ptrdiff_t;
kusano 7d535a
#ifndef _PTRDIFF_T_DEFINED
kusano 7d535a
#define _PTRDIFF_T_DEFINED 1
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(size_t)
kusano 7d535a
typedef acc_fallback_size_t size_t;
kusano 7d535a
#ifndef _SIZE_T_DEFINED
kusano 7d535a
#define _SIZE_T_DEFINED 1
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__cplusplus) && !defined(wchar_t)
kusano 7d535a
typedef unsigned short wchar_t;
kusano 7d535a
#ifndef _WCHAR_T_DEFINED
kusano 7d535a
#define _WCHAR_T_DEFINED 1
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#ifndef NULL
kusano 7d535a
#if defined(__cplusplus) && defined(__GNUC__) && (__GNUC__ >= 4)
kusano 7d535a
#define NULL    __null
kusano 7d535a
#elif defined(__cplusplus)
kusano 7d535a
#define NULL    0
kusano 7d535a
#else
kusano 7d535a
#define NULL    ((void*)0)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#ifndef offsetof
kusano 7d535a
#define offsetof(s,m)   ((size_t)((ptrdiff_t)&(((s*)0)->m)))
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#elif defined(ACC_LIBC_FREESTANDING)
kusano 7d535a
# if HAVE_STDDEF_H
kusano 7d535a
#  include <stddef.h>
kusano 7d535a
# endif
kusano 7d535a
# if HAVE_STDINT_H
kusano 7d535a
#  include <stdint.h>
kusano 7d535a
# endif
kusano 7d535a
#elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
kusano 7d535a
# if HAVE_STDIO_H
kusano 7d535a
#  include <stdio.h>
kusano 7d535a
# endif
kusano 7d535a
# if HAVE_STDDEF_H
kusano 7d535a
#  include <stddef.h>
kusano 7d535a
# endif
kusano 7d535a
# if HAVE_STDINT_H
kusano 7d535a
#  include <stdint.h>
kusano 7d535a
# endif
kusano 7d535a
#else
kusano 7d535a
#include <stdio.h>
kusano 7d535a
#if defined(HAVE_TIME_H) && defined(__MSL__) && defined(__cplusplus)
kusano 7d535a
# include <time.h>
kusano 7d535a
#endif
kusano 7d535a
#if HAVE_SYS_TYPES_H
kusano 7d535a
# include <sys/types.h>
kusano 7d535a
#endif
kusano 7d535a
#if HAVE_SYS_STAT_H
kusano 7d535a
# include <sys/stat.h>
kusano 7d535a
#endif
kusano 7d535a
#if STDC_HEADERS
kusano 7d535a
# include <stdlib.h>
kusano 7d535a
# include <stddef.h>
kusano 7d535a
#else
kusano 7d535a
# if HAVE_STDLIB_H
kusano 7d535a
#  include <stdlib.h>
kusano 7d535a
# endif
kusano 7d535a
#endif
kusano 7d535a
#if HAVE_STRING_H
kusano 7d535a
# if !STDC_HEADERS && HAVE_MEMORY_H
kusano 7d535a
#  include <memory.h>
kusano 7d535a
# endif
kusano 7d535a
# include <string.h>
kusano 7d535a
#endif
kusano 7d535a
#if HAVE_STRINGS_H
kusano 7d535a
# include <strings.h>
kusano 7d535a
#endif
kusano 7d535a
#if HAVE_INTTYPES_H
kusano 7d535a
# include <inttypes.h>
kusano 7d535a
#else
kusano 7d535a
# if HAVE_STDINT_H
kusano 7d535a
#  include <stdint.h>
kusano 7d535a
# endif
kusano 7d535a
#endif
kusano 7d535a
#if HAVE_UNISTD_H
kusano 7d535a
# include <unistd.h>
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACC_INCE_H)
kusano 7d535a
#  undef ACC_WANT_ACC_INCE_H
kusano 7d535a
#ifndef __ACC_INCE_H_INCLUDED
kusano 7d535a
#define __ACC_INCE_H_INCLUDED 1
kusano 7d535a
#if defined(ACC_LIBC_NAKED)
kusano 7d535a
#elif defined(ACC_LIBC_FREESTANDING)
kusano 7d535a
#elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
kusano 7d535a
#  if defined(HAVE_SETJMP_H)
kusano 7d535a
#    include <setjmp.h>
kusano 7d535a
#  endif
kusano 7d535a
#else
kusano 7d535a
#if defined(HAVE_STDARG_H)
kusano 7d535a
#  include <stdarg.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_CTYPE_H)
kusano 7d535a
#  include <ctype.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_ERRNO_H)
kusano 7d535a
#  include <errno.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_MALLOC_H)
kusano 7d535a
#  include <malloc.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_ALLOCA_H)
kusano 7d535a
#  include <alloca.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_FCNTL_H)
kusano 7d535a
#  include <fcntl.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_DIRENT_H)
kusano 7d535a
#  include <dirent.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_SETJMP_H)
kusano 7d535a
#  include <setjmp.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_SIGNAL_H)
kusano 7d535a
#  include <signal.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(TIME_WITH_SYS_TIME)
kusano 7d535a
#  include <sys/time.h>
kusano 7d535a
#  include <time.h>
kusano 7d535a
#elif defined(HAVE_TIME_H)
kusano 7d535a
#  include <time.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_UTIME_H)
kusano 7d535a
#  include <utime.h>
kusano 7d535a
#elif defined(HAVE_SYS_UTIME_H)
kusano 7d535a
#  include <sys/utime.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_IO_H)
kusano 7d535a
#  include <io.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_DOS_H)
kusano 7d535a
#  include <dos.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_DIRECT_H)
kusano 7d535a
#  include <direct.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_SHARE_H)
kusano 7d535a
#  include <share.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_CC_NDPC)
kusano 7d535a
#  include <os.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(__TOS__) && (defined(__PUREC__) || defined(__TURBOC__))
kusano 7d535a
#  include <ext.h>
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACC_INCI_H)
kusano 7d535a
#  undef ACC_WANT_ACC_INCI_H
kusano 7d535a
#ifndef __ACC_INCI_H_INCLUDED
kusano 7d535a
#define __ACC_INCI_H_INCLUDED 1
kusano 7d535a
#if defined(ACC_LIBC_NAKED)
kusano 7d535a
#elif defined(ACC_LIBC_FREESTANDING)
kusano 7d535a
#elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
kusano 7d535a
#else
kusano 7d535a
#if (ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
kusano 7d535a
#  include <tos.h>
kusano 7d535a
#elif (ACC_HAVE_WINDOWS_H)
kusano 7d535a
#  if 1 && !defined(WIN32_LEAN_AND_MEAN)
kusano 7d535a
#    define WIN32_LEAN_AND_MEAN 1
kusano 7d535a
#  endif
kusano 7d535a
#  if 1 && !defined(_WIN32_WINNT)
kusano 7d535a
#    define _WIN32_WINNT 0x0400
kusano 7d535a
#  endif
kusano 7d535a
#  include <windows.h>
kusano 7d535a
#  if (ACC_CC_BORLANDC || ACC_CC_TURBOC)
kusano 7d535a
#    include <dir.h>
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_WIN16)
kusano 7d535a
#  if (ACC_CC_AZTECC)
kusano 7d535a
#    include <model.h>
kusano 7d535a
#    include <stat.h>
kusano 7d535a
#  elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
kusano 7d535a
#    include <alloc.h>
kusano 7d535a
#    include <dir.h>
kusano 7d535a
#  elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
kusano 7d535a
#    include <sys/exceptn.h>
kusano 7d535a
#  elif (ACC_CC_PACIFICC)
kusano 7d535a
#    include <unixio.h>
kusano 7d535a
#    include <stat.h>
kusano 7d535a
#    include <sys.h>
kusano 7d535a
#  elif (ACC_CC_WATCOMC)
kusano 7d535a
#    include <i86.h>
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_OS_OS216)
kusano 7d535a
#  if (ACC_CC_WATCOMC)
kusano 7d535a
#    include <i86.h>
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_SYS_MMAN_H)
kusano 7d535a
#  include <sys/mman.h>
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_SYS_RESOURCE_H)
kusano 7d535a
#  include <sys/resource.h>
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
kusano 7d535a
#  if defined(FP_OFF)
kusano 7d535a
#    define ACC_PTR_FP_OFF(x)   FP_OFF(x)
kusano 7d535a
#  elif defined(_FP_OFF)
kusano 7d535a
#    define ACC_PTR_FP_OFF(x)   _FP_OFF(x)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_PTR_FP_OFF(x)   (((const unsigned __far*)&(x))[0])
kusano 7d535a
#  endif
kusano 7d535a
#  if defined(FP_SEG)
kusano 7d535a
#    define ACC_PTR_FP_SEG(x)   FP_SEG(x)
kusano 7d535a
#  elif defined(_FP_SEG)
kusano 7d535a
#    define ACC_PTR_FP_SEG(x)   _FP_SEG(x)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_PTR_FP_SEG(x)   (((const unsigned __far*)&(x))[1])
kusano 7d535a
#  endif
kusano 7d535a
#  if defined(MK_FP)
kusano 7d535a
#    define ACC_PTR_MK_FP(s,o)  MK_FP(s,o)
kusano 7d535a
#  elif defined(_MK_FP)
kusano 7d535a
#    define ACC_PTR_MK_FP(s,o)  _MK_FP(s,o)
kusano 7d535a
#  else
kusano 7d535a
#    define ACC_PTR_MK_FP(s,o)  ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o)))
kusano 7d535a
#  endif
kusano 7d535a
#  if 0
kusano 7d535a
#    undef ACC_PTR_FP_OFF
kusano 7d535a
#    undef ACC_PTR_FP_SEG
kusano 7d535a
#    undef ACC_PTR_MK_FP
kusano 7d535a
#    define ACC_PTR_FP_OFF(x)   (((const unsigned __far*)&(x))[0])
kusano 7d535a
#    define ACC_PTR_FP_SEG(x)   (((const unsigned __far*)&(x))[1])
kusano 7d535a
#    define ACC_PTR_MK_FP(s,o)  ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o)))
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACC_LIB_H)
kusano 7d535a
#  undef ACC_WANT_ACC_LIB_H
kusano 7d535a
#ifndef __ACC_LIB_H_INCLUDED
kusano 7d535a
#define __ACC_LIB_H_INCLUDED 1
kusano 7d535a
#if !defined(__ACCLIB_FUNCNAME)
kusano 7d535a
#  define __ACCLIB_FUNCNAME(f)  f
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACCLIB_EXTERN)
kusano 7d535a
#  define ACCLIB_EXTERN(r,f)                extern r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACCLIB_EXTERN_NOINLINE)
kusano 7d535a
#  if defined(__acc_noinline)
kusano 7d535a
#    define ACCLIB_EXTERN_NOINLINE(r,f)     extern __acc_noinline r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#  else
kusano 7d535a
#    define ACCLIB_EXTERN_NOINLINE(r,f)     extern r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__ACCLIB_CONST_CAST_RETURN)
kusano 7d535a
#if 1 && (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#  define __ACCLIB_CONST_CAST_RETURN(type,var) return (type) (acc_uintptr_t) (var);
kusano 7d535a
#elif (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#  define __ACCLIB_CONST_CAST_RETURN(type,var) \
kusano 7d535a
        { union { type a; const type b; } u; u.b = (var); return u.a; }
kusano 7d535a
#else
kusano 7d535a
#  define __ACCLIB_CONST_CAST_RETURN(type,var) return (type) (var);
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_WIN64)
kusano 7d535a
#  define acclib_handle_t       acc_int64l_t
kusano 7d535a
#  define acclib_uhandle_t      acc_uint64l_t
kusano 7d535a
#elif (ACC_ARCH_I386 && ACC_CC_MSC && (_MSC_VER >= 1300))
kusano 7d535a
   typedef __w64 long           acclib_handle_t;
kusano 7d535a
   typedef __w64 unsigned long  acclib_uhandle_t;
kusano 7d535a
#  define acclib_handle_t       acclib_handle_t
kusano 7d535a
#  define acclib_uhandle_t      acclib_uhandle_t
kusano 7d535a
#else
kusano 7d535a
#  define acclib_handle_t       long
kusano 7d535a
#  define acclib_uhandle_t      unsigned long
kusano 7d535a
#endif
kusano 7d535a
#if 0
kusano 7d535a
ACCLIB_EXTERN(int, acc_ascii_digit)   (int);
kusano 7d535a
ACCLIB_EXTERN(int, acc_ascii_islower) (int);
kusano 7d535a
ACCLIB_EXTERN(int, acc_ascii_isupper) (int);
kusano 7d535a
ACCLIB_EXTERN(int, acc_ascii_tolower) (int);
kusano 7d535a
ACCLIB_EXTERN(int, acc_ascii_toupper) (int);
kusano 7d535a
ACCLIB_EXTERN(int, acc_ascii_utolower) (int);
kusano 7d535a
ACCLIB_EXTERN(int, acc_ascii_utoupper) (int);
kusano 7d535a
#endif
kusano 7d535a
#define acc_ascii_isdigit(c)    (((unsigned)(c) - 48) < 10)
kusano 7d535a
#define acc_ascii_islower(c)    (((unsigned)(c) - 97) < 26)
kusano 7d535a
#define acc_ascii_isupper(c)    (((unsigned)(c) - 65) < 26)
kusano 7d535a
#define acc_ascii_tolower(c)    ((int)(c) + (acc_ascii_isupper(c) << 5))
kusano 7d535a
#define acc_ascii_toupper(c)    ((int)(c) - (acc_ascii_islower(c) << 5))
kusano 7d535a
#define acc_ascii_utolower(c)   acc_ascii_tolower((unsigned char)(c))
kusano 7d535a
#define acc_ascii_utoupper(c)   acc_ascii_toupper((unsigned char)(c))
kusano 7d535a
#ifndef acc_hsize_t
kusano 7d535a
#if (ACC_HAVE_MM_HUGE_PTR)
kusano 7d535a
#  define acc_hsize_t   unsigned long
kusano 7d535a
#  define acc_hvoid_p   void __huge *
kusano 7d535a
#  define acc_hchar_p   char __huge *
kusano 7d535a
#  define acc_hchar_pp  char __huge * __huge *
kusano 7d535a
#  define acc_hbyte_p   unsigned char __huge *
kusano 7d535a
#else
kusano 7d535a
#  define acc_hsize_t   size_t
kusano 7d535a
#  define acc_hvoid_p   void *
kusano 7d535a
#  define acc_hchar_p   char *
kusano 7d535a
#  define acc_hchar_pp  char **
kusano 7d535a
#  define acc_hbyte_p   unsigned char *
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_halloc) (acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(void, acc_hfree) (acc_hvoid_p);
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS_OS216)
kusano 7d535a
ACCLIB_EXTERN(void __far*, acc_dos_alloc) (unsigned long);
kusano 7d535a
ACCLIB_EXTERN(int, acc_dos_free) (void __far*);
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(int, acc_hmemcmp) (const acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_hmemcpy) (acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_hmemmove) (acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_hmemset) (acc_hvoid_p, int, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hsize_t, acc_hstrlen) (const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(int, acc_hstrcmp) (const acc_hchar_p, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(int, acc_hstrncmp)(const acc_hchar_p, const acc_hchar_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(int, acc_ascii_hstricmp) (const acc_hchar_p, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(int, acc_ascii_hstrnicmp)(const acc_hchar_p, const acc_hchar_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(int, acc_ascii_hmemicmp) (const acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_hstrstr) (const acc_hchar_p, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstristr) (const acc_hchar_p, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_hmemmem) (const acc_hvoid_p, acc_hsize_t, const acc_hvoid_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemimem) (const acc_hvoid_p, acc_hsize_t, const acc_hvoid_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_hstrcpy) (acc_hchar_p, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_hstrcat) (acc_hchar_p, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hsize_t, acc_hstrlcpy) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hsize_t, acc_hstrlcat) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(int, acc_hstrscpy) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(int, acc_hstrscat) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_hstrccpy) (acc_hchar_p, const acc_hchar_p, int);
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_hmemccpy) (acc_hvoid_p, const acc_hvoid_p, int, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_hstrchr)  (const acc_hchar_p, int);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_hstrrchr) (const acc_hchar_p, int);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrichr) (const acc_hchar_p, int);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrrichr) (const acc_hchar_p, int);
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_hmemchr)  (const acc_hvoid_p, int, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_hmemrchr) (const acc_hvoid_p, int, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemichr) (const acc_hvoid_p, int, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemrichr) (const acc_hvoid_p, int, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hsize_t, acc_hstrspn)  (const acc_hchar_p, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hsize_t, acc_hstrrspn) (const acc_hchar_p, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hsize_t, acc_hstrcspn)  (const acc_hchar_p, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hsize_t, acc_hstrrcspn) (const acc_hchar_p, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_hstrpbrk)  (const acc_hchar_p, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_hstrrpbrk) (const acc_hchar_p, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_hstrsep)  (acc_hchar_pp, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_hstrrsep) (acc_hchar_pp, const acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrlwr) (acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrupr) (acc_hchar_p);
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemlwr) (acc_hvoid_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemupr) (acc_hvoid_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hsize_t, acc_hfread) (void *, acc_hvoid_p, acc_hsize_t);
kusano 7d535a
ACCLIB_EXTERN(acc_hsize_t, acc_hfwrite) (void *, const acc_hvoid_p, acc_hsize_t);
kusano 7d535a
#if (ACC_HAVE_MM_HUGE_PTR)
kusano 7d535a
ACCLIB_EXTERN(long, acc_hread) (int, acc_hvoid_p, long);
kusano 7d535a
ACCLIB_EXTERN(long, acc_hwrite) (int, const acc_hvoid_p, long);
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(long, acc_safe_hread) (int, acc_hvoid_p, long);
kusano 7d535a
ACCLIB_EXTERN(long, acc_safe_hwrite) (int, const acc_hvoid_p, long);
kusano 7d535a
ACCLIB_EXTERN(unsigned, acc_ua_get_be16) (const acc_hvoid_p);
kusano 7d535a
ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_be24) (const acc_hvoid_p);
kusano 7d535a
ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_be32) (const acc_hvoid_p);
kusano 7d535a
ACCLIB_EXTERN(void, acc_ua_set_be16) (acc_hvoid_p, unsigned);
kusano 7d535a
ACCLIB_EXTERN(void, acc_ua_set_be24) (acc_hvoid_p, acc_uint32l_t);
kusano 7d535a
ACCLIB_EXTERN(void, acc_ua_set_be32) (acc_hvoid_p, acc_uint32l_t);
kusano 7d535a
ACCLIB_EXTERN(unsigned, acc_ua_get_le16) (const acc_hvoid_p);
kusano 7d535a
ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_le24) (const acc_hvoid_p);
kusano 7d535a
ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_le32) (const acc_hvoid_p);
kusano 7d535a
ACCLIB_EXTERN(void, acc_ua_set_le16) (acc_hvoid_p, unsigned);
kusano 7d535a
ACCLIB_EXTERN(void, acc_ua_set_le24) (acc_hvoid_p, acc_uint32l_t);
kusano 7d535a
ACCLIB_EXTERN(void, acc_ua_set_le32) (acc_hvoid_p, acc_uint32l_t);
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
ACCLIB_EXTERN(acc_uint64l_t, acc_ua_get_be64) (const acc_hvoid_p);
kusano 7d535a
ACCLIB_EXTERN(void, acc_ua_set_be64) (acc_hvoid_p, acc_uint64l_t);
kusano 7d535a
ACCLIB_EXTERN(acc_uint64l_t, acc_ua_get_le64) (const acc_hvoid_p);
kusano 7d535a
ACCLIB_EXTERN(void, acc_ua_set_le64) (acc_hvoid_p, acc_uint64l_t);
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(short, acc_vget_short) (short, int);
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(int, acc_vget_int) (int, int);
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(long, acc_vget_long) (long, int);
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(acc_int64l_t, acc_vget_acc_int64l_t) (acc_int64l_t, int);
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(acc_hsize_t, acc_vget_acc_hsize_t) (acc_hsize_t, int);
kusano 7d535a
#if !defined(ACC_CFG_NO_FLOAT)
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(float, acc_vget_float) (float, int);
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_CFG_NO_DOUBLE)
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(double, acc_vget_double) (double, int);
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(acc_hvoid_p, acc_vget_acc_hvoid_p) (acc_hvoid_p, int);
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(const acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoid_p, int);
kusano 7d535a
#if !defined(ACC_FN_PATH_MAX)
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS_WIN16)
kusano 7d535a
#  define ACC_FN_PATH_MAX   143
kusano 7d535a
#elif (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
#  define ACC_FN_PATH_MAX   259
kusano 7d535a
#elif (ACC_OS_TOS)
kusano 7d535a
#  define ACC_FN_PATH_MAX   259
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_FN_PATH_MAX)
kusano 7d535a
#  define ACC_FN_PATH_MAX   1023
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_FN_NAME_MAX)
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS_WIN16)
kusano 7d535a
#  define ACC_FN_NAME_MAX   12
kusano 7d535a
#elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
kusano 7d535a
#  define ACC_FN_NAME_MAX   12
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
kusano 7d535a
#elif (ACC_OS_DOS32)
kusano 7d535a
#  define ACC_FN_NAME_MAX   12
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_FN_NAME_MAX)
kusano 7d535a
#  define ACC_FN_NAME_MAX   ACC_FN_PATH_MAX
kusano 7d535a
#endif
kusano 7d535a
#define ACC_FNMATCH_NOESCAPE        1
kusano 7d535a
#define ACC_FNMATCH_PATHNAME        2
kusano 7d535a
#define ACC_FNMATCH_PATHSTAR        4
kusano 7d535a
#define ACC_FNMATCH_PERIOD          8
kusano 7d535a
#define ACC_FNMATCH_ASCII_CASEFOLD  16
kusano 7d535a
ACCLIB_EXTERN(int, acc_fnmatch) (const acc_hchar_p, const acc_hchar_p, int);
kusano 7d535a
#undef __ACCLIB_USE_OPENDIR
kusano 7d535a
#if (HAVE_DIRENT_H || ACC_CC_WATCOMC)
kusano 7d535a
#  define __ACCLIB_USE_OPENDIR 1
kusano 7d535a
#  if (ACC_OS_DOS32 && defined(__BORLANDC__))
kusano 7d535a
#  elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
kusano 7d535a
#  elif (ACC_OS_OS2 || ACC_OS_OS216)
kusano 7d535a
#  elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
kusano 7d535a
#  elif (ACC_OS_WIN32 && !defined(ACC_HAVE_WINDOWS_H))
kusano 7d535a
#  elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_TOS || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
#    undef __ACCLIB_USE_OPENDIR
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
typedef struct
kusano 7d535a
{
kusano 7d535a
#if defined(__ACCLIB_USE_OPENDIR)
kusano 7d535a
    void* u_dirp;
kusano 7d535a
# if (ACC_CC_WATCOMC)
kusano 7d535a
    unsigned short f_time;
kusano 7d535a
    unsigned short f_date;
kusano 7d535a
    unsigned long f_size;
kusano 7d535a
# endif
kusano 7d535a
    char f_name[ACC_FN_NAME_MAX+1];
kusano 7d535a
#elif (ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
    acclib_handle_t u_handle;
kusano 7d535a
    unsigned f_attr;
kusano 7d535a
    unsigned f_size_low;
kusano 7d535a
    unsigned f_size_high;
kusano 7d535a
    char f_name[ACC_FN_NAME_MAX+1];
kusano 7d535a
#elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_TOS || ACC_OS_WIN16)
kusano 7d535a
    char u_dta[21];
kusano 7d535a
    unsigned char f_attr;
kusano 7d535a
    unsigned short f_time;
kusano 7d535a
    unsigned short f_date;
kusano 7d535a
    unsigned short f_size_low;
kusano 7d535a
    unsigned short f_size_high;
kusano 7d535a
    char f_name[ACC_FN_NAME_MAX+1];
kusano 7d535a
    char u_dirp;
kusano 7d535a
#else
kusano 7d535a
    void* u_dirp;
kusano 7d535a
    char f_name[ACC_FN_NAME_MAX+1];
kusano 7d535a
#endif
kusano 7d535a
} acc_dir_t;
kusano 7d535a
#ifndef acc_dir_p
kusano 7d535a
#define acc_dir_p acc_dir_t *
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(int, acc_opendir)  (acc_dir_p, const char*);
kusano 7d535a
ACCLIB_EXTERN(int, acc_readdir)  (acc_dir_p);
kusano 7d535a
ACCLIB_EXTERN(int, acc_closedir) (acc_dir_p);
kusano 7d535a
#if (ACC_CC_GNUC) && (defined(__CYGWIN__) || defined(__MINGW32__))
kusano 7d535a
#  define acc_alloca(x)     __builtin_alloca((x))
kusano 7d535a
#elif (ACC_CC_GNUC) && (ACC_OS_CONSOLE_PS2)
kusano 7d535a
#  define acc_alloca(x)     __builtin_alloca((x))
kusano 7d535a
#elif (ACC_CC_BORLANDC || ACC_CC_LCC) && defined(__linux__)
kusano 7d535a
#elif (HAVE_ALLOCA)
kusano 7d535a
#  define acc_alloca(x)     ((void *) (alloca((x))))
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
kusano 7d535a
#  define acc_stackavail()  stackavail()
kusano 7d535a
#elif (ACC_ARCH_I086 && ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0410))
kusano 7d535a
#  define acc_stackavail()  stackavail()
kusano 7d535a
#elif (ACC_ARCH_I086 && ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0400))
kusano 7d535a
#  if (ACC_OS_WIN16) && (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
kusano 7d535a
#  else
kusano 7d535a
#    define acc_stackavail()  stackavail()
kusano 7d535a
#  endif
kusano 7d535a
#elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_CC_DMC || ACC_CC_SYMANTECC))
kusano 7d535a
#  define acc_stackavail()  stackavail()
kusano 7d535a
#elif ((ACC_ARCH_I086) && ACC_CC_MSC && (_MSC_VER >= 700))
kusano 7d535a
#  define acc_stackavail()  _stackavail()
kusano 7d535a
#elif ((ACC_ARCH_I086) && ACC_CC_MSC)
kusano 7d535a
#  define acc_stackavail()  stackavail()
kusano 7d535a
#elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && ACC_CC_TURBOC && (__TURBOC__ >= 0x0450))
kusano 7d535a
#  define acc_stackavail()  stackavail()
kusano 7d535a
#elif (ACC_ARCH_I086 && ACC_CC_TURBOC && (__TURBOC__ >= 0x0400))
kusano 7d535a
   ACC_EXTERN_C size_t __cdecl stackavail(void);
kusano 7d535a
#  define acc_stackavail()  stackavail()
kusano 7d535a
#elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_CC_WATCOMC))
kusano 7d535a
#  define acc_stackavail()  stackavail()
kusano 7d535a
#elif (ACC_ARCH_I086 && ACC_CC_ZORTECHC)
kusano 7d535a
#  define acc_stackavail()  _chkstack()
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(acclib_handle_t, acc_get_osfhandle) (int);
kusano 7d535a
ACCLIB_EXTERN(const char *, acc_getenv) (const char *);
kusano 7d535a
ACCLIB_EXTERN(int, acc_isatty) (int);
kusano 7d535a
ACCLIB_EXTERN(int, acc_mkdir) (const char*, unsigned);
kusano 7d535a
ACCLIB_EXTERN(int, acc_rmdir) (const char*);
kusano 7d535a
ACCLIB_EXTERN(int, acc_response) (int*, char***);
kusano 7d535a
ACCLIB_EXTERN(int, acc_set_binmode) (int, int);
kusano 7d535a
#if defined(acc_int32e_t)
kusano 7d535a
ACCLIB_EXTERN(acc_int32e_t, acc_muldiv32s) (acc_int32e_t, acc_int32e_t, acc_int32e_t);
kusano 7d535a
ACCLIB_EXTERN(acc_uint32e_t, acc_muldiv32u) (acc_uint32e_t, acc_uint32e_t, acc_uint32e_t);
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(void, acc_wildargv) (int*, char***);
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(void, acc_debug_break) (void);
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(void, acc_debug_nop) (void);
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(int, acc_debug_align_check_query) (void);
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(int, acc_debug_align_check_enable) (int);
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(unsigned, acc_debug_running_on_qemu) (void);
kusano 7d535a
ACCLIB_EXTERN_NOINLINE(unsigned, acc_debug_running_on_valgrind) (void);
kusano 7d535a
#if !defined(acc_int64l_t) || defined(ACC_CFG_NO_DOUBLE)
kusano 7d535a
#  undef __ACCLIB_PCLOCK_USE_RDTSC
kusano 7d535a
#  undef __ACCLIB_PCLOCK_USE_PERFCTR
kusano 7d535a
#  undef __ACCLIB_UCLOCK_USE_RDTSC
kusano 7d535a
#  undef __ACCLIB_UCLOCK_USE_PERFCTR
kusano 7d535a
#else
kusano 7d535a
typedef struct {
kusano 7d535a
    void* h;
kusano 7d535a
    int mode;
kusano 7d535a
    double tsc_to_seconds;
kusano 7d535a
    unsigned cpu_type, cpu_features, cpu_khz, cpu_nrctrs;
kusano 7d535a
    const char* cpu_name;
kusano 7d535a
} acc_perfctr_handle_t;
kusano 7d535a
typedef struct {
kusano 7d535a
    acc_uint64l_t tsc;
kusano 7d535a
#if (ACC_OS_POSIX_LINUX)
kusano 7d535a
    acc_uint64l_t pmc[18];
kusano 7d535a
#else
kusano 7d535a
    acc_uint64l_t pmc[1];
kusano 7d535a
#endif
kusano 7d535a
} acc_perfctr_clock_t;
kusano 7d535a
#ifndef acc_perfctr_handle_p
kusano 7d535a
#define acc_perfctr_handle_p acc_perfctr_handle_t *
kusano 7d535a
#endif
kusano 7d535a
#ifndef acc_perfctr_clock_p
kusano 7d535a
#define acc_perfctr_clock_p acc_perfctr_clock_t *
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(int, acc_perfctr_open)  (acc_perfctr_handle_p);
kusano 7d535a
ACCLIB_EXTERN(int, acc_perfctr_close) (acc_perfctr_handle_p);
kusano 7d535a
ACCLIB_EXTERN(void, acc_perfctr_read) (acc_perfctr_handle_p, acc_perfctr_clock_p);
kusano 7d535a
#if !defined(ACC_CFG_NO_DOUBLE)
kusano 7d535a
ACCLIB_EXTERN(double, acc_perfctr_get_elapsed) (acc_perfctr_handle_p, const acc_perfctr_clock_p, const acc_perfctr_clock_p);
kusano 7d535a
ACCLIB_EXTERN(double, acc_perfctr_get_elapsed_tsc) (acc_perfctr_handle_p, acc_uint64l_t);
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(int, acc_perfctr_flush_cpu_cache) (acc_perfctr_handle_p, unsigned);
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int32e_t)
kusano 7d535a
ACCLIB_EXTERN(int, acc_tsc_read) (acc_uint32e_t*);
kusano 7d535a
#else
kusano 7d535a
#  undef __ACCLIB_PCLOCK_USE_RDTSC
kusano 7d535a
#  undef __ACCLIB_UCLOCK_USE_RDTSC
kusano 7d535a
#endif
kusano 7d535a
struct acc_pclock_handle_t;
kusano 7d535a
struct acc_pclock_t;
kusano 7d535a
typedef struct acc_pclock_handle_t acc_pclock_handle_t;
kusano 7d535a
typedef struct acc_pclock_t acc_pclock_t;
kusano 7d535a
#ifndef acc_pclock_handle_p
kusano 7d535a
#define acc_pclock_handle_p acc_pclock_handle_t *
kusano 7d535a
#endif
kusano 7d535a
#ifndef acc_pclock_p
kusano 7d535a
#define acc_pclock_p acc_pclock_t *
kusano 7d535a
#endif
kusano 7d535a
#define ACC_PCLOCK_REALTIME             0
kusano 7d535a
#define ACC_PCLOCK_MONOTONIC            1
kusano 7d535a
#define ACC_PCLOCK_PROCESS_CPUTIME_ID   2
kusano 7d535a
#define ACC_PCLOCK_THREAD_CPUTIME_ID    3
kusano 7d535a
#define ACC_PCLOCK_REALTIME_HR          4
kusano 7d535a
#define ACC_PCLOCK_MONOTONIC_HR         5
kusano 7d535a
struct acc_pclock_handle_t {
kusano 7d535a
    acclib_handle_t h;
kusano 7d535a
    int mode;
kusano 7d535a
    const char* name;
kusano 7d535a
    int (*gettime) (acc_pclock_handle_p, acc_pclock_p);
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
    acc_uint64l_t ticks_base;
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ACCLIB_PCLOCK_USE_PERFCTR)
kusano 7d535a
    acc_perfctr_handle_t pch;
kusano 7d535a
#endif
kusano 7d535a
};
kusano 7d535a
struct acc_pclock_t {
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
    acc_int64l_t tv_sec;
kusano 7d535a
#else
kusano 7d535a
    acc_int32l_t tv_sec_high;
kusano 7d535a
    acc_uint32l_t tv_sec_low;
kusano 7d535a
#endif
kusano 7d535a
    acc_uint32l_t tv_nsec;
kusano 7d535a
};
kusano 7d535a
ACCLIB_EXTERN(int, acc_pclock_open)  (acc_pclock_handle_p, int);
kusano 7d535a
ACCLIB_EXTERN(int, acc_pclock_open_default) (acc_pclock_handle_p);
kusano 7d535a
ACCLIB_EXTERN(int, acc_pclock_close) (acc_pclock_handle_p);
kusano 7d535a
ACCLIB_EXTERN(void, acc_pclock_read) (acc_pclock_handle_p, acc_pclock_p);
kusano 7d535a
#if !defined(ACC_CFG_NO_DOUBLE)
kusano 7d535a
ACCLIB_EXTERN(double, acc_pclock_get_elapsed) (acc_pclock_handle_p, const acc_pclock_p, const acc_pclock_p);
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(int, acc_pclock_flush_cpu_cache) (acc_pclock_handle_p, unsigned);
kusano 7d535a
#if !defined(acc_int64l_t) || defined(ACC_CFG_NO_DOUBLE)
kusano 7d535a
#  undef __ACCLIB_UCLOCK_USE_QPC
kusano 7d535a
#elif (ACC_OS_CYGWIN || ACC_OS_EMX || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
kusano 7d535a
#  define __ACCLIB_UCLOCK_USE_QPC 1
kusano 7d535a
#else
kusano 7d535a
#  undef __ACCLIB_UCLOCK_USE_QPC
kusano 7d535a
#endif
kusano 7d535a
typedef struct {
kusano 7d535a
    acclib_handle_t h;
kusano 7d535a
    int mode;
kusano 7d535a
    const char* name;
kusano 7d535a
#if defined(__ACCLIB_UCLOCK_USE_PERFCTR)
kusano 7d535a
    acc_perfctr_handle_t pch;
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ACCLIB_UCLOCK_USE_QPC)
kusano 7d535a
    double qpf;
kusano 7d535a
#endif
kusano 7d535a
} acc_uclock_handle_t;
kusano 7d535a
typedef struct {
kusano 7d535a
    union {
kusano 7d535a
        acc_uint32l_t t32;
kusano 7d535a
#if !(ACC_OS_DOS16 || ACC_OS_WIN16)
kusano 7d535a
#  if !defined(ACC_CFG_NO_DOUBLE)
kusano 7d535a
        double td;
kusano 7d535a
#  endif
kusano 7d535a
#  if defined(acc_int64l_t)
kusano 7d535a
        acc_int64l_t t64;
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
    } ticks;
kusano 7d535a
#if defined(__ACCLIB_UCLOCK_USE_RDTSC)
kusano 7d535a
    acc_uint64l_t tsc;
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ACCLIB_UCLOCK_USE_PERFCTR)
kusano 7d535a
    acc_perfctr_clock_t pcc;
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ACCLIB_UCLOCK_USE_QPC)
kusano 7d535a
    acc_int64l_t qpc;
kusano 7d535a
#endif
kusano 7d535a
} acc_uclock_t;
kusano 7d535a
#ifndef acc_uclock_handle_p
kusano 7d535a
#define acc_uclock_handle_p acc_uclock_handle_t *
kusano 7d535a
#endif
kusano 7d535a
#ifndef acc_uclock_p
kusano 7d535a
#define acc_uclock_p acc_uclock_t *
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(int, acc_uclock_open)  (acc_uclock_handle_p);
kusano 7d535a
ACCLIB_EXTERN(int, acc_uclock_close) (acc_uclock_handle_p);
kusano 7d535a
ACCLIB_EXTERN(void, acc_uclock_read) (acc_uclock_handle_p, acc_uclock_p);
kusano 7d535a
#if !defined(ACC_CFG_NO_DOUBLE)
kusano 7d535a
ACCLIB_EXTERN(double, acc_uclock_get_elapsed) (acc_uclock_handle_p, const acc_uclock_p, const acc_uclock_p);
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(int, acc_uclock_flush_cpu_cache) (acc_uclock_handle_p, unsigned);
kusano 7d535a
struct acc_getopt_t;
kusano 7d535a
typedef struct acc_getopt_t acc_getopt_t;
kusano 7d535a
#ifndef acc_getopt_p
kusano 7d535a
#define acc_getopt_p acc_getopt_t *
kusano 7d535a
#endif
kusano 7d535a
struct acc_getopt_longopt_t;
kusano 7d535a
typedef struct acc_getopt_longopt_t acc_getopt_longopt_t;
kusano 7d535a
#ifndef acc_getopt_longopt_p
kusano 7d535a
#define acc_getopt_longopt_p acc_getopt_longopt_t *
kusano 7d535a
#endif
kusano 7d535a
struct acc_getopt_longopt_t {
kusano 7d535a
    const char* name;
kusano 7d535a
    int has_arg;
kusano 7d535a
    int* flag;
kusano 7d535a
    int val;
kusano 7d535a
};
kusano 7d535a
struct acc_getopt_t {
kusano 7d535a
    void *user;
kusano 7d535a
    char *optarg;
kusano 7d535a
    void (*opterr)(acc_getopt_p, const char*, void *);
kusano 7d535a
    int optind;
kusano 7d535a
    int optopt;
kusano 7d535a
    int errcount;
kusano 7d535a
    const char* progname;
kusano 7d535a
    int argc; char** argv;
kusano 7d535a
    int eof; int shortpos;
kusano 7d535a
    int pending_rotate_first, pending_rotate_middle;
kusano 7d535a
};
kusano 7d535a
enum { ACC_GETOPT_NO_ARG, ACC_GETOPT_REQUIRED_ARG, ACC_GETOPT_OPTIONAL_ARG, ACC_GETOPT_EXACT_ARG = 0x10 };
kusano 7d535a
enum { ACC_GETOPT_PERMUTE, ACC_GETOPT_RETURN_IN_ORDER, ACC_GETOPT_REQUIRE_ORDER };
kusano 7d535a
ACCLIB_EXTERN(void, acc_getopt_init) (acc_getopt_p g,
kusano 7d535a
                                      int start_argc, int argc, char** argv);
kusano 7d535a
ACCLIB_EXTERN(int, acc_getopt) (acc_getopt_p g,
kusano 7d535a
                                const char* shortopts,
kusano 7d535a
                                const acc_getopt_longopt_p longopts,
kusano 7d535a
                                int* longind);
kusano 7d535a
typedef struct {
kusano 7d535a
    acc_uint32l_t seed;
kusano 7d535a
} acc_rand31_t;
kusano 7d535a
#ifndef acc_rand31_p
kusano 7d535a
#define acc_rand31_p acc_rand31_t *
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(void, acc_srand31) (acc_rand31_p, acc_uint32l_t);
kusano 7d535a
ACCLIB_EXTERN(acc_uint32l_t, acc_rand31) (acc_rand31_p);
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
typedef struct {
kusano 7d535a
    acc_uint64l_t seed;
kusano 7d535a
} acc_rand48_t;
kusano 7d535a
#ifndef acc_rand48_p
kusano 7d535a
#define acc_rand48_p acc_rand48_t *
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(void, acc_srand48) (acc_rand48_p, acc_uint32l_t);
kusano 7d535a
ACCLIB_EXTERN(acc_uint32l_t, acc_rand48) (acc_rand48_p);
kusano 7d535a
ACCLIB_EXTERN(acc_uint32l_t, acc_rand48_r32) (acc_rand48_p);
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
typedef struct {
kusano 7d535a
    acc_uint64l_t seed;
kusano 7d535a
} acc_rand64_t;
kusano 7d535a
#ifndef acc_rand64_p
kusano 7d535a
#define acc_rand64_p acc_rand64_t *
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(void, acc_srand64) (acc_rand64_p, acc_uint64l_t);
kusano 7d535a
ACCLIB_EXTERN(acc_uint32l_t, acc_rand64) (acc_rand64_p);
kusano 7d535a
ACCLIB_EXTERN(acc_uint32l_t, acc_rand64_r32) (acc_rand64_p);
kusano 7d535a
#endif
kusano 7d535a
typedef struct {
kusano 7d535a
    unsigned n;
kusano 7d535a
    acc_uint32l_t s[624];
kusano 7d535a
} acc_randmt_t;
kusano 7d535a
#ifndef acc_randmt_p
kusano 7d535a
#define acc_randmt_p acc_randmt_t *
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(void, acc_srandmt) (acc_randmt_p, acc_uint32l_t);
kusano 7d535a
ACCLIB_EXTERN(acc_uint32l_t, acc_randmt) (acc_randmt_p);
kusano 7d535a
ACCLIB_EXTERN(acc_uint32l_t, acc_randmt_r32) (acc_randmt_p);
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
typedef struct {
kusano 7d535a
    unsigned n;
kusano 7d535a
    acc_uint64l_t s[312];
kusano 7d535a
} acc_randmt64_t;
kusano 7d535a
#ifndef acc_randmt64_p
kusano 7d535a
#define acc_randmt64_p acc_randmt64_t *
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_EXTERN(void, acc_srandmt64) (acc_randmt64_p, acc_uint64l_t);
kusano 7d535a
ACCLIB_EXTERN(acc_uint64l_t, acc_randmt64_r64) (acc_randmt64_p);
kusano 7d535a
#endif
kusano 7d535a
#define ACC_SPAWN_P_WAIT    0
kusano 7d535a
#define ACC_SPAWN_P_NOWAIT  1
kusano 7d535a
ACCLIB_EXTERN(int, acc_spawnv)  (int mode, const char* fn, const char* const * argv);
kusano 7d535a
ACCLIB_EXTERN(int, acc_spawnvp) (int mode, const char* fn, const char* const * argv);
kusano 7d535a
ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * argv, const char * const envp);
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACC_CXX_H)
kusano 7d535a
#  undef ACC_WANT_ACC_CXX_H
kusano 7d535a
#ifndef __ACC_CXX_H_INCLUDED
kusano 7d535a
#define __ACC_CXX_H_INCLUDED 1
kusano 7d535a
#if defined(__cplusplus)
kusano 7d535a
#if defined(ACC_CXX_NOTHROW)
kusano 7d535a
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul))
kusano 7d535a
#elif (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
kusano 7d535a
#elif (ACC_CC_HIGHC)
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER < 1100))
kusano 7d535a
#elif (ACC_CC_NDPC)
kusano 7d535a
#elif (ACC_CC_TURBOC)
kusano 7d535a
#elif (ACC_CC_WATCOMC && !defined(_CPPUNWIND))
kusano 7d535a
#elif (ACC_CC_ZORTECHC)
kusano 7d535a
#else
kusano 7d535a
#  define ACC_CXX_NOTHROW   throw()
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_CXX_NOTHROW)
kusano 7d535a
#  define ACC_CXX_NOTHROW
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ACC_CXX_DO_NEW)
kusano 7d535a
#elif (ACC_CC_NDPC || ACC_CC_PGI)
kusano 7d535a
#  define __ACC_CXX_DO_NEW          { return 0; }
kusano 7d535a
#elif ((ACC_CC_BORLANDC || ACC_CC_TURBOC) && ACC_ARCH_I086)
kusano 7d535a
#  define __ACC_CXX_DO_NEW          { return 0; }
kusano 7d535a
#else
kusano 7d535a
#  define __ACC_CXX_DO_NEW          ;
kusano 7d535a
#endif
kusano 7d535a
#if defined(__ACC_CXX_DO_DELETE)
kusano 7d535a
#elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
kusano 7d535a
#  define __ACC_CXX_DO_DELETE       { }
kusano 7d535a
#else
kusano 7d535a
#  define __ACC_CXX_DO_DELETE       ACC_CXX_NOTHROW { }
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
kusano 7d535a
#elif (ACC_CC_MSC && ACC_MM_HUGE)
kusano 7d535a
#  define ACC_CXX_DISABLE_NEW_DELETE private:
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER < 1100))
kusano 7d535a
#elif (ACC_CC_NDPC)
kusano 7d535a
#elif (ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
kusano 7d535a
#elif (ACC_CC_TURBOC)
kusano 7d535a
#elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1100))
kusano 7d535a
#else
kusano 7d535a
#  define __ACC_CXX_HAVE_ARRAY_NEW 1
kusano 7d535a
#endif
kusano 7d535a
#if (__ACC_CXX_HAVE_ARRAY_NEW)
kusano 7d535a
#  define __ACC_CXX_HAVE_PLACEMENT_NEW 1
kusano 7d535a
#endif
kusano 7d535a
#if (__ACC_CXX_HAVE_PLACEMENT_NEW)
kusano 7d535a
#  if (ACC_CC_GNUC >= 0x030000ul)
kusano 7d535a
#    define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
kusano 7d535a
#  elif (ACC_CC_INTELC)
kusano 7d535a
#    define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
kusano 7d535a
#  elif (ACC_CC_MSC && (_MSC_VER >= 1200))
kusano 7d535a
#    define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
kusano 7d535a
#  elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
kusano 7d535a
#    define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
kusano 7d535a
#  elif (ACC_CC_PGI)
kusano 7d535a
#    define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_CXX_DISABLE_NEW_DELETE)
kusano 7d535a
#elif defined(new) || defined(delete)
kusano 7d535a
#  define ACC_CXX_DISABLE_NEW_DELETE private:
kusano 7d535a
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025b00ul))
kusano 7d535a
#  define ACC_CXX_DISABLE_NEW_DELETE private:
kusano 7d535a
#elif  (ACC_CC_HIGHC)
kusano 7d535a
#  define ACC_CXX_DISABLE_NEW_DELETE private:
kusano 7d535a
#elif !defined(__ACC_CXX_HAVE_ARRAY_NEW)
kusano 7d535a
#  define ACC_CXX_DISABLE_NEW_DELETE \
kusano 7d535a
        protected: static void operator delete(void*) __ACC_CXX_DO_DELETE \
kusano 7d535a
        protected: static void* operator new(size_t) __ACC_CXX_DO_NEW \
kusano 7d535a
        private:
kusano 7d535a
#else
kusano 7d535a
#  define ACC_CXX_DISABLE_NEW_DELETE \
kusano 7d535a
        protected: static void operator delete(void*) __ACC_CXX_DO_DELETE \
kusano 7d535a
                   static void operator delete[](void*) __ACC_CXX_DO_DELETE \
kusano 7d535a
        private:   static void* operator new(size_t)  __ACC_CXX_DO_NEW \
kusano 7d535a
                   static void* operator new[](size_t) __ACC_CXX_DO_NEW
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_CXX_TRIGGER_FUNCTION)
kusano 7d535a
#else
kusano 7d535a
#  define ACC_CXX_TRIGGER_FUNCTION \
kusano 7d535a
        protected: virtual const void* acc_cxx_trigger_function() const; \
kusano 7d535a
        private:
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_CXX_TRIGGER_FUNCTION_IMPL)
kusano 7d535a
#else
kusano 7d535a
#  define ACC_CXX_TRIGGER_FUNCTION_IMPL(klass) \
kusano 7d535a
        const void* klass::acc_cxx_trigger_function() const { return 0; }
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACC_CHK_CH)
kusano 7d535a
#  undef ACC_WANT_ACC_CHK_CH
kusano 7d535a
#if !defined(ACCCHK_ASSERT)
kusano 7d535a
#  define ACCCHK_ASSERT(expr)   ACC_COMPILE_TIME_ASSERT_HEADER(expr)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACCCHK_ASSERT_SIGN_T)
kusano 7d535a
#  define ACCCHK_ASSERT_SIGN_T(type,relop) \
kusano 7d535a
        ACCCHK_ASSERT( (type) (-1)       relop  (type) 0 ) \
kusano 7d535a
        ACCCHK_ASSERT( (type) (~(type)0) relop  (type) 0 ) \
kusano 7d535a
        ACCCHK_ASSERT( (type) (~(type)0) ==     (type) (-1) )
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACCCHK_ASSERT_IS_SIGNED_T)
kusano 7d535a
#  define ACCCHK_ASSERT_IS_SIGNED_T(type)       ACCCHK_ASSERT_SIGN_T(type,<)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACCCHK_ASSERT_IS_UNSIGNED_T)
kusano 7d535a
#  if (ACC_BROKEN_INTEGRAL_PROMOTION)
kusano 7d535a
#    define ACCCHK_ASSERT_IS_UNSIGNED_T(type) \
kusano 7d535a
        ACCCHK_ASSERT( (type) (-1) > (type) 0 )
kusano 7d535a
#  else
kusano 7d535a
#    define ACCCHK_ASSERT_IS_UNSIGNED_T(type)   ACCCHK_ASSERT_SIGN_T(type,>)
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550) && (__BORLANDC__ < 0x0560))
kusano 7d535a
#  pragma option push -w-8055
kusano 7d535a
#elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0550))
kusano 7d535a
#  pragma option push -w-osh
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_0xffffffffL - ACC_UINT32_C(4294967294) != 1)
kusano 7d535a
#  error "preprocessor error 1"
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_0xffffffffL - ACC_UINT32_C(0xfffffffd) != 2)
kusano 7d535a
#  error "preprocessor error 2"
kusano 7d535a
#endif
kusano 7d535a
#define ACCCHK_VAL  1
kusano 7d535a
#define ACCCHK_TMP1 ACCCHK_VAL
kusano 7d535a
#undef ACCCHK_VAL
kusano 7d535a
#define ACCCHK_VAL  2
kusano 7d535a
#define ACCCHK_TMP2 ACCCHK_VAL
kusano 7d535a
#if (ACCCHK_TMP1 != 2)
kusano 7d535a
#  error "preprocessor error 3a"
kusano 7d535a
#endif
kusano 7d535a
#if (ACCCHK_TMP2 != 2)
kusano 7d535a
#  error "preprocessor error 3b"
kusano 7d535a
#endif
kusano 7d535a
#undef ACCCHK_VAL
kusano 7d535a
#if (ACCCHK_TMP2)
kusano 7d535a
#  error "preprocessor error 3c"
kusano 7d535a
#endif
kusano 7d535a
#if (ACCCHK_TMP2 + 0 != 0)
kusano 7d535a
#  error "preprocessor error 3d"
kusano 7d535a
#endif
kusano 7d535a
#undef ACCCHK_TMP1
kusano 7d535a
#undef ACCCHK_TMP2
kusano 7d535a
#if 0 || defined(ACCCHK_CFG_PEDANTIC)
kusano 7d535a
#  if (ACC_ARCH_MIPS) && defined(_MIPS_SZINT)
kusano 7d535a
    ACCCHK_ASSERT((_MIPS_SZINT) == 8 * sizeof(int))
kusano 7d535a
#  endif
kusano 7d535a
#  if (ACC_ARCH_MIPS) && defined(_MIPS_SZLONG)
kusano 7d535a
    ACCCHK_ASSERT((_MIPS_SZLONG) == 8 * sizeof(long))
kusano 7d535a
#  endif
kusano 7d535a
#  if (ACC_ARCH_MIPS) && defined(_MIPS_SZPTR)
kusano 7d535a
    ACCCHK_ASSERT((_MIPS_SZPTR) == 8 * sizeof(void *))
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(1 == 1)
kusano 7d535a
    ACCCHK_ASSERT(__ACC_MASK_GEN(1u,2) == 3)
kusano 7d535a
    ACCCHK_ASSERT(__ACC_MASK_GEN(1u,8) == 255)
kusano 7d535a
#if (SIZEOF_INT >= 2)
kusano 7d535a
    ACCCHK_ASSERT(__ACC_MASK_GEN(1,15) == 32767)
kusano 7d535a
    ACCCHK_ASSERT(__ACC_MASK_GEN(1u,16) == 0xffffU)
kusano 7d535a
#else
kusano 7d535a
    ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,16) == 0xffffUL)
kusano 7d535a
#endif
kusano 7d535a
#if (SIZEOF_INT >= 4)
kusano 7d535a
    ACCCHK_ASSERT(__ACC_MASK_GEN(1,31) == 2147483647)
kusano 7d535a
    ACCCHK_ASSERT(__ACC_MASK_GEN(1u,32) == 0xffffffffU)
kusano 7d535a
#endif
kusano 7d535a
#if (SIZEOF_LONG >= 4)
kusano 7d535a
    ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,32) == 0xffffffffUL)
kusano 7d535a
#endif
kusano 7d535a
#if (SIZEOF_LONG >= 8)
kusano 7d535a
    ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,64) == 0xffffffffffffffffUL)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_BROKEN_INTEGRAL_PROMOTION)
kusano 7d535a
    ACCCHK_ASSERT(__ACC_MASK_GEN(1u,SIZEOF_INT*8) == ~0u)
kusano 7d535a
    ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,SIZEOF_LONG*8) == ~0ul)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_BROKEN_SIGNED_RIGHT_SHIFT)
kusano 7d535a
    ACCCHK_ASSERT(((-1) >> 7) == -1)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(((1)  >> 7) == 0)
kusano 7d535a
    ACCCHK_ASSERT((~0l  & ~0)  == ~0l)
kusano 7d535a
    ACCCHK_ASSERT((~0l  & ~0u) == ~0u)
kusano 7d535a
    ACCCHK_ASSERT((~0ul & ~0)  == ~0ul)
kusano 7d535a
    ACCCHK_ASSERT((~0ul & ~0u) == ~0u)
kusano 7d535a
#if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
kusano 7d535a
#elif (SIZEOF_INT == 2)
kusano 7d535a
    ACCCHK_ASSERT((~0l  & ~0u) == 0xffffU)
kusano 7d535a
    ACCCHK_ASSERT((~0ul & ~0u) == 0xffffU)
kusano 7d535a
#elif (SIZEOF_INT == 4)
kusano 7d535a
    ACCCHK_ASSERT((~0l  & ~0u) == 0xffffffffU)
kusano 7d535a
    ACCCHK_ASSERT((~0ul & ~0u) == 0xffffffffU)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(signed char)
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned char)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(signed char) == sizeof(char))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(unsigned char) == sizeof(char))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(char) == 1)
kusano 7d535a
#if (ACC_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
kusano 7d535a
#else
kusano 7d535a
    ACCCHK_ASSERT(sizeof(char) == sizeof((char)0))
kusano 7d535a
#endif
kusano 7d535a
#if defined(__cplusplus)
kusano 7d535a
    ACCCHK_ASSERT(sizeof('\0') == sizeof(char))
kusano 7d535a
#else
kusano 7d535a
#  if (ACC_CC_DMC)
kusano 7d535a
#  else
kusano 7d535a
    ACCCHK_ASSERT(sizeof('\0') == sizeof(int))
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(__acc_alignof)
kusano 7d535a
    ACCCHK_ASSERT(__acc_alignof(char) == 1)
kusano 7d535a
    ACCCHK_ASSERT(__acc_alignof(signed char) == 1)
kusano 7d535a
    ACCCHK_ASSERT(__acc_alignof(unsigned char) == 1)
kusano 7d535a
#if defined(acc_int16e_t)
kusano 7d535a
    ACCCHK_ASSERT(__acc_alignof(acc_int16e_t) >= 1)
kusano 7d535a
    ACCCHK_ASSERT(__acc_alignof(acc_int16e_t) <= 2)
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int32e_t)
kusano 7d535a
    ACCCHK_ASSERT(__acc_alignof(acc_int32e_t) >= 1)
kusano 7d535a
    ACCCHK_ASSERT(__acc_alignof(acc_int32e_t) <= 4)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(short)
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned short)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(short) == sizeof(unsigned short))
kusano 7d535a
#if !defined(ACC_ABI_I8LP16)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(short) >= 2)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(sizeof(short) >= sizeof(char))
kusano 7d535a
#if (ACC_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
kusano 7d535a
#else
kusano 7d535a
    ACCCHK_ASSERT(sizeof(short) == sizeof((short)0))
kusano 7d535a
#endif
kusano 7d535a
#if (SIZEOF_SHORT > 0)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(short) == SIZEOF_SHORT)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(int)
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned int)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(int) == sizeof(unsigned int))
kusano 7d535a
#if !defined(ACC_ABI_I8LP16)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(int) >= 2)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(sizeof(int) >= sizeof(short))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(int) == sizeof(0))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(int) == sizeof((int)0))
kusano 7d535a
#if (SIZEOF_INT > 0)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(int) == SIZEOF_INT)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(sizeof(0) == sizeof(int))
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(long)
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned long)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(long) == sizeof(unsigned long))
kusano 7d535a
#if !defined(ACC_ABI_I8LP16)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(long) >= 4)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(sizeof(long) >= sizeof(int))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(long) == sizeof(0L))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(long) == sizeof((long)0))
kusano 7d535a
#if (SIZEOF_LONG > 0)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(long) == SIZEOF_LONG)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(sizeof(0L) == sizeof(long))
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(size_t)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(size_t) >= sizeof(int))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(size_t) == sizeof(sizeof(0)))
kusano 7d535a
#if (SIZEOF_SIZE_T > 0)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(size_t) == SIZEOF_SIZE_T)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(ptrdiff_t)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(int))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(size_t))
kusano 7d535a
#if !defined(ACC_BROKEN_SIZEOF)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof((char*)0 - (char*)0))
kusano 7d535a
# if (ACC_HAVE_MM_HUGE_PTR)
kusano 7d535a
    ACCCHK_ASSERT(4 == sizeof((char __huge*)0 - (char __huge*)0))
kusano 7d535a
# endif
kusano 7d535a
#endif
kusano 7d535a
#if (SIZEOF_PTRDIFF_T > 0)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) == SIZEOF_PTRDIFF_T)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void*) >= sizeof(char*))
kusano 7d535a
#if (SIZEOF_VOID_P > 0)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void*) == SIZEOF_VOID_P)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(char*) == SIZEOF_VOID_P)
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_HAVE_MM_HUGE_PTR)
kusano 7d535a
    ACCCHK_ASSERT(4 == sizeof(void __huge*))
kusano 7d535a
    ACCCHK_ASSERT(4 == sizeof(char __huge*))
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_ABI_I8LP16)
kusano 7d535a
    ACCCHK_ASSERT((((1u  <<  7) + 1) >>  7) == 1)
kusano 7d535a
    ACCCHK_ASSERT((((1ul << 15) + 1) >> 15) == 1)
kusano 7d535a
#else
kusano 7d535a
    ACCCHK_ASSERT((((1u  << 15) + 1) >> 15) == 1)
kusano 7d535a
    ACCCHK_ASSERT((((1ul << 31) + 1) >> 31) == 1)
kusano 7d535a
#endif
kusano 7d535a
#if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
kusano 7d535a
#elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
kusano 7d535a
#else
kusano 7d535a
    ACCCHK_ASSERT((1   << (8*SIZEOF_INT-1)) < 0)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT((1u  << (8*SIZEOF_INT-1)) > 0)
kusano 7d535a
#if 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
kusano 7d535a
#else
kusano 7d535a
    ACCCHK_ASSERT((1l  << (8*SIZEOF_LONG-1)) < 0)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT((1ul << (8*SIZEOF_LONG-1)) > 0)
kusano 7d535a
#if defined(acc_int16e_t)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int16e_t) == 2)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int16e_t) == SIZEOF_ACC_INT16E_T)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_uint16e_t) == 2)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int16e_t) == sizeof(acc_uint16e_t))
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(acc_int16e_t)
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint16e_t)
kusano 7d535a
#if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
kusano 7d535a
#else
kusano 7d535a
    ACCCHK_ASSERT(((acc_uint16e_t)(~(acc_uint16e_t)0ul) >> 15) == 1)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT( (acc_int16e_t) (1 + ~(acc_int16e_t)0) == 0)
kusano 7d535a
#if defined(ACCCHK_CFG_PEDANTIC)
kusano 7d535a
    ACCCHK_ASSERT( (acc_uint16e_t)(1 + ~(acc_uint16e_t)0) == 0)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int32e_t)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32e_t) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32e_t) == SIZEOF_ACC_INT32E_T)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_uint32e_t) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32e_t) == sizeof(acc_uint32e_t))
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(acc_int32e_t)
kusano 7d535a
    ACCCHK_ASSERT(((( (acc_int32e_t)1 << 30) + 1) >> 30) == 1)
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32e_t)
kusano 7d535a
    ACCCHK_ASSERT(((( (acc_uint32e_t)1 << 31) + 1) >> 31) == 1)
kusano 7d535a
    ACCCHK_ASSERT(((acc_uint32e_t)(~(acc_uint32e_t)0ul) >> 31) == 1)
kusano 7d535a
    ACCCHK_ASSERT( (acc_int32e_t) (1 + ~(acc_int32e_t)0) == 0)
kusano 7d535a
#if defined(ACCCHK_CFG_PEDANTIC)
kusano 7d535a
    ACCCHK_ASSERT( (acc_uint32e_t)(1 + ~(acc_uint32e_t)0) == 0)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int32e_t)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32l_t) >= sizeof(acc_int32e_t))
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32l_t) >= 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32l_t) == SIZEOF_ACC_INT32L_T)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_uint32l_t) >= 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32l_t) == sizeof(acc_uint32l_t))
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(acc_int32l_t)
kusano 7d535a
    ACCCHK_ASSERT(((( (acc_int32l_t)1 << 30) + 1) >> 30) == 1)
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32l_t)
kusano 7d535a
    ACCCHK_ASSERT(((( (acc_uint32l_t)1 << 31) + 1) >> 31) == 1)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(int))
kusano 7d535a
#if defined(acc_int32e_t)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32e_t))
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32l_t))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32f_t) >= 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32l_t))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32f_t) == SIZEOF_ACC_INT32F_T)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_uint32f_t) >= 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_uint32f_t) >= sizeof(acc_uint32l_t))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int32f_t) == sizeof(acc_uint32f_t))
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(acc_int32f_t)
kusano 7d535a
    ACCCHK_ASSERT(((( (acc_int32f_t)1 << 30) + 1) >> 30) == 1)
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32f_t)
kusano 7d535a
    ACCCHK_ASSERT(((( (acc_uint32f_t)1 << 31) + 1) >> 31) == 1)
kusano 7d535a
#if defined(acc_int64e_t)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int64e_t) == 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int64e_t) == SIZEOF_ACC_INT64E_T)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_uint64e_t) == 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int64e_t) == sizeof(acc_uint64e_t))
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(acc_int64e_t)
kusano 7d535a
#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
kusano 7d535a
#else
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64e_t)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
#if defined(acc_int64e_t)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int64l_t) >= sizeof(acc_int64e_t))
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int64l_t) >= 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int64l_t) == SIZEOF_ACC_INT64L_T)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_uint64l_t) >= 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_int64l_t) == sizeof(acc_uint64l_t))
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(acc_int64l_t)
kusano 7d535a
    ACCCHK_ASSERT(((( (acc_int64l_t)1 << 62) + 1) >> 62) == 1)
kusano 7d535a
    ACCCHK_ASSERT(((( ACC_INT64_C(1) << 62) + 1) >> 62) == 1)
kusano 7d535a
#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
kusano 7d535a
#else
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64l_t)
kusano 7d535a
    ACCCHK_ASSERT(ACC_UINT64_C(18446744073709551615)     > 0)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(((( (acc_uint64l_t)1 << 63) + 1) >> 63) == 1)
kusano 7d535a
    ACCCHK_ASSERT(((( ACC_UINT64_C(1) << 63) + 1) >> 63) == 1)
kusano 7d535a
#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020600ul))
kusano 7d535a
    ACCCHK_ASSERT(ACC_INT64_C(9223372036854775807)       > ACC_INT64_C(0))
kusano 7d535a
#else
kusano 7d535a
    ACCCHK_ASSERT(ACC_INT64_C(9223372036854775807)       > 0)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(ACC_INT64_C(-9223372036854775807) - 1  < 0)
kusano 7d535a
    ACCCHK_ASSERT( ACC_INT64_C(9223372036854775807) % ACC_INT32_C(2147483629)  == 721)
kusano 7d535a
    ACCCHK_ASSERT( ACC_INT64_C(9223372036854775807) % ACC_INT32_C(2147483647)  == 1)
kusano 7d535a
    ACCCHK_ASSERT(ACC_UINT64_C(9223372036854775807) % ACC_UINT32_C(2147483629) == 721)
kusano 7d535a
    ACCCHK_ASSERT(ACC_UINT64_C(9223372036854775807) % ACC_UINT32_C(2147483647) == 1)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__ACC_INTPTR_T_IS_POINTER)
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(acc_intptr_t)
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uintptr_t)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_intptr_t) >= sizeof(void *))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_intptr_t) == SIZEOF_ACC_INTPTR_T)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(acc_uintptr_t))
kusano 7d535a
#if defined(acc_word_t)
kusano 7d535a
    ACCCHK_ASSERT(ACC_WORDSIZE == SIZEOF_ACC_WORD_T)
kusano 7d535a
    ACCCHK_ASSERT_IS_UNSIGNED_T(acc_word_t)
kusano 7d535a
    ACCCHK_ASSERT_IS_SIGNED_T(acc_sword_t)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_word_t) == SIZEOF_ACC_WORD_T)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_word_t) == sizeof(acc_sword_t))
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_INT16_C)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ACC_INT16_C(0)) >= 2)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ACC_UINT16_C(0)) >= 2)
kusano 7d535a
    ACCCHK_ASSERT((ACC_UINT16_C(0xffff) >> 15) == 1)
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_INT32_C)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ACC_INT32_C(0)) >= 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ACC_UINT32_C(0)) >= 4)
kusano 7d535a
    ACCCHK_ASSERT((ACC_UINT32_C(0xffffffff) >> 31) == 1)
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_INT64_C)
kusano 7d535a
#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0560))
kusano 7d535a
#else
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ACC_INT64_C(0)) >= 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ACC_UINT64_C(0)) >= 8)
kusano 7d535a
#endif
kusano 7d535a
    ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) >> 63) == 1)
kusano 7d535a
    ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0)  == ACC_UINT64_C(0xffffffffffffffff))
kusano 7d535a
    ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0l) == ACC_UINT64_C(0xffffffffffffffff))
kusano 7d535a
#if (SIZEOF_INT == 4)
kusano 7d535a
# if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
kusano 7d535a
# else
kusano 7d535a
    ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0u) == 0xffffffffu)
kusano 7d535a
# endif
kusano 7d535a
#endif
kusano 7d535a
#if (SIZEOF_LONG == 4)
kusano 7d535a
# if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
kusano 7d535a
# else
kusano 7d535a
    ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0ul) == 0xfffffffful)
kusano 7d535a
# endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void*) == 2)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) == 2)
kusano 7d535a
#elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void*) == 4)
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_COMPACT)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void (*)(void)) == 2)
kusano 7d535a
#elif (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void (*)(void)) == 4)
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ABI_ILP32)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(int) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(long) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void*) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ABI_ILP64)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(int) == 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(long) == 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void*) == 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ABI_IP32L64)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(int) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(long) == 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void*) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ABI_LLP64)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(int) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(long) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void*) == 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ABI_LP32)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(int) == 2)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(long) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void*) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ABI_LP64)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(int) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(long) == 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void*) == 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ARCH_I086)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(size_t) == 2)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
kusano 7d535a
#elif (ACC_ARCH_I386 || ACC_ARCH_M68K)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(size_t) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_WIN32)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(size_t) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) == 4)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void (*)(void)) == 4)
kusano 7d535a
#elif (ACC_OS_WIN64)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(size_t) == 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(ptrdiff_t) == 8)
kusano 7d535a
    ACCCHK_ASSERT(sizeof(void (*)(void)) == 8)
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_CC_NDPC)
kusano 7d535a
#elif (SIZEOF_INT > 1)
kusano 7d535a
    ACCCHK_ASSERT( (int) ((unsigned char) ((signed char) -1)) == 255)
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_CC_KEILC)
kusano 7d535a
#elif (ACC_CC_NDPC)
kusano 7d535a
#elif 1 && (ACC_CC_LCC || ACC_CC_LCCWIN32) && !defined(ACCCHK_CFG_PEDANTIC)
kusano 7d535a
#elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
kusano 7d535a
#elif !defined(ACC_BROKEN_INTEGRAL_PROMOTION) && (SIZEOF_INT > 1)
kusano 7d535a
    ACCCHK_ASSERT( (((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0)
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0560))
kusano 7d535a
#  pragma option pop
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_UA)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_UA
kusano 7d535a
#define __ACCLIB_UA_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(unsigned, acc_ua_get_be16) (const acc_hvoid_p p)
kusano 7d535a
{
kusano 7d535a
#if defined(ACC_UA_GET_BE16)
kusano 7d535a
    return ACC_UA_GET_BE16(p);
kusano 7d535a
#else
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) p;
kusano 7d535a
    return ((unsigned)b[1]) | ((unsigned)b[0] << 8);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_be24) (const acc_hvoid_p p)
kusano 7d535a
{
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) p;
kusano 7d535a
    return ((acc_uint32l_t)b[2]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[0] << 16);
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_be32) (const acc_hvoid_p p)
kusano 7d535a
{
kusano 7d535a
#if defined(ACC_UA_GET_BE32)
kusano 7d535a
    return ACC_UA_GET_BE32(p);
kusano 7d535a
#else
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) p;
kusano 7d535a
    return ((acc_uint32l_t)b[3]) | ((acc_uint32l_t)b[2] << 8) | ((acc_uint32l_t)b[1] << 16) | ((acc_uint32l_t)b[0] << 24);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(void, acc_ua_set_be16) (acc_hvoid_p p, unsigned v)
kusano 7d535a
{
kusano 7d535a
#if defined(ACC_UA_SET_BE16)
kusano 7d535a
    ACC_UA_SET_BE16(p, v);
kusano 7d535a
#else
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) p;
kusano 7d535a
    b[1] = (unsigned char) ((v >>  0) & 0xff);
kusano 7d535a
    b[0] = (unsigned char) ((v >>  8) & 0xff);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(void, acc_ua_set_be24) (acc_hvoid_p p, acc_uint32l_t v)
kusano 7d535a
{
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) p;
kusano 7d535a
    b[2] = (unsigned char) ((v >>  0) & 0xff);
kusano 7d535a
    b[1] = (unsigned char) ((v >>  8) & 0xff);
kusano 7d535a
    b[0] = (unsigned char) ((v >> 16) & 0xff);
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(void, acc_ua_set_be32) (acc_hvoid_p p, acc_uint32l_t v)
kusano 7d535a
{
kusano 7d535a
#if defined(ACC_UA_SET_BE32)
kusano 7d535a
    ACC_UA_SET_BE32(p, v);
kusano 7d535a
#else
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) p;
kusano 7d535a
    b[3] = (unsigned char) ((v >>  0) & 0xff);
kusano 7d535a
    b[2] = (unsigned char) ((v >>  8) & 0xff);
kusano 7d535a
    b[1] = (unsigned char) ((v >> 16) & 0xff);
kusano 7d535a
    b[0] = (unsigned char) ((v >> 24) & 0xff);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(unsigned, acc_ua_get_le16) (const acc_hvoid_p p)
kusano 7d535a
{
kusano 7d535a
#if defined(ACC_UA_GET_LE16)
kusano 7d535a
    return ACC_UA_GET_LE16(p);
kusano 7d535a
#else
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) p;
kusano 7d535a
    return ((unsigned)b[0]) | ((unsigned)b[1] << 8);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le24) (const acc_hvoid_p p)
kusano 7d535a
{
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) p;
kusano 7d535a
    return ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16);
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le32) (const acc_hvoid_p p)
kusano 7d535a
{
kusano 7d535a
#if defined(ACC_UA_GET_LE32)
kusano 7d535a
    return ACC_UA_GET_LE32(p);
kusano 7d535a
#else
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) p;
kusano 7d535a
    return ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16) | ((acc_uint32l_t)b[3] << 24);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(void, acc_ua_set_le16) (acc_hvoid_p p, unsigned v)
kusano 7d535a
{
kusano 7d535a
#if defined(ACC_UA_SET_LE16)
kusano 7d535a
    ACC_UA_SET_LE16(p, v);
kusano 7d535a
#else
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) p;
kusano 7d535a
    b[0] = (unsigned char) ((v >>  0) & 0xff);
kusano 7d535a
    b[1] = (unsigned char) ((v >>  8) & 0xff);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(void, acc_ua_set_le24) (acc_hvoid_p p, acc_uint32l_t v)
kusano 7d535a
{
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) p;
kusano 7d535a
    b[0] = (unsigned char) ((v >>  0) & 0xff);
kusano 7d535a
    b[1] = (unsigned char) ((v >>  8) & 0xff);
kusano 7d535a
    b[2] = (unsigned char) ((v >> 16) & 0xff);
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(void, acc_ua_set_le32) (acc_hvoid_p p, acc_uint32l_t v)
kusano 7d535a
{
kusano 7d535a
#if defined(ACC_UA_SET_LE32)
kusano 7d535a
    ACC_UA_SET_LE32(p, v);
kusano 7d535a
#else
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) p;
kusano 7d535a
    b[0] = (unsigned char) ((v >>  0) & 0xff);
kusano 7d535a
    b[1] = (unsigned char) ((v >>  8) & 0xff);
kusano 7d535a
    b[2] = (unsigned char) ((v >> 16) & 0xff);
kusano 7d535a
    b[3] = (unsigned char) ((v >> 24) & 0xff);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
ACCLIB_PUBLIC(acc_uint64l_t, acc_ua_get_be64) (const acc_hvoid_p p)
kusano 7d535a
{
kusano 7d535a
#if defined(ACC_UA_GET_BE64)
kusano 7d535a
    return ACC_UA_GET_BE64(p);
kusano 7d535a
#elif defined(ACC_UA_GET_BE32)
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) p;
kusano 7d535a
    acc_uint32e_t v0, v1;
kusano 7d535a
    v1 = ACC_UA_GET_BE32(b + 0);
kusano 7d535a
    v0 = ACC_UA_GET_BE32(b + 4);
kusano 7d535a
    return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
kusano 7d535a
#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) p;
kusano 7d535a
    return ((acc_uint64l_t)b[7]) | ((acc_uint64l_t)b[6] << 8) | ((acc_uint64l_t)b[5] << 16) | ((acc_uint64l_t)b[4] << 24) | ((acc_uint64l_t)b[3] << 32) | ((acc_uint64l_t)b[2] << 40) | ((acc_uint64l_t)b[1] << 48) | ((acc_uint64l_t)b[0] << 56);
kusano 7d535a
#else
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) p;
kusano 7d535a
    acc_uint32l_t v0, v1;
kusano 7d535a
    v1 = ((acc_uint32l_t)b[3]) | ((acc_uint32l_t)b[2] << 8) | ((acc_uint32l_t)b[1] << 16) | ((acc_uint32l_t)b[0] << 24);
kusano 7d535a
    b += 4;
kusano 7d535a
    v0 = ((acc_uint32l_t)b[3]) | ((acc_uint32l_t)b[2] << 8) | ((acc_uint32l_t)b[1] << 16) | ((acc_uint32l_t)b[0] << 24);
kusano 7d535a
    return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(void, acc_ua_set_be64) (acc_hvoid_p p, acc_uint64l_t v)
kusano 7d535a
{
kusano 7d535a
#if defined(ACC_UA_SET_BE64)
kusano 7d535a
    ACC_UA_SET_BE64(p, v);
kusano 7d535a
#elif defined(ACC_UA_SET_BE32)
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) p;
kusano 7d535a
    ACC_UA_SET_BE32(b + 4, (v >>  0));
kusano 7d535a
    ACC_UA_SET_BE32(b + 0, (v >> 32));
kusano 7d535a
#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) p;
kusano 7d535a
    b[7] = (unsigned char) ((v >>  0) & 0xff);
kusano 7d535a
    b[6] = (unsigned char) ((v >>  8) & 0xff);
kusano 7d535a
    b[5] = (unsigned char) ((v >> 16) & 0xff);
kusano 7d535a
    b[4] = (unsigned char) ((v >> 24) & 0xff);
kusano 7d535a
    b[3] = (unsigned char) ((v >> 32) & 0xff);
kusano 7d535a
    b[2] = (unsigned char) ((v >> 40) & 0xff);
kusano 7d535a
    b[1] = (unsigned char) ((v >> 48) & 0xff);
kusano 7d535a
    b[0] = (unsigned char) ((v >> 56) & 0xff);
kusano 7d535a
#else
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) p;
kusano 7d535a
    acc_uint32l_t x;
kusano 7d535a
    x = (acc_uint32l_t) (v >>  0);
kusano 7d535a
    b[7] = (unsigned char) ((x >>  0) & 0xff);
kusano 7d535a
    b[6] = (unsigned char) ((x >>  8) & 0xff);
kusano 7d535a
    b[5] = (unsigned char) ((x >> 16) & 0xff);
kusano 7d535a
    b[4] = (unsigned char) ((x >> 24) & 0xff);
kusano 7d535a
    x = (acc_uint32l_t) (v >> 32);
kusano 7d535a
    b[3] = (unsigned char) ((x >>  0) & 0xff);
kusano 7d535a
    b[2] = (unsigned char) ((x >>  8) & 0xff);
kusano 7d535a
    b[1] = (unsigned char) ((x >> 16) & 0xff);
kusano 7d535a
    b[0] = (unsigned char) ((x >> 24) & 0xff);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
ACCLIB_PUBLIC(acc_uint64l_t, acc_ua_get_le64) (const acc_hvoid_p p)
kusano 7d535a
{
kusano 7d535a
#if defined(ACC_UA_GET_LE64)
kusano 7d535a
    return ACC_UA_GET_LE64(p);
kusano 7d535a
#elif defined(ACC_UA_GET_LE32)
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) p;
kusano 7d535a
    acc_uint32e_t v0, v1;
kusano 7d535a
    v0 = ACC_UA_GET_LE32(b + 0);
kusano 7d535a
    v1 = ACC_UA_GET_LE32(b + 4);
kusano 7d535a
    return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
kusano 7d535a
#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) p;
kusano 7d535a
    return ((acc_uint64l_t)b[0]) | ((acc_uint64l_t)b[1] << 8) | ((acc_uint64l_t)b[2] << 16) | ((acc_uint64l_t)b[3] << 24) | ((acc_uint64l_t)b[4] << 32) | ((acc_uint64l_t)b[5] << 40) | ((acc_uint64l_t)b[6] << 48) | ((acc_uint64l_t)b[7] << 56);
kusano 7d535a
#else
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) p;
kusano 7d535a
    acc_uint32l_t v0, v1;
kusano 7d535a
    v0 = ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16) | ((acc_uint32l_t)b[3] << 24);
kusano 7d535a
    b += 4;
kusano 7d535a
    v1 = ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16) | ((acc_uint32l_t)b[3] << 24);
kusano 7d535a
    return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(void, acc_ua_set_le64) (acc_hvoid_p p, acc_uint64l_t v)
kusano 7d535a
{
kusano 7d535a
#if defined(ACC_UA_SET_LE64)
kusano 7d535a
    ACC_UA_SET_LE64(p, v);
kusano 7d535a
#elif defined(ACC_UA_SET_LE32)
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) p;
kusano 7d535a
    ACC_UA_SET_LE32(b + 0, (v >>  0));
kusano 7d535a
    ACC_UA_SET_LE32(b + 4, (v >> 32));
kusano 7d535a
#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) p;
kusano 7d535a
    b[0] = (unsigned char) ((v >>  0) & 0xff);
kusano 7d535a
    b[1] = (unsigned char) ((v >>  8) & 0xff);
kusano 7d535a
    b[2] = (unsigned char) ((v >> 16) & 0xff);
kusano 7d535a
    b[3] = (unsigned char) ((v >> 24) & 0xff);
kusano 7d535a
    b[4] = (unsigned char) ((v >> 32) & 0xff);
kusano 7d535a
    b[5] = (unsigned char) ((v >> 40) & 0xff);
kusano 7d535a
    b[6] = (unsigned char) ((v >> 48) & 0xff);
kusano 7d535a
    b[7] = (unsigned char) ((v >> 56) & 0xff);
kusano 7d535a
#else
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) p;
kusano 7d535a
    acc_uint32l_t x;
kusano 7d535a
    x = (acc_uint32l_t) (v >>  0);
kusano 7d535a
    b[0] = (unsigned char) ((x >>  0) & 0xff);
kusano 7d535a
    b[1] = (unsigned char) ((x >>  8) & 0xff);
kusano 7d535a
    b[2] = (unsigned char) ((x >> 16) & 0xff);
kusano 7d535a
    b[3] = (unsigned char) ((x >> 24) & 0xff);
kusano 7d535a
    x = (acc_uint32l_t) (v >> 32);
kusano 7d535a
    b[4] = (unsigned char) ((x >>  0) & 0xff);
kusano 7d535a
    b[5] = (unsigned char) ((x >>  8) & 0xff);
kusano 7d535a
    b[6] = (unsigned char) ((x >> 16) & 0xff);
kusano 7d535a
    b[7] = (unsigned char) ((x >> 24) & 0xff);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_VGET)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_VGET
kusano 7d535a
#define __ACCLIB_VGET_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)                r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACCLIB_PUBLIC_NOINLINE)
kusano 7d535a
#  if !defined(__acc_noinline)
kusano 7d535a
#    define ACCLIB_PUBLIC_NOINLINE(r,f)     r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#  elif (ACC_CC_GNUC >= 0x030400ul) || (ACC_CC_LLVM)
kusano 7d535a
#    define ACCLIB_PUBLIC_NOINLINE(r,f)     __acc_noinline __attribute__((__used__)) r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#  else
kusano 7d535a
#    define ACCLIB_PUBLIC_NOINLINE(r,f)     __acc_noinline r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_CC_GNUC >= 0x030400ul) || (ACC_CC_LLVM)
kusano 7d535a
extern void* volatile __acc_vget_ptr;
kusano 7d535a
void* volatile __attribute__((__used__)) __acc_vget_ptr = (void *) 0;
kusano 7d535a
#else
kusano 7d535a
extern void* volatile __acc_vget_ptr;
kusano 7d535a
void* volatile __acc_vget_ptr = (void *) 0;
kusano 7d535a
#endif
kusano 7d535a
#ifndef __ACCLIB_VGET_BODY
kusano 7d535a
#define __ACCLIB_VGET_BODY(T) \
kusano 7d535a
    if __acc_unlikely(__acc_vget_ptr) { \
kusano 7d535a
        * (T *) __acc_vget_ptr = v; \
kusano 7d535a
        * (int *) __acc_vget_ptr = expr; \
kusano 7d535a
        v = * (T *) __acc_vget_ptr; \
kusano 7d535a
    } \
kusano 7d535a
    return v;
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(short, acc_vget_short) (short v, int expr)
kusano 7d535a
{
kusano 7d535a
    __ACCLIB_VGET_BODY(short)
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(int, acc_vget_int) (int v, int expr)
kusano 7d535a
{
kusano 7d535a
    __ACCLIB_VGET_BODY(int)
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(long, acc_vget_long) (long v, int expr)
kusano 7d535a
{
kusano 7d535a
    __ACCLIB_VGET_BODY(long)
kusano 7d535a
}
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(acc_int64l_t, acc_vget_acc_int64l_t) (acc_int64l_t v, int expr)
kusano 7d535a
{
kusano 7d535a
    __ACCLIB_VGET_BODY(acc_int64l_t)
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(acc_hsize_t, acc_vget_acc_hsize_t) (acc_hsize_t v, int expr)
kusano 7d535a
{
kusano 7d535a
    __ACCLIB_VGET_BODY(acc_hsize_t)
kusano 7d535a
}
kusano 7d535a
#if !defined(ACC_CFG_NO_FLOAT)
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(float, acc_vget_float) (float v, int expr)
kusano 7d535a
{
kusano 7d535a
    __ACCLIB_VGET_BODY(float)
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACC_CFG_NO_DOUBLE)
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(double, acc_vget_double) (double v, int expr)
kusano 7d535a
{
kusano 7d535a
    __ACCLIB_VGET_BODY(double)
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(acc_hvoid_p, acc_vget_acc_hvoid_p) (acc_hvoid_p v, int expr)
kusano 7d535a
{
kusano 7d535a
    __ACCLIB_VGET_BODY(acc_hvoid_p)
kusano 7d535a
}
kusano 7d535a
#if (ACC_ARCH_I086 && ACC_CC_TURBOC && (__TURBOC__ == 0x0295)) && !defined(__cplusplus)
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoid_p vv, int expr)
kusano 7d535a
{
kusano 7d535a
    acc_hvoid_p v = (acc_hvoid_p) vv;
kusano 7d535a
    __ACCLIB_VGET_BODY(acc_hvoid_p)
kusano 7d535a
}
kusano 7d535a
#else
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(const acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoid_p v, int expr)
kusano 7d535a
{
kusano 7d535a
    __ACCLIB_VGET_BODY(const acc_hvoid_p)
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_HMEMCPY)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_HMEMCPY
kusano 7d535a
#define __ACCLIB_HMEMCPY_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(int, acc_hmemcmp) (const acc_hvoid_p s1, const acc_hvoid_p s2, acc_hsize_t len)
kusano 7d535a
{
kusano 7d535a
#if (ACC_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMCMP)
kusano 7d535a
    const acc_hbyte_p p1 = (const acc_hbyte_p) s1;
kusano 7d535a
    const acc_hbyte_p p2 = (const acc_hbyte_p) s2;
kusano 7d535a
    if __acc_likely(len > 0) do
kusano 7d535a
    {
kusano 7d535a
        int d = *p1 - *p2;
kusano 7d535a
        if (d != 0)
kusano 7d535a
            return d;
kusano 7d535a
        p1++; p2++;
kusano 7d535a
    } while __acc_likely(--len > 0);
kusano 7d535a
    return 0;
kusano 7d535a
#else
kusano 7d535a
    return memcmp(s1, s2, len);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemcpy) (acc_hvoid_p dest, const acc_hvoid_p src, acc_hsize_t len)
kusano 7d535a
{
kusano 7d535a
#if (ACC_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMCPY)
kusano 7d535a
    acc_hbyte_p p1 = (acc_hbyte_p) dest;
kusano 7d535a
    const acc_hbyte_p p2 = (const acc_hbyte_p) src;
kusano 7d535a
    if (!(len > 0) || p1 == p2)
kusano 7d535a
        return dest;
kusano 7d535a
    do
kusano 7d535a
        *p1++ = *p2++;
kusano 7d535a
    while __acc_likely(--len > 0);
kusano 7d535a
    return dest;
kusano 7d535a
#else
kusano 7d535a
    return memcpy(dest, src, len);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemmove) (acc_hvoid_p dest, const acc_hvoid_p src, acc_hsize_t len)
kusano 7d535a
{
kusano 7d535a
#if (ACC_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMMOVE)
kusano 7d535a
    acc_hbyte_p p1 = (acc_hbyte_p) dest;
kusano 7d535a
    const acc_hbyte_p p2 = (const acc_hbyte_p) src;
kusano 7d535a
    if (!(len > 0) || p1 == p2)
kusano 7d535a
        return dest;
kusano 7d535a
    if (p1 < p2)
kusano 7d535a
    {
kusano 7d535a
        do
kusano 7d535a
            *p1++ = *p2++;
kusano 7d535a
        while __acc_likely(--len > 0);
kusano 7d535a
    }
kusano 7d535a
    else
kusano 7d535a
    {
kusano 7d535a
        p1 += len;
kusano 7d535a
        p2 += len;
kusano 7d535a
        do
kusano 7d535a
            *--p1 = *--p2;
kusano 7d535a
        while __acc_likely(--len > 0);
kusano 7d535a
    }
kusano 7d535a
    return dest;
kusano 7d535a
#else
kusano 7d535a
    return memmove(dest, src, len);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemset) (acc_hvoid_p s, int c, acc_hsize_t len)
kusano 7d535a
{
kusano 7d535a
#if (ACC_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMSET)
kusano 7d535a
    acc_hbyte_p p = (acc_hbyte_p) s;
kusano 7d535a
    if __acc_likely(len > 0) do
kusano 7d535a
        *p++ = (unsigned char) c;
kusano 7d535a
    while __acc_likely(--len > 0);
kusano 7d535a
    return s;
kusano 7d535a
#else
kusano 7d535a
    return memset(s, c, len);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_RAND)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_RAND
kusano 7d535a
#define __ACCLIB_RAND_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(void, acc_srand31) (acc_rand31_p r, acc_uint32l_t seed)
kusano 7d535a
{
kusano 7d535a
    r->seed = seed & ACC_UINT32_C(0xffffffff);
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32l_t, acc_rand31) (acc_rand31_p r)
kusano 7d535a
{
kusano 7d535a
    r->seed = r->seed * ACC_UINT32_C(1103515245) + 12345;
kusano 7d535a
    r->seed &= ACC_UINT32_C(0x7fffffff);
kusano 7d535a
    return r->seed;
kusano 7d535a
}
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
ACCLIB_PUBLIC(void, acc_srand48) (acc_rand48_p r, acc_uint32l_t seed)
kusano 7d535a
{
kusano 7d535a
    r->seed = seed & ACC_UINT32_C(0xffffffff);
kusano 7d535a
    r->seed <<= 16; r->seed |= 0x330e;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32l_t, acc_rand48) (acc_rand48_p r)
kusano 7d535a
{
kusano 7d535a
    r->seed = r->seed * ACC_UINT64_C(25214903917) + 11;
kusano 7d535a
    r->seed &= ACC_UINT64_C(0xffffffffffff);
kusano 7d535a
    return (acc_uint32l_t) (r->seed >> 17);
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32l_t, acc_rand48_r32) (acc_rand48_p r)
kusano 7d535a
{
kusano 7d535a
    r->seed = r->seed * ACC_UINT64_C(25214903917) + 11;
kusano 7d535a
    r->seed &= ACC_UINT64_C(0xffffffffffff);
kusano 7d535a
    return (acc_uint32l_t) (r->seed >> 16);
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
ACCLIB_PUBLIC(void, acc_srand64) (acc_rand64_p r, acc_uint64l_t seed)
kusano 7d535a
{
kusano 7d535a
    r->seed = seed & ACC_UINT64_C(0xffffffffffffffff);
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32l_t, acc_rand64) (acc_rand64_p r)
kusano 7d535a
{
kusano 7d535a
    r->seed = r->seed * ACC_UINT64_C(6364136223846793005) + 1;
kusano 7d535a
#if (ACC_SIZEOF_ACC_INT64L_T > 8)
kusano 7d535a
    r->seed &= ACC_UINT64_C(0xffffffffffffffff);
kusano 7d535a
#endif
kusano 7d535a
    return (acc_uint32l_t) (r->seed >> 33);
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32l_t, acc_rand64_r32) (acc_rand64_p r)
kusano 7d535a
{
kusano 7d535a
    r->seed = r->seed * ACC_UINT64_C(6364136223846793005) + 1;
kusano 7d535a
#if (ACC_SIZEOF_ACC_INT64L_T > 8)
kusano 7d535a
    r->seed &= ACC_UINT64_C(0xffffffffffffffff);
kusano 7d535a
#endif
kusano 7d535a
    return (acc_uint32l_t) (r->seed >> 32);
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(void, acc_srandmt) (acc_randmt_p r, acc_uint32l_t seed)
kusano 7d535a
{
kusano 7d535a
    unsigned i = 0;
kusano 7d535a
    do {
kusano 7d535a
        r->s[i++] = (seed &= ACC_UINT32_C(0xffffffff));
kusano 7d535a
        seed ^= seed >> 30;
kusano 7d535a
        seed = seed * ACC_UINT32_C(0x6c078965) + i;
kusano 7d535a
    } while (i != 624);
kusano 7d535a
    r->n = i;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt) (acc_randmt_p r)
kusano 7d535a
{
kusano 7d535a
    return (__ACCLIB_FUNCNAME(acc_randmt_r32)(r)) >> 1;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt_r32) (acc_randmt_p r)
kusano 7d535a
{
kusano 7d535a
    acc_uint32l_t v;
kusano 7d535a
    if __acc_unlikely(r->n == 624) {
kusano 7d535a
        int i = 0, j;
kusano 7d535a
        r->n = 0;
kusano 7d535a
        do {
kusano 7d535a
            j = i - 623; if (j < 0) j += 624;
kusano 7d535a
            v = (r->s[i] & ACC_UINT32_C(0x80000000)) ^ (r->s[j] & ACC_UINT32_C(0x7fffffff));
kusano 7d535a
            j = i - 227; if (j < 0) j += 624;
kusano 7d535a
            r->s[i] = r->s[j] ^ (v >> 1);
kusano 7d535a
            if (v & 1) r->s[i] ^= ACC_UINT32_C(0x9908b0df);
kusano 7d535a
        } while (++i != 624);
kusano 7d535a
    }
kusano 7d535a
    v = r->s[r->n++];
kusano 7d535a
    v ^= v >> 11; v ^= (v & ACC_UINT32_C(0x013a58ad)) << 7;
kusano 7d535a
    v ^= (v & ACC_UINT32_C(0x0001df8c)) << 15; v ^= v >> 18;
kusano 7d535a
    return v;
kusano 7d535a
}
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
ACCLIB_PUBLIC(void, acc_srandmt64) (acc_randmt64_p r, acc_uint64l_t seed)
kusano 7d535a
{
kusano 7d535a
    unsigned i = 0;
kusano 7d535a
    do {
kusano 7d535a
        r->s[i++] = (seed &= ACC_UINT64_C(0xffffffffffffffff));
kusano 7d535a
        seed ^= seed >> 62;
kusano 7d535a
        seed = seed * ACC_UINT64_C(0x5851f42d4c957f2d) + i;
kusano 7d535a
    } while (i != 312);
kusano 7d535a
    r->n = i;
kusano 7d535a
}
kusano 7d535a
#if 0
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt64) (acc_randmt64_p r)
kusano 7d535a
{
kusano 7d535a
    acc_uint64l_t v;
kusano 7d535a
    v = (__ACCLIB_FUNCNAME(acc_randmt64_r64)(r)) >> 33;
kusano 7d535a
    return (acc_uint32l_t) v;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(acc_uint64l_t, acc_randmt64_r64) (acc_randmt64_p r)
kusano 7d535a
{
kusano 7d535a
    acc_uint64l_t v;
kusano 7d535a
    if __acc_unlikely(r->n == 312) {
kusano 7d535a
        int i = 0, j;
kusano 7d535a
        r->n = 0;
kusano 7d535a
        do {
kusano 7d535a
            j = i - 311; if (j < 0) j += 312;
kusano 7d535a
            v = (r->s[i] & ACC_UINT64_C(0xffffffff80000000)) ^ (r->s[j] & ACC_UINT64_C(0x7fffffff));
kusano 7d535a
            j = i - 156; if (j < 0) j += 312;
kusano 7d535a
            r->s[i] = r->s[j] ^ (v >> 1);
kusano 7d535a
            if (v & 1) r->s[i] ^= ACC_UINT64_C(0xb5026f5aa96619e9);
kusano 7d535a
        } while (++i != 312);
kusano 7d535a
    }
kusano 7d535a
    v = r->s[r->n++];
kusano 7d535a
    v ^= (v & ACC_UINT64_C(0xaaaaaaaaa0000000)) >> 29;
kusano 7d535a
    v ^= (v & ACC_UINT64_C(0x38eb3ffff6d3)) << 17;
kusano 7d535a
    v ^= (v & ACC_UINT64_C(0x7ffbf77)) << 37;
kusano 7d535a
    return v ^ (v >> 43);
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_RDTSC)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_RDTSC
kusano 7d535a
#define __ACCLIB_RDTSC_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
#if defined(acc_int32e_t)
kusano 7d535a
#if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
kusano 7d535a
#  pragma warn(push)
kusano 7d535a
#  pragma warn(disable:2007)
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
kusano 7d535a
#if (ACC_ARCH_AMD64 && ACC_CC_PATHSCALE)
kusano 7d535a
#  define __ACCLIB_RDTSC_REGS   : : "c" (t) : "cc", "memory", "rax", "rdx"
kusano 7d535a
#elif (ACC_ARCH_AMD64 && ACC_CC_INTELC)
kusano 7d535a
#  define __ACCLIB_RDTSC_REGS   : : "r" (t) : "memory", "rax", "rdx"
kusano 7d535a
#elif (ACC_ARCH_AMD64)
kusano 7d535a
#  define __ACCLIB_RDTSC_REGS   : : "r" (t) : "cc", "memory", "rax", "rdx"
kusano 7d535a
#elif (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
kusano 7d535a
#  define __ACCLIB_RDTSC_REGS   : : "r" (t) : "ax", "dx"
kusano 7d535a
#elif (ACC_ARCH_I386 && ACC_CC_INTELC)
kusano 7d535a
#  define __ACCLIB_RDTSC_REGS   : : "r" (t) : "memory", "eax", "edx"
kusano 7d535a
#elif (ACC_ARCH_I386 && ACC_CC_PATHSCALE)
kusano 7d535a
#  define __ACCLIB_RDTSC_REGS   : : "c" (t) : "memory", "eax", "edx"
kusano 7d535a
#else
kusano 7d535a
#  define __ACCLIB_RDTSC_REGS   : : "r" (t) : "cc", "memory", "eax", "edx"
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(int, acc_tsc_read) (acc_uint32e_t* t)
kusano 7d535a
{
kusano 7d535a
#if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
kusano 7d535a
    __asm__ __volatile__(
kusano 7d535a
        "clc \n" ".byte 0x0f,0x31\n"
kusano 7d535a
        "movl %%eax,(%0)\n" "movl %%edx,4(%0)\n"
kusano 7d535a
        __ACCLIB_RDTSC_REGS
kusano 7d535a
    );
kusano 7d535a
    return 0;
kusano 7d535a
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
kusano 7d535a
    ACC_UNUSED(t);
kusano 7d535a
    __asm {
kusano 7d535a
        mov ecx, t
kusano 7d535a
        clc
kusano 7d535a
#  if (ACC_CC_MSC && (_MSC_VER < 1200))
kusano 7d535a
        _emit 0x0f
kusano 7d535a
        _emit 0x31
kusano 7d535a
#  else
kusano 7d535a
        rdtsc
kusano 7d535a
#  endif
kusano 7d535a
        mov [ecx], eax
kusano 7d535a
        mov [ecx+4], edx
kusano 7d535a
    }
kusano 7d535a
    return 0;
kusano 7d535a
#else
kusano 7d535a
    t[0] = t[1] = 0; return -1;
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
#if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
kusano 7d535a
#  pragma warn(pop)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_DOSALLOC)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_DOSALLOC
kusano 7d535a
#define __ACCLIB_DOSALLOC_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_OS216)
kusano 7d535a
ACC_EXTERN_C unsigned short __far __pascal DosAllocHuge(unsigned short, unsigned short, unsigned short __far *, unsigned short, unsigned short);
kusano 7d535a
ACC_EXTERN_C unsigned short __far __pascal DosFreeSeg(unsigned short);
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS_WIN16)
kusano 7d535a
#if !defined(ACC_CC_AZTECC)
kusano 7d535a
ACCLIB_PUBLIC(void __far*, acc_dos_alloc) (unsigned long size)
kusano 7d535a
{
kusano 7d535a
    void __far* p = 0;
kusano 7d535a
    union REGS ri, ro;
kusano 7d535a
    if ((long)size <= 0)
kusano 7d535a
        return p;
kusano 7d535a
    size = (size + 15) >> 4;
kusano 7d535a
    if (size > 0xffffu)
kusano 7d535a
        return p;
kusano 7d535a
    ri.x.ax = 0x4800;
kusano 7d535a
    ri.x.bx = (unsigned short) size;
kusano 7d535a
    int86(0x21, &ri, &ro);
kusano 7d535a
    if ((ro.x.cflag & 1) == 0)
kusano 7d535a
        p = (void __far*) ACC_PTR_MK_FP(ro.x.ax, 0);
kusano 7d535a
    return p;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(int, acc_dos_free) (void __far* p)
kusano 7d535a
{
kusano 7d535a
    union REGS ri, ro;
kusano 7d535a
    struct SREGS rs;
kusano 7d535a
    if (!p)
kusano 7d535a
        return 0;
kusano 7d535a
    if (ACC_PTR_FP_OFF(p) != 0)
kusano 7d535a
        return -1;
kusano 7d535a
    segread(&rs);
kusano 7d535a
    ri.x.ax = 0x4900;
kusano 7d535a
    rs.es = ACC_PTR_FP_SEG(p);
kusano 7d535a
    int86x(0x21, &ri, &ro, &rs);
kusano 7d535a
    if (ro.x.cflag & 1)
kusano 7d535a
        return -1;
kusano 7d535a
    return 0;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_OS216)
kusano 7d535a
ACCLIB_PUBLIC(void __far*, acc_dos_alloc) (unsigned long size)
kusano 7d535a
{
kusano 7d535a
    void __far* p = 0;
kusano 7d535a
    unsigned short sel = 0;
kusano 7d535a
    if ((long)size <= 0)
kusano 7d535a
        return p;
kusano 7d535a
    if (DosAllocHuge((unsigned short)(size >> 16), (unsigned short)size, &sel, 0, 0) == 0)
kusano 7d535a
        p = (void __far*) ACC_PTR_MK_FP(sel, 0);
kusano 7d535a
    return p;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(int, acc_dos_free) (void __far* p)
kusano 7d535a
{
kusano 7d535a
    if (!p)
kusano 7d535a
        return 0;
kusano 7d535a
    if (ACC_PTR_FP_OFF(p) != 0)
kusano 7d535a
        return -1;
kusano 7d535a
    if (DosFreeSeg(ACC_PTR_FP_SEG(p)) != 0)
kusano 7d535a
        return -1;
kusano 7d535a
    return 0;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_HALLOC)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_HALLOC
kusano 7d535a
#define __ACCLIB_HALLOC_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_HAVE_MM_HUGE_PTR)
kusano 7d535a
#if 1 && (ACC_OS_DOS16 && defined(BLX286))
kusano 7d535a
#  define __ACCLIB_HALLOC_USE_DAH 1
kusano 7d535a
#elif 1 && (ACC_OS_DOS16 && defined(DOSX286))
kusano 7d535a
#  define __ACCLIB_HALLOC_USE_DAH 1
kusano 7d535a
#elif 1 && (ACC_OS_OS216)
kusano 7d535a
#  define __ACCLIB_HALLOC_USE_DAH 1
kusano 7d535a
#elif 1 && (ACC_OS_WIN16)
kusano 7d535a
#  define __ACCLIB_HALLOC_USE_GA 1
kusano 7d535a
#elif 1 && (ACC_OS_DOS16) && (ACC_CC_BORLANDC) && defined(__DPMI16__)
kusano 7d535a
#  define __ACCLIB_HALLOC_USE_GA 1
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (__ACCLIB_HALLOC_USE_DAH)
kusano 7d535a
#if 0 && (ACC_OS_OS216)
kusano 7d535a
#include <os2.h>
kusano 7d535a
#else
kusano 7d535a
ACC_EXTERN_C unsigned short __far __pascal DosAllocHuge(unsigned short, unsigned short, unsigned short __far *, unsigned short, unsigned short);
kusano 7d535a
ACC_EXTERN_C unsigned short __far __pascal DosFreeSeg(unsigned short);
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (__ACCLIB_HALLOC_USE_GA)
kusano 7d535a
#if 0
kusano 7d535a
#define STRICT 1
kusano 7d535a
#include <windows.h>
kusano 7d535a
#else
kusano 7d535a
ACC_EXTERN_C const void __near* __far __pascal GlobalAlloc(unsigned, unsigned long);
kusano 7d535a
ACC_EXTERN_C const void __near* __far __pascal GlobalFree(const void __near*);
kusano 7d535a
ACC_EXTERN_C unsigned long __far __pascal GlobalHandle(unsigned);
kusano 7d535a
ACC_EXTERN_C void __far* __far __pascal GlobalLock(const void __near*);
kusano 7d535a
ACC_EXTERN_C int __far __pascal GlobalUnlock(const void __near*);
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(acc_hvoid_p, acc_halloc) (acc_hsize_t size)
kusano 7d535a
{
kusano 7d535a
    acc_hvoid_p p = 0;
kusano 7d535a
    if (!(size > 0))
kusano 7d535a
        return p;
kusano 7d535a
#if 0 && defined(__palmos__)
kusano 7d535a
    p = MemPtrNew(size);
kusano 7d535a
#elif !defined(ACC_HAVE_MM_HUGE_PTR)
kusano 7d535a
    if (size < (size_t) -1)
kusano 7d535a
        p = malloc((size_t) size);
kusano 7d535a
#else
kusano 7d535a
    if ((long)size <= 0)
kusano 7d535a
        return p;
kusano 7d535a
{
kusano 7d535a
#if (__ACCLIB_HALLOC_USE_DAH)
kusano 7d535a
    unsigned short sel = 0;
kusano 7d535a
    if (DosAllocHuge((unsigned short)(size >> 16), (unsigned short)size, &sel, 0, 0) == 0)
kusano 7d535a
        p = (acc_hvoid_p) ACC_PTR_MK_FP(sel, 0);
kusano 7d535a
#elif (__ACCLIB_HALLOC_USE_GA)
kusano 7d535a
    const void __near* h = GlobalAlloc(2, size);
kusano 7d535a
    if (h) {
kusano 7d535a
        p = GlobalLock(h);
kusano 7d535a
        if (p && ACC_PTR_FP_OFF(p) != 0) {
kusano 7d535a
            GlobalUnlock(h);
kusano 7d535a
            p = 0;
kusano 7d535a
        }
kusano 7d535a
        if (!p)
kusano 7d535a
            GlobalFree(h);
kusano 7d535a
    }
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER >= 700))
kusano 7d535a
    p = _halloc(size, 1);
kusano 7d535a
#elif (ACC_CC_MSC || ACC_CC_WATCOMC)
kusano 7d535a
    p = halloc(size, 1);
kusano 7d535a
#elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
kusano 7d535a
    p = farmalloc(size);
kusano 7d535a
#elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
kusano 7d535a
    p = farmalloc(size);
kusano 7d535a
#elif defined(ACC_CC_AZTECC)
kusano 7d535a
    p = lmalloc(size);
kusano 7d535a
#else
kusano 7d535a
    if (size < (size_t) -1)
kusano 7d535a
        p = malloc((size_t) size);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
    return p;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(void, acc_hfree) (acc_hvoid_p p)
kusano 7d535a
{
kusano 7d535a
    if (!p)
kusano 7d535a
        return;
kusano 7d535a
#if 0 && defined(__palmos__)
kusano 7d535a
    MemPtrFree(p);
kusano 7d535a
#elif !defined(ACC_HAVE_MM_HUGE_PTR)
kusano 7d535a
    free(p);
kusano 7d535a
#else
kusano 7d535a
#if (__ACCLIB_HALLOC_USE_DAH)
kusano 7d535a
    if (ACC_PTR_FP_OFF(p) == 0)
kusano 7d535a
        DosFreeSeg((unsigned short) ACC_PTR_FP_SEG(p));
kusano 7d535a
#elif (__ACCLIB_HALLOC_USE_GA)
kusano 7d535a
    if (ACC_PTR_FP_OFF(p) == 0) {
kusano 7d535a
        const void __near* h = (const void __near*) (unsigned) GlobalHandle(ACC_PTR_FP_SEG(p));
kusano 7d535a
        if (h) {
kusano 7d535a
            GlobalUnlock(h);
kusano 7d535a
            GlobalFree(h);
kusano 7d535a
        }
kusano 7d535a
    }
kusano 7d535a
#elif (ACC_CC_MSC && (_MSC_VER >= 700))
kusano 7d535a
    _hfree(p);
kusano 7d535a
#elif (ACC_CC_MSC || ACC_CC_WATCOMC)
kusano 7d535a
    hfree(p);
kusano 7d535a
#elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
kusano 7d535a
    farfree((void __far*) p);
kusano 7d535a
#elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
kusano 7d535a
    farfree((void __far*) p);
kusano 7d535a
#elif defined(ACC_CC_AZTECC)
kusano 7d535a
    lfree(p);
kusano 7d535a
#else
kusano 7d535a
    free(p);
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_HFREAD)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_HFREAD
kusano 7d535a
#define __ACCLIB_HFREAD_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(acc_hsize_t, acc_hfread) (void* vfp, acc_hvoid_p buf, acc_hsize_t size)
kusano 7d535a
{
kusano 7d535a
    FILE* fp = (FILE *) vfp;
kusano 7d535a
#if (ACC_HAVE_MM_HUGE_PTR)
kusano 7d535a
#if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
kusano 7d535a
#define __ACCLIB_REQUIRE_HMEMCPY_CH 1
kusano 7d535a
    unsigned char tmp[512];
kusano 7d535a
    acc_hsize_t l = 0;
kusano 7d535a
    while (l < size)
kusano 7d535a
    {
kusano 7d535a
        size_t n = size - l > sizeof(tmp) ? sizeof(tmp) : (size_t) (size - l);
kusano 7d535a
        n = fread(tmp, 1, n, fp);
kusano 7d535a
        if (n == 0)
kusano 7d535a
            break;
kusano 7d535a
        __ACCLIB_FUNCNAME(acc_hmemcpy)((acc_hbyte_p)buf + l, tmp, (acc_hsize_t)n);
kusano 7d535a
        l += n;
kusano 7d535a
    }
kusano 7d535a
    return l;
kusano 7d535a
#elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) buf;
kusano 7d535a
    acc_hsize_t l = 0;
kusano 7d535a
    while (l < size)
kusano 7d535a
    {
kusano 7d535a
        size_t n;
kusano 7d535a
        n = ACC_PTR_FP_OFF(b); n = (n <= 1) ? 0x8000u : (0u - n);
kusano 7d535a
        if ((acc_hsize_t) n > size - l)
kusano 7d535a
            n = (size_t) (size - l);
kusano 7d535a
        n = fread((void __far*)b, 1, n, fp);
kusano 7d535a
        if (n == 0)
kusano 7d535a
            break;
kusano 7d535a
        b += n; l += n;
kusano 7d535a
    }
kusano 7d535a
    return l;
kusano 7d535a
#else
kusano 7d535a
#  error "unknown memory model"
kusano 7d535a
#endif
kusano 7d535a
#else
kusano 7d535a
    return fread(buf, 1, size, fp);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_hsize_t, acc_hfwrite) (void* vfp, const acc_hvoid_p buf, acc_hsize_t size)
kusano 7d535a
{
kusano 7d535a
    FILE* fp = (FILE *) vfp;
kusano 7d535a
#if (ACC_HAVE_MM_HUGE_PTR)
kusano 7d535a
#if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
kusano 7d535a
#define __ACCLIB_REQUIRE_HMEMCPY_CH 1
kusano 7d535a
    unsigned char tmp[512];
kusano 7d535a
    acc_hsize_t l = 0;
kusano 7d535a
    while (l < size)
kusano 7d535a
    {
kusano 7d535a
        size_t n = size - l > sizeof(tmp) ? sizeof(tmp) : (size_t) (size - l);
kusano 7d535a
        __ACCLIB_FUNCNAME(acc_hmemcpy)(tmp, (const acc_hbyte_p)buf + l, (acc_hsize_t)n);
kusano 7d535a
        n = fwrite(tmp, 1, n, fp);
kusano 7d535a
        if (n == 0)
kusano 7d535a
            break;
kusano 7d535a
        l += n;
kusano 7d535a
    }
kusano 7d535a
    return l;
kusano 7d535a
#elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) buf;
kusano 7d535a
    acc_hsize_t l = 0;
kusano 7d535a
    while (l < size)
kusano 7d535a
    {
kusano 7d535a
        size_t n;
kusano 7d535a
        n = ACC_PTR_FP_OFF(b); n = (n <= 1) ? 0x8000u : (0u - n);
kusano 7d535a
        if ((acc_hsize_t) n > size - l)
kusano 7d535a
            n = (size_t) (size - l);
kusano 7d535a
        n = fwrite((void __far*)b, 1, n, fp);
kusano 7d535a
        if (n == 0)
kusano 7d535a
            break;
kusano 7d535a
        b += n; l += n;
kusano 7d535a
    }
kusano 7d535a
    return l;
kusano 7d535a
#else
kusano 7d535a
#  error "unknown memory model"
kusano 7d535a
#endif
kusano 7d535a
#else
kusano 7d535a
    return fwrite(buf, 1, size, fp);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_HSREAD)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_HSREAD
kusano 7d535a
#define __ACCLIB_HSREAD_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(long, acc_safe_hread) (int fd, acc_hvoid_p buf, long size)
kusano 7d535a
{
kusano 7d535a
    acc_hbyte_p b = (acc_hbyte_p) buf;
kusano 7d535a
    long l = 0;
kusano 7d535a
    int saved_errno;
kusano 7d535a
    saved_errno = errno;
kusano 7d535a
    while (l < size)
kusano 7d535a
    {
kusano 7d535a
        long n = size - l;
kusano 7d535a
#if (ACC_HAVE_MM_HUGE_PTR)
kusano 7d535a
#  define __ACCLIB_REQUIRE_HREAD_CH 1
kusano 7d535a
        errno = 0; n = acc_hread(fd, b, n);
kusano 7d535a
#elif (ACC_OS_DOS32) && defined(__DJGPP__)
kusano 7d535a
        errno = 0; n = _read(fd, b, n);
kusano 7d535a
#else
kusano 7d535a
        errno = 0; n = read(fd, b, n);
kusano 7d535a
#endif
kusano 7d535a
        if (n == 0)
kusano 7d535a
            break;
kusano 7d535a
        if (n < 0) {
kusano 7d535a
#if defined(EAGAIN)
kusano 7d535a
            if (errno == (EAGAIN)) continue;
kusano 7d535a
#endif
kusano 7d535a
#if defined(EINTR)
kusano 7d535a
            if (errno == (EINTR)) continue;
kusano 7d535a
#endif
kusano 7d535a
            if (errno == 0) errno = 1;
kusano 7d535a
            return l;
kusano 7d535a
        }
kusano 7d535a
        b += n; l += n;
kusano 7d535a
    }
kusano 7d535a
    errno = saved_errno;
kusano 7d535a
    return l;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(long, acc_safe_hwrite) (int fd, const acc_hvoid_p buf, long size)
kusano 7d535a
{
kusano 7d535a
    const acc_hbyte_p b = (const acc_hbyte_p) buf;
kusano 7d535a
    long l = 0;
kusano 7d535a
    int saved_errno;
kusano 7d535a
    saved_errno = errno;
kusano 7d535a
    while (l < size)
kusano 7d535a
    {
kusano 7d535a
        long n = size - l;
kusano 7d535a
#if (ACC_HAVE_MM_HUGE_PTR)
kusano 7d535a
#  define __ACCLIB_REQUIRE_HREAD_CH 1
kusano 7d535a
        errno = 0; n = acc_hwrite(fd, b, n);
kusano 7d535a
#elif (ACC_OS_DOS32) && defined(__DJGPP__)
kusano 7d535a
        errno = 0; n = _write(fd, b, n);
kusano 7d535a
#else
kusano 7d535a
        errno = 0; n = write(fd, b, n);
kusano 7d535a
#endif
kusano 7d535a
        if (n == 0)
kusano 7d535a
            break;
kusano 7d535a
        if (n < 0) {
kusano 7d535a
#if defined(EAGAIN)
kusano 7d535a
            if (errno == (EAGAIN)) continue;
kusano 7d535a
#endif
kusano 7d535a
#if defined(EINTR)
kusano 7d535a
            if (errno == (EINTR)) continue;
kusano 7d535a
#endif
kusano 7d535a
            if (errno == 0) errno = 1;
kusano 7d535a
            return l;
kusano 7d535a
        }
kusano 7d535a
        b += n; l += n;
kusano 7d535a
    }
kusano 7d535a
    errno = saved_errno;
kusano 7d535a
    return l;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_PCLOCK)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_PCLOCK
kusano 7d535a
#define __ACCLIB_PCLOCK_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_GETTIMEOFDAY)
kusano 7d535a
#ifndef acc_pclock_read_gettimeofday
kusano 7d535a
#define acc_pclock_read_gettimeofday acc_pclock_read_gettimeofday
kusano 7d535a
#endif
kusano 7d535a
static int acc_pclock_read_gettimeofday(acc_pclock_handle_p h, acc_pclock_p c)
kusano 7d535a
{
kusano 7d535a
    struct timeval tv;
kusano 7d535a
    if (gettimeofday(&tv, 0) != 0)
kusano 7d535a
        return -1;
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
    c->tv_sec = tv.tv_sec;
kusano 7d535a
#else
kusano 7d535a
    c->tv_sec_high = 0;
kusano 7d535a
    c->tv_sec_low = tv.tv_sec;
kusano 7d535a
#endif
kusano 7d535a
    c->tv_nsec = (acc_uint32l_t) (tv.tv_usec * 1000u);
kusano 7d535a
    ACC_UNUSED(h); return 0;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if defined(CLOCKS_PER_SEC)
kusano 7d535a
#ifndef acc_pclock_read_clock
kusano 7d535a
#define acc_pclock_read_clock acc_pclock_read_clock
kusano 7d535a
#endif
kusano 7d535a
static int acc_pclock_read_clock(acc_pclock_handle_p h, acc_pclock_p c)
kusano 7d535a
{
kusano 7d535a
    clock_t ticks;
kusano 7d535a
    double secs;
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
    acc_uint64l_t nsecs;
kusano 7d535a
    ticks = clock();
kusano 7d535a
    secs = (double)ticks / (CLOCKS_PER_SEC);
kusano 7d535a
    nsecs = (acc_uint64l_t) (secs * 1000000000.0);
kusano 7d535a
    c->tv_sec = (acc_int64l_t) (nsecs / 1000000000ul);
kusano 7d535a
    c->tv_nsec = (acc_uint32l_t) (nsecs % 1000000000ul);
kusano 7d535a
#else
kusano 7d535a
    ticks = clock();
kusano 7d535a
    secs = (double)ticks / (CLOCKS_PER_SEC);
kusano 7d535a
    c->tv_sec_high = 0;
kusano 7d535a
    c->tv_sec_low = (acc_uint32l_t) (secs + 0.5);
kusano 7d535a
    c->tv_nsec = 0;
kusano 7d535a
#endif
kusano 7d535a
    ACC_UNUSED(h); return 0;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__) && defined(UCLOCKS_PER_SEC)
kusano 7d535a
#ifndef acc_pclock_read_uclock
kusano 7d535a
#define acc_pclock_read_uclock acc_pclock_read_uclock
kusano 7d535a
#endif
kusano 7d535a
static int acc_pclock_read_uclock(acc_pclock_handle_p h, acc_pclock_p c)
kusano 7d535a
{
kusano 7d535a
    acc_uint64l_t ticks;
kusano 7d535a
    double secs;
kusano 7d535a
    acc_uint64l_t nsecs;
kusano 7d535a
    ticks = uclock();
kusano 7d535a
    secs = (double)ticks / (UCLOCKS_PER_SEC);
kusano 7d535a
    nsecs = (acc_uint64l_t) (secs * 1000000000.0);
kusano 7d535a
    c->tv_sec = nsecs / 1000000000ul;
kusano 7d535a
    c->tv_nsec = (acc_uint32l_t) (nsecs % 1000000000ul);
kusano 7d535a
    ACC_UNUSED(h); return 0;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if 0 && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID) && defined(acc_int64l_t)
kusano 7d535a
#ifndef acc_pclock_read_clock_gettime_p
kusano 7d535a
#define acc_pclock_read_clock_gettime_p acc_pclock_read_clock_gettime_p
kusano 7d535a
#endif
kusano 7d535a
static int acc_pclock_read_clock_gettime_p(acc_pclock_handle_p h, acc_pclock_p c)
kusano 7d535a
{
kusano 7d535a
    struct timespec ts;
kusano 7d535a
    if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts) != 0)
kusano 7d535a
        return -1;
kusano 7d535a
    c->tv_sec = ts.tv_sec;
kusano 7d535a
    c->tv_nsec = ts.tv_nsec;
kusano 7d535a
    ACC_UNUSED(h); return 0;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_CYGWIN || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H) && defined(acc_int64l_t)
kusano 7d535a
#ifndef acc_pclock_read_getprocesstimes
kusano 7d535a
#define acc_pclock_read_getprocesstimes acc_pclock_read_getprocesstimes
kusano 7d535a
#endif
kusano 7d535a
static int acc_pclock_read_getprocesstimes(acc_pclock_handle_p h, acc_pclock_p c)
kusano 7d535a
{
kusano 7d535a
    FILETIME ct, et, kt, ut;
kusano 7d535a
    acc_uint64l_t ticks;
kusano 7d535a
    if (GetProcessTimes(GetCurrentProcess(), &ct, &et, &kt, &ut) == 0)
kusano 7d535a
        return -1;
kusano 7d535a
    ticks = ((acc_uint64l_t)ut.dwHighDateTime << 32) | ut.dwLowDateTime;
kusano 7d535a
    if __acc_unlikely(h->ticks_base == 0)
kusano 7d535a
        h->ticks_base = ticks;
kusano 7d535a
    else
kusano 7d535a
        ticks -= h->ticks_base;
kusano 7d535a
    c->tv_sec = (acc_int64l_t) (ticks / 10000000ul);
kusano 7d535a
    c->tv_nsec = (acc_uint32l_t)(ticks % 10000000ul) * 100u;
kusano 7d535a
    ACC_UNUSED(h); return 0;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_GETRUSAGE) && defined(RUSAGE_SELF)
kusano 7d535a
#ifndef acc_pclock_read_getrusage
kusano 7d535a
#define acc_pclock_read_getrusage acc_pclock_read_getrusage
kusano 7d535a
#endif
kusano 7d535a
static int acc_pclock_read_getrusage(acc_pclock_handle_p h, acc_pclock_p c)
kusano 7d535a
{
kusano 7d535a
    struct rusage ru;
kusano 7d535a
    if (getrusage(RUSAGE_SELF, &ru) != 0)
kusano 7d535a
        return -1;
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
    c->tv_sec = ru.ru_utime.tv_sec;
kusano 7d535a
#else
kusano 7d535a
    c->tv_sec_high = 0;
kusano 7d535a
    c->tv_sec_low = ru.ru_utime.tv_sec;
kusano 7d535a
#endif
kusano 7d535a
    c->tv_nsec = (acc_uint32l_t) (ru.ru_utime.tv_usec * 1000u);
kusano 7d535a
    ACC_UNUSED(h); return 0;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if (__ACCLIB_PCLOCK_USE_PERFCTR)
kusano 7d535a
#ifndef acc_pclock_read_perfctr
kusano 7d535a
#define acc_pclock_read_perfctr acc_pclock_read_perfctr
kusano 7d535a
#endif
kusano 7d535a
static int acc_pclock_read_perfctr(acc_pclock_handle_p h, acc_pclock_p c)
kusano 7d535a
{
kusano 7d535a
    acc_perfctr_clock_t pcc;
kusano 7d535a
    double secs;
kusano 7d535a
    acc_uint64l_t nsecs;
kusano 7d535a
    acc_perfctr_read(&h->pch, &pcc);
kusano 7d535a
    if __acc_unlikely(h->ticks_base == 0)
kusano 7d535a
        h->ticks_base = pcc.tsc;
kusano 7d535a
    else
kusano 7d535a
        pcc.tsc -= h->ticks_base;
kusano 7d535a
    secs = pcc.tsc * h->pch.tsc_to_seconds;
kusano 7d535a
    nsecs = (acc_uint64l_t) (secs * 1000000000.0);
kusano 7d535a
    c->tv_sec = nsecs / 1000000000ul;
kusano 7d535a
    c->tv_nsec = (acc_uint32l_t) (nsecs % 1000000000ul);
kusano 7d535a
    ACC_UNUSED(h); return 0;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if 0 && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_THREAD_CPUTIME_ID) && defined(acc_int64l_t)
kusano 7d535a
#ifndef acc_pclock_read_clock_gettime_t
kusano 7d535a
#define acc_pclock_read_clock_gettime_t acc_pclock_read_clock_gettime_t
kusano 7d535a
#endif
kusano 7d535a
static int acc_pclock_read_clock_gettime_t(acc_pclock_handle_p h, acc_pclock_p c)
kusano 7d535a
{
kusano 7d535a
    struct timespec ts;
kusano 7d535a
    if (clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts) != 0)
kusano 7d535a
        return -1;
kusano 7d535a
    c->tv_sec = ts.tv_sec;
kusano 7d535a
    c->tv_nsec = ts.tv_nsec;
kusano 7d535a
    ACC_UNUSED(h); return 0;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_CYGWIN || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H) && defined(acc_int64l_t)
kusano 7d535a
#ifndef acc_pclock_read_getthreadtimes
kusano 7d535a
#define acc_pclock_read_getthreadtimes acc_pclock_read_getthreadtimes
kusano 7d535a
#endif
kusano 7d535a
static int acc_pclock_read_getthreadtimes(acc_pclock_handle_p h, acc_pclock_p c)
kusano 7d535a
{
kusano 7d535a
    FILETIME ct, et, kt, ut;
kusano 7d535a
    acc_uint64l_t ticks;
kusano 7d535a
    if (GetThreadTimes(GetCurrentThread(), &ct, &et, &kt, &ut) == 0)
kusano 7d535a
        return -1;
kusano 7d535a
    ticks = ((acc_uint64l_t)ut.dwHighDateTime << 32) | ut.dwLowDateTime;
kusano 7d535a
    if __acc_unlikely(h->ticks_base == 0)
kusano 7d535a
        h->ticks_base = ticks;
kusano 7d535a
    else
kusano 7d535a
        ticks -= h->ticks_base;
kusano 7d535a
    c->tv_sec = (acc_int64l_t) (ticks / 10000000ul);
kusano 7d535a
    c->tv_nsec = (acc_uint32l_t)(ticks % 10000000ul) * 100;
kusano 7d535a
    ACC_UNUSED(h); return 0;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(int, acc_pclock_open) (acc_pclock_handle_p h, int mode)
kusano 7d535a
{
kusano 7d535a
    acc_pclock_t c;
kusano 7d535a
    int i;
kusano 7d535a
    h->h = (acclib_handle_t) 0;
kusano 7d535a
    h->mode = -1;
kusano 7d535a
    h->name = NULL;
kusano 7d535a
    h->gettime = 0;
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
    h->ticks_base = 0;
kusano 7d535a
#endif
kusano 7d535a
    switch (mode)
kusano 7d535a
    {
kusano 7d535a
    case ACC_PCLOCK_REALTIME_HR:
kusano 7d535a
#     if defined(acc_pclock_read_gettimeofday)
kusano 7d535a
        h->gettime = acc_pclock_read_gettimeofday;
kusano 7d535a
        h->name = "gettimeofday";
kusano 7d535a
#     endif
kusano 7d535a
        break;
kusano 7d535a
    case ACC_PCLOCK_REALTIME:
kusano 7d535a
#     if defined(acc_pclock_read_gettimeofday)
kusano 7d535a
        h->gettime = acc_pclock_read_gettimeofday;
kusano 7d535a
        h->name = "gettimeofday";
kusano 7d535a
#     endif
kusano 7d535a
        break;
kusano 7d535a
    case ACC_PCLOCK_MONOTONIC_HR:
kusano 7d535a
#     if defined(acc_pclock_read_uclock)
kusano 7d535a
        h->gettime = acc_pclock_read_uclock;
kusano 7d535a
        h->name = "uclock";
kusano 7d535a
#     endif
kusano 7d535a
        break;
kusano 7d535a
    case ACC_PCLOCK_MONOTONIC:
kusano 7d535a
#     if defined(acc_pclock_read_clock)
kusano 7d535a
        if (!h->gettime) {
kusano 7d535a
            h->gettime = acc_pclock_read_clock;
kusano 7d535a
            h->name = "clock";
kusano 7d535a
        }
kusano 7d535a
#     endif
kusano 7d535a
        break;
kusano 7d535a
    case ACC_PCLOCK_PROCESS_CPUTIME_ID:
kusano 7d535a
#     if defined(acc_pclock_read_perfctr)
kusano 7d535a
        if (acc_perfctr_open(&h->pch) == 0) {
kusano 7d535a
            h->gettime = acc_pclock_read_perfctr;
kusano 7d535a
            h->name = "perfctr";
kusano 7d535a
            break;
kusano 7d535a
        }
kusano 7d535a
#     endif
kusano 7d535a
#     if defined(acc_pclock_read_getprocesstimes)
kusano 7d535a
        if (!h->gettime && acc_pclock_read_getprocesstimes(h, &c) == 0) {
kusano 7d535a
            h->gettime = acc_pclock_read_getprocesstimes;
kusano 7d535a
            h->name = "GetProcessTimes";
kusano 7d535a
            break;
kusano 7d535a
        }
kusano 7d535a
#     endif
kusano 7d535a
#     if defined(acc_pclock_read_clock_gettime_p)
kusano 7d535a
        if (!h->gettime && acc_pclock_read_clock_gettime_p(h, &c) == 0) {
kusano 7d535a
            h->gettime = acc_pclock_read_clock_gettime_p;
kusano 7d535a
            h->name = "CLOCK_PROCESS_CPUTIME_ID";
kusano 7d535a
            break;
kusano 7d535a
        }
kusano 7d535a
#     endif
kusano 7d535a
#     if defined(acc_pclock_read_getrusage)
kusano 7d535a
        h->gettime = acc_pclock_read_getrusage;
kusano 7d535a
        h->name = "getrusage";
kusano 7d535a
#     endif
kusano 7d535a
        break;
kusano 7d535a
    case ACC_PCLOCK_THREAD_CPUTIME_ID:
kusano 7d535a
#     if defined(acc_pclock_read_getthreadtimes)
kusano 7d535a
        if (!h->gettime && acc_pclock_read_getthreadtimes(h, &c) == 0) {
kusano 7d535a
            h->gettime = acc_pclock_read_getthreadtimes;
kusano 7d535a
            h->name = "GetThreadTimes";
kusano 7d535a
        }
kusano 7d535a
#     endif
kusano 7d535a
#     if defined(acc_pclock_read_clock_gettime_t)
kusano 7d535a
        if (!h->gettime && acc_pclock_read_clock_gettime_t(h, &c) == 0) {
kusano 7d535a
            h->gettime = acc_pclock_read_clock_gettime_t;
kusano 7d535a
            h->name = "CLOCK_THREAD_CPUTIME_ID";
kusano 7d535a
            break;
kusano 7d535a
        }
kusano 7d535a
#     endif
kusano 7d535a
        break;
kusano 7d535a
    }
kusano 7d535a
    if (!h->gettime)
kusano 7d535a
        return -1;
kusano 7d535a
    if (!h->h)
kusano 7d535a
        h->h = (acclib_handle_t) 1;
kusano 7d535a
    h->mode = mode;
kusano 7d535a
    if (!h->name)
kusano 7d535a
        h->name = "unknown";
kusano 7d535a
    for (i = 0; i < 10; i++) {
kusano 7d535a
        acc_pclock_read(h, &c);
kusano 7d535a
    }
kusano 7d535a
    return 0;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(int, acc_pclock_open_default) (acc_pclock_handle_p h)
kusano 7d535a
{
kusano 7d535a
    if (acc_pclock_open(h, ACC_PCLOCK_PROCESS_CPUTIME_ID) == 0)
kusano 7d535a
        return 0;
kusano 7d535a
    if (acc_pclock_open(h, ACC_PCLOCK_MONOTONIC_HR) == 0)
kusano 7d535a
        return 0;
kusano 7d535a
    if (acc_pclock_open(h, ACC_PCLOCK_REALTIME_HR) == 0)
kusano 7d535a
        return 0;
kusano 7d535a
    if (acc_pclock_open(h, ACC_PCLOCK_MONOTONIC) == 0)
kusano 7d535a
        return 0;
kusano 7d535a
    if (acc_pclock_open(h, ACC_PCLOCK_REALTIME) == 0)
kusano 7d535a
        return 0;
kusano 7d535a
    if (acc_pclock_open(h, ACC_PCLOCK_THREAD_CPUTIME_ID) == 0)
kusano 7d535a
        return 0;
kusano 7d535a
    return -1;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(int, acc_pclock_close) (acc_pclock_handle_p h)
kusano 7d535a
{
kusano 7d535a
    h->h = (acclib_handle_t) 0;
kusano 7d535a
    h->mode = -1;
kusano 7d535a
    h->name = NULL;
kusano 7d535a
    h->gettime = 0;
kusano 7d535a
#if (__ACCLIB_PCLOCK_USE_PERFCTR)
kusano 7d535a
    acc_perfctr_close(&h->pch);
kusano 7d535a
#endif
kusano 7d535a
    return 0;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(void, acc_pclock_read) (acc_pclock_handle_p h, acc_pclock_p c)
kusano 7d535a
{
kusano 7d535a
    if (h->gettime) {
kusano 7d535a
        if (h->gettime(h, c) == 0)
kusano 7d535a
            return;
kusano 7d535a
    }
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
    c->tv_sec = 0;
kusano 7d535a
#else
kusano 7d535a
    c->tv_sec_high = 0;
kusano 7d535a
    c->tv_sec_low = 0;
kusano 7d535a
#endif
kusano 7d535a
    c->tv_nsec = 0;
kusano 7d535a
}
kusano 7d535a
#if !defined(ACC_CFG_NO_DOUBLE)
kusano 7d535a
ACCLIB_PUBLIC(double, acc_pclock_get_elapsed) (acc_pclock_handle_p h, const acc_pclock_p start, const acc_pclock_p stop)
kusano 7d535a
{
kusano 7d535a
    double tstop, tstart;
kusano 7d535a
    if (!h->h) {
kusano 7d535a
        h->mode = -1;
kusano 7d535a
        return 0.0;
kusano 7d535a
    }
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
    tstop  = stop->tv_sec  + stop->tv_nsec  / 1000000000.0;
kusano 7d535a
    tstart = start->tv_sec + start->tv_nsec / 1000000000.0;
kusano 7d535a
#else
kusano 7d535a
    tstop  = stop->tv_sec_low  + stop->tv_nsec  / 1000000000.0;
kusano 7d535a
    tstart = start->tv_sec_low + start->tv_nsec / 1000000000.0;
kusano 7d535a
#endif
kusano 7d535a
    return tstop - tstart;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(int, acc_pclock_flush_cpu_cache) (acc_pclock_handle_p h, unsigned flags)
kusano 7d535a
{
kusano 7d535a
    if (h->h) {
kusano 7d535a
#if (__ACCLIB_PCLOCK_USE_PERFCTR)
kusano 7d535a
        return acc_perfctr_flush_cpu_cache(&h->pch, flags);
kusano 7d535a
#endif
kusano 7d535a
    }
kusano 7d535a
    ACC_UNUSED(h); ACC_UNUSED(flags);
kusano 7d535a
    return -1;
kusano 7d535a
}
kusano 7d535a
#if defined(__ACCLIB_PCLOCK_NEED_WARN_POP)
kusano 7d535a
#  if (ACC_CC_MSC && (_MSC_VER >= 1200))
kusano 7d535a
#    pragma warning(pop)
kusano 7d535a
#  else
kusano 7d535a
#    error "__ACCLIB_PCLOCK_NEED_WARN_POP"
kusano 7d535a
#  endif
kusano 7d535a
#  undef __ACCLIB_PCLOCK_NEED_WARN_POP
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_UCLOCK)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_UCLOCK
kusano 7d535a
#define __ACCLIB_UCLOCK_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS_WIN16)
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
kusano 7d535a
#elif (ACC_OS_CYGWIN || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
kusano 7d535a
#  if ((ACC_CC_DMC && (__DMC__ < 0x838)) || ACC_CC_LCCWIN32)
kusano 7d535a
#    define __ACCLIB_UCLOCK_USE_CLOCK 1
kusano 7d535a
#  else
kusano 7d535a
#    define __ACCLIB_UCLOCK_USE_WINMM 1
kusano 7d535a
#    if (ACC_CC_MSC && (_MSC_VER >= 1200))
kusano 7d535a
#      pragma warning(push)
kusano 7d535a
#      define __ACCLIB_UCLOCK_NEED_WARN_POP 1
kusano 7d535a
#    endif
kusano 7d535a
#    if (ACC_CC_MSC && (_MSC_VER >= 900))
kusano 7d535a
#      pragma warning(disable: 4201)
kusano 7d535a
#    elif (ACC_CC_MWERKS)
kusano 7d535a
#      define LPUINT __ACC_MMSYSTEM_H_LPUINT
kusano 7d535a
#    endif
kusano 7d535a
#    if 1
kusano 7d535a
#      include <mmsystem.h>
kusano 7d535a
#    else
kusano 7d535a
#      if (ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC)
kusano 7d535a
         ACC_EXTERN_C __declspec(dllimport) unsigned long __stdcall timeGetTime(void);
kusano 7d535a
#      else
kusano 7d535a
         ACC_EXTERN_C unsigned long __stdcall timeGetTime(void);
kusano 7d535a
#      endif
kusano 7d535a
#    endif
kusano 7d535a
#    if (ACC_CC_DMC)
kusano 7d535a
#      pragma DMC includelib "winmm.lib"
kusano 7d535a
#    elif (ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC)
kusano 7d535a
#      pragma comment(lib, "winmm.lib")
kusano 7d535a
#    elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3000))
kusano 7d535a
#      pragma comment(lib, "winmm.lib")
kusano 7d535a
#    elif (ACC_CC_SYMANTECC)
kusano 7d535a
#      pragma SC includelib "winmm.lib"
kusano 7d535a
#    elif (ACC_CC_WATCOMC && (__WATCOMC__ >= 1050))
kusano 7d535a
#      pragma library("winmm.lib")
kusano 7d535a
#    endif
kusano 7d535a
#  endif
kusano 7d535a
#elif (ACC_OS_CYGWIN || ACC_OS_DOS32 || ACC_OS_EMX || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_TOS || ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
#  define __ACCLIB_UCLOCK_USE_CLOCK 1
kusano 7d535a
#elif (ACC_OS_CONSOLE) && defined(CLOCKS_PER_SEC)
kusano 7d535a
#  define __ACCLIB_UCLOCK_USE_CLOCK 1
kusano 7d535a
#elif (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99) && defined(CLOCKS_PER_SEC)
kusano 7d535a
#  define __ACCLIB_UCLOCK_USE_CLOCK 1
kusano 7d535a
#endif
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_CLOCK) && !defined(CLOCKS_PER_SEC)
kusano 7d535a
#  if defined(CLK_TCK)
kusano 7d535a
#    define CLOCKS_PER_SEC CLK_TCK
kusano 7d535a
#  else
kusano 7d535a
#    undef __ACCLIB_UCLOCK_USE_CLOCK
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_GETRUSAGE)
kusano 7d535a
#  if !defined(RUSAGE_SELF)
kusano 7d535a
#    undef __ACCLIB_UCLOCK_USE_GETRUSAGE
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(int, acc_uclock_open) (acc_uclock_handle_p h)
kusano 7d535a
{
kusano 7d535a
    int i;
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_QPC)
kusano 7d535a
    LARGE_INTEGER li;
kusano 7d535a
#endif
kusano 7d535a
    h->h = (acclib_handle_t) 1;
kusano 7d535a
    h->mode = 0;
kusano 7d535a
    h->name = NULL;
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_PERFCTR)
kusano 7d535a
    h->pch.h = 0;
kusano 7d535a
    if (h->mode == 0 && acc_perfctr_open(&h->pch) == 0)
kusano 7d535a
        h->mode = 2;
kusano 7d535a
#endif
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_QPC)
kusano 7d535a
    h->qpf = 0.0;
kusano 7d535a
    if (h->mode == 0 && QueryPerformanceFrequency(&li) != 0) {
kusano 7d535a
        double d = (double) li.QuadPart;
kusano 7d535a
        if (d > 0.0 && QueryPerformanceCounter(&li) != 0) {
kusano 7d535a
            h->mode = 3;
kusano 7d535a
            h->qpf = d;
kusano 7d535a
        }
kusano 7d535a
    }
kusano 7d535a
#endif
kusano 7d535a
    for (i = 0; i < 10; i++) {
kusano 7d535a
        acc_uclock_t c;
kusano 7d535a
        acc_uclock_read(h, &c);
kusano 7d535a
    }
kusano 7d535a
    return 0;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(int, acc_uclock_close) (acc_uclock_handle_p h)
kusano 7d535a
{
kusano 7d535a
    h->h = (acclib_handle_t) 0;
kusano 7d535a
    h->mode = -1;
kusano 7d535a
    h->name = NULL;
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_PERFCTR)
kusano 7d535a
    acc_perfctr_close(&h->pch);
kusano 7d535a
#endif
kusano 7d535a
    return 0;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(void, acc_uclock_read) (acc_uclock_handle_p h, acc_uclock_p c)
kusano 7d535a
{
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_RDTSC)
kusano 7d535a
    acc_tsc_read((acc_uint32e_t*) (void*) &c->tsc);
kusano 7d535a
#endif
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_PERFCTR)
kusano 7d535a
    if (h->pch.h) {
kusano 7d535a
        acc_perfctr_read(&h->pch, &c->pcc);
kusano 7d535a
        if (h->mode > 0 && h->mode <= 2)
kusano 7d535a
            return;
kusano 7d535a
    }
kusano 7d535a
#endif
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_QPC)
kusano 7d535a
    if (h->qpf > 0.0) {
kusano 7d535a
        LARGE_INTEGER li;
kusano 7d535a
        if (QueryPerformanceCounter(&li) != 0) {
kusano 7d535a
            c->qpc = (acc_int64l_t) li.QuadPart;
kusano 7d535a
            if (h->mode > 0 && h->mode <= 3)
kusano 7d535a
                return;
kusano 7d535a
        } else {
kusano 7d535a
            h->mode = 0; h->qpf = 0.0; c->qpc = 0;
kusano 7d535a
        }
kusano 7d535a
    }
kusano 7d535a
#endif
kusano 7d535a
    {
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS_WIN16)
kusano 7d535a
# if (ACC_CC_AZTECC)
kusano 7d535a
    c->ticks.t32 = 0;
kusano 7d535a
# else
kusano 7d535a
    union REGS ri, ro;
kusano 7d535a
    ri.x.ax = 0x2c00; int86(0x21, &ri, &ro);
kusano 7d535a
    c->ticks.t32 = ro.h.ch*60UL*60UL*100UL + ro.h.cl*60UL*100UL + ro.h.dh*100UL + ro.h.dl;
kusano 7d535a
# endif
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
kusano 7d535a
    c->ticks.t64 = uclock();
kusano 7d535a
#elif (__ACCLIB_UCLOCK_USE_CLOCK) && defined(acc_int64l_t)
kusano 7d535a
    c->ticks.t64 = clock();
kusano 7d535a
#elif (__ACCLIB_UCLOCK_USE_CLOCK)
kusano 7d535a
    c->ticks.t32 = clock();
kusano 7d535a
#elif (__ACCLIB_UCLOCK_USE_WINMM)
kusano 7d535a
    c->ticks.t32 = timeGetTime();
kusano 7d535a
#elif (__ACCLIB_UCLOCK_USE_GETRUSAGE)
kusano 7d535a
    struct rusage ru;
kusano 7d535a
    if (getrusage(RUSAGE_SELF, &ru) != 0) c->ticks.td = 0;
kusano 7d535a
    else c->ticks.td = ru.ru_utime.tv_sec + ru.ru_utime.tv_usec / 1000000.0;
kusano 7d535a
#elif (HAVE_GETTIMEOFDAY)
kusano 7d535a
    struct timeval tv;
kusano 7d535a
    if (gettimeofday(&tv, 0) != 0) c->ticks.td = 0;
kusano 7d535a
    else c->ticks.td = tv.tv_sec + tv.tv_usec / 1000000.0;
kusano 7d535a
#else
kusano 7d535a
    ACC_UNUSED(c);
kusano 7d535a
#endif
kusano 7d535a
    }
kusano 7d535a
    ACC_UNUSED(h);
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(double, acc_uclock_get_elapsed) (acc_uclock_handle_p h, const acc_uclock_p start, const acc_uclock_p stop)
kusano 7d535a
{
kusano 7d535a
    double d;
kusano 7d535a
    if (!h->h) {
kusano 7d535a
        h->mode = -1;
kusano 7d535a
        return 0.0;
kusano 7d535a
    }
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_RDTSC)
kusano 7d535a
    if (h->mode == 1) {
kusano 7d535a
        if (!h->name) h->name = "rdtsc";
kusano 7d535a
        d = (double) ((acc_int64l_t)stop->tsc - (acc_int64l_t)start->tsc);
kusano 7d535a
        return d / 1000000000.0;
kusano 7d535a
    }
kusano 7d535a
#endif
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_PERFCTR)
kusano 7d535a
    if (h->pch.h && h->mode == 2) {
kusano 7d535a
        if (!h->name) h->name = "perfctr";
kusano 7d535a
        return acc_perfctr_get_elapsed(&h->pch, &start->pcc, &stop->pcc);
kusano 7d535a
    }
kusano 7d535a
#endif
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_QPC)
kusano 7d535a
    if (h->qpf > 0.0 && h->mode == 3) {
kusano 7d535a
        if (!h->name) h->name = "qpc";
kusano 7d535a
        if (start->qpc == 0 || stop->qpc == 0) return 0.0;
kusano 7d535a
        return (double) (stop->qpc - start->qpc) / h->qpf;
kusano 7d535a
    }
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS_WIN16)
kusano 7d535a
    h->mode = 11;
kusano 7d535a
    if (!h->name) h->name = "uclock";
kusano 7d535a
    d = (double) (stop->ticks.t32 - start->ticks.t32) / 100.0;
kusano 7d535a
    if (d < 0.0) d += 86400.0;
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
kusano 7d535a
    h->mode = 12;
kusano 7d535a
    if (!h->name) h->name = "uclock";
kusano 7d535a
    d = (double) (stop->ticks.t64 - start->ticks.t64) / (UCLOCKS_PER_SEC);
kusano 7d535a
#elif (__ACCLIB_UCLOCK_USE_CLOCK) && defined(acc_int64l_t)
kusano 7d535a
    h->mode = 13;
kusano 7d535a
    if (!h->name) h->name = "clock";
kusano 7d535a
    {
kusano 7d535a
    acc_int64l_t t;
kusano 7d535a
    t = stop->ticks.t64 - start->ticks.t64;
kusano 7d535a
    if (t < 0)
kusano 7d535a
        t += sizeof(clock_t) == 4 ? ACC_INT64_C(0x100000000) : ACC_INT64_C(0);
kusano 7d535a
    d = (double) t / (CLOCKS_PER_SEC);
kusano 7d535a
    }
kusano 7d535a
#elif (__ACCLIB_UCLOCK_USE_CLOCK)
kusano 7d535a
    h->mode = 14;
kusano 7d535a
    if (!h->name) h->name = "clock";
kusano 7d535a
    d = (double) (stop->ticks.t32 - start->ticks.t32) / (CLOCKS_PER_SEC);
kusano 7d535a
#elif (__ACCLIB_UCLOCK_USE_WINMM)
kusano 7d535a
    h->mode = 15;
kusano 7d535a
    if (!h->name) h->name = "timeGetTime";
kusano 7d535a
    d = (double) (stop->ticks.t32 - start->ticks.t32) / 1000.0;
kusano 7d535a
#elif (__ACCLIB_UCLOCK_USE_GETRUSAGE)
kusano 7d535a
    h->mode = 16;
kusano 7d535a
    if (!h->name) h->name = "getrusage";
kusano 7d535a
    d = stop->ticks.td - start->ticks.td;
kusano 7d535a
#elif (HAVE_GETTIMEOFDAY)
kusano 7d535a
    h->mode = 17;
kusano 7d535a
    if (!h->name) h->name = "gettimeofday";
kusano 7d535a
    d = stop->ticks.td - start->ticks.td;
kusano 7d535a
#else
kusano 7d535a
    h->mode = 0;
kusano 7d535a
    d = 0.0;
kusano 7d535a
#endif
kusano 7d535a
    return d;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(int, acc_uclock_flush_cpu_cache) (acc_uclock_handle_p h, unsigned flags)
kusano 7d535a
{
kusano 7d535a
    if (h->h) {
kusano 7d535a
#if (__ACCLIB_UCLOCK_USE_PERFCTR)
kusano 7d535a
        return acc_perfctr_flush_cpu_cache(&h->pch, flags);
kusano 7d535a
#endif
kusano 7d535a
    }
kusano 7d535a
    ACC_UNUSED(h); ACC_UNUSED(flags);
kusano 7d535a
    return -1;
kusano 7d535a
}
kusano 7d535a
#if defined(__ACCLIB_UCLOCK_NEED_WARN_POP)
kusano 7d535a
#  if (ACC_CC_MSC && (_MSC_VER >= 1200))
kusano 7d535a
#    pragma warning(pop)
kusano 7d535a
#  else
kusano 7d535a
#    error "__ACCLIB_UCLOCK_NEED_WARN_POP"
kusano 7d535a
#  endif
kusano 7d535a
#  undef __ACCLIB_UCLOCK_NEED_WARN_POP
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_MISC)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_MISC
kusano 7d535a
#define __ACCLIB_MISC_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)                r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
#if !defined(ACCLIB_PUBLIC_NOINLINE)
kusano 7d535a
#  if !defined(__acc_noinline)
kusano 7d535a
#    define ACCLIB_PUBLIC_NOINLINE(r,f)     r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#  elif (ACC_CC_GNUC >= 0x030400ul) || (ACC_CC_LLVM)
kusano 7d535a
#    define ACCLIB_PUBLIC_NOINLINE(r,f)     __acc_noinline __attribute__((__used__)) r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#  else
kusano 7d535a
#    define ACCLIB_PUBLIC_NOINLINE(r,f)     __acc_noinline r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#  endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
kusano 7d535a
#  pragma warn(push)
kusano 7d535a
#  pragma warn(disable:2007)
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC(const char *, acc_getenv) (const char *s)
kusano 7d535a
{
kusano 7d535a
#if defined(HAVE_GETENV)
kusano 7d535a
    return getenv(s);
kusano 7d535a
#else
kusano 7d535a
    ACC_UNUSED(s); return (const char *) 0;
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acclib_handle_t, acc_get_osfhandle) (int fd)
kusano 7d535a
{
kusano 7d535a
    if (fd < 0)
kusano 7d535a
        return -1;
kusano 7d535a
#if (ACC_OS_CYGWIN)
kusano 7d535a
    return get_osfhandle(fd);
kusano 7d535a
#elif (ACC_OS_EMX && defined(__RSXNT__))
kusano 7d535a
    return -1;
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
kusano 7d535a
    return -1;
kusano 7d535a
#elif (ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
# if (ACC_CC_PELLESC && (__POCC__ < 280))
kusano 7d535a
    return -1;
kusano 7d535a
# elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))
kusano 7d535a
    return -1;
kusano 7d535a
# elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1100))
kusano 7d535a
    return _os_handle(fd);
kusano 7d535a
# else
kusano 7d535a
    return _get_osfhandle(fd);
kusano 7d535a
# endif
kusano 7d535a
#else
kusano 7d535a
    return fd;
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(int, acc_set_binmode) (int fd, int binary)
kusano 7d535a
{
kusano 7d535a
#if (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC) && defined(__MINT__)
kusano 7d535a
    FILE* fp; int old_binary;
kusano 7d535a
    if (fd == STDIN_FILENO) fp = stdin;
kusano 7d535a
    else if (fd == STDOUT_FILENO) fp = stdout;
kusano 7d535a
    else if (fd == STDERR_FILENO) fp = stderr;
kusano 7d535a
    else return -1;
kusano 7d535a
    old_binary = fp->__mode.__binary;
kusano 7d535a
    __set_binmode(fp, binary ? 1 : 0);
kusano 7d535a
    return old_binary ? 1 : 0;
kusano 7d535a
#elif (ACC_ARCH_M68K && ACC_OS_TOS)
kusano 7d535a
    ACC_UNUSED(fd); ACC_UNUSED(binary);
kusano 7d535a
    return -1;
kusano 7d535a
#elif (ACC_OS_DOS16 && (ACC_CC_AZTECC || ACC_CC_PACIFICC))
kusano 7d535a
    ACC_UNUSED(fd); ACC_UNUSED(binary);
kusano 7d535a
    return -1;
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
kusano 7d535a
    int r; unsigned old_flags = __djgpp_hwint_flags;
kusano 7d535a
    ACC_COMPILE_TIME_ASSERT(O_BINARY > 0)
kusano 7d535a
    ACC_COMPILE_TIME_ASSERT(O_TEXT > 0)
kusano 7d535a
    if (fd < 0) return -1;
kusano 7d535a
    r = setmode(fd, binary ? O_BINARY : O_TEXT);
kusano 7d535a
    if ((old_flags & 1u) != (__djgpp_hwint_flags & 1u))
kusano 7d535a
        __djgpp_set_ctrl_c(!(old_flags & 1));
kusano 7d535a
    if (r == -1) return -1;
kusano 7d535a
    return (r & O_TEXT) ? 0 : 1;
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
kusano 7d535a
    if (fd < 0) return -1;
kusano 7d535a
    ACC_UNUSED(binary);
kusano 7d535a
    return 1;
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
kusano 7d535a
    FILE* fp; int r;
kusano 7d535a
    if (fd == fileno(stdin)) fp = stdin;
kusano 7d535a
    else if (fd == fileno(stdout)) fp = stdout;
kusano 7d535a
    else if (fd == fileno(stderr)) fp = stderr;
kusano 7d535a
    else return -1;
kusano 7d535a
    r = _setmode(fp, binary ? _BINARY : _TEXT);
kusano 7d535a
    if (r == -1) return -1;
kusano 7d535a
    return (r & _BINARY) ? 1 : 0;
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_MWERKS) && defined(__MSL__)
kusano 7d535a
    ACC_UNUSED(fd); ACC_UNUSED(binary);
kusano 7d535a
    return -1;
kusano 7d535a
#elif (ACC_OS_CYGWIN && (ACC_CC_GNUC < 0x025a00ul))
kusano 7d535a
    ACC_UNUSED(fd); ACC_UNUSED(binary);
kusano 7d535a
    return -1;
kusano 7d535a
#elif (ACC_OS_CYGWIN || ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_EMX || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
    int r;
kusano 7d535a
#if !defined(ACC_CC_ZORTECHC)
kusano 7d535a
    ACC_COMPILE_TIME_ASSERT(O_BINARY > 0)
kusano 7d535a
#endif
kusano 7d535a
    ACC_COMPILE_TIME_ASSERT(O_TEXT > 0)
kusano 7d535a
    if (fd < 0) return -1;
kusano 7d535a
    r = setmode(fd, binary ? O_BINARY : O_TEXT);
kusano 7d535a
    if (r == -1) return -1;
kusano 7d535a
    return (r & O_TEXT) ? 0 : 1;
kusano 7d535a
#else
kusano 7d535a
    if (fd < 0) return -1;
kusano 7d535a
    ACC_UNUSED(binary);
kusano 7d535a
    return 1;
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(int, acc_isatty) (int fd)
kusano 7d535a
{
kusano 7d535a
    if (fd < 0)
kusano 7d535a
        return 0;
kusano 7d535a
#if (ACC_OS_DOS16 && !defined(ACC_CC_AZTECC))
kusano 7d535a
    {
kusano 7d535a
        union REGS ri, ro;
kusano 7d535a
        ri.x.ax = 0x4400; ri.x.bx = fd;
kusano 7d535a
        int86(0x21, &ri, &ro);
kusano 7d535a
        if ((ro.x.cflag & 1) == 0)
kusano 7d535a
            if ((ro.x.ax & 0x83) != 0x83)
kusano 7d535a
                return 0;
kusano 7d535a
    }
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_WATCOMC)
kusano 7d535a
    {
kusano 7d535a
        union REGS ri, ro;
kusano 7d535a
        ri.w.ax = 0x4400; ri.w.bx = (unsigned short) fd;
kusano 7d535a
        int386(0x21, &ri, &ro);
kusano 7d535a
        if ((ro.w.cflag & 1) == 0)
kusano 7d535a
            if ((ro.w.ax & 0x83) != 0x83)
kusano 7d535a
                return 0;
kusano 7d535a
    }
kusano 7d535a
#elif (ACC_HAVE_WINDOWS_H)
kusano 7d535a
    {
kusano 7d535a
        acclib_handle_t h = __ACCLIB_FUNCNAME(acc_get_osfhandle)(fd);
kusano 7d535a
        if ((HANDLE)h != INVALID_HANDLE_VALUE)
kusano 7d535a
        {
kusano 7d535a
            DWORD d = 0;
kusano 7d535a
            if (GetConsoleMode((HANDLE)h, &d) == 0)
kusano 7d535a
                return 0;
kusano 7d535a
        }
kusano 7d535a
    }
kusano 7d535a
#endif
kusano 7d535a
#if defined(HAVE_ISATTY)
kusano 7d535a
    return (isatty(fd)) ? 1 : 0;
kusano 7d535a
#else
kusano 7d535a
    return 0;
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(int, acc_mkdir) (const char* name, unsigned mode)
kusano 7d535a
{
kusano 7d535a
#if !defined(HAVE_MKDIR)
kusano 7d535a
    ACC_UNUSED(name); ACC_UNUSED(mode);
kusano 7d535a
    return -1;
kusano 7d535a
#elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
kusano 7d535a
    ACC_UNUSED(mode);
kusano 7d535a
    return Dcreate(name);
kusano 7d535a
#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
kusano 7d535a
    return mkdir(name, mode);
kusano 7d535a
#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
kusano 7d535a
    return mkdir(name, mode);
kusano 7d535a
#elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
    ACC_UNUSED(mode);
kusano 7d535a
# if (ACC_CC_HIGHC || ACC_CC_PACIFICC)
kusano 7d535a
    return mkdir((char*) name);
kusano 7d535a
# else
kusano 7d535a
    return mkdir(name);
kusano 7d535a
# endif
kusano 7d535a
#else
kusano 7d535a
    return mkdir(name, mode);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(int, acc_rmdir) (const char* name)
kusano 7d535a
{
kusano 7d535a
#if !defined(HAVE_RMDIR)
kusano 7d535a
    ACC_UNUSED(name);
kusano 7d535a
    return -1;
kusano 7d535a
#elif ((ACC_OS_DOS16 || ACC_OS_DOS32) && (ACC_CC_HIGHC || ACC_CC_PACIFICC))
kusano 7d535a
    return rmdir((char *) name);
kusano 7d535a
#else
kusano 7d535a
    return rmdir(name);
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
#if defined(acc_int32e_t)
kusano 7d535a
ACCLIB_PUBLIC(acc_int32e_t, acc_muldiv32s) (acc_int32e_t a, acc_int32e_t b, acc_int32e_t x)
kusano 7d535a
{
kusano 7d535a
    acc_int32e_t r = 0;
kusano 7d535a
    if __acc_likely(x != 0)
kusano 7d535a
    {
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
        r = (acc_int32e_t) (((acc_int64l_t) a * b) / x);
kusano 7d535a
#else
kusano 7d535a
        ACC_UNUSED(a); ACC_UNUSED(b);
kusano 7d535a
#endif
kusano 7d535a
    }
kusano 7d535a
    return r;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC(acc_uint32e_t, acc_muldiv32u) (acc_uint32e_t a, acc_uint32e_t b, acc_uint32e_t x)
kusano 7d535a
{
kusano 7d535a
    acc_uint32e_t r = 0;
kusano 7d535a
    if __acc_likely(x != 0)
kusano 7d535a
    {
kusano 7d535a
#if defined(acc_int64l_t)
kusano 7d535a
        r = (acc_uint32e_t) (((acc_uint64l_t) a * b) / x);
kusano 7d535a
#else
kusano 7d535a
        ACC_UNUSED(a); ACC_UNUSED(b);
kusano 7d535a
#endif
kusano 7d535a
    }
kusano 7d535a
    return r;
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if 0
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(int, acc_syscall_clock_gettime) (int c)
kusano 7d535a
{
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_WIN16)
kusano 7d535a
ACC_EXTERN_C void __far __pascal DebugBreak(void);
kusano 7d535a
#endif
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(void, acc_debug_break) (void)
kusano 7d535a
{
kusano 7d535a
#if (ACC_OS_WIN16)
kusano 7d535a
    DebugBreak();
kusano 7d535a
#elif (ACC_ARCH_I086)
kusano 7d535a
#elif (ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
kusano 7d535a
    DebugBreak();
kusano 7d535a
#elif defined(ACC_CFG_NO_INLINE_ASM) && (ACC_OS_WIN32) && (ACC_HAVE_WINDOWS_H)
kusano 7d535a
    DebugBreak();
kusano 7d535a
#elif (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
kusano 7d535a
    __asm__ __volatile__("int $3\n" : : : __ACC_ASM_CLOBBER);
kusano 7d535a
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
kusano 7d535a
    __asm { int 3 }
kusano 7d535a
#elif (ACC_OS_WIN32) && (ACC_HAVE_WINDOWS_H)
kusano 7d535a
    DebugBreak();
kusano 7d535a
#else
kusano 7d535a
    * (volatile int *) 0x1 = -1;
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(void, acc_debug_nop) (void)
kusano 7d535a
{
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_query) (void)
kusano 7d535a
{
kusano 7d535a
#if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
kusano 7d535a
    size_t r;
kusano 7d535a
    __asm__ __volatile__("pushf\n pop %0\n" : "=a" (r) : : __ACC_ASM_CLOBBER);
kusano 7d535a
    return (int)(r >> 18) & 1;
kusano 7d535a
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
kusano 7d535a
    unsigned long r;
kusano 7d535a
    __asm {
kusano 7d535a
        pushf
kusano 7d535a
        pop eax
kusano 7d535a
        mov r,eax
kusano 7d535a
    }
kusano 7d535a
    return (int)(r >> 18) & 1;
kusano 7d535a
#else
kusano 7d535a
    return -1;
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_enable) (int v)
kusano 7d535a
{
kusano 7d535a
    int r;
kusano 7d535a
#if (ACC_ARCH_AMD64) && (ACC_ASM_SYNTAX_GNUC)
kusano 7d535a
    if (v) {
kusano 7d535a
        __asm__ __volatile__("pushf\n orl $262144,(%%rsp)\n popf\n" : : : __ACC_ASM_CLOBBER);
kusano 7d535a
    } else {
kusano 7d535a
        __asm__ __volatile__("pushf\n andl $-262145,(%%rsp)\n popf\n" : : : __ACC_ASM_CLOBBER);
kusano 7d535a
    }
kusano 7d535a
    r = 0;
kusano 7d535a
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
kusano 7d535a
    if (v) {
kusano 7d535a
        __asm__ __volatile__("pushf\n orl $262144,(%%esp)\n popf\n" : : : __ACC_ASM_CLOBBER);
kusano 7d535a
    } else {
kusano 7d535a
        __asm__ __volatile__("pushf\n andl $-262145,(%%esp)\n popf\n" : : : __ACC_ASM_CLOBBER);
kusano 7d535a
    }
kusano 7d535a
    r = 0;
kusano 7d535a
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
kusano 7d535a
    if (v) { __asm {
kusano 7d535a
        pushf
kusano 7d535a
        or dword ptr [esp],262144
kusano 7d535a
        popf
kusano 7d535a
    }} else { __asm {
kusano 7d535a
        pushf
kusano 7d535a
        and dword ptr [esp],-262145
kusano 7d535a
        popf
kusano 7d535a
    }}
kusano 7d535a
    r = 0;
kusano 7d535a
#else
kusano 7d535a
    r = -1;
kusano 7d535a
#endif
kusano 7d535a
    ACC_UNUSED(v); return r;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_qemu) (void)
kusano 7d535a
{
kusano 7d535a
    unsigned r = 0;
kusano 7d535a
#if (ACC_OS_POSIX_LINUX || ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
    const char* p;
kusano 7d535a
    p = acc_getenv("ACC_ENV_RUNNING_ON_QEMU");
kusano 7d535a
    if (p) {
kusano 7d535a
        if (p[0] == 0) r = 0;
kusano 7d535a
        else if ((p[0] >= '0' && p[0] <= '9') && p[1] == 0) r = p[0] - '0';
kusano 7d535a
        else r = 1;
kusano 7d535a
    }
kusano 7d535a
#endif
kusano 7d535a
    return r;
kusano 7d535a
}
kusano 7d535a
ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_valgrind) (void)
kusano 7d535a
{
kusano 7d535a
#if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
kusano 7d535a
    volatile unsigned long args[5] = { 0x1001, 0, 0, 0, 0 };
kusano 7d535a
    unsigned long r = 0;
kusano 7d535a
    __asm__ __volatile__(".byte 0xc1,0xc0,0x1d,0xc1,0xc0,0x03,0xc1,0xc8,0x1b,0xc1,0xc8,0x05,0xc1,0xc0,0x0d,0xc1,0xc0,0x13\n" : "=d" (r) : "a" (&args[0]), "d" (r) : __ACC_ASM_CLOBBER);
kusano 7d535a
    return (unsigned) r;
kusano 7d535a
#else
kusano 7d535a
    return 0;
kusano 7d535a
#endif
kusano 7d535a
}
kusano 7d535a
#if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
kusano 7d535a
#  pragma warn(pop)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if defined(ACC_WANT_ACCLIB_WILDARGV)
kusano 7d535a
#  undef ACC_WANT_ACCLIB_WILDARGV
kusano 7d535a
#define __ACCLIB_WILDARGV_CH_INCLUDED 1
kusano 7d535a
#if !defined(ACCLIB_PUBLIC)
kusano 7d535a
#  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_DOS16 || ACC_OS216 || ACC_OS_WIN16)
kusano 7d535a
#if 0 && (ACC_CC_MSC)
kusano 7d535a
ACC_EXTERN_C int __acc_cdecl __setargv(void);
kusano 7d535a
ACC_EXTERN_C int __acc_cdecl _setargv(void);
kusano 7d535a
ACC_EXTERN_C int __acc_cdecl _setargv(void) { return __setargv(); }
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_WIN32 || ACC_OS_WIN64)
kusano 7d535a
#if (ACC_CC_INTELC || ACC_CC_MSC)
kusano 7d535a
ACC_EXTERN_C int __acc_cdecl __setargv(void);
kusano 7d535a
ACC_EXTERN_C int __acc_cdecl _setargv(void);
kusano 7d535a
ACC_EXTERN_C int __acc_cdecl _setargv(void) { return __setargv(); }
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_EMX)
kusano 7d535a
#define __ACCLIB_HAVE_ACC_WILDARGV 1
kusano 7d535a
ACCLIB_PUBLIC(void, acc_wildargv) (int* argc, char*** argv)
kusano 7d535a
{
kusano 7d535a
    if (argc && argv) {
kusano 7d535a
        _response(argc, argv);
kusano 7d535a
        _wildcard(argc, argv);
kusano 7d535a
    }
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if (ACC_OS_CONSOLE_PSP) && defined(__PSPSDK_DEBUG__)
kusano 7d535a
#define __ACCLIB_HAVE_ACC_WILDARGV 1
kusano 7d535a
ACC_EXTERN_C int acc_psp_init_module(int*, char***, int);
kusano 7d535a
ACCLIB_PUBLIC(void, acc_wildargv) (int* argc, char*** argv)
kusano 7d535a
{
kusano 7d535a
    acc_psp_init_module(argc, argv, -1);
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#if !defined(__ACCLIB_HAVE_ACC_WILDARGV)
kusano 7d535a
#define __ACCLIB_HAVE_ACC_WILDARGV 1
kusano 7d535a
ACCLIB_PUBLIC(void, acc_wildargv) (int* argc, char*** argv)
kusano 7d535a
{
kusano 7d535a
#if 1 && (ACC_ARCH_I086PM)
kusano 7d535a
    if (ACC_MM_AHSHIFT != 3) { exit(1); }
kusano 7d535a
#elif 1 && (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC) && defined(__MINT__)
kusano 7d535a
    __binmode(1);
kusano 7d535a
    if (isatty(1)) __set_binmode(stdout, 0);
kusano 7d535a
    if (isatty(2)) __set_binmode(stderr, 0);
kusano 7d535a
#endif
kusano 7d535a
    ACC_UNUSED(argc); ACC_UNUSED(argv);
kusano 7d535a
}
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* vim:set ts=4 et: */