Home | History | Annotate | Download | only in src
      1 /* ACC --- Automatic Compiler Configuration
      2 
      3    This file is part of the LZO real-time data compression library.
      4 
      5    Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
      6    Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
      7    Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
      8    Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
      9    Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
     10    Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
     11    Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
     12    Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
     13    Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
     14    Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
     15    Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
     16    Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
     17    Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
     18    All Rights Reserved.
     19 
     20    The LZO library is free software; you can redistribute it and/or
     21    modify it under the terms of the GNU General Public License as
     22    published by the Free Software Foundation; either version 2 of
     23    the License, or (at your option) any later version.
     24 
     25    The LZO library is distributed in the hope that it will be useful,
     26    but WITHOUT ANY WARRANTY; without even the implied warranty of
     27    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     28    GNU General Public License for more details.
     29 
     30    You should have received a copy of the GNU General Public License
     31    along with the LZO library; see the file COPYING.
     32    If not, write to the Free Software Foundation, Inc.,
     33    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
     34 
     35    Markus F.X.J. Oberhumer
     36    <markus (at) oberhumer.com>
     37    http://www.oberhumer.com/opensource/lzo/
     38  */
     39 
     40 
     41 #ifndef __ACC_H_INCLUDED
     42 #define __ACC_H_INCLUDED 1
     43 #define ACC_VERSION     20080430L
     44 #if defined(__CYGWIN32__) && !defined(__CYGWIN__)
     45 #  define __CYGWIN__ __CYGWIN32__
     46 #endif
     47 #if defined(__IBMCPP__) && !defined(__IBMC__)
     48 #  define __IBMC__ __IBMCPP__
     49 #endif
     50 #if defined(__ICL) && defined(_WIN32) && !defined(__INTEL_COMPILER)
     51 #  define __INTEL_COMPILER __ICL
     52 #endif
     53 #if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE)
     54 #  define _ALL_SOURCE 1
     55 #endif
     56 #if defined(__mips__) && defined(__R5900__)
     57 #  if !defined(__LONG_MAX__)
     58 #    define __LONG_MAX__ 9223372036854775807L
     59 #  endif
     60 #endif
     61 #if defined(__INTEL_COMPILER) && defined(__linux__)
     62 #  pragma warning(disable: 193)
     63 #endif
     64 #if defined(__KEIL__) && defined(__C166__)
     65 #  pragma warning disable = 322
     66 #elif 0 && defined(__C251__)
     67 #  pragma warning disable = 322
     68 #endif
     69 #if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__)
     70 #  if (_MSC_VER >= 1300)
     71 #    pragma warning(disable: 4668)
     72 #  endif
     73 #endif
     74 #if defined(__POCC__) && defined(_WIN32)
     75 #  if (__POCC__ >= 400)
     76 #    pragma warn(disable: 2216)
     77 #  endif
     78 #endif
     79 #if 0 && defined(__WATCOMC__)
     80 #  if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060)
     81 #    pragma warning 203 9
     82 #  endif
     83 #endif
     84 #if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__)
     85 #  pragma option -h
     86 #endif
     87 #if defined(ACC_CFG_NO_CONFIG_HEADER)
     88 #elif defined(ACC_CFG_CONFIG_HEADER)
     89 #  include ACC_CFG_CONFIG_HEADER
     90 #else
     91 #endif
     92 #if defined(ACC_CFG_NO_LIMITS_H)
     93 #elif defined(ACC_LIBC_NAKED) || defined(ACC_BROKEN_LIMITS_H)
     94 #ifndef __ACC_FALLBACK_LIMITS_H_INCLUDED
     95 #define __ACC_FALLBACK_LIMITS_H_INCLUDED
     96 #undef CHAR_BIT
     97 #define CHAR_BIT        8
     98 #ifndef MB_LEN_MAX
     99 #define MB_LEN_MAX      1
    100 #endif
    101 #ifndef __SCHAR_MAX__
    102 #define __SCHAR_MAX__   127
    103 #endif
    104 #ifndef __SHRT_MAX__
    105 #define __SHRT_MAX__    32767
    106 #endif
    107 #ifndef __INT_MAX__
    108 #define __INT_MAX__     2147483647
    109 #endif
    110 #ifndef __LONG_MAX__
    111 #if defined(__alpha__) || defined(_LP64) || defined(__MIPS_PSX2__)
    112 #define __LONG_MAX__    9223372036854775807L
    113 #else
    114 #define __LONG_MAX__    2147483647L
    115 #endif
    116 #endif
    117 #undef SCHAR_MIN
    118 #undef SCHAR_MAX
    119 #undef UCHAR_MAX
    120 #define SCHAR_MIN       (-1 - SCHAR_MAX)
    121 #define SCHAR_MAX       (__SCHAR_MAX__)
    122 #define UCHAR_MAX       (SCHAR_MAX * 2 + 1)
    123 #undef SHRT_MIN
    124 #undef SHRT_MAX
    125 #undef USHRT_MAX
    126 #define SHRT_MIN        (-1 - SHRT_MAX)
    127 #define SHRT_MAX        (__SHRT_MAX__)
    128 #if ((__INT_MAX__) == (__SHRT_MAX__))
    129 #define USHRT_MAX       (SHRT_MAX * 2U + 1U)
    130 #else
    131 #define USHRT_MAX       (SHRT_MAX * 2 + 1)
    132 #endif
    133 #undef INT_MIN
    134 #undef INT_MAX
    135 #undef UINT_MAX
    136 #define INT_MIN         (-1 - INT_MAX)
    137 #define INT_MAX         (__INT_MAX__)
    138 #define UINT_MAX        (INT_MAX * 2U + 1U)
    139 #undef LONG_MIN
    140 #undef LONG_MAX
    141 #undef ULONG_MAX
    142 #define LONG_MIN        (-1L - LONG_MAX)
    143 #define LONG_MAX        ((__LONG_MAX__) + 0L)
    144 #define ULONG_MAX       (LONG_MAX * 2UL + 1UL)
    145 #undef CHAR_MIN
    146 #undef CHAR_MAX
    147 #if defined(__CHAR_UNSIGNED__) || defined(_CHAR_UNSIGNED)
    148 #define CHAR_MIN        0
    149 #define CHAR_MAX        UCHAR_MAX
    150 #else
    151 #define CHAR_MIN        SCHAR_MIN
    152 #define CHAR_MAX        SCHAR_MAX
    153 #endif
    154 #endif
    155 #else
    156 #  include <limits.h>
    157 #endif
    158 #if 0
    159 #define ACC_0xffffL             0xfffful
    160 #define ACC_0xffffffffL         0xfffffffful
    161 #else
    162 #define ACC_0xffffL             65535ul
    163 #define ACC_0xffffffffL         4294967295ul
    164 #endif
    165 #if (ACC_0xffffL == ACC_0xffffffffL)
    166 #  error "your preprocessor is broken 1"
    167 #endif
    168 #if (16ul * 16384ul != 262144ul)
    169 #  error "your preprocessor is broken 2"
    170 #endif
    171 #if 0
    172 #if (32767 >= 4294967295ul)
    173 #  error "your preprocessor is broken 3"
    174 #endif
    175 #if (65535u >= 4294967295ul)
    176 #  error "your preprocessor is broken 4"
    177 #endif
    178 #endif
    179 #if (UINT_MAX == ACC_0xffffL)
    180 #if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__)
    181 #  if !defined(MSDOS)
    182 #    define MSDOS 1
    183 #  endif
    184 #  if !defined(_MSDOS)
    185 #    define _MSDOS 1
    186 #  endif
    187 #elif 0 && defined(__VERSION) && defined(MB_LEN_MAX)
    188 #  if (__VERSION == 520) && (MB_LEN_MAX == 1)
    189 #    if !defined(__AZTEC_C__)
    190 #      define __AZTEC_C__ __VERSION
    191 #    endif
    192 #    if !defined(__DOS__)
    193 #      define __DOS__ 1
    194 #    endif
    195 #  endif
    196 #endif
    197 #endif
    198 #if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == ACC_0xffffL)
    199 #  define ptrdiff_t long
    200 #  define _PTRDIFF_T_DEFINED
    201 #endif
    202 #if (UINT_MAX == ACC_0xffffL)
    203 #  undef __ACC_RENAME_A
    204 #  undef __ACC_RENAME_B
    205 #  if defined(__AZTEC_C__) && defined(__DOS__)
    206 #    define __ACC_RENAME_A 1
    207 #  elif defined(_MSC_VER) && defined(MSDOS)
    208 #    if (_MSC_VER < 600)
    209 #      define __ACC_RENAME_A 1
    210 #    elif (_MSC_VER < 700)
    211 #      define __ACC_RENAME_B 1
    212 #    endif
    213 #  elif defined(__TSC__) && defined(__OS2__)
    214 #    define __ACC_RENAME_A 1
    215 #  elif defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0410)
    216 #    define __ACC_RENAME_A 1
    217 #  elif defined(__PACIFIC__) && defined(DOS)
    218 #    if !defined(__far)
    219 #      define __far far
    220 #    endif
    221 #    if !defined(__near)
    222 #      define __near near
    223 #    endif
    224 #  endif
    225 #  if defined(__ACC_RENAME_A)
    226 #    if !defined(__cdecl)
    227 #      define __cdecl cdecl
    228 #    endif
    229 #    if !defined(__far)
    230 #      define __far far
    231 #    endif
    232 #    if !defined(__huge)
    233 #      define __huge huge
    234 #    endif
    235 #    if !defined(__near)
    236 #      define __near near
    237 #    endif
    238 #    if !defined(__pascal)
    239 #      define __pascal pascal
    240 #    endif
    241 #    if !defined(__huge)
    242 #      define __huge huge
    243 #    endif
    244 #  elif defined(__ACC_RENAME_B)
    245 #    if !defined(__cdecl)
    246 #      define __cdecl _cdecl
    247 #    endif
    248 #    if !defined(__far)
    249 #      define __far _far
    250 #    endif
    251 #    if !defined(__huge)
    252 #      define __huge _huge
    253 #    endif
    254 #    if !defined(__near)
    255 #      define __near _near
    256 #    endif
    257 #    if !defined(__pascal)
    258 #      define __pascal _pascal
    259 #    endif
    260 #  elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
    261 #    if !defined(__cdecl)
    262 #      define __cdecl cdecl
    263 #    endif
    264 #    if !defined(__pascal)
    265 #      define __pascal pascal
    266 #    endif
    267 #  endif
    268 #  undef __ACC_RENAME_A
    269 #  undef __ACC_RENAME_B
    270 #endif
    271 #if (UINT_MAX == ACC_0xffffL)
    272 #if defined(__AZTEC_C__) && defined(__DOS__)
    273 #  define ACC_BROKEN_CDECL_ALT_SYNTAX 1
    274 #elif defined(_MSC_VER) && defined(MSDOS)
    275 #  if (_MSC_VER < 600)
    276 #    define ACC_BROKEN_INTEGRAL_CONSTANTS 1
    277 #  endif
    278 #  if (_MSC_VER < 700)
    279 #    define ACC_BROKEN_INTEGRAL_PROMOTION 1
    280 #    define ACC_BROKEN_SIZEOF 1
    281 #  endif
    282 #elif defined(__PACIFIC__) && defined(DOS)
    283 #  define ACC_BROKEN_INTEGRAL_CONSTANTS 1
    284 #elif defined(__TURBOC__) && defined(__MSDOS__)
    285 #  if (__TURBOC__ < 0x0150)
    286 #    define ACC_BROKEN_CDECL_ALT_SYNTAX 1
    287 #    define ACC_BROKEN_INTEGRAL_CONSTANTS 1
    288 #    define ACC_BROKEN_INTEGRAL_PROMOTION 1
    289 #  endif
    290 #  if (__TURBOC__ < 0x0200)
    291 #    define ACC_BROKEN_SIZEOF 1
    292 #  endif
    293 #  if (__TURBOC__ < 0x0400) && defined(__cplusplus)
    294 #    define ACC_BROKEN_CDECL_ALT_SYNTAX 1
    295 #  endif
    296 #elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
    297 #  define ACC_BROKEN_CDECL_ALT_SYNTAX 1
    298 #  define ACC_BROKEN_SIZEOF 1
    299 #endif
    300 #endif
    301 #if defined(__WATCOMC__) && (__WATCOMC__ < 900)
    302 #  define ACC_BROKEN_INTEGRAL_CONSTANTS 1
    303 #endif
    304 #if defined(_CRAY) && defined(_CRAY1)
    305 #  define ACC_BROKEN_SIGNED_RIGHT_SHIFT 1
    306 #endif
    307 #define ACC_PP_STRINGIZE(x)             #x
    308 #define ACC_PP_MACRO_EXPAND(x)          ACC_PP_STRINGIZE(x)
    309 #define ACC_PP_CONCAT2(a,b)             a ## b
    310 #define ACC_PP_CONCAT3(a,b,c)           a ## b ## c
    311 #define ACC_PP_CONCAT4(a,b,c,d)         a ## b ## c ## d
    312 #define ACC_PP_CONCAT5(a,b,c,d,e)       a ## b ## c ## d ## e
    313 #define ACC_PP_ECONCAT2(a,b)            ACC_PP_CONCAT2(a,b)
    314 #define ACC_PP_ECONCAT3(a,b,c)          ACC_PP_CONCAT3(a,b,c)
    315 #define ACC_PP_ECONCAT4(a,b,c,d)        ACC_PP_CONCAT4(a,b,c,d)
    316 #define ACC_PP_ECONCAT5(a,b,c,d,e)      ACC_PP_CONCAT5(a,b,c,d,e)
    317 #if 1
    318 #define ACC_CPP_STRINGIZE(x)            #x
    319 #define ACC_CPP_MACRO_EXPAND(x)         ACC_CPP_STRINGIZE(x)
    320 #define ACC_CPP_CONCAT2(a,b)            a ## b
    321 #define ACC_CPP_CONCAT3(a,b,c)          a ## b ## c
    322 #define ACC_CPP_CONCAT4(a,b,c,d)        a ## b ## c ## d
    323 #define ACC_CPP_CONCAT5(a,b,c,d,e)      a ## b ## c ## d ## e
    324 #define ACC_CPP_ECONCAT2(a,b)           ACC_CPP_CONCAT2(a,b)
    325 #define ACC_CPP_ECONCAT3(a,b,c)         ACC_CPP_CONCAT3(a,b,c)
    326 #define ACC_CPP_ECONCAT4(a,b,c,d)       ACC_CPP_CONCAT4(a,b,c,d)
    327 #define ACC_CPP_ECONCAT5(a,b,c,d,e)     ACC_CPP_CONCAT5(a,b,c,d,e)
    328 #endif
    329 #define __ACC_MASK_GEN(o,b)     (((((o) << ((b)-1)) - (o)) << 1) + (o))
    330 #if 1 && defined(__cplusplus)
    331 #  if !defined(__STDC_CONSTANT_MACROS)
    332 #    define __STDC_CONSTANT_MACROS 1
    333 #  endif
    334 #  if !defined(__STDC_LIMIT_MACROS)
    335 #    define __STDC_LIMIT_MACROS 1
    336 #  endif
    337 #endif
    338 #if defined(__cplusplus)
    339 #  define ACC_EXTERN_C extern "C"
    340 #else
    341 #  define ACC_EXTERN_C extern
    342 #endif
    343 #if !defined(__ACC_OS_OVERRIDE)
    344 #if defined(ACC_OS_FREESTANDING)
    345 #  define ACC_INFO_OS           "freestanding"
    346 #elif defined(ACC_OS_EMBEDDED)
    347 #  define ACC_INFO_OS           "embedded"
    348 #elif 1 && defined(__IAR_SYSTEMS_ICC__)
    349 #  define ACC_OS_EMBEDDED       1
    350 #  define ACC_INFO_OS           "embedded"
    351 #elif defined(__CYGWIN__) && defined(__GNUC__)
    352 #  define ACC_OS_CYGWIN         1
    353 #  define ACC_INFO_OS           "cygwin"
    354 #elif defined(__EMX__) && defined(__GNUC__)
    355 #  define ACC_OS_EMX            1
    356 #  define ACC_INFO_OS           "emx"
    357 #elif defined(__BEOS__)
    358 #  define ACC_OS_BEOS           1
    359 #  define ACC_INFO_OS           "beos"
    360 #elif defined(__Lynx__)
    361 #  define ACC_OS_LYNXOS         1
    362 #  define ACC_INFO_OS           "lynxos"
    363 #elif defined(__OS400__)
    364 #  define ACC_OS_OS400          1
    365 #  define ACC_INFO_OS           "os400"
    366 #elif defined(__QNX__)
    367 #  define ACC_OS_QNX            1
    368 #  define ACC_INFO_OS           "qnx"
    369 #elif defined(__BORLANDC__) && defined(__DPMI32__) && (__BORLANDC__ >= 0x0460)
    370 #  define ACC_OS_DOS32          1
    371 #  define ACC_INFO_OS           "dos32"
    372 #elif defined(__BORLANDC__) && defined(__DPMI16__)
    373 #  define ACC_OS_DOS16          1
    374 #  define ACC_INFO_OS           "dos16"
    375 #elif defined(__ZTC__) && defined(DOS386)
    376 #  define ACC_OS_DOS32          1
    377 #  define ACC_INFO_OS           "dos32"
    378 #elif defined(__OS2__) || defined(__OS2V2__)
    379 #  if (UINT_MAX == ACC_0xffffL)
    380 #    define ACC_OS_OS216        1
    381 #    define ACC_INFO_OS         "os216"
    382 #  elif (UINT_MAX == ACC_0xffffffffL)
    383 #    define ACC_OS_OS2          1
    384 #    define ACC_INFO_OS         "os2"
    385 #  else
    386 #    error "check your limits.h header"
    387 #  endif
    388 #elif defined(__WIN64__) || defined(_WIN64) || defined(WIN64)
    389 #  define ACC_OS_WIN64          1
    390 #  define ACC_INFO_OS           "win64"
    391 #elif defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS_386__)
    392 #  define ACC_OS_WIN32          1
    393 #  define ACC_INFO_OS           "win32"
    394 #elif defined(__MWERKS__) && defined(__INTEL__)
    395 #  define ACC_OS_WIN32          1
    396 #  define ACC_INFO_OS           "win32"
    397 #elif defined(__WINDOWS__) || defined(_WINDOWS) || defined(_Windows)
    398 #  if (UINT_MAX == ACC_0xffffL)
    399 #    define ACC_OS_WIN16        1
    400 #    define ACC_INFO_OS         "win16"
    401 #  elif (UINT_MAX == ACC_0xffffffffL)
    402 #    define ACC_OS_WIN32        1
    403 #    define ACC_INFO_OS         "win32"
    404 #  else
    405 #    error "check your limits.h header"
    406 #  endif
    407 #elif defined(__DOS__) || defined(__MSDOS__) || defined(_MSDOS) || defined(MSDOS) || (defined(__PACIFIC__) && defined(DOS))
    408 #  if (UINT_MAX == ACC_0xffffL)
    409 #    define ACC_OS_DOS16        1
    410 #    define ACC_INFO_OS         "dos16"
    411 #  elif (UINT_MAX == ACC_0xffffffffL)
    412 #    define ACC_OS_DOS32        1
    413 #    define ACC_INFO_OS         "dos32"
    414 #  else
    415 #    error "check your limits.h header"
    416 #  endif
    417 #elif defined(__WATCOMC__)
    418 #  if defined(__NT__) && (UINT_MAX == ACC_0xffffL)
    419 #    define ACC_OS_DOS16        1
    420 #    define ACC_INFO_OS         "dos16"
    421 #  elif defined(__NT__) && (__WATCOMC__ < 1100)
    422 #    define ACC_OS_WIN32        1
    423 #    define ACC_INFO_OS         "win32"
    424 #  elif defined(__linux__) || defined(__LINUX__)
    425 #    define ACC_OS_POSIX        1
    426 #    define ACC_INFO_OS         "posix"
    427 #  else
    428 #    error "please specify a target using the -bt compiler option"
    429 #  endif
    430 #elif defined(__palmos__)
    431 #  define ACC_OS_PALMOS         1
    432 #  define ACC_INFO_OS           "palmos"
    433 #elif defined(__TOS__) || defined(__atarist__)
    434 #  define ACC_OS_TOS            1
    435 #  define ACC_INFO_OS           "tos"
    436 #elif defined(macintosh) && !defined(__ppc__)
    437 #  define ACC_OS_MACCLASSIC     1
    438 #  define ACC_INFO_OS           "macclassic"
    439 #elif defined(__VMS)
    440 #  define ACC_OS_VMS            1
    441 #  define ACC_INFO_OS           "vms"
    442 #elif ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
    443 #  define ACC_OS_CONSOLE        1
    444 #  define ACC_OS_CONSOLE_PS2    1
    445 #  define ACC_INFO_OS           "console"
    446 #  define ACC_INFO_OS_CONSOLE   "ps2"
    447 #elif (defined(__mips__) && defined(__psp__))
    448 #  define ACC_OS_CONSOLE        1
    449 #  define ACC_OS_CONSOLE_PSP    1
    450 #  define ACC_INFO_OS           "console"
    451 #  define ACC_INFO_OS_CONSOLE   "psp"
    452 #else
    453 #  define ACC_OS_POSIX          1
    454 #  define ACC_INFO_OS           "posix"
    455 #endif
    456 #if (ACC_OS_POSIX)
    457 #  if defined(_AIX) || defined(__AIX__) || defined(__aix__)
    458 #    define ACC_OS_POSIX_AIX        1
    459 #    define ACC_INFO_OS_POSIX       "aix"
    460 #  elif defined(__FreeBSD__)
    461 #    define ACC_OS_POSIX_FREEBSD    1
    462 #    define ACC_INFO_OS_POSIX       "freebsd"
    463 #  elif defined(__hpux__) || defined(__hpux)
    464 #    define ACC_OS_POSIX_HPUX       1
    465 #    define ACC_INFO_OS_POSIX       "hpux"
    466 #  elif defined(__INTERIX)
    467 #    define ACC_OS_POSIX_INTERIX    1
    468 #    define ACC_INFO_OS_POSIX       "interix"
    469 #  elif defined(__IRIX__) || defined(__irix__)
    470 #    define ACC_OS_POSIX_IRIX       1
    471 #    define ACC_INFO_OS_POSIX       "irix"
    472 #  elif defined(__linux__) || defined(__linux) || defined(__LINUX__)
    473 #    define ACC_OS_POSIX_LINUX      1
    474 #    define ACC_INFO_OS_POSIX       "linux"
    475 #  elif defined(__APPLE__) || defined(__MACOS__)
    476 #    define ACC_OS_POSIX_MACOSX     1
    477 #    define ACC_INFO_OS_POSIX       "macosx"
    478 #  elif defined(__minix__) || defined(__minix)
    479 #    define ACC_OS_POSIX_MINIX      1
    480 #    define ACC_INFO_OS_POSIX       "minix"
    481 #  elif defined(__NetBSD__)
    482 #    define ACC_OS_POSIX_NETBSD     1
    483 #    define ACC_INFO_OS_POSIX       "netbsd"
    484 #  elif defined(__OpenBSD__)
    485 #    define ACC_OS_POSIX_OPENBSD    1
    486 #    define ACC_INFO_OS_POSIX       "openbsd"
    487 #  elif defined(__osf__)
    488 #    define ACC_OS_POSIX_OSF        1
    489 #    define ACC_INFO_OS_POSIX       "osf"
    490 #  elif defined(__solaris__) || defined(__sun)
    491 #    if defined(__SVR4) || defined(__svr4__)
    492 #      define ACC_OS_POSIX_SOLARIS  1
    493 #      define ACC_INFO_OS_POSIX     "solaris"
    494 #    else
    495 #      define ACC_OS_POSIX_SUNOS    1
    496 #      define ACC_INFO_OS_POSIX     "sunos"
    497 #    endif
    498 #  elif defined(__ultrix__) || defined(__ultrix)
    499 #    define ACC_OS_POSIX_ULTRIX     1
    500 #    define ACC_INFO_OS_POSIX       "ultrix"
    501 #  elif defined(_UNICOS)
    502 #    define ACC_OS_POSIX_UNICOS     1
    503 #    define ACC_INFO_OS_POSIX       "unicos"
    504 #  else
    505 #    define ACC_OS_POSIX_UNKNOWN    1
    506 #    define ACC_INFO_OS_POSIX       "unknown"
    507 #  endif
    508 #endif
    509 #endif
    510 #if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
    511 #  if (UINT_MAX != ACC_0xffffL)
    512 #    error "this should not happen"
    513 #  endif
    514 #  if (ULONG_MAX != ACC_0xffffffffL)
    515 #    error "this should not happen"
    516 #  endif
    517 #endif
    518 #if (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_WIN32 || ACC_OS_WIN64)
    519 #  if (UINT_MAX != ACC_0xffffffffL)
    520 #    error "this should not happen"
    521 #  endif
    522 #  if (ULONG_MAX != ACC_0xffffffffL)
    523 #    error "this should not happen"
    524 #  endif
    525 #endif
    526 #if defined(CIL) && defined(_GNUCC) && defined(__GNUC__)
    527 #  define ACC_CC_CILLY          1
    528 #  define ACC_INFO_CC           "Cilly"
    529 #  if defined(__CILLY__)
    530 #    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(__CILLY__)
    531 #  else
    532 #    define ACC_INFO_CCVER      "unknown"
    533 #  endif
    534 #elif 0 && defined(SDCC) && defined(__VERSION__) && !defined(__GNUC__)
    535 #  define ACC_CC_SDCC           1
    536 #  define ACC_INFO_CC           "sdcc"
    537 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(SDCC)
    538 #elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__)
    539 #  define ACC_CC_PATHSCALE      (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x100 + __PATHCC_PATCHLEVEL__)
    540 #  define ACC_INFO_CC           "Pathscale C"
    541 #  define ACC_INFO_CCVER        __PATHSCALE__
    542 #elif defined(__INTEL_COMPILER)
    543 #  define ACC_CC_INTELC         1
    544 #  define ACC_INFO_CC           "Intel C"
    545 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__INTEL_COMPILER)
    546 #  if defined(_WIN32) || defined(_WIN64)
    547 #    define ACC_CC_SYNTAX_MSC 1
    548 #  else
    549 #    define ACC_CC_SYNTAX_GNUC 1
    550 #  endif
    551 #elif defined(__POCC__) && defined(_WIN32)
    552 #  define ACC_CC_PELLESC        1
    553 #  define ACC_INFO_CC           "Pelles C"
    554 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__POCC__)
    555 #elif defined(__llvm__) && defined(__GNUC__) && defined(__VERSION__)
    556 #  if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
    557 #    define ACC_CC_LLVM         (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
    558 #  else
    559 #    define ACC_CC_LLVM         (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
    560 #  endif
    561 #  define ACC_INFO_CC           "llvm-gcc"
    562 #  define ACC_INFO_CCVER        __VERSION__
    563 #elif defined(__GNUC__) && defined(__VERSION__)
    564 #  if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
    565 #    define ACC_CC_GNUC         (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
    566 #  elif defined(__GNUC_MINOR__)
    567 #    define ACC_CC_GNUC         (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
    568 #  else
    569 #    define ACC_CC_GNUC         (__GNUC__ * 0x10000L)
    570 #  endif
    571 #  define ACC_INFO_CC           "gcc"
    572 #  define ACC_INFO_CCVER        __VERSION__
    573 #elif defined(__ACK__) && defined(_ACK)
    574 #  define ACC_CC_ACK            1
    575 #  define ACC_INFO_CC           "Amsterdam Compiler Kit C"
    576 #  define ACC_INFO_CCVER        "unknown"
    577 #elif defined(__AZTEC_C__)
    578 #  define ACC_CC_AZTECC         1
    579 #  define ACC_INFO_CC           "Aztec C"
    580 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__AZTEC_C__)
    581 #elif defined(__BORLANDC__)
    582 #  define ACC_CC_BORLANDC       1
    583 #  define ACC_INFO_CC           "Borland C"
    584 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__BORLANDC__)
    585 #elif defined(_CRAYC) && defined(_RELEASE)
    586 #  define ACC_CC_CRAYC          1
    587 #  define ACC_INFO_CC           "Cray C"
    588 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(_RELEASE)
    589 #elif defined(__DMC__) && defined(__SC__)
    590 #  define ACC_CC_DMC            1
    591 #  define ACC_INFO_CC           "Digital Mars C"
    592 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__DMC__)
    593 #elif defined(__DECC)
    594 #  define ACC_CC_DECC           1
    595 #  define ACC_INFO_CC           "DEC C"
    596 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__DECC)
    597 #elif defined(__HIGHC__)
    598 #  define ACC_CC_HIGHC          1
    599 #  define ACC_INFO_CC           "MetaWare High C"
    600 #  define ACC_INFO_CCVER        "unknown"
    601 #elif defined(__IAR_SYSTEMS_ICC__)
    602 #  define ACC_CC_IARC           1
    603 #  define ACC_INFO_CC           "IAR C"
    604 #  if defined(__VER__)
    605 #    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(__VER__)
    606 #  else
    607 #    define ACC_INFO_CCVER      "unknown"
    608 #  endif
    609 #elif defined(__IBMC__)
    610 #  define ACC_CC_IBMC           1
    611 #  define ACC_INFO_CC           "IBM C"
    612 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__IBMC__)
    613 #elif defined(__KEIL__) && defined(__C166__)
    614 #  define ACC_CC_KEILC          1
    615 #  define ACC_INFO_CC           "Keil C"
    616 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__C166__)
    617 #elif defined(__LCC__) && defined(_WIN32) && defined(__LCCOPTIMLEVEL)
    618 #  define ACC_CC_LCCWIN32       1
    619 #  define ACC_INFO_CC           "lcc-win32"
    620 #  define ACC_INFO_CCVER        "unknown"
    621 #elif defined(__LCC__)
    622 #  define ACC_CC_LCC            1
    623 #  define ACC_INFO_CC           "lcc"
    624 #  if defined(__LCC_VERSION__)
    625 #    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(__LCC_VERSION__)
    626 #  else
    627 #    define ACC_INFO_CCVER      "unknown"
    628 #  endif
    629 #elif defined(_MSC_VER)
    630 #  define ACC_CC_MSC            1
    631 #  define ACC_INFO_CC           "Microsoft C"
    632 #  if defined(_MSC_FULL_VER)
    633 #    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(_MSC_VER) "." ACC_PP_MACRO_EXPAND(_MSC_FULL_VER)
    634 #  else
    635 #    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(_MSC_VER)
    636 #  endif
    637 #elif defined(__MWERKS__)
    638 #  define ACC_CC_MWERKS         1
    639 #  define ACC_INFO_CC           "Metrowerks C"
    640 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__MWERKS__)
    641 #elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386)
    642 #  define ACC_CC_NDPC           1
    643 #  define ACC_INFO_CC           "Microway NDP C"
    644 #  define ACC_INFO_CCVER        "unknown"
    645 #elif defined(__PACIFIC__)
    646 #  define ACC_CC_PACIFICC       1
    647 #  define ACC_INFO_CC           "Pacific C"
    648 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__PACIFIC__)
    649 #elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__))
    650 #  define ACC_CC_PGI            1
    651 #  define ACC_INFO_CC           "Portland Group PGI C"
    652 #  define ACC_INFO_CCVER        "unknown"
    653 #elif defined(__PUREC__) && defined(__TOS__)
    654 #  define ACC_CC_PUREC          1
    655 #  define ACC_INFO_CC           "Pure C"
    656 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__PUREC__)
    657 #elif defined(__SC__) && defined(__ZTC__)
    658 #  define ACC_CC_SYMANTECC      1
    659 #  define ACC_INFO_CC           "Symantec C"
    660 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__SC__)
    661 #elif defined(__SUNPRO_C)
    662 #  define ACC_INFO_CC           "SunPro C"
    663 #  if ((__SUNPRO_C)+0 > 0)
    664 #    define ACC_CC_SUNPROC      __SUNPRO_C
    665 #    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(__SUNPRO_C)
    666 #  else
    667 #    define ACC_CC_SUNPROC      1
    668 #    define ACC_INFO_CCVER      "unknown"
    669 #  endif
    670 #elif defined(__SUNPRO_CC)
    671 #  define ACC_INFO_CC           "SunPro C"
    672 #  if ((__SUNPRO_CC)+0 > 0)
    673 #    define ACC_CC_SUNPROC      __SUNPRO_CC
    674 #    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(__SUNPRO_CC)
    675 #  else
    676 #    define ACC_CC_SUNPROC      1
    677 #    define ACC_INFO_CCVER      "unknown"
    678 #  endif
    679 #elif defined(__TINYC__)
    680 #  define ACC_CC_TINYC          1
    681 #  define ACC_INFO_CC           "Tiny C"
    682 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__TINYC__)
    683 #elif defined(__TSC__)
    684 #  define ACC_CC_TOPSPEEDC      1
    685 #  define ACC_INFO_CC           "TopSpeed C"
    686 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__TSC__)
    687 #elif defined(__WATCOMC__)
    688 #  define ACC_CC_WATCOMC        1
    689 #  define ACC_INFO_CC           "Watcom C"
    690 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__WATCOMC__)
    691 #elif defined(__TURBOC__)
    692 #  define ACC_CC_TURBOC         1
    693 #  define ACC_INFO_CC           "Turbo C"
    694 #  define ACC_INFO_CCVER        ACC_PP_MACRO_EXPAND(__TURBOC__)
    695 #elif defined(__ZTC__)
    696 #  define ACC_CC_ZORTECHC       1
    697 #  define ACC_INFO_CC           "Zortech C"
    698 #  if (__ZTC__ == 0x310)
    699 #    define ACC_INFO_CCVER      "0x310"
    700 #  else
    701 #    define ACC_INFO_CCVER      ACC_PP_MACRO_EXPAND(__ZTC__)
    702 #  endif
    703 #else
    704 #  define ACC_CC_UNKNOWN        1
    705 #  define ACC_INFO_CC           "unknown"
    706 #  define ACC_INFO_CCVER        "unknown"
    707 #endif
    708 #if 0 && (ACC_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER)
    709 #  error "ACC_CC_MSC: _MSC_FULL_VER is not defined"
    710 #endif
    711 #if !defined(__ACC_ARCH_OVERRIDE) && !defined(ACC_ARCH_GENERIC) && defined(_CRAY)
    712 #  if (UINT_MAX > ACC_0xffffffffL) && defined(_CRAY)
    713 #    if defined(_CRAYMPP) || defined(_CRAYT3D) || defined(_CRAYT3E)
    714 #      define ACC_ARCH_CRAY_MPP     1
    715 #    elif defined(_CRAY1)
    716 #      define ACC_ARCH_CRAY_PVP     1
    717 #    endif
    718 #  endif
    719 #endif
    720 #if !defined(__ACC_ARCH_OVERRIDE)
    721 #if defined(ACC_ARCH_GENERIC)
    722 #  define ACC_INFO_ARCH             "generic"
    723 #elif (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
    724 #  define ACC_ARCH_I086             1
    725 #  define ACC_ARCH_IA16             1
    726 #  define ACC_INFO_ARCH             "i086"
    727 #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
    728 #  define ACC_ARCH_ALPHA            1
    729 #  define ACC_INFO_ARCH             "alpha"
    730 #elif (ACC_ARCH_CRAY_MPP) && (defined(_CRAYT3D) || defined(_CRAYT3E))
    731 #  define ACC_ARCH_ALPHA            1
    732 #  define ACC_INFO_ARCH             "alpha"
    733 #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
    734 #  define ACC_ARCH_AMD64            1
    735 #  define ACC_INFO_ARCH             "amd64"
    736 #elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB))
    737 #  define ACC_ARCH_ARM              1
    738 #  define ACC_ARCH_ARM_THUMB        1
    739 #  define ACC_INFO_ARCH             "arm_thumb"
    740 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__)
    741 #  define ACC_ARCH_ARM              1
    742 #  if defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 1)
    743 #    define ACC_ARCH_ARM_THUMB      1
    744 #    define ACC_INFO_ARCH           "arm_thumb"
    745 #  elif defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 2)
    746 #    define ACC_INFO_ARCH           "arm"
    747 #  else
    748 #    define ACC_INFO_ARCH           "arm"
    749 #  endif
    750 #elif defined(__arm__) || defined(_M_ARM)
    751 #  define ACC_ARCH_ARM              1
    752 #  define ACC_INFO_ARCH             "arm"
    753 #elif (UINT_MAX <= ACC_0xffffL) && defined(__AVR__)
    754 #  define ACC_ARCH_AVR              1
    755 #  define ACC_INFO_ARCH             "avr"
    756 #elif defined(__bfin__)
    757 #  define ACC_ARCH_BLACKFIN         1
    758 #  define ACC_INFO_ARCH             "blackfin"
    759 #elif (UINT_MAX == ACC_0xffffL) && defined(__C166__)
    760 #  define ACC_ARCH_C166             1
    761 #  define ACC_INFO_ARCH             "c166"
    762 #elif defined(__cris__)
    763 #  define ACC_ARCH_CRIS             1
    764 #  define ACC_INFO_ARCH             "cris"
    765 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCEZ80__)
    766 #  define ACC_ARCH_EZ80             1
    767 #  define ACC_INFO_ARCH             "ez80"
    768 #elif defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
    769 #  define ACC_ARCH_H8300            1
    770 #  define ACC_INFO_ARCH             "h8300"
    771 #elif defined(__hppa__) || defined(__hppa)
    772 #  define ACC_ARCH_HPPA             1
    773 #  define ACC_INFO_ARCH             "hppa"
    774 #elif defined(__386__) || defined(__i386__) || defined(__i386) || defined(_M_IX86) || defined(_M_I386)
    775 #  define ACC_ARCH_I386             1
    776 #  define ACC_ARCH_IA32             1
    777 #  define ACC_INFO_ARCH             "i386"
    778 #elif (ACC_CC_ZORTECHC && defined(__I86__))
    779 #  define ACC_ARCH_I386             1
    780 #  define ACC_ARCH_IA32             1
    781 #  define ACC_INFO_ARCH             "i386"
    782 #elif (ACC_OS_DOS32 && ACC_CC_HIGHC) && defined(_I386)
    783 #  define ACC_ARCH_I386             1
    784 #  define ACC_ARCH_IA32             1
    785 #  define ACC_INFO_ARCH             "i386"
    786 #elif defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
    787 #  define ACC_ARCH_IA64             1
    788 #  define ACC_INFO_ARCH             "ia64"
    789 #elif (UINT_MAX == ACC_0xffffL) && defined(__m32c__)
    790 #  define ACC_ARCH_M16C             1
    791 #  define ACC_INFO_ARCH             "m16c"
    792 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCM16C__)
    793 #  define ACC_ARCH_M16C             1
    794 #  define ACC_INFO_ARCH             "m16c"
    795 #elif defined(__m32r__)
    796 #  define ACC_ARCH_M32R             1
    797 #  define ACC_INFO_ARCH             "m32r"
    798 #elif (ACC_OS_TOS) || defined(__m68k__) || defined(__m68000__) || defined(__mc68000__) || defined(__mc68020__) || defined(_M_M68K)
    799 #  define ACC_ARCH_M68K             1
    800 #  define ACC_INFO_ARCH             "m68k"
    801 #elif (UINT_MAX == ACC_0xffffL) && defined(__C251__)
    802 #  define ACC_ARCH_MCS251           1
    803 #  define ACC_INFO_ARCH             "mcs251"
    804 #elif (UINT_MAX == ACC_0xffffL) && defined(__C51__)
    805 #  define ACC_ARCH_MCS51            1
    806 #  define ACC_INFO_ARCH             "mcs51"
    807 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC8051__)
    808 #  define ACC_ARCH_MCS51            1
    809 #  define ACC_INFO_ARCH             "mcs51"
    810 #elif defined(__mips__) || defined(__mips) || defined(_MIPS_ARCH) || defined(_M_MRX000)
    811 #  define ACC_ARCH_MIPS             1
    812 #  define ACC_INFO_ARCH             "mips"
    813 #elif (UINT_MAX == ACC_0xffffL) && defined(__MSP430__)
    814 #  define ACC_ARCH_MSP430           1
    815 #  define ACC_INFO_ARCH             "msp430"
    816 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC430__)
    817 #  define ACC_ARCH_MSP430           1
    818 #  define ACC_INFO_ARCH             "msp430"
    819 #elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR)
    820 #  define ACC_ARCH_POWERPC          1
    821 #  define ACC_INFO_ARCH             "powerpc"
    822 #elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
    823 #  define ACC_ARCH_S390             1
    824 #  define ACC_INFO_ARCH             "s390"
    825 #elif defined(__sh__) || defined(_M_SH)
    826 #  define ACC_ARCH_SH               1
    827 #  define ACC_INFO_ARCH             "sh"
    828 #elif defined(__sparc__) || defined(__sparc) || defined(__sparcv8)
    829 #  define ACC_ARCH_SPARC            1
    830 #  define ACC_INFO_ARCH             "sparc"
    831 #elif defined(__SPU__)
    832 #  define ACC_ARCH_SPU              1
    833 #  define ACC_INFO_ARCH             "spu"
    834 #elif (UINT_MAX == ACC_0xffffL) && defined(__z80)
    835 #  define ACC_ARCH_Z80              1
    836 #  define ACC_INFO_ARCH             "z80"
    837 #elif (ACC_ARCH_CRAY_PVP)
    838 #  if defined(_CRAYSV1)
    839 #    define ACC_ARCH_CRAY_SV1       1
    840 #    define ACC_INFO_ARCH           "cray_sv1"
    841 #  elif (_ADDR64)
    842 #    define ACC_ARCH_CRAY_T90       1
    843 #    define ACC_INFO_ARCH           "cray_t90"
    844 #  elif (_ADDR32)
    845 #    define ACC_ARCH_CRAY_YMP       1
    846 #    define ACC_INFO_ARCH           "cray_ymp"
    847 #  else
    848 #    define ACC_ARCH_CRAY_XMP       1
    849 #    define ACC_INFO_ARCH           "cray_xmp"
    850 #  endif
    851 #else
    852 #  define ACC_ARCH_UNKNOWN          1
    853 #  define ACC_INFO_ARCH             "unknown"
    854 #endif
    855 #endif
    856 #if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_DOS32 || ACC_OS_OS2)
    857 #  error "FIXME - missing define for CPU architecture"
    858 #endif
    859 #if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_WIN32)
    860 #  error "FIXME - missing WIN32 define for CPU architecture"
    861 #endif
    862 #if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_WIN64)
    863 #  error "FIXME - missing WIN64 define for CPU architecture"
    864 #endif
    865 #if (ACC_OS_OS216 || ACC_OS_WIN16)
    866 #  define ACC_ARCH_I086PM           1
    867 #  define ACC_ARCH_IA16PM           1
    868 #elif 1 && (ACC_OS_DOS16 && defined(BLX286))
    869 #  define ACC_ARCH_I086PM           1
    870 #  define ACC_ARCH_IA16PM           1
    871 #elif 1 && (ACC_OS_DOS16 && defined(DOSX286))
    872 #  define ACC_ARCH_I086PM           1
    873 #  define ACC_ARCH_IA16PM           1
    874 #elif 1 && (ACC_OS_DOS16 && ACC_CC_BORLANDC && defined(__DPMI16__))
    875 #  define ACC_ARCH_I086PM           1
    876 #  define ACC_ARCH_IA16PM           1
    877 #endif
    878 #if defined(ACC_ARCH_ARM_THUMB) && !defined(ACC_ARCH_ARM)
    879 #  error "this should not happen"
    880 #endif
    881 #if defined(ACC_ARCH_I086PM) && !defined(ACC_ARCH_I086)
    882 #  error "this should not happen"
    883 #endif
    884 #if (ACC_ARCH_I086)
    885 #  if (UINT_MAX != ACC_0xffffL)
    886 #    error "this should not happen"
    887 #  endif
    888 #  if (ULONG_MAX != ACC_0xffffffffL)
    889 #    error "this should not happen"
    890 #  endif
    891 #endif
    892 #if (ACC_ARCH_I386)
    893 #  if (UINT_MAX != ACC_0xffffL) && defined(__i386_int16__)
    894 #    error "this should not happen"
    895 #  endif
    896 #  if (UINT_MAX != ACC_0xffffffffL) && !defined(__i386_int16__)
    897 #    error "this should not happen"
    898 #  endif
    899 #  if (ULONG_MAX != ACC_0xffffffffL)
    900 #    error "this should not happen"
    901 #  endif
    902 #endif
    903 #if !defined(__ACC_MM_OVERRIDE)
    904 #if (ACC_ARCH_I086)
    905 #if (UINT_MAX != ACC_0xffffL)
    906 #  error "this should not happen"
    907 #endif
    908 #if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM)
    909 #  define ACC_MM_TINY           1
    910 #elif defined(__HUGE__) || defined(_HUGE_) || defined(M_I86HM) || defined(_M_I86HM)
    911 #  define ACC_MM_HUGE           1
    912 #elif defined(__SMALL__) || defined(M_I86SM) || defined(_M_I86SM) || defined(SMALL_MODEL)
    913 #  define ACC_MM_SMALL          1
    914 #elif defined(__MEDIUM__) || defined(M_I86MM) || defined(_M_I86MM)
    915 #  define ACC_MM_MEDIUM         1
    916 #elif defined(__COMPACT__) || defined(M_I86CM) || defined(_M_I86CM)
    917 #  define ACC_MM_COMPACT        1
    918 #elif defined(__LARGE__) || defined(M_I86LM) || defined(_M_I86LM) || defined(LARGE_MODEL)
    919 #  define ACC_MM_LARGE          1
    920 #elif (ACC_CC_AZTECC)
    921 #  if defined(_LARGE_CODE) && defined(_LARGE_DATA)
    922 #    define ACC_MM_LARGE        1
    923 #  elif defined(_LARGE_CODE)
    924 #    define ACC_MM_MEDIUM       1
    925 #  elif defined(_LARGE_DATA)
    926 #    define ACC_MM_COMPACT      1
    927 #  else
    928 #    define ACC_MM_SMALL        1
    929 #  endif
    930 #elif (ACC_CC_ZORTECHC && defined(__VCM__))
    931 #  define ACC_MM_LARGE          1
    932 #else
    933 #  error "unknown memory model"
    934 #endif
    935 #if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
    936 #define ACC_HAVE_MM_HUGE_PTR        1
    937 #define ACC_HAVE_MM_HUGE_ARRAY      1
    938 #if (ACC_MM_TINY)
    939 #  undef ACC_HAVE_MM_HUGE_ARRAY
    940 #endif
    941 #if (ACC_CC_AZTECC || ACC_CC_PACIFICC || ACC_CC_ZORTECHC)
    942 #  undef ACC_HAVE_MM_HUGE_PTR
    943 #  undef ACC_HAVE_MM_HUGE_ARRAY
    944 #elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
    945 #  undef ACC_HAVE_MM_HUGE_ARRAY
    946 #elif (ACC_CC_MSC && defined(_QC))
    947 #  undef ACC_HAVE_MM_HUGE_ARRAY
    948 #  if (_MSC_VER < 600)
    949 #    undef ACC_HAVE_MM_HUGE_PTR
    950 #  endif
    951 #elif (ACC_CC_TURBOC && (__TURBOC__ < 0x0295))
    952 #  undef ACC_HAVE_MM_HUGE_ARRAY
    953 #endif
    954 #if (ACC_ARCH_I086PM) && !defined(ACC_HAVE_MM_HUGE_PTR)
    955 #  if (ACC_OS_DOS16)
    956 #    error "this should not happen"
    957 #  elif (ACC_CC_ZORTECHC)
    958 #  else
    959 #    error "this should not happen"
    960 #  endif
    961 #endif
    962 #ifdef __cplusplus
    963 extern "C" {
    964 #endif
    965 #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
    966    extern void __near __cdecl _AHSHIFT(void);
    967 #  define ACC_MM_AHSHIFT      ((unsigned) _AHSHIFT)
    968 #elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
    969    extern void __near __cdecl _AHSHIFT(void);
    970 #  define ACC_MM_AHSHIFT      ((unsigned) _AHSHIFT)
    971 #elif (ACC_CC_MSC || ACC_CC_TOPSPEEDC)
    972    extern void __near __cdecl _AHSHIFT(void);
    973 #  define ACC_MM_AHSHIFT      ((unsigned) _AHSHIFT)
    974 #elif (ACC_CC_TURBOC && (__TURBOC__ >= 0x0295))
    975    extern void __near __cdecl _AHSHIFT(void);
    976 #  define ACC_MM_AHSHIFT      ((unsigned) _AHSHIFT)
    977 #elif ((ACC_CC_AZTECC || ACC_CC_PACIFICC || ACC_CC_TURBOC) && ACC_OS_DOS16)
    978 #  define ACC_MM_AHSHIFT      12
    979 #elif (ACC_CC_WATCOMC)
    980    extern unsigned char _HShift;
    981 #  define ACC_MM_AHSHIFT      ((unsigned) _HShift)
    982 #else
    983 #  error "FIXME - implement ACC_MM_AHSHIFT"
    984 #endif
    985 #ifdef __cplusplus
    986 }
    987 #endif
    988 #endif
    989 #elif (ACC_ARCH_C166)
    990 #if !defined(__MODEL__)
    991 #  error "FIXME - C166 __MODEL__"
    992 #elif ((__MODEL__) == 0)
    993 #  define ACC_MM_SMALL          1
    994 #elif ((__MODEL__) == 1)
    995 #  define ACC_MM_SMALL          1
    996 #elif ((__MODEL__) == 2)
    997 #  define ACC_MM_LARGE          1
    998 #elif ((__MODEL__) == 3)
    999 #  define ACC_MM_TINY           1
   1000 #elif ((__MODEL__) == 4)
   1001 #  define ACC_MM_XTINY          1
   1002 #elif ((__MODEL__) == 5)
   1003 #  define ACC_MM_XSMALL         1
   1004 #else
   1005 #  error "FIXME - C166 __MODEL__"
   1006 #endif
   1007 #elif (ACC_ARCH_MCS251)
   1008 #if !defined(__MODEL__)
   1009 #  error "FIXME - MCS251 __MODEL__"
   1010 #elif ((__MODEL__) == 0)
   1011 #  define ACC_MM_SMALL          1
   1012 #elif ((__MODEL__) == 2)
   1013 #  define ACC_MM_LARGE          1
   1014 #elif ((__MODEL__) == 3)
   1015 #  define ACC_MM_TINY           1
   1016 #elif ((__MODEL__) == 4)
   1017 #  define ACC_MM_XTINY          1
   1018 #elif ((__MODEL__) == 5)
   1019 #  define ACC_MM_XSMALL         1
   1020 #else
   1021 #  error "FIXME - MCS251 __MODEL__"
   1022 #endif
   1023 #elif (ACC_ARCH_MCS51)
   1024 #if !defined(__MODEL__)
   1025 #  error "FIXME - MCS51 __MODEL__"
   1026 #elif ((__MODEL__) == 1)
   1027 #  define ACC_MM_SMALL          1
   1028 #elif ((__MODEL__) == 2)
   1029 #  define ACC_MM_LARGE          1
   1030 #elif ((__MODEL__) == 3)
   1031 #  define ACC_MM_TINY           1
   1032 #elif ((__MODEL__) == 4)
   1033 #  define ACC_MM_XTINY          1
   1034 #elif ((__MODEL__) == 5)
   1035 #  define ACC_MM_XSMALL         1
   1036 #else
   1037 #  error "FIXME - MCS51 __MODEL__"
   1038 #endif
   1039 #elif (ACC_ARCH_CRAY_PVP)
   1040 #  define ACC_MM_PVP            1
   1041 #else
   1042 #  define ACC_MM_FLAT           1
   1043 #endif
   1044 #if (ACC_MM_COMPACT)
   1045 #  define ACC_INFO_MM           "compact"
   1046 #elif (ACC_MM_FLAT)
   1047 #  define ACC_INFO_MM           "flat"
   1048 #elif (ACC_MM_HUGE)
   1049 #  define ACC_INFO_MM           "huge"
   1050 #elif (ACC_MM_LARGE)
   1051 #  define ACC_INFO_MM           "large"
   1052 #elif (ACC_MM_MEDIUM)
   1053 #  define ACC_INFO_MM           "medium"
   1054 #elif (ACC_MM_PVP)
   1055 #  define ACC_INFO_MM           "pvp"
   1056 #elif (ACC_MM_SMALL)
   1057 #  define ACC_INFO_MM           "small"
   1058 #elif (ACC_MM_TINY)
   1059 #  define ACC_INFO_MM           "tiny"
   1060 #else
   1061 #  error "unknown memory model"
   1062 #endif
   1063 #endif
   1064 #if defined(SIZEOF_SHORT)
   1065 #  define ACC_SIZEOF_SHORT          (SIZEOF_SHORT)
   1066 #endif
   1067 #if defined(SIZEOF_INT)
   1068 #  define ACC_SIZEOF_INT            (SIZEOF_INT)
   1069 #endif
   1070 #if defined(SIZEOF_LONG)
   1071 #  define ACC_SIZEOF_LONG           (SIZEOF_LONG)
   1072 #endif
   1073 #if defined(SIZEOF_LONG_LONG)
   1074 #  define ACC_SIZEOF_LONG_LONG      (SIZEOF_LONG_LONG)
   1075 #endif
   1076 #if defined(SIZEOF___INT16)
   1077 #  define ACC_SIZEOF___INT16        (SIZEOF___INT16)
   1078 #endif
   1079 #if defined(SIZEOF___INT32)
   1080 #  define ACC_SIZEOF___INT32        (SIZEOF___INT32)
   1081 #endif
   1082 #if defined(SIZEOF___INT64)
   1083 #  define ACC_SIZEOF___INT64        (SIZEOF___INT64)
   1084 #endif
   1085 #if defined(SIZEOF_VOID_P)
   1086 #  define ACC_SIZEOF_VOID_P         (SIZEOF_VOID_P)
   1087 #endif
   1088 #if defined(SIZEOF_SIZE_T)
   1089 #  define ACC_SIZEOF_SIZE_T         (SIZEOF_SIZE_T)
   1090 #endif
   1091 #if defined(SIZEOF_PTRDIFF_T)
   1092 #  define ACC_SIZEOF_PTRDIFF_T      (SIZEOF_PTRDIFF_T)
   1093 #endif
   1094 #define __ACC_LSR(x,b)    (((x)+0ul) >> (b))
   1095 #if !defined(ACC_SIZEOF_SHORT)
   1096 #  if (ACC_ARCH_CRAY_PVP)
   1097 #    define ACC_SIZEOF_SHORT        8
   1098 #  elif (USHRT_MAX == ACC_0xffffL)
   1099 #    define ACC_SIZEOF_SHORT        2
   1100 #  elif (__ACC_LSR(USHRT_MAX,7) == 1)
   1101 #    define ACC_SIZEOF_SHORT        1
   1102 #  elif (__ACC_LSR(USHRT_MAX,15) == 1)
   1103 #    define ACC_SIZEOF_SHORT        2
   1104 #  elif (__ACC_LSR(USHRT_MAX,31) == 1)
   1105 #    define ACC_SIZEOF_SHORT        4
   1106 #  elif (__ACC_LSR(USHRT_MAX,63) == 1)
   1107 #    define ACC_SIZEOF_SHORT        8
   1108 #  elif (__ACC_LSR(USHRT_MAX,127) == 1)
   1109 #    define ACC_SIZEOF_SHORT        16
   1110 #  else
   1111 #    error "ACC_SIZEOF_SHORT"
   1112 #  endif
   1113 #endif
   1114 #if !defined(ACC_SIZEOF_INT)
   1115 #  if (ACC_ARCH_CRAY_PVP)
   1116 #    define ACC_SIZEOF_INT          8
   1117 #  elif (UINT_MAX == ACC_0xffffL)
   1118 #    define ACC_SIZEOF_INT          2
   1119 #  elif (UINT_MAX == ACC_0xffffffffL)
   1120 #    define ACC_SIZEOF_INT          4
   1121 #  elif (__ACC_LSR(UINT_MAX,7) == 1)
   1122 #    define ACC_SIZEOF_INT          1
   1123 #  elif (__ACC_LSR(UINT_MAX,15) == 1)
   1124 #    define ACC_SIZEOF_INT          2
   1125 #  elif (__ACC_LSR(UINT_MAX,31) == 1)
   1126 #    define ACC_SIZEOF_INT          4
   1127 #  elif (__ACC_LSR(UINT_MAX,63) == 1)
   1128 #    define ACC_SIZEOF_INT          8
   1129 #  elif (__ACC_LSR(UINT_MAX,127) == 1)
   1130 #    define ACC_SIZEOF_INT          16
   1131 #  else
   1132 #    error "ACC_SIZEOF_INT"
   1133 #  endif
   1134 #endif
   1135 #if !defined(ACC_SIZEOF_LONG)
   1136 #  if (ULONG_MAX == ACC_0xffffffffL)
   1137 #    define ACC_SIZEOF_LONG         4
   1138 #  elif (__ACC_LSR(ULONG_MAX,7) == 1)
   1139 #    define ACC_SIZEOF_LONG         1
   1140 #  elif (__ACC_LSR(ULONG_MAX,15) == 1)
   1141 #    define ACC_SIZEOF_LONG         2
   1142 #  elif (__ACC_LSR(ULONG_MAX,31) == 1)
   1143 #    define ACC_SIZEOF_LONG         4
   1144 #  elif (__ACC_LSR(ULONG_MAX,63) == 1)
   1145 #    define ACC_SIZEOF_LONG         8
   1146 #  elif (__ACC_LSR(ULONG_MAX,127) == 1)
   1147 #    define ACC_SIZEOF_LONG         16
   1148 #  else
   1149 #    error "ACC_SIZEOF_LONG"
   1150 #  endif
   1151 #endif
   1152 #if !defined(ACC_SIZEOF_LONG_LONG) && !defined(ACC_SIZEOF___INT64)
   1153 #if (ACC_SIZEOF_LONG > 0 && ACC_SIZEOF_LONG < 8)
   1154 #  if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__)
   1155 #    if (ACC_CC_GNUC >= 0x030300ul)
   1156 #      if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0)
   1157 #        define ACC_SIZEOF_LONG_LONG      ACC_SIZEOF_LONG
   1158 #      elif (__ACC_LSR(__LONG_LONG_MAX__,30) == 1)
   1159 #        define ACC_SIZEOF_LONG_LONG      4
   1160 #      endif
   1161 #    endif
   1162 #  endif
   1163 #endif
   1164 #endif
   1165 #if !defined(ACC_SIZEOF_LONG_LONG) && !defined(ACC_SIZEOF___INT64)
   1166 #if (ACC_SIZEOF_LONG > 0 && ACC_SIZEOF_LONG < 8)
   1167 #if (ACC_ARCH_I086 && ACC_CC_DMC)
   1168 #elif (ACC_CC_CILLY) && defined(__GNUC__)
   1169 #  define ACC_SIZEOF_LONG_LONG      8
   1170 #elif (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
   1171 #  define ACC_SIZEOF_LONG_LONG      8
   1172 #elif ((ACC_OS_WIN32 || ACC_OS_WIN64 || defined(_WIN32)) && ACC_CC_MSC && (_MSC_VER >= 1400))
   1173 #  define ACC_SIZEOF_LONG_LONG      8
   1174 #elif (ACC_OS_WIN64 || defined(_WIN64))
   1175 #  define ACC_SIZEOF___INT64        8
   1176 #elif (ACC_ARCH_I386 && (ACC_CC_DMC))
   1177 #  define ACC_SIZEOF_LONG_LONG      8
   1178 #elif (ACC_ARCH_I386 && (ACC_CC_SYMANTECC && (__SC__ >= 0x700)))
   1179 #  define ACC_SIZEOF_LONG_LONG      8
   1180 #elif (ACC_ARCH_I386 && (ACC_CC_INTELC && defined(__linux__)))
   1181 #  define ACC_SIZEOF_LONG_LONG      8
   1182 #elif (ACC_ARCH_I386 && (ACC_CC_MWERKS || ACC_CC_PELLESC || ACC_CC_PGI || ACC_CC_SUNPROC))
   1183 #  define ACC_SIZEOF_LONG_LONG      8
   1184 #elif (ACC_ARCH_I386 && (ACC_CC_INTELC || ACC_CC_MSC))
   1185 #  define ACC_SIZEOF___INT64        8
   1186 #elif ((ACC_OS_WIN32 || defined(_WIN32)) && (ACC_CC_MSC))
   1187 #  define ACC_SIZEOF___INT64        8
   1188 #elif (ACC_ARCH_I386 && (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0520)))
   1189 #  define ACC_SIZEOF___INT64        8
   1190 #elif (ACC_ARCH_I386 && (ACC_CC_WATCOMC && (__WATCOMC__ >= 1100)))
   1191 #  define ACC_SIZEOF___INT64        8
   1192 #elif (ACC_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64))
   1193 #  define ACC_SIZEOF___INT64        8
   1194 #elif (ACC_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
   1195 #  define ACC_SIZEOF_LONG_LONG      8
   1196 #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
   1197 #  define ACC_SIZEOF_LONG_LONG      8
   1198 #elif (ACC_CC_SDCC) && (ACC_SIZEOF_INT == 2)
   1199 #elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
   1200 #  define ACC_SIZEOF_LONG_LONG      8
   1201 #endif
   1202 #endif
   1203 #endif
   1204 #if defined(__cplusplus) && defined(ACC_CC_GNUC)
   1205 #  if (ACC_CC_GNUC < 0x020800ul)
   1206 #    undef ACC_SIZEOF_LONG_LONG
   1207 #  endif
   1208 #endif
   1209 #if defined(ACC_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG)
   1210 #  undef ACC_SIZEOF_LONG_LONG
   1211 #endif
   1212 #if !defined(ACC_SIZEOF_VOID_P)
   1213 #if (ACC_ARCH_I086)
   1214 #  define __ACC_WORDSIZE            2
   1215 #  if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
   1216 #    define ACC_SIZEOF_VOID_P       2
   1217 #  elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
   1218 #    define ACC_SIZEOF_VOID_P       4
   1219 #  else
   1220 #    error "ACC_MM"
   1221 #  endif
   1222 #elif (ACC_ARCH_AVR || ACC_ARCH_Z80)
   1223 #  define __ACC_WORDSIZE            1
   1224 #  define ACC_SIZEOF_VOID_P         2
   1225 #elif (ACC_ARCH_C166 || ACC_ARCH_MCS51 || ACC_ARCH_MCS251 || ACC_ARCH_MSP430)
   1226 #  define ACC_SIZEOF_VOID_P         2
   1227 #elif (ACC_ARCH_H8300)
   1228 #  if defined(__NORMAL_MODE__)
   1229 #    define __ACC_WORDSIZE          4
   1230 #    define ACC_SIZEOF_VOID_P       2
   1231 #  elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
   1232 #    define __ACC_WORDSIZE          4
   1233 #    define ACC_SIZEOF_VOID_P       4
   1234 #  else
   1235 #    define __ACC_WORDSIZE          2
   1236 #    define ACC_SIZEOF_VOID_P       2
   1237 #  endif
   1238 #  if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x040000ul)) && (ACC_SIZEOF_INT == 4)
   1239 #    define ACC_SIZEOF_SIZE_T       ACC_SIZEOF_INT
   1240 #    define ACC_SIZEOF_PTRDIFF_T    ACC_SIZEOF_INT
   1241 #  endif
   1242 #elif (ACC_ARCH_M16C)
   1243 #  define __ACC_WORDSIZE            2
   1244 #  if defined(__m32c_cpu__) || defined(__m32cm_cpu__)
   1245 #    define ACC_SIZEOF_VOID_P       4
   1246 #  else
   1247 #    define ACC_SIZEOF_VOID_P       2
   1248 #  endif
   1249 #elif (ACC_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
   1250 #  define __ACC_WORDSIZE            8
   1251 #  define ACC_SIZEOF_VOID_P         4
   1252 #elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64)
   1253 #  define __ACC_WORDSIZE            8
   1254 #  define ACC_SIZEOF_VOID_P         8
   1255 #elif (ACC_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
   1256 #  define ACC_SIZEOF_VOID_P         ACC_SIZEOF_LONG
   1257 #  define ACC_SIZEOF_SIZE_T         ACC_SIZEOF_LONG
   1258 #  define ACC_SIZEOF_PTRDIFF_T      ACC_SIZEOF_LONG
   1259 #elif (ACC_OS_OS400 || defined(__OS400__))
   1260 #  define __ACC_WORDSIZE            ACC_SIZEOF_LONG
   1261 #  define ACC_SIZEOF_VOID_P         16
   1262 #  define ACC_SIZEOF_SIZE_T         ACC_SIZEOF_LONG
   1263 #  define ACC_SIZEOF_PTRDIFF_T      ACC_SIZEOF_LONG
   1264 #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
   1265 #  define ACC_SIZEOF_VOID_P         8
   1266 #  define ACC_SIZEOF_SIZE_T         ACC_SIZEOF_LONG
   1267 #  define ACC_SIZEOF_PTRDIFF_T      ACC_SIZEOF_LONG
   1268 #elif (ACC_ARCH_SPU)
   1269 # if 0
   1270 #  define __ACC_WORDSIZE            16
   1271 # endif
   1272 #  define ACC_SIZEOF_VOID_P         4
   1273 #else
   1274 #  define ACC_SIZEOF_VOID_P         ACC_SIZEOF_LONG
   1275 #endif
   1276 #endif
   1277 #if !defined(ACC_WORDSIZE)
   1278 #  if defined(__ACC_WORDSIZE)
   1279 #    define ACC_WORDSIZE            __ACC_WORDSIZE
   1280 #  else
   1281 #    define ACC_WORDSIZE            ACC_SIZEOF_VOID_P
   1282 #  endif
   1283 #endif
   1284 #if !defined(ACC_SIZEOF_SIZE_T)
   1285 #if (ACC_ARCH_I086 || ACC_ARCH_M16C)
   1286 #  define ACC_SIZEOF_SIZE_T         2
   1287 #else
   1288 #  define ACC_SIZEOF_SIZE_T         ACC_SIZEOF_VOID_P
   1289 #endif
   1290 #endif
   1291 #if !defined(ACC_SIZEOF_PTRDIFF_T)
   1292 #if (ACC_ARCH_I086)
   1293 #  if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM || ACC_MM_HUGE)
   1294 #    define ACC_SIZEOF_PTRDIFF_T    ACC_SIZEOF_VOID_P
   1295 #  elif (ACC_MM_COMPACT || ACC_MM_LARGE)
   1296 #    if (ACC_CC_BORLANDC || ACC_CC_TURBOC)
   1297 #      define ACC_SIZEOF_PTRDIFF_T  4
   1298 #    else
   1299 #      define ACC_SIZEOF_PTRDIFF_T  2
   1300 #    endif
   1301 #  else
   1302 #    error "ACC_MM"
   1303 #  endif
   1304 #else
   1305 #  define ACC_SIZEOF_PTRDIFF_T      ACC_SIZEOF_SIZE_T
   1306 #endif
   1307 #endif
   1308 #if defined(ACC_ABI_NEUTRAL_ENDIAN)
   1309 #  undef ACC_ABI_BIG_ENDIAN
   1310 #  undef ACC_ABI_LITTLE_ENDIAN
   1311 #elif !defined(ACC_ABI_BIG_ENDIAN) && !defined(ACC_ABI_LITTLE_ENDIAN)
   1312 #if (ACC_ARCH_ALPHA) && (ACC_ARCH_CRAY_MPP)
   1313 #  define ACC_ABI_BIG_ENDIAN        1
   1314 #elif (ACC_ARCH_ALPHA || ACC_ARCH_AMD64 || ACC_ARCH_BLACKFIN || ACC_ARCH_CRIS || ACC_ARCH_I086 || ACC_ARCH_I386 || ACC_ARCH_MSP430)
   1315 #  define ACC_ABI_LITTLE_ENDIAN     1
   1316 #elif (ACC_ARCH_M68K || ACC_ARCH_S390)
   1317 #  define ACC_ABI_BIG_ENDIAN        1
   1318 #elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__)
   1319 #  if (__LITTLE_ENDIAN__ == 1)
   1320 #    define ACC_ABI_LITTLE_ENDIAN   1
   1321 #  else
   1322 #    define ACC_ABI_BIG_ENDIAN      1
   1323 #  endif
   1324 #elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
   1325 #  define ACC_ABI_BIG_ENDIAN        1
   1326 #elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
   1327 #  define ACC_ABI_LITTLE_ENDIAN     1
   1328 #elif 1 && (ACC_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
   1329 #  define ACC_ABI_BIG_ENDIAN        1
   1330 #elif 1 && (ACC_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
   1331 #  define ACC_ABI_LITTLE_ENDIAN     1
   1332 #elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
   1333 #  define ACC_ABI_BIG_ENDIAN        1
   1334 #elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
   1335 #  define ACC_ABI_LITTLE_ENDIAN     1
   1336 #endif
   1337 #endif
   1338 #if defined(ACC_ABI_BIG_ENDIAN) && defined(ACC_ABI_LITTLE_ENDIAN)
   1339 #  error "this should not happen"
   1340 #endif
   1341 #if defined(ACC_ABI_BIG_ENDIAN)
   1342 #  define ACC_INFO_ABI_ENDIAN       "be"
   1343 #elif defined(ACC_ABI_LITTLE_ENDIAN)
   1344 #  define ACC_INFO_ABI_ENDIAN       "le"
   1345 #elif defined(ACC_ABI_NEUTRAL_ENDIAN)
   1346 #  define ACC_INFO_ABI_ENDIAN       "neutral"
   1347 #endif
   1348 #if (ACC_SIZEOF_INT == 1 && ACC_SIZEOF_LONG == 2 && ACC_SIZEOF_VOID_P == 2)
   1349 #  define ACC_ABI_I8LP16         1
   1350 #  define ACC_INFO_ABI_PM       "i8lp16"
   1351 #elif (ACC_SIZEOF_INT == 2 && ACC_SIZEOF_LONG == 2 && ACC_SIZEOF_VOID_P == 2)
   1352 #  define ACC_ABI_ILP16         1
   1353 #  define ACC_INFO_ABI_PM       "ilp16"
   1354 #elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 4)
   1355 #  define ACC_ABI_ILP32         1
   1356 #  define ACC_INFO_ABI_PM       "ilp32"
   1357 #elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 8 && ACC_SIZEOF_SIZE_T == 8)
   1358 #  define ACC_ABI_LLP64         1
   1359 #  define ACC_INFO_ABI_PM       "llp64"
   1360 #elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 8)
   1361 #  define ACC_ABI_LP64          1
   1362 #  define ACC_INFO_ABI_PM       "lp64"
   1363 #elif (ACC_SIZEOF_INT == 8 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 8)
   1364 #  define ACC_ABI_ILP64         1
   1365 #  define ACC_INFO_ABI_PM       "ilp64"
   1366 #elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 4)
   1367 #  define ACC_ABI_IP32L64       1
   1368 #  define ACC_INFO_ABI_PM       "ip32l64"
   1369 #endif
   1370 #if !defined(__ACC_LIBC_OVERRIDE)
   1371 #if defined(ACC_LIBC_NAKED)
   1372 #  define ACC_INFO_LIBC         "naked"
   1373 #elif defined(ACC_LIBC_FREESTANDING)
   1374 #  define ACC_INFO_LIBC         "freestanding"
   1375 #elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
   1376 #  define ACC_INFO_LIBC         "mfreestanding"
   1377 #elif defined(ACC_LIBC_ISOC90)
   1378 #  define ACC_INFO_LIBC         "isoc90"
   1379 #elif defined(ACC_LIBC_ISOC99)
   1380 #  define ACC_INFO_LIBC         "isoc99"
   1381 #elif defined(__dietlibc__)
   1382 #  define ACC_LIBC_DIETLIBC     1
   1383 #  define ACC_INFO_LIBC         "dietlibc"
   1384 #elif defined(_NEWLIB_VERSION)
   1385 #  define ACC_LIBC_NEWLIB       1
   1386 #  define ACC_INFO_LIBC         "newlib"
   1387 #elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__)
   1388 #  if defined(__UCLIBC_SUBLEVEL__)
   1389 #    define ACC_LIBC_UCLIBC     (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__)
   1390 #  else
   1391 #    define ACC_LIBC_UCLIBC     0x00090bL
   1392 #  endif
   1393 #  define ACC_INFO_LIBC         "uclibc"
   1394 #elif defined(__GLIBC__) && defined(__GLIBC_MINOR__)
   1395 #  define ACC_LIBC_GLIBC        (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100)
   1396 #  define ACC_INFO_LIBC         "glibc"
   1397 #elif (ACC_CC_MWERKS) && defined(__MSL__)
   1398 #  define ACC_LIBC_MSL          __MSL__
   1399 #  define ACC_INFO_LIBC         "msl"
   1400 #elif 1 && defined(__IAR_SYSTEMS_ICC__)
   1401 #  define ACC_LIBC_ISOC90       1
   1402 #  define ACC_INFO_LIBC         "isoc90"
   1403 #else
   1404 #  define ACC_LIBC_DEFAULT      1
   1405 #  define ACC_INFO_LIBC         "default"
   1406 #endif
   1407 #endif
   1408 #if !defined(__acc_gnuc_extension__)
   1409 #if (ACC_CC_GNUC >= 0x020800ul)
   1410 #  define __acc_gnuc_extension__    __extension__
   1411 #elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
   1412 #  define __acc_gnuc_extension__    __extension__
   1413 #else
   1414 #  define __acc_gnuc_extension__
   1415 #endif
   1416 #endif
   1417 #if !defined(__acc_ua_volatile)
   1418 #  define __acc_ua_volatile     volatile
   1419 #endif
   1420 #if !defined(__acc_alignof)
   1421 #if (ACC_CC_CILLY || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
   1422 #  define __acc_alignof(e)      __alignof__(e)
   1423 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 700))
   1424 #  define __acc_alignof(e)      __alignof__(e)
   1425 #elif (ACC_CC_MSC && (_MSC_VER >= 1300))
   1426 #  define __acc_alignof(e)      __alignof(e)
   1427 #endif
   1428 #endif
   1429 #if defined(__acc_alignof)
   1430 #  define __acc_HAVE_alignof 1
   1431 #endif
   1432 #if !defined(__acc_constructor)
   1433 #if (ACC_CC_GNUC >= 0x030400ul)
   1434 #  define __acc_constructor     __attribute__((__constructor__,__used__))
   1435 #elif (ACC_CC_GNUC >= 0x020700ul)
   1436 #  define __acc_constructor     __attribute__((__constructor__))
   1437 #elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
   1438 #  define __acc_constructor     __attribute__((__constructor__))
   1439 #endif
   1440 #endif
   1441 #if defined(__acc_constructor)
   1442 #  define __acc_HAVE_constructor 1
   1443 #endif
   1444 #if !defined(__acc_destructor)
   1445 #if (ACC_CC_GNUC >= 0x030400ul)
   1446 #  define __acc_destructor      __attribute__((__destructor__,__used__))
   1447 #elif (ACC_CC_GNUC >= 0x020700ul)
   1448 #  define __acc_destructor      __attribute__((__destructor__))
   1449 #elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
   1450 #  define __acc_destructor      __attribute__((__destructor__))
   1451 #endif
   1452 #endif
   1453 #if defined(__acc_destructor)
   1454 #  define __acc_HAVE_destructor 1
   1455 #endif
   1456 #if defined(__acc_HAVE_destructor) && !defined(__acc_HAVE_constructor)
   1457 #  error "this should not happen"
   1458 #endif
   1459 #if !defined(__acc_inline)
   1460 #if (ACC_CC_TURBOC && (__TURBOC__ <= 0x0295))
   1461 #elif defined(__cplusplus)
   1462 #  define __acc_inline          inline
   1463 #elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
   1464 #  define __acc_inline          __inline
   1465 #elif (ACC_CC_CILLY || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
   1466 #  define __acc_inline          __inline__
   1467 #elif (ACC_CC_DMC)
   1468 #  define __acc_inline          __inline
   1469 #elif (ACC_CC_INTELC)
   1470 #  define __acc_inline          __inline
   1471 #elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x2405))
   1472 #  define __acc_inline          __inline
   1473 #elif (ACC_CC_MSC && (_MSC_VER >= 900))
   1474 #  define __acc_inline          __inline
   1475 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
   1476 #  define __acc_inline          inline
   1477 #endif
   1478 #endif
   1479 #if defined(__acc_inline)
   1480 #  define __acc_HAVE_inline 1
   1481 #else
   1482 #  define __acc_inline
   1483 #endif
   1484 #if !defined(__acc_forceinline)
   1485 #if (ACC_CC_GNUC >= 0x030200ul)
   1486 #  define __acc_forceinline     __inline__ __attribute__((__always_inline__))
   1487 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC)
   1488 #  define __acc_forceinline     __forceinline
   1489 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
   1490 #  define __acc_forceinline     __inline__ __attribute__((__always_inline__))
   1491 #elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
   1492 #  define __acc_forceinline     __inline__ __attribute__((__always_inline__))
   1493 #elif (ACC_CC_MSC && (_MSC_VER >= 1200))
   1494 #  define __acc_forceinline     __forceinline
   1495 #endif
   1496 #endif
   1497 #if defined(__acc_forceinline)
   1498 #  define __acc_HAVE_forceinline 1
   1499 #else
   1500 #  define __acc_forceinline
   1501 #endif
   1502 #if !defined(__acc_noinline)
   1503 #if 1 && (ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x040000ul) && (ACC_CC_GNUC < 0x040003ul)
   1504 #  define __acc_noinline        __attribute__((__noinline__,__used__))
   1505 #elif (ACC_CC_GNUC >= 0x030200ul)
   1506 #  define __acc_noinline        __attribute__((__noinline__))
   1507 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_MSC)
   1508 #  define __acc_noinline        __declspec(noinline)
   1509 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
   1510 #  define __acc_noinline        __attribute__((__noinline__))
   1511 #elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
   1512 #  define __acc_noinline        __attribute__((__noinline__))
   1513 #elif (ACC_CC_MSC && (_MSC_VER >= 1300))
   1514 #  define __acc_noinline        __declspec(noinline)
   1515 #elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3200) && (ACC_OS_WIN32 || ACC_OS_WIN64))
   1516 #  if defined(__cplusplus)
   1517 #  else
   1518 #    define __acc_noinline      __declspec(noinline)
   1519 #  endif
   1520 #endif
   1521 #endif
   1522 #if defined(__acc_noinline)
   1523 #  define __acc_HAVE_noinline 1
   1524 #else
   1525 #  define __acc_noinline
   1526 #endif
   1527 #if (defined(__acc_HAVE_forceinline) || defined(__acc_HAVE_noinline)) && !defined(__acc_HAVE_inline)
   1528 #  error "this should not happen"
   1529 #endif
   1530 #if !defined(__acc_noreturn)
   1531 #if (ACC_CC_GNUC >= 0x020700ul)
   1532 #  define __acc_noreturn        __attribute__((__noreturn__))
   1533 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC)
   1534 #  define __acc_noreturn        __declspec(noreturn)
   1535 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_GNUC)
   1536 #  define __acc_noreturn        __attribute__((__noreturn__))
   1537 #elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
   1538 #  define __acc_noreturn        __attribute__((__noreturn__))
   1539 #elif (ACC_CC_MSC && (_MSC_VER >= 1200))
   1540 #  define __acc_noreturn        __declspec(noreturn)
   1541 #endif
   1542 #endif
   1543 #if defined(__acc_noreturn)
   1544 #  define __acc_HAVE_noreturn 1
   1545 #else
   1546 #  define __acc_noreturn
   1547 #endif
   1548 #if !defined(__acc_nothrow)
   1549 #if (ACC_CC_GNUC >= 0x030300ul)
   1550 #  define __acc_nothrow         __attribute__((__nothrow__))
   1551 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC) && defined(__cplusplus)
   1552 #  define __acc_nothrow         __declspec(nothrow)
   1553 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
   1554 #  define __acc_nothrow         __attribute__((__nothrow__))
   1555 #elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
   1556 #  define __acc_nothrow         __attribute__((__nothrow__))
   1557 #elif (ACC_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus)
   1558 #  define __acc_nothrow         __declspec(nothrow)
   1559 #endif
   1560 #endif
   1561 #if defined(__acc_nothrow)
   1562 #  define __acc_HAVE_nothrow 1
   1563 #else
   1564 #  define __acc_nothrow
   1565 #endif
   1566 #if !defined(__acc_restrict)
   1567 #if (ACC_CC_GNUC >= 0x030400ul)
   1568 #  define __acc_restrict        __restrict__
   1569 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_GNUC)
   1570 #  define __acc_restrict        __restrict__
   1571 #elif (ACC_CC_LLVM)
   1572 #  define __acc_restrict        __restrict__
   1573 #elif (ACC_CC_MSC && (_MSC_VER >= 1400))
   1574 #  define __acc_restrict        __restrict
   1575 #endif
   1576 #endif
   1577 #if defined(__acc_restrict)
   1578 #  define __acc_HAVE_restrict 1
   1579 #else
   1580 #  define __acc_restrict
   1581 #endif
   1582 #if !defined(__acc_likely) && !defined(__acc_unlikely)
   1583 #if (ACC_CC_GNUC >= 0x030200ul)
   1584 #  define __acc_likely(e)       (__builtin_expect(!!(e),1))
   1585 #  define __acc_unlikely(e)     (__builtin_expect(!!(e),0))
   1586 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800))
   1587 #  define __acc_likely(e)       (__builtin_expect(!!(e),1))
   1588 #  define __acc_unlikely(e)     (__builtin_expect(!!(e),0))
   1589 #elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
   1590 #  define __acc_likely(e)       (__builtin_expect(!!(e),1))
   1591 #  define __acc_unlikely(e)     (__builtin_expect(!!(e),0))
   1592 #endif
   1593 #endif
   1594 #if defined(__acc_likely)
   1595 #  define __acc_HAVE_likely 1
   1596 #else
   1597 #  define __acc_likely(e)       (e)
   1598 #endif
   1599 #if defined(__acc_unlikely)
   1600 #  define __acc_HAVE_unlikely 1
   1601 #else
   1602 #  define __acc_unlikely(e)     (e)
   1603 #endif
   1604 #if !defined(ACC_UNUSED)
   1605 #  if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
   1606 #    define ACC_UNUSED(var)         ((void) &var)
   1607 #  elif (ACC_CC_BORLANDC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PELLESC || ACC_CC_TURBOC)
   1608 #    define ACC_UNUSED(var)         if (&var) ; else
   1609 #  elif (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
   1610 #    define ACC_UNUSED(var)         ((void) var)
   1611 #  elif (ACC_CC_MSC && (_MSC_VER < 900))
   1612 #    define ACC_UNUSED(var)         if (&var) ; else
   1613 #  elif (ACC_CC_KEILC)
   1614 #    define ACC_UNUSED(var)         {extern int __acc_unused[1-2*!(sizeof(var)>0)];}
   1615 #  elif (ACC_CC_PACIFICC)
   1616 #    define ACC_UNUSED(var)         ((void) sizeof(var))
   1617 #  elif (ACC_CC_WATCOMC) && defined(__cplusplus)
   1618 #    define ACC_UNUSED(var)         ((void) var)
   1619 #  else
   1620 #    define ACC_UNUSED(var)         ((void) &var)
   1621 #  endif
   1622 #endif
   1623 #if !defined(ACC_UNUSED_FUNC)
   1624 #  if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
   1625 #    define ACC_UNUSED_FUNC(func)   ((void) func)
   1626 #  elif (ACC_CC_BORLANDC || ACC_CC_NDPC || ACC_CC_TURBOC)
   1627 #    define ACC_UNUSED_FUNC(func)   if (func) ; else
   1628 #  elif (ACC_CC_LLVM)
   1629 #    define ACC_UNUSED_FUNC(func)   ((void) &func)
   1630 #  elif (ACC_CC_MSC && (_MSC_VER < 900))
   1631 #    define ACC_UNUSED_FUNC(func)   if (func) ; else
   1632 #  elif (ACC_CC_MSC)
   1633 #    define ACC_UNUSED_FUNC(func)   ((void) &func)
   1634 #  elif (ACC_CC_KEILC || ACC_CC_PELLESC)
   1635 #    define ACC_UNUSED_FUNC(func)   {extern int __acc_unused[1-2*!(sizeof((int)func)>0)];}
   1636 #  else
   1637 #    define ACC_UNUSED_FUNC(func)   ((void) func)
   1638 #  endif
   1639 #endif
   1640 #if !defined(ACC_UNUSED_LABEL)
   1641 #  if (ACC_CC_WATCOMC) && defined(__cplusplus)
   1642 #    define ACC_UNUSED_LABEL(l)     switch(0) case 1:goto l
   1643 #  elif (ACC_CC_INTELC || ACC_CC_WATCOMC)
   1644 #    define ACC_UNUSED_LABEL(l)     if (0) goto l
   1645 #  else
   1646 #    define ACC_UNUSED_LABEL(l)     switch(0) case 1:goto l
   1647 #  endif
   1648 #endif
   1649 #if !defined(ACC_DEFINE_UNINITIALIZED_VAR)
   1650 #  if 0
   1651 #    define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init)  type var
   1652 #  elif 0 && (ACC_CC_GNUC)
   1653 #    define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init)  type var = var
   1654 #  else
   1655 #    define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init)  type var = init
   1656 #  endif
   1657 #endif
   1658 #if !defined(ACC_COMPILE_TIME_ASSERT_HEADER)
   1659 #  if (ACC_CC_AZTECC || ACC_CC_ZORTECHC)
   1660 #    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  extern int __acc_cta[1-!(e)];
   1661 #  elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
   1662 #    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  extern int __acc_cta[1u-2*!(e)];
   1663 #  elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
   1664 #    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  extern int __acc_cta[1-!(e)];
   1665 #  else
   1666 #    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  extern int __acc_cta[1-2*!(e)];
   1667 #  endif
   1668 #endif
   1669 #if !defined(ACC_COMPILE_TIME_ASSERT)
   1670 #  if (ACC_CC_AZTECC)
   1671 #    define ACC_COMPILE_TIME_ASSERT(e)  {typedef int __acc_cta_t[1-!(e)];}
   1672 #  elif (ACC_CC_DMC || ACC_CC_PACIFICC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
   1673 #    define ACC_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
   1674 #  elif (ACC_CC_MSC && (_MSC_VER < 900))
   1675 #    define ACC_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
   1676 #  elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
   1677 #    define ACC_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
   1678 #  else
   1679 #    define ACC_COMPILE_TIME_ASSERT(e)  {typedef int __acc_cta_t[1-2*!(e)];}
   1680 #  endif
   1681 #endif
   1682 #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)
   1683 #  if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC)
   1684 #  elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
   1685 #    define __acc_cdecl                 __cdecl
   1686 #    define __acc_cdecl_atexit
   1687 #    define __acc_cdecl_main            __cdecl
   1688 #    if (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
   1689 #      define __acc_cdecl_qsort         __pascal
   1690 #    elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
   1691 #      define __acc_cdecl_qsort         _stdcall
   1692 #    else
   1693 #      define __acc_cdecl_qsort         __cdecl
   1694 #    endif
   1695 #  elif (ACC_CC_WATCOMC)
   1696 #    define __acc_cdecl                 __cdecl
   1697 #  else
   1698 #    define __acc_cdecl                 __cdecl
   1699 #    define __acc_cdecl_atexit          __cdecl
   1700 #    define __acc_cdecl_main            __cdecl
   1701 #    define __acc_cdecl_qsort           __cdecl
   1702 #  endif
   1703 #  if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC || ACC_CC_WATCOMC)
   1704 #  elif (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
   1705 #    define __acc_cdecl_sighandler      __pascal
   1706 #  elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
   1707 #    define __acc_cdecl_sighandler      _stdcall
   1708 #  elif (ACC_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE)
   1709 #    define __acc_cdecl_sighandler      __clrcall
   1710 #  elif (ACC_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700))
   1711 #    if defined(_DLL)
   1712 #      define __acc_cdecl_sighandler    _far _cdecl _loadds
   1713 #    elif defined(_MT)
   1714 #      define __acc_cdecl_sighandler    _far _cdecl
   1715 #    else
   1716 #      define __acc_cdecl_sighandler    _cdecl
   1717 #    endif
   1718 #  else
   1719 #    define __acc_cdecl_sighandler      __cdecl
   1720 #  endif
   1721 #elif (ACC_ARCH_I386) && (ACC_CC_WATCOMC)
   1722 #  define __acc_cdecl                   __cdecl
   1723 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
   1724 #  define __acc_cdecl                   cdecl
   1725 #endif
   1726 #if !defined(__acc_cdecl)
   1727 #  define __acc_cdecl
   1728 #endif
   1729 #if !defined(__acc_cdecl_atexit)
   1730 #  define __acc_cdecl_atexit
   1731 #endif
   1732 #if !defined(__acc_cdecl_main)
   1733 #  define __acc_cdecl_main
   1734 #endif
   1735 #if !defined(__acc_cdecl_qsort)
   1736 #  define __acc_cdecl_qsort
   1737 #endif
   1738 #if !defined(__acc_cdecl_sighandler)
   1739 #  define __acc_cdecl_sighandler
   1740 #endif
   1741 #if !defined(__acc_cdecl_va)
   1742 #  define __acc_cdecl_va                __acc_cdecl
   1743 #endif
   1744 #if !defined(ACC_CFG_NO_WINDOWS_H)
   1745 #if (ACC_OS_CYGWIN || (ACC_OS_EMX && defined(__RSXNT__)) || ACC_OS_WIN32 || ACC_OS_WIN64)
   1746 #  if (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))
   1747 #  elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
   1748 #  elif ((ACC_OS_CYGWIN || defined(__MINGW32__)) && (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025f00ul)))
   1749 #  else
   1750 #    define ACC_HAVE_WINDOWS_H 1
   1751 #  endif
   1752 #endif
   1753 #endif
   1754 #if (ACC_ARCH_ALPHA)
   1755 #  define ACC_OPT_AVOID_UINT_INDEX  1
   1756 #  define ACC_OPT_AVOID_SHORT       1
   1757 #  define ACC_OPT_AVOID_USHORT      1
   1758 #elif (ACC_ARCH_AMD64)
   1759 #  define ACC_OPT_AVOID_INT_INDEX   1
   1760 #  define ACC_OPT_AVOID_UINT_INDEX  1
   1761 #  define ACC_OPT_UNALIGNED16       1
   1762 #  define ACC_OPT_UNALIGNED32       1
   1763 #  define ACC_OPT_UNALIGNED64       1
   1764 #elif (ACC_ARCH_ARM && ACC_ARCH_ARM_THUMB)
   1765 #elif (ACC_ARCH_ARM)
   1766 #  define ACC_OPT_AVOID_SHORT       1
   1767 #  define ACC_OPT_AVOID_USHORT      1
   1768 #elif (ACC_ARCH_CRIS)
   1769 #  define ACC_OPT_UNALIGNED16       1
   1770 #  define ACC_OPT_UNALIGNED32       1
   1771 #elif (ACC_ARCH_I386)
   1772 #  define ACC_OPT_UNALIGNED16       1
   1773 #  define ACC_OPT_UNALIGNED32       1
   1774 #elif (ACC_ARCH_IA64)
   1775 #  define ACC_OPT_AVOID_INT_INDEX   1
   1776 #  define ACC_OPT_AVOID_UINT_INDEX  1
   1777 #  define ACC_OPT_PREFER_POSTINC    1
   1778 #elif (ACC_ARCH_M68K)
   1779 #  define ACC_OPT_PREFER_POSTINC    1
   1780 #  define ACC_OPT_PREFER_PREDEC     1
   1781 #  if defined(__mc68020__) && !defined(__mcoldfire__)
   1782 #    define ACC_OPT_UNALIGNED16     1
   1783 #    define ACC_OPT_UNALIGNED32     1
   1784 #  endif
   1785 #elif (ACC_ARCH_MIPS)
   1786 #  define ACC_OPT_AVOID_UINT_INDEX  1
   1787 #elif (ACC_ARCH_POWERPC)
   1788 #  define ACC_OPT_PREFER_PREINC     1
   1789 #  define ACC_OPT_PREFER_PREDEC     1
   1790 #  if defined(ACC_ABI_BIG_ENDIAN)
   1791 #    define ACC_OPT_UNALIGNED16     1
   1792 #    define ACC_OPT_UNALIGNED32     1
   1793 #  endif
   1794 #elif (ACC_ARCH_S390)
   1795 #  define ACC_OPT_UNALIGNED16       1
   1796 #  define ACC_OPT_UNALIGNED32       1
   1797 #  if (ACC_SIZEOF_SIZE_T == 8)
   1798 #    define ACC_OPT_UNALIGNED64     1
   1799 #  endif
   1800 #elif (ACC_ARCH_SH)
   1801 #  define ACC_OPT_PREFER_POSTINC    1
   1802 #  define ACC_OPT_PREFER_PREDEC     1
   1803 #endif
   1804 #if !defined(ACC_CFG_NO_INLINE_ASM)
   1805 #if defined(ACC_CC_LLVM)
   1806 #  define ACC_CFG_NO_INLINE_ASM 1
   1807 #endif
   1808 #endif
   1809 #if !defined(ACC_CFG_NO_UNALIGNED)
   1810 #if defined(ACC_ABI_NEUTRAL_ENDIAN) || defined(ACC_ARCH_GENERIC)
   1811 #  define ACC_CFG_NO_UNALIGNED 1
   1812 #endif
   1813 #endif
   1814 #if defined(ACC_CFG_NO_UNALIGNED)
   1815 #  undef ACC_OPT_UNALIGNED16
   1816 #  undef ACC_OPT_UNALIGNED32
   1817 #  undef ACC_OPT_UNALIGNED64
   1818 #endif
   1819 #if defined(ACC_CFG_NO_INLINE_ASM)
   1820 #elif (ACC_ARCH_I386 && (ACC_OS_DOS32 || ACC_OS_WIN32) && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
   1821 #  define ACC_ASM_SYNTAX_MSC 1
   1822 #elif (ACC_OS_WIN64 && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
   1823 #elif (ACC_ARCH_I386 && (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
   1824 #  define ACC_ASM_SYNTAX_GNUC 1
   1825 #elif (ACC_ARCH_AMD64 && (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
   1826 #  define ACC_ASM_SYNTAX_GNUC 1
   1827 #endif
   1828 #if (ACC_ASM_SYNTAX_GNUC)
   1829 #if (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
   1830 #  define __ACC_ASM_CLOBBER         "ax"
   1831 #elif (ACC_CC_INTELC)
   1832 #  define __ACC_ASM_CLOBBER         "memory"
   1833 #else
   1834 #  define __ACC_ASM_CLOBBER         "cc", "memory"
   1835 #endif
   1836 #endif
   1837 #if defined(__ACC_INFOSTR_MM)
   1838 #elif (ACC_MM_FLAT) && (defined(__ACC_INFOSTR_PM) || defined(ACC_INFO_ABI_PM))
   1839 #  define __ACC_INFOSTR_MM          ""
   1840 #elif defined(ACC_INFO_MM)
   1841 #  define __ACC_INFOSTR_MM          "." ACC_INFO_MM
   1842 #else
   1843 #  define __ACC_INFOSTR_MM          ""
   1844 #endif
   1845 #if defined(__ACC_INFOSTR_PM)
   1846 #elif defined(ACC_INFO_ABI_PM)
   1847 #  define __ACC_INFOSTR_PM          "." ACC_INFO_ABI_PM
   1848 #else
   1849 #  define __ACC_INFOSTR_PM          ""
   1850 #endif
   1851 #if defined(__ACC_INFOSTR_ENDIAN)
   1852 #elif defined(ACC_INFO_ABI_ENDIAN)
   1853 #  define __ACC_INFOSTR_ENDIAN      "." ACC_INFO_ABI_ENDIAN
   1854 #else
   1855 #  define __ACC_INFOSTR_ENDIAN      ""
   1856 #endif
   1857 #if defined(__ACC_INFOSTR_OSNAME)
   1858 #elif defined(ACC_INFO_OS_CONSOLE)
   1859 #  define __ACC_INFOSTR_OSNAME      ACC_INFO_OS "." ACC_INFO_OS_CONSOLE
   1860 #elif defined(ACC_INFO_OS_POSIX)
   1861 #  define __ACC_INFOSTR_OSNAME      ACC_INFO_OS "." ACC_INFO_OS_POSIX
   1862 #else
   1863 #  define __ACC_INFOSTR_OSNAME      ACC_INFO_OS
   1864 #endif
   1865 #if defined(__ACC_INFOSTR_LIBC)
   1866 #elif defined(ACC_INFO_LIBC)
   1867 #  define __ACC_INFOSTR_LIBC        "." ACC_INFO_LIBC
   1868 #else
   1869 #  define __ACC_INFOSTR_LIBC        ""
   1870 #endif
   1871 #if defined(__ACC_INFOSTR_CCVER)
   1872 #elif defined(ACC_INFO_CCVER)
   1873 #  define __ACC_INFOSTR_CCVER       " " ACC_INFO_CCVER
   1874 #else
   1875 #  define __ACC_INFOSTR_CCVER       ""
   1876 #endif
   1877 #define ACC_INFO_STRING \
   1878     ACC_INFO_ARCH __ACC_INFOSTR_MM __ACC_INFOSTR_PM __ACC_INFOSTR_ENDIAN \
   1879     " " __ACC_INFOSTR_OSNAME __ACC_INFOSTR_LIBC " " ACC_INFO_CC __ACC_INFOSTR_CCVER
   1880 #if defined(ACC_CFG_NO_CONFIG_HEADER)
   1881 #elif defined(ACC_CFG_CONFIG_HEADER)
   1882 #else
   1883 #if !defined(ACC_CFG_AUTO_NO_HEADERS)
   1884 #if defined(ACC_LIBC_NAKED)
   1885 #elif defined(ACC_LIBC_FREESTANDING)
   1886 #  define HAVE_LIMITS_H 1
   1887 #  define HAVE_STDARG_H 1
   1888 #  define HAVE_STDDEF_H 1
   1889 #elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
   1890 #  define HAVE_LIMITS_H 1
   1891 #  define HAVE_SETJMP_H 1
   1892 #  define HAVE_STDARG_H 1
   1893 #  define HAVE_STDDEF_H 1
   1894 #  define HAVE_STDIO_H 1
   1895 #  define HAVE_STRING_H 1
   1896 #else
   1897 #define STDC_HEADERS 1
   1898 #define HAVE_ASSERT_H 1
   1899 #define HAVE_CTYPE_H 1
   1900 #define HAVE_DIRENT_H 1
   1901 #define HAVE_ERRNO_H 1
   1902 #define HAVE_FCNTL_H 1
   1903 #define HAVE_FLOAT_H 1
   1904 #define HAVE_LIMITS_H 1
   1905 #define HAVE_MALLOC_H 1
   1906 #define HAVE_MEMORY_H 1
   1907 #define HAVE_SETJMP_H 1
   1908 #define HAVE_SIGNAL_H 1
   1909 #define HAVE_STDARG_H 1
   1910 #define HAVE_STDDEF_H 1
   1911 #define HAVE_STDIO_H 1
   1912 #define HAVE_STDLIB_H 1
   1913 #define HAVE_STRING_H 1
   1914 #define HAVE_TIME_H 1
   1915 #define HAVE_UNISTD_H 1
   1916 #define HAVE_UTIME_H 1
   1917 #define HAVE_SYS_STAT_H 1
   1918 #define HAVE_SYS_TIME_H 1
   1919 #define HAVE_SYS_TYPES_H 1
   1920 #if (ACC_OS_POSIX)
   1921 #  if (ACC_OS_POSIX_AIX)
   1922 #    define HAVE_SYS_RESOURCE_H 1
   1923 #  elif (ACC_OS_POSIX_FREEBSD || ACC_OS_POSIX_MACOSX || ACC_OS_POSIX_NETBSD || ACC_OS_POSIX_OPENBSD)
   1924 #    define HAVE_STRINGS_H 1
   1925 #    undef HAVE_MALLOC_H
   1926 #  elif (ACC_OS_POSIX_HPUX || ACC_OS_POSIX_INTERIX)
   1927 #    define HAVE_ALLOCA_H 1
   1928 #  elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
   1929 #    undef HAVE_SYS_TIME_H
   1930 #    undef HAVE_SYS_TYPES_H
   1931 #  elif (ACC_OS_POSIX_SOLARIS || ACC_OS_POSIX_SUNOS)
   1932 #    define HAVE_ALLOCA_H 1
   1933 #  endif
   1934 #  if (ACC_LIBC_DIETLIBC || ACC_LIBC_GLIBC || ACC_LIBC_UCLIBC)
   1935 #    define HAVE_STRINGS_H 1
   1936 #    define HAVE_SYS_MMAN_H 1
   1937 #    define HAVE_SYS_RESOURCE_H 1
   1938 #    define HAVE_SYS_WAIT_H 1
   1939 #  endif
   1940 #  if (ACC_LIBC_NEWLIB)
   1941 #    undef HAVE_STRINGS_H
   1942 #  endif
   1943 #elif (ACC_OS_CYGWIN)
   1944 #  define HAVE_IO_H 1
   1945 #elif (ACC_OS_EMX)
   1946 #  define HAVE_ALLOCA_H 1
   1947 #  define HAVE_IO_H 1
   1948 #elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
   1949 #  if !defined(__MINT__)
   1950 #    undef HAVE_MALLOC_H
   1951 #  endif
   1952 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
   1953 #  undef HAVE_DIRENT_H
   1954 #  undef HAVE_FCNTL_H
   1955 #  undef HAVE_MALLOC_H
   1956 #  undef HAVE_MEMORY_H
   1957 #  undef HAVE_UNISTD_H
   1958 #  undef HAVE_UTIME_H
   1959 #  undef HAVE_SYS_STAT_H
   1960 #  undef HAVE_SYS_TIME_H
   1961 #  undef HAVE_SYS_TYPES_H
   1962 #endif
   1963 #if (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
   1964 #define HAVE_CONIO_H 1
   1965 #define HAVE_DIRECT_H 1
   1966 #define HAVE_DOS_H 1
   1967 #define HAVE_IO_H 1
   1968 #define HAVE_SHARE_H 1
   1969 #if (ACC_CC_AZTECC)
   1970 #  undef HAVE_CONIO_H
   1971 #  undef HAVE_DIRECT_H
   1972 #  undef HAVE_DIRENT_H
   1973 #  undef HAVE_MALLOC_H
   1974 #  undef HAVE_SHARE_H
   1975 #  undef HAVE_UNISTD_H
   1976 #  undef HAVE_UTIME_H
   1977 #  undef HAVE_SYS_STAT_H
   1978 #  undef HAVE_SYS_TIME_H
   1979 #  undef HAVE_SYS_TYPES_H
   1980 #elif (ACC_CC_BORLANDC)
   1981 #  undef HAVE_UNISTD_H
   1982 #  undef HAVE_SYS_TIME_H
   1983 #  if (ACC_OS_WIN32 || ACC_OS_WIN64)
   1984 #    undef HAVE_DIRENT_H
   1985 #  endif
   1986 #  if (__BORLANDC__ < 0x0400)
   1987 #    undef HAVE_DIRENT_H
   1988 #    undef HAVE_UTIME_H
   1989 #  endif
   1990 #elif (ACC_CC_DMC)
   1991 #  undef HAVE_DIRENT_H
   1992 #  undef HAVE_UNISTD_H
   1993 #  define HAVE_SYS_DIRENT_H 1
   1994 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
   1995 #elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
   1996 #  define HAVE_ALLOCA_H 1
   1997 #  undef HAVE_DIRENT_H
   1998 #  undef HAVE_UNISTD_H
   1999 #elif (ACC_CC_IBMC && ACC_OS_OS2)
   2000 #  undef HAVE_DOS_H
   2001 #  undef HAVE_DIRENT_H
   2002 #  undef HAVE_UNISTD_H
   2003 #  undef HAVE_UTIME_H
   2004 #  undef HAVE_SYS_TIME_H
   2005 #  define HAVE_SYS_UTIME_H 1
   2006 #elif (ACC_CC_INTELC || ACC_CC_MSC)
   2007 #  undef HAVE_DIRENT_H
   2008 #  undef HAVE_UNISTD_H
   2009 #  undef HAVE_UTIME_H
   2010 #  undef HAVE_SYS_TIME_H
   2011 #  define HAVE_SYS_UTIME_H 1
   2012 #elif (ACC_CC_LCCWIN32)
   2013 #  undef HAVE_DIRENT_H
   2014 #  undef HAVE_DOS_H
   2015 #  undef HAVE_UNISTD_H
   2016 #  undef HAVE_SYS_TIME_H
   2017 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__MINGW32__)
   2018 #  undef HAVE_UTIME_H
   2019 #  define HAVE_SYS_UTIME_H 1
   2020 #elif (ACC_OS_WIN32 && ACC_LIBC_MSL)
   2021 #  define HAVE_ALLOCA_H 1
   2022 #  undef HAVE_DOS_H
   2023 #  undef HAVE_SHARE_H
   2024 #  undef HAVE_SYS_TIME_H
   2025 #elif (ACC_CC_NDPC)
   2026 #  undef HAVE_DIRENT_H
   2027 #  undef HAVE_DOS_H
   2028 #  undef HAVE_UNISTD_H
   2029 #  undef HAVE_UTIME_H
   2030 #  undef HAVE_SYS_TIME_H
   2031 #elif (ACC_CC_PACIFICC)
   2032 #  undef HAVE_DIRECT_H
   2033 #  undef HAVE_DIRENT_H
   2034 #  undef HAVE_FCNTL_H
   2035 #  undef HAVE_IO_H
   2036 #  undef HAVE_MALLOC_H
   2037 #  undef HAVE_MEMORY_H
   2038 #  undef HAVE_SHARE_H
   2039 #  undef HAVE_UNISTD_H
   2040 #  undef HAVE_UTIME_H
   2041 #  undef HAVE_SYS_STAT_H
   2042 #  undef HAVE_SYS_TIME_H
   2043 #  undef HAVE_SYS_TYPES_H
   2044 #elif (ACC_OS_WIN32 && ACC_CC_PELLESC)
   2045 #  undef HAVE_DIRENT_H
   2046 #  undef HAVE_DOS_H
   2047 #  undef HAVE_MALLOC_H
   2048 #  undef HAVE_SHARE_H
   2049 #  undef HAVE_UNISTD_H
   2050 #  undef HAVE_UTIME_H
   2051 #  undef HAVE_SYS_TIME_H
   2052 #  if (__POCC__ < 280)
   2053 #  else
   2054 #    define HAVE_SYS_UTIME_H 1
   2055 #  endif
   2056 #elif (ACC_OS_WIN32 && ACC_CC_PGI) && defined(__MINGW32__)
   2057 #  undef HAVE_UTIME_H
   2058 #  define HAVE_SYS_UTIME_H 1
   2059 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
   2060 #elif (ACC_CC_SYMANTECC)
   2061 #  undef HAVE_DIRENT_H
   2062 #  undef HAVE_UNISTD_H
   2063 #  if (__SC__ < 0x700)
   2064 #    undef HAVE_UTIME_H
   2065 #    undef HAVE_SYS_TIME_H
   2066 #  endif
   2067 #elif (ACC_CC_TOPSPEEDC)
   2068 #  undef HAVE_DIRENT_H
   2069 #  undef HAVE_UNISTD_H
   2070 #  undef HAVE_UTIME_H
   2071 #  undef HAVE_SYS_STAT_H
   2072 #  undef HAVE_SYS_TIME_H
   2073 #  undef HAVE_SYS_TYPES_H
   2074 #elif (ACC_CC_TURBOC)
   2075 #  undef HAVE_UNISTD_H
   2076 #  undef HAVE_SYS_TIME_H
   2077 #  undef HAVE_SYS_TYPES_H
   2078 #  if (ACC_OS_WIN32 || ACC_OS_WIN64)
   2079 #    undef HAVE_DIRENT_H
   2080 #  endif
   2081 #  if (__TURBOC__ < 0x0200)
   2082 #    undef HAVE_SIGNAL_H
   2083 #  endif
   2084 #  if (__TURBOC__ < 0x0400)
   2085 #    undef HAVE_DIRECT_H
   2086 #    undef HAVE_DIRENT_H
   2087 #    undef HAVE_MALLOC_H
   2088 #    undef HAVE_MEMORY_H
   2089 #    undef HAVE_UTIME_H
   2090 #  endif
   2091 #elif (ACC_CC_WATCOMC)
   2092 #  undef HAVE_DIRENT_H
   2093 #  undef HAVE_UTIME_H
   2094 #  undef HAVE_SYS_TIME_H
   2095 #  define HAVE_SYS_UTIME_H 1
   2096 #  if (__WATCOMC__ < 950)
   2097 #    undef HAVE_UNISTD_H
   2098 #  endif
   2099 #elif (ACC_CC_ZORTECHC)
   2100 #  undef HAVE_DIRENT_H
   2101 #  undef HAVE_MEMORY_H
   2102 #  undef HAVE_UNISTD_H
   2103 #  undef HAVE_UTIME_H
   2104 #  undef HAVE_SYS_TIME_H
   2105 #endif
   2106 #endif
   2107 #if (ACC_OS_CONSOLE)
   2108 #  undef HAVE_DIRENT_H
   2109 #endif
   2110 #if (ACC_OS_EMBEDDED)
   2111 #  undef HAVE_DIRENT_H
   2112 #endif
   2113 #if (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99)
   2114 #  undef HAVE_DIRENT_H
   2115 #  undef HAVE_FCNTL_H
   2116 #  undef HAVE_MALLOC_H
   2117 #  undef HAVE_UNISTD_H
   2118 #  undef HAVE_UTIME_H
   2119 #  undef HAVE_SYS_STAT_H
   2120 #  undef HAVE_SYS_TIME_H
   2121 #  undef HAVE_SYS_TYPES_H
   2122 #endif
   2123 #if (ACC_LIBC_GLIBC >= 0x020100ul)
   2124 #  define HAVE_STDINT_H 1
   2125 #elif (ACC_LIBC_DIETLIBC)
   2126 #  undef HAVE_STDINT_H
   2127 #elif (ACC_LIBC_UCLIBC)
   2128 #  define HAVE_STDINT_H 1
   2129 #elif (ACC_CC_BORLANDC) && (__BORLANDC__ >= 0x560)
   2130 #  undef HAVE_STDINT_H
   2131 #elif (ACC_CC_DMC) && (__DMC__ >= 0x825)
   2132 #  define HAVE_STDINT_H 1
   2133 #endif
   2134 #if (HAVE_SYS_TIME_H && HAVE_TIME_H)
   2135 #  define TIME_WITH_SYS_TIME 1
   2136 #endif
   2137 #endif
   2138 #endif
   2139 #if !defined(ACC_CFG_AUTO_NO_FUNCTIONS)
   2140 #if defined(ACC_LIBC_NAKED)
   2141 #elif defined(ACC_LIBC_FREESTANDING)
   2142 #elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
   2143 #  define HAVE_LONGJMP 1
   2144 #  define HAVE_MEMCMP 1
   2145 #  define HAVE_MEMCPY 1
   2146 #  define HAVE_MEMMOVE 1
   2147 #  define HAVE_MEMSET 1
   2148 #  define HAVE_SETJMP 1
   2149 #else
   2150 #define HAVE_ACCESS 1
   2151 #define HAVE_ALLOCA 1
   2152 #define HAVE_ATEXIT 1
   2153 #define HAVE_ATOI 1
   2154 #define HAVE_ATOL 1
   2155 #define HAVE_CHMOD 1
   2156 #define HAVE_CHOWN 1
   2157 #define HAVE_CTIME 1
   2158 #define HAVE_DIFFTIME 1
   2159 #define HAVE_FILENO 1
   2160 #define HAVE_FSTAT 1
   2161 #define HAVE_GETENV 1
   2162 #define HAVE_GETTIMEOFDAY 1
   2163 #define HAVE_GMTIME 1
   2164 #define HAVE_ISATTY 1
   2165 #define HAVE_LOCALTIME 1
   2166 #define HAVE_LONGJMP 1
   2167 #define HAVE_LSTAT 1
   2168 #define HAVE_MEMCMP 1
   2169 #define HAVE_MEMCPY 1
   2170 #define HAVE_MEMMOVE 1
   2171 #define HAVE_MEMSET 1
   2172 #define HAVE_MKDIR 1
   2173 #define HAVE_MKTIME 1
   2174 #define HAVE_QSORT 1
   2175 #define HAVE_RAISE 1
   2176 #define HAVE_RMDIR 1
   2177 #define HAVE_SETJMP 1
   2178 #define HAVE_SIGNAL 1
   2179 #define HAVE_SNPRINTF 1
   2180 #define HAVE_STAT 1
   2181 #define HAVE_STRCHR 1
   2182 #define HAVE_STRDUP 1
   2183 #define HAVE_STRERROR 1
   2184 #define HAVE_STRFTIME 1
   2185 #define HAVE_STRRCHR 1
   2186 #define HAVE_STRSTR 1
   2187 #define HAVE_TIME 1
   2188 #define HAVE_UMASK 1
   2189 #define HAVE_UTIME 1
   2190 #define HAVE_VSNPRINTF 1
   2191 #if (ACC_OS_BEOS || ACC_OS_CYGWIN || ACC_OS_POSIX || ACC_OS_QNX || ACC_OS_VMS)
   2192 #  define HAVE_STRCASECMP 1
   2193 #  define HAVE_STRNCASECMP 1
   2194 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
   2195 #  define HAVE_STRCASECMP 1
   2196 #  define HAVE_STRNCASECMP 1
   2197 #else
   2198 #  define HAVE_STRICMP 1
   2199 #  define HAVE_STRNICMP 1
   2200 #endif
   2201 #if (ACC_OS_POSIX)
   2202 #  if (ACC_OS_POSIX_AIX)
   2203 #    define HAVE_GETRUSAGE 1
   2204 #  elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
   2205 #    undef HAVE_CHOWN
   2206 #    undef HAVE_LSTAT
   2207 #  elif (ACC_OS_POSIX_UNICOS)
   2208 #    undef HAVE_ALLOCA
   2209 #    undef HAVE_SNPRINTF
   2210 #    undef HAVE_VSNPRINTF
   2211 #  endif
   2212 #  if (ACC_CC_TINYC)
   2213 #    undef HAVE_ALLOCA
   2214 #  endif
   2215 #  if (ACC_LIBC_DIETLIBC || ACC_LIBC_GLIBC || ACC_LIBC_UCLIBC)
   2216 #    define HAVE_GETRUSAGE 1
   2217 #    define HAVE_GETPAGESIZE 1
   2218 #    define HAVE_MMAP 1
   2219 #    define HAVE_MPROTECT 1
   2220 #    define HAVE_MUNMAP 1
   2221 #  endif
   2222 #elif (ACC_OS_CYGWIN)
   2223 #  if (ACC_CC_GNUC < 0x025a00ul)
   2224 #    undef HAVE_GETTIMEOFDAY
   2225 #    undef HAVE_LSTAT
   2226 #  endif
   2227 #  if (ACC_CC_GNUC < 0x025f00ul)
   2228 #    undef HAVE_SNPRINTF
   2229 #    undef HAVE_VSNPRINTF
   2230 #  endif
   2231 #elif (ACC_OS_EMX)
   2232 #  undef HAVE_CHOWN
   2233 #  undef HAVE_LSTAT
   2234 #elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
   2235 #  if !defined(__MINT__)
   2236 #    undef HAVE_SNPRINTF
   2237 #    undef HAVE_VSNPRINTF
   2238 #  endif
   2239 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
   2240 #  undef HAVE_ALLOCA
   2241 #  undef HAVE_ACCESS
   2242 #  undef HAVE_CHMOD
   2243 #  undef HAVE_CHOWN
   2244 #  undef HAVE_FSTAT
   2245 #  undef HAVE_GETTIMEOFDAY
   2246 #  undef HAVE_LSTAT
   2247 #  undef HAVE_SNPRINTF
   2248 #  undef HAVE_UMASK
   2249 #  undef HAVE_UTIME
   2250 #  undef HAVE_VSNPRINTF
   2251 #endif
   2252 #if (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
   2253 #undef HAVE_CHOWN
   2254 #undef HAVE_GETTIMEOFDAY
   2255 #undef HAVE_LSTAT
   2256 #undef HAVE_UMASK
   2257 #if (ACC_CC_AZTECC)
   2258 #  undef HAVE_ALLOCA
   2259 #  undef HAVE_DIFFTIME
   2260 #  undef HAVE_FSTAT
   2261 #  undef HAVE_STRDUP
   2262 #  undef HAVE_SNPRINTF
   2263 #  undef HAVE_UTIME
   2264 #  undef HAVE_VSNPRINTF
   2265 #elif (ACC_CC_BORLANDC)
   2266 #  if (__BORLANDC__ < 0x0400)
   2267 #    undef HAVE_ALLOCA
   2268 #    undef HAVE_UTIME
   2269 #  endif
   2270 #  if ((__BORLANDC__ < 0x0410) && ACC_OS_WIN16)
   2271 #    undef HAVE_ALLOCA
   2272 #  endif
   2273 #  if (__BORLANDC__ < 0x0550)
   2274 #    undef HAVE_SNPRINTF
   2275 #    undef HAVE_VSNPRINTF
   2276 #  endif
   2277 #elif (ACC_CC_DMC)
   2278 #  if (ACC_OS_WIN16)
   2279 #    undef HAVE_ALLOCA
   2280 #  endif
   2281 #  define snprintf _snprintf
   2282 #  define vsnprintf _vsnprintf
   2283 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
   2284 #  undef HAVE_SNPRINTF
   2285 #  undef HAVE_VSNPRINTF
   2286 #elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
   2287 #  undef HAVE_SNPRINTF
   2288 #  undef HAVE_VSNPRINTF
   2289 #elif (ACC_CC_IBMC)
   2290 #  undef HAVE_SNPRINTF
   2291 #  undef HAVE_VSNPRINTF
   2292 #elif (ACC_CC_INTELC)
   2293 #  define snprintf _snprintf
   2294 #  define vsnprintf _vsnprintf
   2295 #elif (ACC_CC_LCCWIN32)
   2296 #  define utime _utime
   2297 #elif (ACC_CC_MSC)
   2298 #  if (_MSC_VER < 600)
   2299 #    undef HAVE_STRFTIME
   2300 #  endif
   2301 #  if (_MSC_VER < 700)
   2302 #    undef HAVE_SNPRINTF
   2303 #    undef HAVE_VSNPRINTF
   2304 #  elif (_MSC_VER < 1500)
   2305 #    define snprintf _snprintf
   2306 #    define vsnprintf _vsnprintf
   2307 #  endif
   2308 #  if ((_MSC_VER < 800) && ACC_OS_WIN16)
   2309 #    undef HAVE_ALLOCA
   2310 #  endif
   2311 #  if (ACC_ARCH_I086) && defined(__cplusplus)
   2312 #    undef HAVE_LONGJMP
   2313 #    undef HAVE_SETJMP
   2314 #  endif
   2315 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__MINGW32__)
   2316 #  if (ACC_CC_GNUC < 0x025f00ul)
   2317 #    undef HAVE_SNPRINTF
   2318 #    undef HAVE_VSNPRINTF
   2319 #  else
   2320 #    define snprintf _snprintf
   2321 #    define vsnprintf _vsnprintf
   2322 #  endif
   2323 #elif (ACC_OS_WIN32 && ACC_LIBC_MSL)
   2324 #  if (__MSL__ < 0x8000ul)
   2325 #    undef HAVE_CHMOD
   2326 #  endif
   2327 #elif (ACC_CC_NDPC)
   2328 #  undef HAVE_ALLOCA
   2329 #  undef HAVE_SNPRINTF
   2330 #  undef HAVE_STRNICMP
   2331 #  undef HAVE_UTIME
   2332 #  undef HAVE_VSNPRINTF
   2333 #  if defined(__cplusplus)
   2334 #    undef HAVE_STAT
   2335 #  endif
   2336 #elif (ACC_CC_PACIFICC)
   2337 #  undef HAVE_ACCESS
   2338 #  undef HAVE_ALLOCA
   2339 #  undef HAVE_CHMOD
   2340 #  undef HAVE_DIFFTIME
   2341 #  undef HAVE_FSTAT
   2342 #  undef HAVE_MKTIME
   2343 #  undef HAVE_RAISE
   2344 #  undef HAVE_SNPRINTF
   2345 #  undef HAVE_STRFTIME
   2346 #  undef HAVE_UTIME
   2347 #  undef HAVE_VSNPRINTF
   2348 #elif (ACC_OS_WIN32 && ACC_CC_PELLESC)
   2349 #  if (__POCC__ < 280)
   2350 #    define alloca _alloca
   2351 #    undef HAVE_UTIME
   2352 #  endif
   2353 #elif (ACC_OS_WIN32 && ACC_CC_PGI) && defined(__MINGW32__)
   2354 #  define snprintf _snprintf
   2355 #  define vsnprintf _vsnprintf
   2356 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
   2357 #  undef HAVE_SNPRINTF
   2358 #  undef HAVE_VSNPRINTF
   2359 #elif (ACC_CC_SYMANTECC)
   2360 #  if (ACC_OS_WIN16 && (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE))
   2361 #    undef HAVE_ALLOCA
   2362 #  endif
   2363 #  if (__SC__ < 0x600)
   2364 #    undef HAVE_SNPRINTF
   2365 #    undef HAVE_VSNPRINTF
   2366 #  else
   2367 #    define snprintf _snprintf
   2368 #    define vsnprintf _vsnprintf
   2369 #  endif
   2370 #  if (__SC__ < 0x700)
   2371 #    undef HAVE_DIFFTIME
   2372 #    undef HAVE_UTIME
   2373 #  endif
   2374 #elif (ACC_CC_TOPSPEEDC)
   2375 #  undef HAVE_SNPRINTF
   2376 #  undef HAVE_VSNPRINTF
   2377 #elif (ACC_CC_TURBOC)
   2378 #  undef HAVE_ALLOCA
   2379 #  undef HAVE_SNPRINTF
   2380 #  undef HAVE_VSNPRINTF
   2381 #  if (__TURBOC__ < 0x0200)
   2382 #    undef HAVE_RAISE
   2383 #    undef HAVE_SIGNAL
   2384 #  endif
   2385 #  if (__TURBOC__ < 0x0295)
   2386 #    undef HAVE_MKTIME
   2387 #    undef HAVE_STRFTIME
   2388 #  endif
   2389 #  if (__TURBOC__ < 0x0400)
   2390 #    undef HAVE_UTIME
   2391 #  endif
   2392 #elif (ACC_CC_WATCOMC)
   2393 #  if (__WATCOMC__ < 1100)
   2394 #    undef HAVE_SNPRINTF
   2395 #    undef HAVE_VSNPRINTF
   2396 #  elif (__WATCOMC__ < 1200)
   2397 #    define snprintf _snprintf
   2398 #    define vsnprintf _vsnprintf
   2399 #  endif
   2400 #elif (ACC_CC_ZORTECHC)
   2401 #  if (ACC_OS_WIN16 && (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE))
   2402 #    undef HAVE_ALLOCA
   2403 #  endif
   2404 #  undef HAVE_DIFFTIME
   2405 #  undef HAVE_SNPRINTF
   2406 #  undef HAVE_UTIME
   2407 #  undef HAVE_VSNPRINTF
   2408 #endif
   2409 #endif
   2410 #if (ACC_OS_CONSOLE)
   2411 #  undef HAVE_ACCESS
   2412 #  undef HAVE_CHMOD
   2413 #  undef HAVE_CHOWN
   2414 #  undef HAVE_GETTIMEOFDAY
   2415 #  undef HAVE_LSTAT
   2416 #  undef HAVE_TIME
   2417 #  undef HAVE_UMASK
   2418 #  undef HAVE_UTIME
   2419 #endif
   2420 #if (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99)
   2421 #  undef HAVE_ACCESS
   2422 #  undef HAVE_CHMOD
   2423 #  undef HAVE_CHOWN
   2424 #  undef HAVE_FSTAT
   2425 #  undef HAVE_GETTIMEOFDAY
   2426 #  undef HAVE_LSTAT
   2427 #  undef HAVE_STAT
   2428 #  undef HAVE_UMASK
   2429 #  undef HAVE_UTIME
   2430 # if 1
   2431 #  undef HAVE_ALLOCA
   2432 #  undef HAVE_ISATTY
   2433 #  undef HAVE_MKDIR
   2434 #  undef HAVE_RMDIR
   2435 #  undef HAVE_STRDUP
   2436 #  undef HAVE_STRICMP
   2437 #  undef HAVE_STRNICMP
   2438 # endif
   2439 #endif
   2440 #endif
   2441 #endif
   2442 #if !defined(ACC_CFG_AUTO_NO_SIZES)
   2443 #if !defined(SIZEOF_SHORT) && defined(ACC_SIZEOF_SHORT)
   2444 #  define SIZEOF_SHORT          ACC_SIZEOF_SHORT
   2445 #endif
   2446 #if !defined(SIZEOF_INT) && defined(ACC_SIZEOF_INT)
   2447 #  define SIZEOF_INT            ACC_SIZEOF_INT
   2448 #endif
   2449 #if !defined(SIZEOF_LONG) && defined(ACC_SIZEOF_LONG)
   2450 #  define SIZEOF_LONG           ACC_SIZEOF_LONG
   2451 #endif
   2452 #if !defined(SIZEOF_LONG_LONG) && defined(ACC_SIZEOF_LONG_LONG)
   2453 #  define SIZEOF_LONG_LONG      ACC_SIZEOF_LONG_LONG
   2454 #endif
   2455 #if !defined(SIZEOF___INT32) && defined(ACC_SIZEOF___INT32)
   2456 #  define SIZEOF___INT32        ACC_SIZEOF___INT32
   2457 #endif
   2458 #if !defined(SIZEOF___INT64) && defined(ACC_SIZEOF___INT64)
   2459 #  define SIZEOF___INT64        ACC_SIZEOF___INT64
   2460 #endif
   2461 #if !defined(SIZEOF_VOID_P) && defined(ACC_SIZEOF_VOID_P)
   2462 #  define SIZEOF_VOID_P         ACC_SIZEOF_VOID_P
   2463 #endif
   2464 #if !defined(SIZEOF_SIZE_T) && defined(ACC_SIZEOF_SIZE_T)
   2465 #  define SIZEOF_SIZE_T         ACC_SIZEOF_SIZE_T
   2466 #endif
   2467 #if !defined(SIZEOF_PTRDIFF_T) && defined(ACC_SIZEOF_PTRDIFF_T)
   2468 #  define SIZEOF_PTRDIFF_T      ACC_SIZEOF_PTRDIFF_T
   2469 #endif
   2470 #endif
   2471 #if defined(HAVE_SIGNAL) && !defined(RETSIGTYPE)
   2472 #  define RETSIGTYPE void
   2473 #endif
   2474 #endif
   2475 #if defined(ACC_CFG_NO_ACC_TYPE_H)
   2476 #else
   2477 #if (ACC_SIZEOF_LONG_LONG+0 > 0)
   2478 __acc_gnuc_extension__ typedef long long acc_llong_t;
   2479 __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
   2480 #endif
   2481 #if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
   2482 #  error "missing defines for sizes"
   2483 #endif
   2484 #if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
   2485 #  error "missing defines for sizes"
   2486 #endif
   2487 #if !defined(acc_int16e_t)
   2488 #if (ACC_SIZEOF_LONG == 2)
   2489 #  define acc_int16e_t          long
   2490 #  define acc_uint16e_t         unsigned long
   2491 #elif (ACC_SIZEOF_INT == 2)
   2492 #  define acc_int16e_t          int
   2493 #  define acc_uint16e_t         unsigned int
   2494 #elif (ACC_SIZEOF_SHORT == 2)
   2495 #  define acc_int16e_t          short int
   2496 #  define acc_uint16e_t         unsigned short int
   2497 #elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_GNUC >= 0x025f00ul || ACC_CC_LLVM)
   2498    typedef int __acc_int16e_hi_t __attribute__((__mode__(__HI__)));
   2499    typedef unsigned int __acc_uint16e_hi_t __attribute__((__mode__(__HI__)));
   2500 #  define acc_int16e_t          __acc_int16e_hi_t
   2501 #  define acc_uint16e_t         __acc_uint16e_hi_t
   2502 #elif (ACC_SIZEOF___INT16 == 2)
   2503 #  define acc_int16e_t          __int16
   2504 #  define acc_uint16e_t         unsigned __int16
   2505 #else
   2506 #endif
   2507 #endif
   2508 #if defined(acc_int16e_t)
   2509 #  define ACC_SIZEOF_ACC_INT16E_T   2
   2510 #endif
   2511 #if !defined(acc_int32e_t)
   2512 #if (ACC_SIZEOF_LONG == 4)
   2513 #  define acc_int32e_t          long int
   2514 #  define acc_uint32e_t         unsigned long int
   2515 #elif (ACC_SIZEOF_INT == 4)
   2516 #  define acc_int32e_t          int
   2517 #  define acc_uint32e_t         unsigned int
   2518 #elif (ACC_SIZEOF_SHORT == 4)
   2519 #  define acc_int32e_t          short int
   2520 #  define acc_uint32e_t         unsigned short int
   2521 #elif (ACC_SIZEOF_LONG_LONG == 4)
   2522 #  define acc_int32e_t          acc_llong_t
   2523 #  define acc_uint32e_t         acc_ullong_t
   2524 #elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
   2525    typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
   2526    typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
   2527 #  define acc_int32e_t          __acc_int32e_si_t
   2528 #  define acc_uint32e_t         __acc_uint32e_si_t
   2529 #elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
   2530    typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
   2531    typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
   2532 #  define acc_int32e_t          __acc_int32e_si_t
   2533 #  define acc_uint32e_t         __acc_uint32e_si_t
   2534 #  define ACC_INT32_C(c)        c##LL
   2535 #  define ACC_UINT32_C(c)       c##ULL
   2536 #elif (ACC_SIZEOF___INT32 == 4)
   2537 #  define acc_int32e_t          __int32
   2538 #  define acc_uint32e_t         unsigned __int32
   2539 #else
   2540 #endif
   2541 #endif
   2542 #if defined(acc_int32e_t)
   2543 #  define ACC_SIZEOF_ACC_INT32E_T   4
   2544 #endif
   2545 #if !defined(acc_int64e_t)
   2546 #if (ACC_SIZEOF___INT64 == 8)
   2547 #  if (ACC_CC_BORLANDC) && !defined(ACC_CFG_TYPE_PREFER___INT64)
   2548 #    define ACC_CFG_TYPE_PREFER___INT64 1
   2549 #  endif
   2550 #endif
   2551 #if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
   2552 #  define acc_int64e_t          int
   2553 #  define acc_uint64e_t         unsigned int
   2554 #  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF_INT
   2555 #elif (ACC_SIZEOF_LONG == 8)
   2556 #  define acc_int64e_t          long int
   2557 #  define acc_uint64e_t         unsigned long int
   2558 #  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF_LONG
   2559 #elif (ACC_SIZEOF_LONG_LONG == 8) && !defined(ACC_CFG_TYPE_PREFER___INT64)
   2560 #  define acc_int64e_t          acc_llong_t
   2561 #  define acc_uint64e_t         acc_ullong_t
   2562 #  if (ACC_CC_BORLANDC)
   2563 #    define ACC_INT64_C(c)      ((c) + 0ll)
   2564 #    define ACC_UINT64_C(c)     ((c) + 0ull)
   2565 #  else
   2566 #    define ACC_INT64_C(c)      c##LL
   2567 #    define ACC_UINT64_C(c)     c##ULL
   2568 #  endif
   2569 #  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF_LONG_LONG
   2570 #elif (ACC_SIZEOF___INT64 == 8)
   2571 #  define acc_int64e_t          __int64
   2572 #  define acc_uint64e_t         unsigned __int64
   2573 #  if (ACC_CC_BORLANDC)
   2574 #    define ACC_INT64_C(c)      ((c) + 0i64)
   2575 #    define ACC_UINT64_C(c)     ((c) + 0ui64)
   2576 #  else
   2577 #    define ACC_INT64_C(c)      c##i64
   2578 #    define ACC_UINT64_C(c)     c##ui64
   2579 #  endif
   2580 #  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF___INT64
   2581 #else
   2582 #endif
   2583 #endif
   2584 #if !defined(acc_int32l_t)
   2585 #if defined(acc_int32e_t)
   2586 #  define acc_int32l_t          acc_int32e_t
   2587 #  define acc_uint32l_t         acc_uint32e_t
   2588 #  define ACC_SIZEOF_ACC_INT32L_T   ACC_SIZEOF_ACC_INT32E_T
   2589 #elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
   2590 #  define acc_int32l_t          int
   2591 #  define acc_uint32l_t         unsigned int
   2592 #  define ACC_SIZEOF_ACC_INT32L_T   ACC_SIZEOF_INT
   2593 #elif (ACC_SIZEOF_LONG >= 4)
   2594 #  define acc_int32l_t          long int
   2595 #  define acc_uint32l_t         unsigned long int
   2596 #  define ACC_SIZEOF_ACC_INT32L_T   ACC_SIZEOF_LONG
   2597 #else
   2598 #  error "acc_int32l_t"
   2599 #endif
   2600 #endif
   2601 #if !defined(acc_int64l_t)
   2602 #if defined(acc_int64e_t)
   2603 #  define acc_int64l_t          acc_int64e_t
   2604 #  define acc_uint64l_t         acc_uint64e_t
   2605 #  define ACC_SIZEOF_ACC_INT64L_T   ACC_SIZEOF_ACC_INT64E_T
   2606 #else
   2607 #endif
   2608 #endif
   2609 #if !defined(acc_int32f_t)
   2610 #if (ACC_SIZEOF_SIZE_T >= 8)
   2611 #  define acc_int32f_t          acc_int64l_t
   2612 #  define acc_uint32f_t         acc_uint64l_t
   2613 #  define ACC_SIZEOF_ACC_INT32F_T   ACC_SIZEOF_ACC_INT64L_T
   2614 #else
   2615 #  define acc_int32f_t          acc_int32l_t
   2616 #  define acc_uint32f_t         acc_uint32l_t
   2617 #  define ACC_SIZEOF_ACC_INT32F_T   ACC_SIZEOF_ACC_INT32L_T
   2618 #endif
   2619 #endif
   2620 #if !defined(acc_intptr_t)
   2621 #if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
   2622 #  define __ACC_INTPTR_T_IS_POINTER 1
   2623    typedef char*                acc_intptr_t;
   2624    typedef char*                acc_uintptr_t;
   2625 #  define acc_intptr_t          acc_intptr_t
   2626 #  define acc_uintptr_t         acc_uintptr_t
   2627 #  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_VOID_P
   2628 #elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
   2629    typedef __w64 int            acc_intptr_t;
   2630    typedef __w64 unsigned int   acc_uintptr_t;
   2631 #  define acc_intptr_t          acc_intptr_t
   2632 #  define acc_uintptr_t         acc_uintptr_t
   2633 #  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_INT
   2634 #elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
   2635 #  define acc_intptr_t          short
   2636 #  define acc_uintptr_t         unsigned short
   2637 #  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_SHORT
   2638 #elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
   2639 #  define acc_intptr_t          int
   2640 #  define acc_uintptr_t         unsigned int
   2641 #  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_INT
   2642 #elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
   2643 #  define acc_intptr_t          long
   2644 #  define acc_uintptr_t         unsigned long
   2645 #  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_LONG
   2646 #elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
   2647 #  define acc_intptr_t          acc_int64l_t
   2648 #  define acc_uintptr_t         acc_uint64l_t
   2649 #  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_ACC_INT64L_T
   2650 #else
   2651 #  error "acc_intptr_t"
   2652 #endif
   2653 #endif
   2654 #if !defined(acc_word_t)
   2655 #if defined(ACC_WORDSIZE) && (ACC_WORDSIZE > 0)
   2656 #if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !defined(__ACC_INTPTR_T_IS_POINTER)
   2657 #  define acc_word_t            acc_uintptr_t
   2658 #  define acc_sword_t           acc_intptr_t
   2659 #  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
   2660 #elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
   2661 #  define acc_word_t            unsigned long
   2662 #  define acc_sword_t           long
   2663 #  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
   2664 #elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
   2665 #  define acc_word_t            unsigned int
   2666 #  define acc_sword_t           int
   2667 #  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
   2668 #elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
   2669 #  define acc_word_t            unsigned short
   2670 #  define acc_sword_t           short
   2671 #  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
   2672 #elif (ACC_WORDSIZE == 1)
   2673 #  define acc_word_t            unsigned char
   2674 #  define acc_sword_t           signed char
   2675 #  define ACC_SIZEOF_ACC_WORD_T 1
   2676 #elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
   2677 #  define acc_word_t            acc_uint64l_t
   2678 #  define acc_sword_t           acc_int64l_t
   2679 #  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
   2680 #elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
   2681 #if 0
   2682    typedef unsigned acc_word_t  __attribute__((__mode__(__V16QI__)));
   2683    typedef int      acc_sword_t __attribute__((__mode__(__V16QI__)));
   2684 #  define acc_word_t            acc_word_t
   2685 #  define acc_sword_t           acc_sword_t
   2686 #  define ACC_SIZEOF_ACC_WORD_T 16
   2687 #endif
   2688 #else
   2689 #  error "acc_word_t"
   2690 #endif
   2691 #endif
   2692 #endif
   2693 #if !defined(ACC_INT16_C)
   2694 #  if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
   2695 #    define ACC_INT16_C(c)      ((c) + 0)
   2696 #    define ACC_UINT16_C(c)     ((c) + 0U)
   2697 #  elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
   2698 #    define ACC_INT16_C(c)      ((c) + 0L)
   2699 #    define ACC_UINT16_C(c)     ((c) + 0UL)
   2700 #  elif (ACC_SIZEOF_INT >= 2)
   2701 #    define ACC_INT16_C(c)      c
   2702 #    define ACC_UINT16_C(c)     c##U
   2703 #  elif (ACC_SIZEOF_LONG >= 2)
   2704 #    define ACC_INT16_C(c)      c##L
   2705 #    define ACC_UINT16_C(c)     c##UL
   2706 #  else
   2707 #    error "ACC_INT16_C"
   2708 #  endif
   2709 #endif
   2710 #if !defined(ACC_INT32_C)
   2711 #  if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
   2712 #    define ACC_INT32_C(c)      ((c) + 0)
   2713 #    define ACC_UINT32_C(c)     ((c) + 0U)
   2714 #  elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
   2715 #    define ACC_INT32_C(c)      ((c) + 0L)
   2716 #    define ACC_UINT32_C(c)     ((c) + 0UL)
   2717 #  elif (ACC_SIZEOF_INT >= 4)
   2718 #    define ACC_INT32_C(c)      c
   2719 #    define ACC_UINT32_C(c)     c##U
   2720 #  elif (ACC_SIZEOF_LONG >= 4)
   2721 #    define ACC_INT32_C(c)      c##L
   2722 #    define ACC_UINT32_C(c)     c##UL
   2723 #  elif (ACC_SIZEOF_LONG_LONG >= 4)
   2724 #    define ACC_INT32_C(c)      c##LL
   2725 #    define ACC_UINT32_C(c)     c##ULL
   2726 #  else
   2727 #    error "ACC_INT32_C"
   2728 #  endif
   2729 #endif
   2730 #if !defined(ACC_INT64_C) && defined(acc_int64l_t)
   2731 #  if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
   2732 #    define ACC_INT64_C(c)      ((c) + 0)
   2733 #    define ACC_UINT64_C(c)     ((c) + 0U)
   2734 #  elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
   2735 #    define ACC_INT64_C(c)      ((c) + 0L)
   2736 #    define ACC_UINT64_C(c)     ((c) + 0UL)
   2737 #  elif (ACC_SIZEOF_INT >= 8)
   2738 #    define ACC_INT64_C(c)      c
   2739 #    define ACC_UINT64_C(c)     c##U
   2740 #  elif (ACC_SIZEOF_LONG >= 8)
   2741 #    define ACC_INT64_C(c)      c##L
   2742 #    define ACC_UINT64_C(c)     c##UL
   2743 #  else
   2744 #    error "ACC_INT64_C"
   2745 #  endif
   2746 #endif
   2747 #if !defined(SIZEOF_ACC_INT16E_T) && defined(ACC_SIZEOF_ACC_INT16E_T)
   2748 #  define SIZEOF_ACC_INT16E_T   ACC_SIZEOF_ACC_INT16E_T
   2749 #endif
   2750 #if !defined(SIZEOF_ACC_INT32E_T) && defined(ACC_SIZEOF_ACC_INT32E_T)
   2751 #  define SIZEOF_ACC_INT32E_T   ACC_SIZEOF_ACC_INT32E_T
   2752 #endif
   2753 #if !defined(SIZEOF_ACC_INT64E_T) && defined(ACC_SIZEOF_ACC_INT64E_T)
   2754 #  define SIZEOF_ACC_INT64E_T   ACC_SIZEOF_ACC_INT64E_T
   2755 #endif
   2756 #if !defined(SIZEOF_ACC_INT32L_T) && defined(ACC_SIZEOF_ACC_INT32L_T)
   2757 #  define SIZEOF_ACC_INT32L_T   ACC_SIZEOF_ACC_INT32L_T
   2758 #endif
   2759 #if !defined(SIZEOF_ACC_INT64L_T) && defined(ACC_SIZEOF_ACC_INT64L_T)
   2760 #  define SIZEOF_ACC_INT64L_T   ACC_SIZEOF_ACC_INT64L_T
   2761 #endif
   2762 #if !defined(SIZEOF_ACC_INT32F_T) && defined(ACC_SIZEOF_ACC_INT32F_T)
   2763 #  define SIZEOF_ACC_INT32F_T   ACC_SIZEOF_ACC_INT32F_T
   2764 #endif
   2765 #if !defined(SIZEOF_ACC_INTPTR_T) && defined(ACC_SIZEOF_ACC_INTPTR_T)
   2766 #  define SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_ACC_INTPTR_T
   2767 #endif
   2768 #if !defined(SIZEOF_ACC_WORD_T) && defined(ACC_SIZEOF_ACC_WORD_T)
   2769 #  define SIZEOF_ACC_WORD_T     ACC_SIZEOF_ACC_WORD_T
   2770 #endif
   2771 #if 1 && !defined(acc_signo_t) && defined(__linux__) && defined(__dietlibc__) && (ACC_SIZEOF_INT != 4)
   2772 #  define acc_signo_t           acc_int32e_t
   2773 #endif
   2774 #if !defined(acc_signo_t)
   2775 #  define acc_signo_t           int
   2776 #endif
   2777 #if defined(__cplusplus)
   2778 extern "C" {
   2779 #endif
   2780 #if (ACC_BROKEN_CDECL_ALT_SYNTAX)
   2781 typedef void __acc_cdecl_sighandler (*acc_sighandler_t)(acc_signo_t);
   2782 #elif defined(RETSIGTYPE)
   2783 typedef RETSIGTYPE (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
   2784 #else
   2785 typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
   2786 #endif
   2787 #if defined(__cplusplus)
   2788 }
   2789 #endif
   2790 #  if defined(ACC_CFG_NO_ACC_UA_H)
   2791 #  else
   2792 #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
   2793 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
   2794 #elif (ACC_CC_INTELC) && defined(_WIN32)
   2795 #elif (ACC_CC_INTELC && (__INTEL_COMPILER < 700))
   2796 #elif (ACC_CC_LLVM)
   2797 #elif (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE)
   2798 #if !defined(__acc_ua16_t) && (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
   2799    typedef struct { __acc_ua_volatile acc_uint16e_t v __attribute__((__packed__)); } __acc_ua16_t;
   2800 #  define __acc_ua16_t __acc_ua16_t
   2801 #endif
   2802 #if !defined(__acc_ua32_t) && (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
   2803    typedef struct { __acc_ua_volatile acc_uint32e_t v __attribute__((__packed__)); } __acc_ua32_t;
   2804 #  define __acc_ua32_t __acc_ua32_t
   2805 #endif
   2806 #if !defined(__acc_ua64_t) && (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
   2807    typedef struct { __acc_ua_volatile acc_uint64l_t v __attribute__((__packed__)); } __acc_ua64_t;
   2808 #  define __acc_ua64_t __acc_ua64_t
   2809 #endif
   2810 #endif
   2811 #if (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
   2812 #define ACC_UA_GET16(p)         (* (__acc_ua_volatile const acc_uint16e_t*) (__acc_ua_volatile const void*) (p))
   2813 #define ACC_UA_SET16(p,v)       (* (__acc_ua_volatile acc_uint16e_t*) (__acc_ua_volatile void*) (p) = (acc_uint16e_t) (v))
   2814 #if (ACC_ABI_BIG_ENDIAN)
   2815 #  define ACC_UA_GET_BE16(p)    ACC_UA_GET16(p)
   2816 #  define ACC_UA_SET_BE16(p,v)  ACC_UA_SET16(p,v)
   2817 #elif (ACC_ABI_LITTLE_ENDIAN)
   2818 #  define ACC_UA_GET_LE16(p)    ACC_UA_GET16(p)
   2819 #  define ACC_UA_SET_LE16(p,v)  ACC_UA_SET16(p,v)
   2820 #endif
   2821 #if !defined(ACC_CFG_NO_INLINE_ASM) && defined(__acc_HAVE_forceinline)
   2822 #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
   2823 #if !defined(ACC_UA_GET_LE16)
   2824 extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp);
   2825 extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
   2826     __acc_ua_volatile const acc_uint16e_t* p = (__acc_ua_volatile const acc_uint16e_t*) pp;
   2827     unsigned long v;
   2828     __asm__ __volatile__("lhbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
   2829     return v;
   2830 }
   2831 #define ACC_UA_GET_LE16(p)      __ACC_UA_GET_LE16(p)
   2832 #endif
   2833 #if !defined(ACC_UA_SET_LE16)
   2834 extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v);
   2835 extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
   2836     __acc_ua_volatile acc_uint16e_t* p = (__acc_ua_volatile acc_uint16e_t*) pp;
   2837     __asm__ __volatile__("sthbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
   2838 }
   2839 #define ACC_UA_SET_LE16(p,v)    __ACC_UA_SET_LE16(p,v)
   2840 #endif
   2841 #endif
   2842 #endif
   2843 #if !defined(ACC_UA_COPY16)
   2844 #  define ACC_UA_COPY16(d,s)    ACC_UA_SET16(d, ACC_UA_GET16(s))
   2845 #endif
   2846 #endif
   2847 #if (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
   2848 #define ACC_UA_GET32(p)         (* (__acc_ua_volatile const acc_uint32e_t*) (__acc_ua_volatile const void*) (p))
   2849 #define ACC_UA_SET32(p,v)       (* (__acc_ua_volatile acc_uint32e_t*) (__acc_ua_volatile void*) (p) = (acc_uint32e_t) (v))
   2850 #if (ACC_ABI_BIG_ENDIAN)
   2851 #  define ACC_UA_GET_BE32(p)    ACC_UA_GET32(p)
   2852 #  define ACC_UA_SET_BE32(p,v)  ACC_UA_SET32(p,v)
   2853 #elif (ACC_ABI_LITTLE_ENDIAN)
   2854 #  define ACC_UA_GET_LE32(p)    ACC_UA_GET32(p)
   2855 #  define ACC_UA_SET_LE32(p,v)  ACC_UA_SET32(p,v)
   2856 #endif
   2857 #if !defined(ACC_CFG_NO_INLINE_ASM) && defined(__acc_HAVE_forceinline)
   2858 #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
   2859 #if !defined(ACC_UA_GET_LE32)
   2860 extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp);
   2861 extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
   2862     __acc_ua_volatile const acc_uint32e_t* p = (__acc_ua_volatile const acc_uint32e_t*) pp;
   2863     unsigned long v;
   2864     __asm__ __volatile__("lwbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
   2865     return v;
   2866 }
   2867 #define ACC_UA_GET_LE32(p)      __ACC_UA_GET_LE32(p)
   2868 #endif
   2869 #if !defined(ACC_UA_SET_LE32)
   2870 extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v);
   2871 extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
   2872     __acc_ua_volatile acc_uint32e_t* p = (__acc_ua_volatile acc_uint32e_t*) pp;
   2873     __asm__ __volatile__("stwbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
   2874 }
   2875 #define ACC_UA_SET_LE32(p,v)    __ACC_UA_SET_LE32(p,v)
   2876 #endif
   2877 #endif
   2878 #endif
   2879 #if !defined(ACC_UA_COPY32)
   2880 #  define ACC_UA_COPY32(d,s)    ACC_UA_SET32(d, ACC_UA_GET32(s))
   2881 #endif
   2882 #endif
   2883 #if (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
   2884 #define ACC_UA_GET64(p)         (* (__acc_ua_volatile const acc_uint64l_t*) (__acc_ua_volatile const void*) (p))
   2885 #define ACC_UA_SET64(p,v)       (* (__acc_ua_volatile acc_uint64l_t*) (__acc_ua_volatile void*) (p) = (acc_uint64l_t) (v))
   2886 #if (ACC_ABI_BIG_ENDIAN)
   2887 #  define ACC_UA_GET_BE64(p)    ACC_UA_GET64(p)
   2888 #  define ACC_UA_SET_BE64(p,v)  ACC_UA_SET64(p,v)
   2889 #elif (ACC_ABI_LITTLE_ENDIAN)
   2890 #  define ACC_UA_GET_LE64(p)    ACC_UA_GET64(p)
   2891 #  define ACC_UA_SET_LE64(p,v)  ACC_UA_SET64(p,v)
   2892 #endif
   2893 #if !defined(ACC_UA_COPY64)
   2894 #  define ACC_UA_COPY64(d,s)    ACC_UA_SET64(d, ACC_UA_GET64(s))
   2895 #endif
   2896 #endif
   2897 #  endif
   2898 #endif
   2899 #endif
   2900 #if defined(ACC_WANT_ACC_TYPE_H)
   2901 #  undef ACC_WANT_ACC_TYPE_H
   2902 #  if defined(ACC_CFG_NO_ACC_TYPE_H)
   2903 #    error "ACC_WANT_ACC_TYPE_H with ACC_CFG_NO_ACC_TYPE_H"
   2904 #  endif
   2905 #if (ACC_SIZEOF_LONG_LONG+0 > 0)
   2906 __acc_gnuc_extension__ typedef long long acc_llong_t;
   2907 __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
   2908 #endif
   2909 #if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
   2910 #  error "missing defines for sizes"
   2911 #endif
   2912 #if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
   2913 #  error "missing defines for sizes"
   2914 #endif
   2915 #if !defined(acc_int16e_t)
   2916 #if (ACC_SIZEOF_LONG == 2)
   2917 #  define acc_int16e_t          long
   2918 #  define acc_uint16e_t         unsigned long
   2919 #elif (ACC_SIZEOF_INT == 2)
   2920 #  define acc_int16e_t          int
   2921 #  define acc_uint16e_t         unsigned int
   2922 #elif (ACC_SIZEOF_SHORT == 2)
   2923 #  define acc_int16e_t          short int
   2924 #  define acc_uint16e_t         unsigned short int
   2925 #elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_GNUC >= 0x025f00ul || ACC_CC_LLVM)
   2926    typedef int __acc_int16e_hi_t __attribute__((__mode__(__HI__)));
   2927    typedef unsigned int __acc_uint16e_hi_t __attribute__((__mode__(__HI__)));
   2928 #  define acc_int16e_t          __acc_int16e_hi_t
   2929 #  define acc_uint16e_t         __acc_uint16e_hi_t
   2930 #elif (ACC_SIZEOF___INT16 == 2)
   2931 #  define acc_int16e_t          __int16
   2932 #  define acc_uint16e_t         unsigned __int16
   2933 #else
   2934 #endif
   2935 #endif
   2936 #if defined(acc_int16e_t)
   2937 #  define ACC_SIZEOF_ACC_INT16E_T   2
   2938 #endif
   2939 #if !defined(acc_int32e_t)
   2940 #if (ACC_SIZEOF_LONG == 4)
   2941 #  define acc_int32e_t          long int
   2942 #  define acc_uint32e_t         unsigned long int
   2943 #elif (ACC_SIZEOF_INT == 4)
   2944 #  define acc_int32e_t          int
   2945 #  define acc_uint32e_t         unsigned int
   2946 #elif (ACC_SIZEOF_SHORT == 4)
   2947 #  define acc_int32e_t          short int
   2948 #  define acc_uint32e_t         unsigned short int
   2949 #elif (ACC_SIZEOF_LONG_LONG == 4)
   2950 #  define acc_int32e_t          acc_llong_t
   2951 #  define acc_uint32e_t         acc_ullong_t
   2952 #elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
   2953    typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
   2954    typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
   2955 #  define acc_int32e_t          __acc_int32e_si_t
   2956 #  define acc_uint32e_t         __acc_uint32e_si_t
   2957 #elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
   2958    typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
   2959    typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
   2960 #  define acc_int32e_t          __acc_int32e_si_t
   2961 #  define acc_uint32e_t         __acc_uint32e_si_t
   2962 #  define ACC_INT32_C(c)        c##LL
   2963 #  define ACC_UINT32_C(c)       c##ULL
   2964 #elif (ACC_SIZEOF___INT32 == 4)
   2965 #  define acc_int32e_t          __int32
   2966 #  define acc_uint32e_t         unsigned __int32
   2967 #else
   2968 #endif
   2969 #endif
   2970 #if defined(acc_int32e_t)
   2971 #  define ACC_SIZEOF_ACC_INT32E_T   4
   2972 #endif
   2973 #if !defined(acc_int64e_t)
   2974 #if (ACC_SIZEOF___INT64 == 8)
   2975 #  if (ACC_CC_BORLANDC) && !defined(ACC_CFG_TYPE_PREFER___INT64)
   2976 #    define ACC_CFG_TYPE_PREFER___INT64 1
   2977 #  endif
   2978 #endif
   2979 #if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
   2980 #  define acc_int64e_t          int
   2981 #  define acc_uint64e_t         unsigned int
   2982 #  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF_INT
   2983 #elif (ACC_SIZEOF_LONG == 8)
   2984 #  define acc_int64e_t          long int
   2985 #  define acc_uint64e_t         unsigned long int
   2986 #  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF_LONG
   2987 #elif (ACC_SIZEOF_LONG_LONG == 8) && !defined(ACC_CFG_TYPE_PREFER___INT64)
   2988 #  define acc_int64e_t          acc_llong_t
   2989 #  define acc_uint64e_t         acc_ullong_t
   2990 #  if (ACC_CC_BORLANDC)
   2991 #    define ACC_INT64_C(c)      ((c) + 0ll)
   2992 #    define ACC_UINT64_C(c)     ((c) + 0ull)
   2993 #  else
   2994 #    define ACC_INT64_C(c)      c##LL
   2995 #    define ACC_UINT64_C(c)     c##ULL
   2996 #  endif
   2997 #  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF_LONG_LONG
   2998 #elif (ACC_SIZEOF___INT64 == 8)
   2999 #  define acc_int64e_t          __int64
   3000 #  define acc_uint64e_t         unsigned __int64
   3001 #  if (ACC_CC_BORLANDC)
   3002 #    define ACC_INT64_C(c)      ((c) + 0i64)
   3003 #    define ACC_UINT64_C(c)     ((c) + 0ui64)
   3004 #  else
   3005 #    define ACC_INT64_C(c)      c##i64
   3006 #    define ACC_UINT64_C(c)     c##ui64
   3007 #  endif
   3008 #  define ACC_SIZEOF_ACC_INT64E_T   ACC_SIZEOF___INT64
   3009 #else
   3010 #endif
   3011 #endif
   3012 #if !defined(acc_int32l_t)
   3013 #if defined(acc_int32e_t)
   3014 #  define acc_int32l_t          acc_int32e_t
   3015 #  define acc_uint32l_t         acc_uint32e_t
   3016 #  define ACC_SIZEOF_ACC_INT32L_T   ACC_SIZEOF_ACC_INT32E_T
   3017 #elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
   3018 #  define acc_int32l_t          int
   3019 #  define acc_uint32l_t         unsigned int
   3020 #  define ACC_SIZEOF_ACC_INT32L_T   ACC_SIZEOF_INT
   3021 #elif (ACC_SIZEOF_LONG >= 4)
   3022 #  define acc_int32l_t          long int
   3023 #  define acc_uint32l_t         unsigned long int
   3024 #  define ACC_SIZEOF_ACC_INT32L_T   ACC_SIZEOF_LONG
   3025 #else
   3026 #  error "acc_int32l_t"
   3027 #endif
   3028 #endif
   3029 #if !defined(acc_int64l_t)
   3030 #if defined(acc_int64e_t)
   3031 #  define acc_int64l_t          acc_int64e_t
   3032 #  define acc_uint64l_t         acc_uint64e_t
   3033 #  define ACC_SIZEOF_ACC_INT64L_T   ACC_SIZEOF_ACC_INT64E_T
   3034 #else
   3035 #endif
   3036 #endif
   3037 #if !defined(acc_int32f_t)
   3038 #if (ACC_SIZEOF_SIZE_T >= 8)
   3039 #  define acc_int32f_t          acc_int64l_t
   3040 #  define acc_uint32f_t         acc_uint64l_t
   3041 #  define ACC_SIZEOF_ACC_INT32F_T   ACC_SIZEOF_ACC_INT64L_T
   3042 #else
   3043 #  define acc_int32f_t          acc_int32l_t
   3044 #  define acc_uint32f_t         acc_uint32l_t
   3045 #  define ACC_SIZEOF_ACC_INT32F_T   ACC_SIZEOF_ACC_INT32L_T
   3046 #endif
   3047 #endif
   3048 #if !defined(acc_intptr_t)
   3049 #if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
   3050 #  define __ACC_INTPTR_T_IS_POINTER 1
   3051    typedef char*                acc_intptr_t;
   3052    typedef char*                acc_uintptr_t;
   3053 #  define acc_intptr_t          acc_intptr_t
   3054 #  define acc_uintptr_t         acc_uintptr_t
   3055 #  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_VOID_P
   3056 #elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
   3057    typedef __w64 int            acc_intptr_t;
   3058    typedef __w64 unsigned int   acc_uintptr_t;
   3059 #  define acc_intptr_t          acc_intptr_t
   3060 #  define acc_uintptr_t         acc_uintptr_t
   3061 #  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_INT
   3062 #elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
   3063 #  define acc_intptr_t          short
   3064 #  define acc_uintptr_t         unsigned short
   3065 #  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_SHORT
   3066 #elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
   3067 #  define acc_intptr_t          int
   3068 #  define acc_uintptr_t         unsigned int
   3069 #  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_INT
   3070 #elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
   3071 #  define acc_intptr_t          long
   3072 #  define acc_uintptr_t         unsigned long
   3073 #  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_LONG
   3074 #elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
   3075 #  define acc_intptr_t          acc_int64l_t
   3076 #  define acc_uintptr_t         acc_uint64l_t
   3077 #  define ACC_SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_ACC_INT64L_T
   3078 #else
   3079 #  error "acc_intptr_t"
   3080 #endif
   3081 #endif
   3082 #if !defined(acc_word_t)
   3083 #if defined(ACC_WORDSIZE) && (ACC_WORDSIZE > 0)
   3084 #if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !defined(__ACC_INTPTR_T_IS_POINTER)
   3085 #  define acc_word_t            acc_uintptr_t
   3086 #  define acc_sword_t           acc_intptr_t
   3087 #  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
   3088 #elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
   3089 #  define acc_word_t            unsigned long
   3090 #  define acc_sword_t           long
   3091 #  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
   3092 #elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
   3093 #  define acc_word_t            unsigned int
   3094 #  define acc_sword_t           int
   3095 #  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
   3096 #elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
   3097 #  define acc_word_t            unsigned short
   3098 #  define acc_sword_t           short
   3099 #  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
   3100 #elif (ACC_WORDSIZE == 1)
   3101 #  define acc_word_t            unsigned char
   3102 #  define acc_sword_t           signed char
   3103 #  define ACC_SIZEOF_ACC_WORD_T 1
   3104 #elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
   3105 #  define acc_word_t            acc_uint64l_t
   3106 #  define acc_sword_t           acc_int64l_t
   3107 #  define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
   3108 #elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
   3109 #if 0
   3110    typedef unsigned acc_word_t  __attribute__((__mode__(__V16QI__)));
   3111    typedef int      acc_sword_t __attribute__((__mode__(__V16QI__)));
   3112 #  define acc_word_t            acc_word_t
   3113 #  define acc_sword_t           acc_sword_t
   3114 #  define ACC_SIZEOF_ACC_WORD_T 16
   3115 #endif
   3116 #else
   3117 #  error "acc_word_t"
   3118 #endif
   3119 #endif
   3120 #endif
   3121 #if !defined(ACC_INT16_C)
   3122 #  if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
   3123 #    define ACC_INT16_C(c)      ((c) + 0)
   3124 #    define ACC_UINT16_C(c)     ((c) + 0U)
   3125 #  elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
   3126 #    define ACC_INT16_C(c)      ((c) + 0L)
   3127 #    define ACC_UINT16_C(c)     ((c) + 0UL)
   3128 #  elif (ACC_SIZEOF_INT >= 2)
   3129 #    define ACC_INT16_C(c)      c
   3130 #    define ACC_UINT16_C(c)     c##U
   3131 #  elif (ACC_SIZEOF_LONG >= 2)
   3132 #    define ACC_INT16_C(c)      c##L
   3133 #    define ACC_UINT16_C(c)     c##UL
   3134 #  else
   3135 #    error "ACC_INT16_C"
   3136 #  endif
   3137 #endif
   3138 #if !defined(ACC_INT32_C)
   3139 #  if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
   3140 #    define ACC_INT32_C(c)      ((c) + 0)
   3141 #    define ACC_UINT32_C(c)     ((c) + 0U)
   3142 #  elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
   3143 #    define ACC_INT32_C(c)      ((c) + 0L)
   3144 #    define ACC_UINT32_C(c)     ((c) + 0UL)
   3145 #  elif (ACC_SIZEOF_INT >= 4)
   3146 #    define ACC_INT32_C(c)      c
   3147 #    define ACC_UINT32_C(c)     c##U
   3148 #  elif (ACC_SIZEOF_LONG >= 4)
   3149 #    define ACC_INT32_C(c)      c##L
   3150 #    define ACC_UINT32_C(c)     c##UL
   3151 #  elif (ACC_SIZEOF_LONG_LONG >= 4)
   3152 #    define ACC_INT32_C(c)      c##LL
   3153 #    define ACC_UINT32_C(c)     c##ULL
   3154 #  else
   3155 #    error "ACC_INT32_C"
   3156 #  endif
   3157 #endif
   3158 #if !defined(ACC_INT64_C) && defined(acc_int64l_t)
   3159 #  if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
   3160 #    define ACC_INT64_C(c)      ((c) + 0)
   3161 #    define ACC_UINT64_C(c)     ((c) + 0U)
   3162 #  elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
   3163 #    define ACC_INT64_C(c)      ((c) + 0L)
   3164 #    define ACC_UINT64_C(c)     ((c) + 0UL)
   3165 #  elif (ACC_SIZEOF_INT >= 8)
   3166 #    define ACC_INT64_C(c)      c
   3167 #    define ACC_UINT64_C(c)     c##U
   3168 #  elif (ACC_SIZEOF_LONG >= 8)
   3169 #    define ACC_INT64_C(c)      c##L
   3170 #    define ACC_UINT64_C(c)     c##UL
   3171 #  else
   3172 #    error "ACC_INT64_C"
   3173 #  endif
   3174 #endif
   3175 #if !defined(SIZEOF_ACC_INT16E_T) && defined(ACC_SIZEOF_ACC_INT16E_T)
   3176 #  define SIZEOF_ACC_INT16E_T   ACC_SIZEOF_ACC_INT16E_T
   3177 #endif
   3178 #if !defined(SIZEOF_ACC_INT32E_T) && defined(ACC_SIZEOF_ACC_INT32E_T)
   3179 #  define SIZEOF_ACC_INT32E_T   ACC_SIZEOF_ACC_INT32E_T
   3180 #endif
   3181 #if !defined(SIZEOF_ACC_INT64E_T) && defined(ACC_SIZEOF_ACC_INT64E_T)
   3182 #  define SIZEOF_ACC_INT64E_T   ACC_SIZEOF_ACC_INT64E_T
   3183 #endif
   3184 #if !defined(SIZEOF_ACC_INT32L_T) && defined(ACC_SIZEOF_ACC_INT32L_T)
   3185 #  define SIZEOF_ACC_INT32L_T   ACC_SIZEOF_ACC_INT32L_T
   3186 #endif
   3187 #if !defined(SIZEOF_ACC_INT64L_T) && defined(ACC_SIZEOF_ACC_INT64L_T)
   3188 #  define SIZEOF_ACC_INT64L_T   ACC_SIZEOF_ACC_INT64L_T
   3189 #endif
   3190 #if !defined(SIZEOF_ACC_INT32F_T) && defined(ACC_SIZEOF_ACC_INT32F_T)
   3191 #  define SIZEOF_ACC_INT32F_T   ACC_SIZEOF_ACC_INT32F_T
   3192 #endif
   3193 #if !defined(SIZEOF_ACC_INTPTR_T) && defined(ACC_SIZEOF_ACC_INTPTR_T)
   3194 #  define SIZEOF_ACC_INTPTR_T   ACC_SIZEOF_ACC_INTPTR_T
   3195 #endif
   3196 #if !defined(SIZEOF_ACC_WORD_T) && defined(ACC_SIZEOF_ACC_WORD_T)
   3197 #  define SIZEOF_ACC_WORD_T     ACC_SIZEOF_ACC_WORD_T
   3198 #endif
   3199 #if 1 && !defined(acc_signo_t) && defined(__linux__) && defined(__dietlibc__) && (ACC_SIZEOF_INT != 4)
   3200 #  define acc_signo_t           acc_int32e_t
   3201 #endif
   3202 #if !defined(acc_signo_t)
   3203 #  define acc_signo_t           int
   3204 #endif
   3205 #if defined(__cplusplus)
   3206 extern "C" {
   3207 #endif
   3208 #if (ACC_BROKEN_CDECL_ALT_SYNTAX)
   3209 typedef void __acc_cdecl_sighandler (*acc_sighandler_t)(acc_signo_t);
   3210 #elif defined(RETSIGTYPE)
   3211 typedef RETSIGTYPE (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
   3212 #else
   3213 typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
   3214 #endif
   3215 #if defined(__cplusplus)
   3216 }
   3217 #endif
   3218 #  if !defined(ACC_CFG_NO_ACC_UA_H)
   3219 #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
   3220 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
   3221 #elif (ACC_CC_INTELC) && defined(_WIN32)
   3222 #elif (ACC_CC_INTELC && (__INTEL_COMPILER < 700))
   3223 #elif (ACC_CC_LLVM)
   3224 #elif (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE)
   3225 #if !defined(__acc_ua16_t) && (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
   3226    typedef struct { __acc_ua_volatile acc_uint16e_t v __attribute__((__packed__)); } __acc_ua16_t;
   3227 #  define __acc_ua16_t __acc_ua16_t
   3228 #endif
   3229 #if !defined(__acc_ua32_t) && (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
   3230    typedef struct { __acc_ua_volatile acc_uint32e_t v __attribute__((__packed__)); } __acc_ua32_t;
   3231 #  define __acc_ua32_t __acc_ua32_t
   3232 #endif
   3233 #if !defined(__acc_ua64_t) && (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
   3234    typedef struct { __acc_ua_volatile acc_uint64l_t v __attribute__((__packed__)); } __acc_ua64_t;
   3235 #  define __acc_ua64_t __acc_ua64_t
   3236 #endif
   3237 #endif
   3238 #if (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
   3239 #define ACC_UA_GET16(p)         (* (__acc_ua_volatile const acc_uint16e_t*) (__acc_ua_volatile const void*) (p))
   3240 #define ACC_UA_SET16(p,v)       (* (__acc_ua_volatile acc_uint16e_t*) (__acc_ua_volatile void*) (p) = (acc_uint16e_t) (v))
   3241 #if (ACC_ABI_BIG_ENDIAN)
   3242 #  define ACC_UA_GET_BE16(p)    ACC_UA_GET16(p)
   3243 #  define ACC_UA_SET_BE16(p,v)  ACC_UA_SET16(p,v)
   3244 #elif (ACC_ABI_LITTLE_ENDIAN)
   3245 #  define ACC_UA_GET_LE16(p)    ACC_UA_GET16(p)
   3246 #  define ACC_UA_SET_LE16(p,v)  ACC_UA_SET16(p,v)
   3247 #endif
   3248 #if !defined(ACC_CFG_NO_INLINE_ASM) && defined(__acc_HAVE_forceinline)
   3249 #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
   3250 #if !defined(ACC_UA_GET_LE16)
   3251 extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp);
   3252 extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
   3253     __acc_ua_volatile const acc_uint16e_t* p = (__acc_ua_volatile const acc_uint16e_t*) pp;
   3254     unsigned long v;
   3255     __asm__ __volatile__("lhbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
   3256     return v;
   3257 }
   3258 #define ACC_UA_GET_LE16(p)      __ACC_UA_GET_LE16(p)
   3259 #endif
   3260 #if !defined(ACC_UA_SET_LE16)
   3261 extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v);
   3262 extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
   3263     __acc_ua_volatile acc_uint16e_t* p = (__acc_ua_volatile acc_uint16e_t*) pp;
   3264     __asm__ __volatile__("sthbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
   3265 }
   3266 #define ACC_UA_SET_LE16(p,v)    __ACC_UA_SET_LE16(p,v)
   3267 #endif
   3268 #endif
   3269 #endif
   3270 #if !defined(ACC_UA_COPY16)
   3271 #  define ACC_UA_COPY16(d,s)    ACC_UA_SET16(d, ACC_UA_GET16(s))
   3272 #endif
   3273 #endif
   3274 #if (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
   3275 #define ACC_UA_GET32(p)         (* (__acc_ua_volatile const acc_uint32e_t*) (__acc_ua_volatile const void*) (p))
   3276 #define ACC_UA_SET32(p,v)       (* (__acc_ua_volatile acc_uint32e_t*) (__acc_ua_volatile void*) (p) = (acc_uint32e_t) (v))
   3277 #if (ACC_ABI_BIG_ENDIAN)
   3278 #  define ACC_UA_GET_BE32(p)    ACC_UA_GET32(p)
   3279 #  define ACC_UA_SET_BE32(p,v)  ACC_UA_SET32(p,v)
   3280 #elif (ACC_ABI_LITTLE_ENDIAN)
   3281 #  define ACC_UA_GET_LE32(p)    ACC_UA_GET32(p)
   3282 #  define ACC_UA_SET_LE32(p,v)  ACC_UA_SET32(p,v)
   3283 #endif
   3284 #if !defined(ACC_CFG_NO_INLINE_ASM) && defined(__acc_HAVE_forceinline)
   3285 #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
   3286 #if !defined(ACC_UA_GET_LE32)
   3287 extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp);
   3288 extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
   3289     __acc_ua_volatile const acc_uint32e_t* p = (__acc_ua_volatile const acc_uint32e_t*) pp;
   3290     unsigned long v;
   3291     __asm__ __volatile__("lwbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
   3292     return v;
   3293 }
   3294 #define ACC_UA_GET_LE32(p)      __ACC_UA_GET_LE32(p)
   3295 #endif
   3296 #if !defined(ACC_UA_SET_LE32)
   3297 extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v);
   3298 extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
   3299     __acc_ua_volatile acc_uint32e_t* p = (__acc_ua_volatile acc_uint32e_t*) pp;
   3300     __asm__ __volatile__("stwbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
   3301 }
   3302 #define ACC_UA_SET_LE32(p,v)    __ACC_UA_SET_LE32(p,v)
   3303 #endif
   3304 #endif
   3305 #endif
   3306 #if !defined(ACC_UA_COPY32)
   3307 #  define ACC_UA_COPY32(d,s)    ACC_UA_SET32(d, ACC_UA_GET32(s))
   3308 #endif
   3309 #endif
   3310 #if (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
   3311 #define ACC_UA_GET64(p)         (* (__acc_ua_volatile const acc_uint64l_t*) (__acc_ua_volatile const void*) (p))
   3312 #define ACC_UA_SET64(p,v)       (* (__acc_ua_volatile acc_uint64l_t*) (__acc_ua_volatile void*) (p) = (acc_uint64l_t) (v))
   3313 #if (ACC_ABI_BIG_ENDIAN)
   3314 #  define ACC_UA_GET_BE64(p)    ACC_UA_GET64(p)
   3315 #  define ACC_UA_SET_BE64(p,v)  ACC_UA_SET64(p,v)
   3316 #elif (ACC_ABI_LITTLE_ENDIAN)
   3317 #  define ACC_UA_GET_LE64(p)    ACC_UA_GET64(p)
   3318 #  define ACC_UA_SET_LE64(p,v)  ACC_UA_SET64(p,v)
   3319 #endif
   3320 #if !defined(ACC_UA_COPY64)
   3321 #  define ACC_UA_COPY64(d,s)    ACC_UA_SET64(d, ACC_UA_GET64(s))
   3322 #endif
   3323 #endif
   3324 #  endif
   3325 #endif
   3326 #if defined(ACC_WANT_ACC_INCD_H)
   3327 #  undef ACC_WANT_ACC_INCD_H
   3328 #ifndef __ACC_INCD_H_INCLUDED
   3329 #define __ACC_INCD_H_INCLUDED 1
   3330 #if defined(ACC_LIBC_NAKED)
   3331 #ifndef __ACC_FALLBACK_STDDEF_H_INCLUDED
   3332 #define __ACC_FALLBACK_STDDEF_H_INCLUDED
   3333 #if defined(__PTRDIFF_TYPE__)
   3334 typedef __PTRDIFF_TYPE__ acc_fallback_ptrdiff_t;
   3335 #elif defined(__MIPS_PSX2__)
   3336 typedef int acc_fallback_ptrdiff_t;
   3337 #else
   3338 typedef long acc_fallback_ptrdiff_t;
   3339 #endif
   3340 #if defined(__SIZE_TYPE__)
   3341 typedef __SIZE_TYPE__ acc_fallback_size_t;
   3342 #elif defined(__MIPS_PSX2__)
   3343 typedef unsigned int acc_fallback_size_t;
   3344 #else
   3345 typedef unsigned long acc_fallback_size_t;
   3346 #endif
   3347 #if !defined(ptrdiff_t)
   3348 typedef acc_fallback_ptrdiff_t ptrdiff_t;
   3349 #ifndef _PTRDIFF_T_DEFINED
   3350 #define _PTRDIFF_T_DEFINED 1
   3351 #endif
   3352 #endif
   3353 #if !defined(size_t)
   3354 typedef acc_fallback_size_t size_t;
   3355 #ifndef _SIZE_T_DEFINED
   3356 #define _SIZE_T_DEFINED 1
   3357 #endif
   3358 #endif
   3359 #if !defined(__cplusplus) && !defined(wchar_t)
   3360 typedef unsigned short wchar_t;
   3361 #ifndef _WCHAR_T_DEFINED
   3362 #define _WCHAR_T_DEFINED 1
   3363 #endif
   3364 #endif
   3365 #ifndef NULL
   3366 #if defined(__cplusplus) && defined(__GNUC__) && (__GNUC__ >= 4)
   3367 #define NULL    __null
   3368 #elif defined(__cplusplus)
   3369 #define NULL    0
   3370 #else
   3371 #define NULL    ((void*)0)
   3372 #endif
   3373 #endif
   3374 #ifndef offsetof
   3375 #define offsetof(s,m)   ((size_t)((ptrdiff_t)&(((s*)0)->m)))
   3376 #endif
   3377 #endif
   3378 #elif defined(ACC_LIBC_FREESTANDING)
   3379 # if HAVE_STDDEF_H
   3380 #  include <stddef.h>
   3381 # endif
   3382 # if HAVE_STDINT_H
   3383 #  include <stdint.h>
   3384 # endif
   3385 #elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
   3386 # if HAVE_STDIO_H
   3387 #  include <stdio.h>
   3388 # endif
   3389 # if HAVE_STDDEF_H
   3390 #  include <stddef.h>
   3391 # endif
   3392 # if HAVE_STDINT_H
   3393 #  include <stdint.h>
   3394 # endif
   3395 #else
   3396 #include <stdio.h>
   3397 #if defined(HAVE_TIME_H) && defined(__MSL__) && defined(__cplusplus)
   3398 # include <time.h>
   3399 #endif
   3400 #if HAVE_SYS_TYPES_H
   3401 # include <sys/types.h>
   3402 #endif
   3403 #if HAVE_SYS_STAT_H
   3404 # include <sys/stat.h>
   3405 #endif
   3406 #if STDC_HEADERS
   3407 # include <stdlib.h>
   3408 # include <stddef.h>
   3409 #else
   3410 # if HAVE_STDLIB_H
   3411 #  include <stdlib.h>
   3412 # endif
   3413 #endif
   3414 #if HAVE_STRING_H
   3415 # if !STDC_HEADERS && HAVE_MEMORY_H
   3416 #  include <memory.h>
   3417 # endif
   3418 # include <string.h>
   3419 #endif
   3420 #if HAVE_STRINGS_H
   3421 # include <strings.h>
   3422 #endif
   3423 #if HAVE_INTTYPES_H
   3424 # include <inttypes.h>
   3425 #else
   3426 # if HAVE_STDINT_H
   3427 #  include <stdint.h>
   3428 # endif
   3429 #endif
   3430 #if HAVE_UNISTD_H
   3431 # include <unistd.h>
   3432 #endif
   3433 #endif
   3434 #endif
   3435 #endif
   3436 #if defined(ACC_WANT_ACC_INCE_H)
   3437 #  undef ACC_WANT_ACC_INCE_H
   3438 #ifndef __ACC_INCE_H_INCLUDED
   3439 #define __ACC_INCE_H_INCLUDED 1
   3440 #if defined(ACC_LIBC_NAKED)
   3441 #elif defined(ACC_LIBC_FREESTANDING)
   3442 #elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
   3443 #  if defined(HAVE_SETJMP_H)
   3444 #    include <setjmp.h>
   3445 #  endif
   3446 #else
   3447 #if defined(HAVE_STDARG_H)
   3448 #  include <stdarg.h>
   3449 #endif
   3450 #if defined(HAVE_CTYPE_H)
   3451 #  include <ctype.h>
   3452 #endif
   3453 #if defined(HAVE_ERRNO_H)
   3454 #  include <errno.h>
   3455 #endif
   3456 #if defined(HAVE_MALLOC_H)
   3457 #  include <malloc.h>
   3458 #endif
   3459 #if defined(HAVE_ALLOCA_H)
   3460 #  include <alloca.h>
   3461 #endif
   3462 #if defined(HAVE_FCNTL_H)
   3463 #  include <fcntl.h>
   3464 #endif
   3465 #if defined(HAVE_DIRENT_H)
   3466 #  include <dirent.h>
   3467 #endif
   3468 #if defined(HAVE_SETJMP_H)
   3469 #  include <setjmp.h>
   3470 #endif
   3471 #if defined(HAVE_SIGNAL_H)
   3472 #  include <signal.h>
   3473 #endif
   3474 #if defined(TIME_WITH_SYS_TIME)
   3475 #  include <sys/time.h>
   3476 #  include <time.h>
   3477 #elif defined(HAVE_TIME_H)
   3478 #  include <time.h>
   3479 #endif
   3480 #if defined(HAVE_UTIME_H)
   3481 #  include <utime.h>
   3482 #elif defined(HAVE_SYS_UTIME_H)
   3483 #  include <sys/utime.h>
   3484 #endif
   3485 #if defined(HAVE_IO_H)
   3486 #  include <io.h>
   3487 #endif
   3488 #if defined(HAVE_DOS_H)
   3489 #  include <dos.h>
   3490 #endif
   3491 #if defined(HAVE_DIRECT_H)
   3492 #  include <direct.h>
   3493 #endif
   3494 #if defined(HAVE_SHARE_H)
   3495 #  include <share.h>
   3496 #endif
   3497 #if defined(ACC_CC_NDPC)
   3498 #  include <os.h>
   3499 #endif
   3500 #if defined(__TOS__) && (defined(__PUREC__) || defined(__TURBOC__))
   3501 #  include <ext.h>
   3502 #endif
   3503 #endif
   3504 #endif
   3505 #endif
   3506 #if defined(ACC_WANT_ACC_INCI_H)
   3507 #  undef ACC_WANT_ACC_INCI_H
   3508 #ifndef __ACC_INCI_H_INCLUDED
   3509 #define __ACC_INCI_H_INCLUDED 1
   3510 #if defined(ACC_LIBC_NAKED)
   3511 #elif defined(ACC_LIBC_FREESTANDING)
   3512 #elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
   3513 #else
   3514 #if (ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
   3515 #  include <tos.h>
   3516 #elif (ACC_HAVE_WINDOWS_H)
   3517 #  if 1 && !defined(WIN32_LEAN_AND_MEAN)
   3518 #    define WIN32_LEAN_AND_MEAN 1
   3519 #  endif
   3520 #  if 1 && !defined(_WIN32_WINNT)
   3521 #    define _WIN32_WINNT 0x0400
   3522 #  endif
   3523 #  include <windows.h>
   3524 #  if (ACC_CC_BORLANDC || ACC_CC_TURBOC)
   3525 #    include <dir.h>
   3526 #  endif
   3527 #elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_WIN16)
   3528 #  if (ACC_CC_AZTECC)
   3529 #    include <model.h>
   3530 #    include <stat.h>
   3531 #  elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
   3532 #    include <alloc.h>
   3533 #    include <dir.h>
   3534 #  elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
   3535 #    include <sys/exceptn.h>
   3536 #  elif (ACC_CC_PACIFICC)
   3537 #    include <unixio.h>
   3538 #    include <stat.h>
   3539 #    include <sys.h>
   3540 #  elif (ACC_CC_WATCOMC)
   3541 #    include <i86.h>
   3542 #  endif
   3543 #elif (ACC_OS_OS216)
   3544 #  if (ACC_CC_WATCOMC)
   3545 #    include <i86.h>
   3546 #  endif
   3547 #endif
   3548 #if defined(HAVE_SYS_MMAN_H)
   3549 #  include <sys/mman.h>
   3550 #endif
   3551 #if defined(HAVE_SYS_RESOURCE_H)
   3552 #  include <sys/resource.h>
   3553 #endif
   3554 #if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
   3555 #  if defined(FP_OFF)
   3556 #    define ACC_PTR_FP_OFF(x)   FP_OFF(x)
   3557 #  elif defined(_FP_OFF)
   3558 #    define ACC_PTR_FP_OFF(x)   _FP_OFF(x)
   3559 #  else
   3560 #    define ACC_PTR_FP_OFF(x)   (((const unsigned __far*)&(x))[0])
   3561 #  endif
   3562 #  if defined(FP_SEG)
   3563 #    define ACC_PTR_FP_SEG(x)   FP_SEG(x)
   3564 #  elif defined(_FP_SEG)
   3565 #    define ACC_PTR_FP_SEG(x)   _FP_SEG(x)
   3566 #  else
   3567 #    define ACC_PTR_FP_SEG(x)   (((const unsigned __far*)&(x))[1])
   3568 #  endif
   3569 #  if defined(MK_FP)
   3570 #    define ACC_PTR_MK_FP(s,o)  MK_FP(s,o)
   3571 #  elif defined(_MK_FP)
   3572 #    define ACC_PTR_MK_FP(s,o)  _MK_FP(s,o)
   3573 #  else
   3574 #    define ACC_PTR_MK_FP(s,o)  ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o)))
   3575 #  endif
   3576 #  if 0
   3577 #    undef ACC_PTR_FP_OFF
   3578 #    undef ACC_PTR_FP_SEG
   3579 #    undef ACC_PTR_MK_FP
   3580 #    define ACC_PTR_FP_OFF(x)   (((const unsigned __far*)&(x))[0])
   3581 #    define ACC_PTR_FP_SEG(x)   (((const unsigned __far*)&(x))[1])
   3582 #    define ACC_PTR_MK_FP(s,o)  ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o)))
   3583 #  endif
   3584 #endif
   3585 #endif
   3586 #endif
   3587 #endif
   3588 #if defined(ACC_WANT_ACC_LIB_H)
   3589 #  undef ACC_WANT_ACC_LIB_H
   3590 #ifndef __ACC_LIB_H_INCLUDED
   3591 #define __ACC_LIB_H_INCLUDED 1
   3592 #if !defined(__ACCLIB_FUNCNAME)
   3593 #  define __ACCLIB_FUNCNAME(f)  f
   3594 #endif
   3595 #if !defined(ACCLIB_EXTERN)
   3596 #  define ACCLIB_EXTERN(r,f)                extern r __ACCLIB_FUNCNAME(f)
   3597 #endif
   3598 #if !defined(ACCLIB_EXTERN_NOINLINE)
   3599 #  if defined(__acc_noinline)
   3600 #    define ACCLIB_EXTERN_NOINLINE(r,f)     extern __acc_noinline r __ACCLIB_FUNCNAME(f)
   3601 #  else
   3602 #    define ACCLIB_EXTERN_NOINLINE(r,f)     extern r __ACCLIB_FUNCNAME(f)
   3603 #  endif
   3604 #endif
   3605 #if !defined(__ACCLIB_CONST_CAST_RETURN)
   3606 #if 1 && (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
   3607 #  define __ACCLIB_CONST_CAST_RETURN(type,var) return (type) (acc_uintptr_t) (var);
   3608 #elif (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
   3609 #  define __ACCLIB_CONST_CAST_RETURN(type,var) \
   3610         { union { type a; const type b; } u; u.b = (var); return u.a; }
   3611 #else
   3612 #  define __ACCLIB_CONST_CAST_RETURN(type,var) return (type) (var);
   3613 #endif
   3614 #endif
   3615 #if (ACC_OS_WIN64)
   3616 #  define acclib_handle_t       acc_int64l_t
   3617 #  define acclib_uhandle_t      acc_uint64l_t
   3618 #elif (ACC_ARCH_I386 && ACC_CC_MSC && (_MSC_VER >= 1300))
   3619    typedef __w64 long           acclib_handle_t;
   3620    typedef __w64 unsigned long  acclib_uhandle_t;
   3621 #  define acclib_handle_t       acclib_handle_t
   3622 #  define acclib_uhandle_t      acclib_uhandle_t
   3623 #else
   3624 #  define acclib_handle_t       long
   3625 #  define acclib_uhandle_t      unsigned long
   3626 #endif
   3627 #if 0
   3628 ACCLIB_EXTERN(int, acc_ascii_digit)   (int);
   3629 ACCLIB_EXTERN(int, acc_ascii_islower) (int);
   3630 ACCLIB_EXTERN(int, acc_ascii_isupper) (int);
   3631 ACCLIB_EXTERN(int, acc_ascii_tolower) (int);
   3632 ACCLIB_EXTERN(int, acc_ascii_toupper) (int);
   3633 ACCLIB_EXTERN(int, acc_ascii_utolower) (int);
   3634 ACCLIB_EXTERN(int, acc_ascii_utoupper) (int);
   3635 #endif
   3636 #define acc_ascii_isdigit(c)    (((unsigned)(c) - 48) < 10)
   3637 #define acc_ascii_islower(c)    (((unsigned)(c) - 97) < 26)
   3638 #define acc_ascii_isupper(c)    (((unsigned)(c) - 65) < 26)
   3639 #define acc_ascii_tolower(c)    ((int)(c) + (acc_ascii_isupper(c) << 5))
   3640 #define acc_ascii_toupper(c)    ((int)(c) - (acc_ascii_islower(c) << 5))
   3641 #define acc_ascii_utolower(c)   acc_ascii_tolower((unsigned char)(c))
   3642 #define acc_ascii_utoupper(c)   acc_ascii_toupper((unsigned char)(c))
   3643 #ifndef acc_hsize_t
   3644 #if (ACC_HAVE_MM_HUGE_PTR)
   3645 #  define acc_hsize_t   unsigned long
   3646 #  define acc_hvoid_p   void __huge *
   3647 #  define acc_hchar_p   char __huge *
   3648 #  define acc_hchar_pp  char __huge * __huge *
   3649 #  define acc_hbyte_p   unsigned char __huge *
   3650 #else
   3651 #  define acc_hsize_t   size_t
   3652 #  define acc_hvoid_p   void *
   3653 #  define acc_hchar_p   char *
   3654 #  define acc_hchar_pp  char **
   3655 #  define acc_hbyte_p   unsigned char *
   3656 #endif
   3657 #endif
   3658 ACCLIB_EXTERN(acc_hvoid_p, acc_halloc) (acc_hsize_t);
   3659 ACCLIB_EXTERN(void, acc_hfree) (acc_hvoid_p);
   3660 #if (ACC_OS_DOS16 || ACC_OS_OS216)
   3661 ACCLIB_EXTERN(void __far*, acc_dos_alloc) (unsigned long);
   3662 ACCLIB_EXTERN(int, acc_dos_free) (void __far*);
   3663 #endif
   3664 ACCLIB_EXTERN(int, acc_hmemcmp) (const acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
   3665 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemcpy) (acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
   3666 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemmove) (acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
   3667 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemset) (acc_hvoid_p, int, acc_hsize_t);
   3668 ACCLIB_EXTERN(acc_hsize_t, acc_hstrlen) (const acc_hchar_p);
   3669 ACCLIB_EXTERN(int, acc_hstrcmp) (const acc_hchar_p, const acc_hchar_p);
   3670 ACCLIB_EXTERN(int, acc_hstrncmp)(const acc_hchar_p, const acc_hchar_p, acc_hsize_t);
   3671 ACCLIB_EXTERN(int, acc_ascii_hstricmp) (const acc_hchar_p, const acc_hchar_p);
   3672 ACCLIB_EXTERN(int, acc_ascii_hstrnicmp)(const acc_hchar_p, const acc_hchar_p, acc_hsize_t);
   3673 ACCLIB_EXTERN(int, acc_ascii_hmemicmp) (const acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
   3674 ACCLIB_EXTERN(acc_hchar_p, acc_hstrstr) (const acc_hchar_p, const acc_hchar_p);
   3675 ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstristr) (const acc_hchar_p, const acc_hchar_p);
   3676 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemmem) (const acc_hvoid_p, acc_hsize_t, const acc_hvoid_p, acc_hsize_t);
   3677 ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemimem) (const acc_hvoid_p, acc_hsize_t, const acc_hvoid_p, acc_hsize_t);
   3678 ACCLIB_EXTERN(acc_hchar_p, acc_hstrcpy) (acc_hchar_p, const acc_hchar_p);
   3679 ACCLIB_EXTERN(acc_hchar_p, acc_hstrcat) (acc_hchar_p, const acc_hchar_p);
   3680 ACCLIB_EXTERN(acc_hsize_t, acc_hstrlcpy) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
   3681 ACCLIB_EXTERN(acc_hsize_t, acc_hstrlcat) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
   3682 ACCLIB_EXTERN(int, acc_hstrscpy) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
   3683 ACCLIB_EXTERN(int, acc_hstrscat) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
   3684 ACCLIB_EXTERN(acc_hchar_p, acc_hstrccpy) (acc_hchar_p, const acc_hchar_p, int);
   3685 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemccpy) (acc_hvoid_p, const acc_hvoid_p, int, acc_hsize_t);
   3686 ACCLIB_EXTERN(acc_hchar_p, acc_hstrchr)  (const acc_hchar_p, int);
   3687 ACCLIB_EXTERN(acc_hchar_p, acc_hstrrchr) (const acc_hchar_p, int);
   3688 ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrichr) (const acc_hchar_p, int);
   3689 ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrrichr) (const acc_hchar_p, int);
   3690 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemchr)  (const acc_hvoid_p, int, acc_hsize_t);
   3691 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemrchr) (const acc_hvoid_p, int, acc_hsize_t);
   3692 ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemichr) (const acc_hvoid_p, int, acc_hsize_t);
   3693 ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemrichr) (const acc_hvoid_p, int, acc_hsize_t);
   3694 ACCLIB_EXTERN(acc_hsize_t, acc_hstrspn)  (const acc_hchar_p, const acc_hchar_p);
   3695 ACCLIB_EXTERN(acc_hsize_t, acc_hstrrspn) (const acc_hchar_p, const acc_hchar_p);
   3696 ACCLIB_EXTERN(acc_hsize_t, acc_hstrcspn)  (const acc_hchar_p, const acc_hchar_p);
   3697 ACCLIB_EXTERN(acc_hsize_t, acc_hstrrcspn) (const acc_hchar_p, const acc_hchar_p);
   3698 ACCLIB_EXTERN(acc_hchar_p, acc_hstrpbrk)  (const acc_hchar_p, const acc_hchar_p);
   3699 ACCLIB_EXTERN(acc_hchar_p, acc_hstrrpbrk) (const acc_hchar_p, const acc_hchar_p);
   3700 ACCLIB_EXTERN(acc_hchar_p, acc_hstrsep)  (acc_hchar_pp, const acc_hchar_p);
   3701 ACCLIB_EXTERN(acc_hchar_p, acc_hstrrsep) (acc_hchar_pp, const acc_hchar_p);
   3702 ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrlwr) (acc_hchar_p);
   3703 ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrupr) (acc_hchar_p);
   3704 ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemlwr) (acc_hvoid_p, acc_hsize_t);
   3705 ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemupr) (acc_hvoid_p, acc_hsize_t);
   3706 ACCLIB_EXTERN(acc_hsize_t, acc_hfread) (void *, acc_hvoid_p, acc_hsize_t);
   3707 ACCLIB_EXTERN(acc_hsize_t, acc_hfwrite) (void *, const acc_hvoid_p, acc_hsize_t);
   3708 #if (ACC_HAVE_MM_HUGE_PTR)
   3709 ACCLIB_EXTERN(long, acc_hread) (int, acc_hvoid_p, long);
   3710 ACCLIB_EXTERN(long, acc_hwrite) (int, const acc_hvoid_p, long);
   3711 #endif
   3712 ACCLIB_EXTERN(long, acc_safe_hread) (int, acc_hvoid_p, long);
   3713 ACCLIB_EXTERN(long, acc_safe_hwrite) (int, const acc_hvoid_p, long);
   3714 ACCLIB_EXTERN(unsigned, acc_ua_get_be16) (const acc_hvoid_p);
   3715 ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_be24) (const acc_hvoid_p);
   3716 ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_be32) (const acc_hvoid_p);
   3717 ACCLIB_EXTERN(void, acc_ua_set_be16) (acc_hvoid_p, unsigned);
   3718 ACCLIB_EXTERN(void, acc_ua_set_be24) (acc_hvoid_p, acc_uint32l_t);
   3719 ACCLIB_EXTERN(void, acc_ua_set_be32) (acc_hvoid_p, acc_uint32l_t);
   3720 ACCLIB_EXTERN(unsigned, acc_ua_get_le16) (const acc_hvoid_p);
   3721 ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_le24) (const acc_hvoid_p);
   3722 ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_le32) (const acc_hvoid_p);
   3723 ACCLIB_EXTERN(void, acc_ua_set_le16) (acc_hvoid_p, unsigned);
   3724 ACCLIB_EXTERN(void, acc_ua_set_le24) (acc_hvoid_p, acc_uint32l_t);
   3725 ACCLIB_EXTERN(void, acc_ua_set_le32) (acc_hvoid_p, acc_uint32l_t);
   3726 #if defined(acc_int64l_t)
   3727 ACCLIB_EXTERN(acc_uint64l_t, acc_ua_get_be64) (const acc_hvoid_p);
   3728 ACCLIB_EXTERN(void, acc_ua_set_be64) (acc_hvoid_p, acc_uint64l_t);
   3729 ACCLIB_EXTERN(acc_uint64l_t, acc_ua_get_le64) (const acc_hvoid_p);
   3730 ACCLIB_EXTERN(void, acc_ua_set_le64) (acc_hvoid_p, acc_uint64l_t);
   3731 #endif
   3732 ACCLIB_EXTERN_NOINLINE(short, acc_vget_short) (short, int);
   3733 ACCLIB_EXTERN_NOINLINE(int, acc_vget_int) (int, int);
   3734 ACCLIB_EXTERN_NOINLINE(long, acc_vget_long) (long, int);
   3735 #if defined(acc_int64l_t)
   3736 ACCLIB_EXTERN_NOINLINE(acc_int64l_t, acc_vget_acc_int64l_t) (acc_int64l_t, int);
   3737 #endif
   3738 ACCLIB_EXTERN_NOINLINE(acc_hsize_t, acc_vget_acc_hsize_t) (acc_hsize_t, int);
   3739 #if !defined(ACC_CFG_NO_FLOAT)
   3740 ACCLIB_EXTERN_NOINLINE(float, acc_vget_float) (float, int);
   3741 #endif
   3742 #if !defined(ACC_CFG_NO_DOUBLE)
   3743 ACCLIB_EXTERN_NOINLINE(double, acc_vget_double) (double, int);
   3744 #endif
   3745 ACCLIB_EXTERN_NOINLINE(acc_hvoid_p, acc_vget_acc_hvoid_p) (acc_hvoid_p, int);
   3746 ACCLIB_EXTERN_NOINLINE(const acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoid_p, int);
   3747 #if !defined(ACC_FN_PATH_MAX)
   3748 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
   3749 #  define ACC_FN_PATH_MAX   143
   3750 #elif (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN32 || ACC_OS_WIN64)
   3751 #  define ACC_FN_PATH_MAX   259
   3752 #elif (ACC_OS_TOS)
   3753 #  define ACC_FN_PATH_MAX   259
   3754 #endif
   3755 #endif
   3756 #if !defined(ACC_FN_PATH_MAX)
   3757 #  define ACC_FN_PATH_MAX   1023
   3758 #endif
   3759 #if !defined(ACC_FN_NAME_MAX)
   3760 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
   3761 #  define ACC_FN_NAME_MAX   12
   3762 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
   3763 #  define ACC_FN_NAME_MAX   12
   3764 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
   3765 #elif (ACC_OS_DOS32)
   3766 #  define ACC_FN_NAME_MAX   12
   3767 #endif
   3768 #endif
   3769 #if !defined(ACC_FN_NAME_MAX)
   3770 #  define ACC_FN_NAME_MAX   ACC_FN_PATH_MAX
   3771 #endif
   3772 #define ACC_FNMATCH_NOESCAPE        1
   3773 #define ACC_FNMATCH_PATHNAME        2
   3774 #define ACC_FNMATCH_PATHSTAR        4
   3775 #define ACC_FNMATCH_PERIOD          8
   3776 #define ACC_FNMATCH_ASCII_CASEFOLD  16
   3777 ACCLIB_EXTERN(int, acc_fnmatch) (const acc_hchar_p, const acc_hchar_p, int);
   3778 #undef __ACCLIB_USE_OPENDIR
   3779 #if (HAVE_DIRENT_H || ACC_CC_WATCOMC)
   3780 #  define __ACCLIB_USE_OPENDIR 1
   3781 #  if (ACC_OS_DOS32 && defined(__BORLANDC__))
   3782 #  elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
   3783 #  elif (ACC_OS_OS2 || ACC_OS_OS216)
   3784 #  elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
   3785 #  elif (ACC_OS_WIN32 && !defined(ACC_HAVE_WINDOWS_H))
   3786 #  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)
   3787 #    undef __ACCLIB_USE_OPENDIR
   3788 #  endif
   3789 #endif
   3790 typedef struct
   3791 {
   3792 #if defined(__ACCLIB_USE_OPENDIR)
   3793     void* u_dirp;
   3794 # if (ACC_CC_WATCOMC)
   3795     unsigned short f_time;
   3796     unsigned short f_date;
   3797     unsigned long f_size;
   3798 # endif
   3799     char f_name[ACC_FN_NAME_MAX+1];
   3800 #elif (ACC_OS_WIN32 || ACC_OS_WIN64)
   3801     acclib_handle_t u_handle;
   3802     unsigned f_attr;
   3803     unsigned f_size_low;
   3804     unsigned f_size_high;
   3805     char f_name[ACC_FN_NAME_MAX+1];
   3806 #elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_TOS || ACC_OS_WIN16)
   3807     char u_dta[21];
   3808     unsigned char f_attr;
   3809     unsigned short f_time;
   3810     unsigned short f_date;
   3811     unsigned short f_size_low;
   3812     unsigned short f_size_high;
   3813     char f_name[ACC_FN_NAME_MAX+1];
   3814     char u_dirp;
   3815 #else
   3816     void* u_dirp;
   3817     char f_name[ACC_FN_NAME_MAX+1];
   3818 #endif
   3819 } acc_dir_t;
   3820 #ifndef acc_dir_p
   3821 #define acc_dir_p acc_dir_t *
   3822 #endif
   3823 ACCLIB_EXTERN(int, acc_opendir)  (acc_dir_p, const char*);
   3824 ACCLIB_EXTERN(int, acc_readdir)  (acc_dir_p);
   3825 ACCLIB_EXTERN(int, acc_closedir) (acc_dir_p);
   3826 #if (ACC_CC_GNUC) && (defined(__CYGWIN__) || defined(__MINGW32__))
   3827 #  define acc_alloca(x)     __builtin_alloca((x))
   3828 #elif (ACC_CC_GNUC) && (ACC_OS_CONSOLE_PS2)
   3829 #  define acc_alloca(x)     __builtin_alloca((x))
   3830 #elif (ACC_CC_BORLANDC || ACC_CC_LCC) && defined(__linux__)
   3831 #elif (HAVE_ALLOCA)
   3832 #  define acc_alloca(x)     ((void *) (alloca((x))))
   3833 #endif
   3834 #if (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
   3835 #  define acc_stackavail()  stackavail()
   3836 #elif (ACC_ARCH_I086 && ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0410))
   3837 #  define acc_stackavail()  stackavail()
   3838 #elif (ACC_ARCH_I086 && ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0400))
   3839 #  if (ACC_OS_WIN16) && (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
   3840 #  else
   3841 #    define acc_stackavail()  stackavail()
   3842 #  endif
   3843 #elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_CC_DMC || ACC_CC_SYMANTECC))
   3844 #  define acc_stackavail()  stackavail()
   3845 #elif ((ACC_ARCH_I086) && ACC_CC_MSC && (_MSC_VER >= 700))
   3846 #  define acc_stackavail()  _stackavail()
   3847 #elif ((ACC_ARCH_I086) && ACC_CC_MSC)
   3848 #  define acc_stackavail()  stackavail()
   3849 #elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && ACC_CC_TURBOC && (__TURBOC__ >= 0x0450))
   3850 #  define acc_stackavail()  stackavail()
   3851 #elif (ACC_ARCH_I086 && ACC_CC_TURBOC && (__TURBOC__ >= 0x0400))
   3852    ACC_EXTERN_C size_t __cdecl stackavail(void);
   3853 #  define acc_stackavail()  stackavail()
   3854 #elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_CC_WATCOMC))
   3855 #  define acc_stackavail()  stackavail()
   3856 #elif (ACC_ARCH_I086 && ACC_CC_ZORTECHC)
   3857 #  define acc_stackavail()  _chkstack()
   3858 #endif
   3859 ACCLIB_EXTERN(acclib_handle_t, acc_get_osfhandle) (int);
   3860 ACCLIB_EXTERN(const char *, acc_getenv) (const char *);
   3861 ACCLIB_EXTERN(int, acc_isatty) (int);
   3862 ACCLIB_EXTERN(int, acc_mkdir) (const char*, unsigned);
   3863 ACCLIB_EXTERN(int, acc_rmdir) (const char*);
   3864 ACCLIB_EXTERN(int, acc_response) (int*, char***);
   3865 ACCLIB_EXTERN(int, acc_set_binmode) (int, int);
   3866 #if defined(acc_int32e_t)
   3867 ACCLIB_EXTERN(acc_int32e_t, acc_muldiv32s) (acc_int32e_t, acc_int32e_t, acc_int32e_t);
   3868 ACCLIB_EXTERN(acc_uint32e_t, acc_muldiv32u) (acc_uint32e_t, acc_uint32e_t, acc_uint32e_t);
   3869 #endif
   3870 ACCLIB_EXTERN(void, acc_wildargv) (int*, char***);
   3871 ACCLIB_EXTERN_NOINLINE(void, acc_debug_break) (void);
   3872 ACCLIB_EXTERN_NOINLINE(void, acc_debug_nop) (void);
   3873 ACCLIB_EXTERN_NOINLINE(int, acc_debug_align_check_query) (void);
   3874 ACCLIB_EXTERN_NOINLINE(int, acc_debug_align_check_enable) (int);
   3875 ACCLIB_EXTERN_NOINLINE(unsigned, acc_debug_running_on_qemu) (void);
   3876 ACCLIB_EXTERN_NOINLINE(unsigned, acc_debug_running_on_valgrind) (void);
   3877 #if !defined(acc_int64l_t) || defined(ACC_CFG_NO_DOUBLE)
   3878 #  undef __ACCLIB_PCLOCK_USE_RDTSC
   3879 #  undef __ACCLIB_PCLOCK_USE_PERFCTR
   3880 #  undef __ACCLIB_UCLOCK_USE_RDTSC
   3881 #  undef __ACCLIB_UCLOCK_USE_PERFCTR
   3882 #else
   3883 typedef struct {
   3884     void* h;
   3885     int mode;
   3886     double tsc_to_seconds;
   3887     unsigned cpu_type, cpu_features, cpu_khz, cpu_nrctrs;
   3888     const char* cpu_name;
   3889 } acc_perfctr_handle_t;
   3890 typedef struct {
   3891     acc_uint64l_t tsc;
   3892 #if (ACC_OS_POSIX_LINUX)
   3893     acc_uint64l_t pmc[18];
   3894 #else
   3895     acc_uint64l_t pmc[1];
   3896 #endif
   3897 } acc_perfctr_clock_t;
   3898 #ifndef acc_perfctr_handle_p
   3899 #define acc_perfctr_handle_p acc_perfctr_handle_t *
   3900 #endif
   3901 #ifndef acc_perfctr_clock_p
   3902 #define acc_perfctr_clock_p acc_perfctr_clock_t *
   3903 #endif
   3904 ACCLIB_EXTERN(int, acc_perfctr_open)  (acc_perfctr_handle_p);
   3905 ACCLIB_EXTERN(int, acc_perfctr_close) (acc_perfctr_handle_p);
   3906 ACCLIB_EXTERN(void, acc_perfctr_read) (acc_perfctr_handle_p, acc_perfctr_clock_p);
   3907 #if !defined(ACC_CFG_NO_DOUBLE)
   3908 ACCLIB_EXTERN(double, acc_perfctr_get_elapsed) (acc_perfctr_handle_p, const acc_perfctr_clock_p, const acc_perfctr_clock_p);
   3909 ACCLIB_EXTERN(double, acc_perfctr_get_elapsed_tsc) (acc_perfctr_handle_p, acc_uint64l_t);
   3910 #endif
   3911 ACCLIB_EXTERN(int, acc_perfctr_flush_cpu_cache) (acc_perfctr_handle_p, unsigned);
   3912 #endif
   3913 #if defined(acc_int32e_t)
   3914 ACCLIB_EXTERN(int, acc_tsc_read) (acc_uint32e_t*);
   3915 #else
   3916 #  undef __ACCLIB_PCLOCK_USE_RDTSC
   3917 #  undef __ACCLIB_UCLOCK_USE_RDTSC
   3918 #endif
   3919 struct acc_pclock_handle_t;
   3920 struct acc_pclock_t;
   3921 typedef struct acc_pclock_handle_t acc_pclock_handle_t;
   3922 typedef struct acc_pclock_t acc_pclock_t;
   3923 #ifndef acc_pclock_handle_p
   3924 #define acc_pclock_handle_p acc_pclock_handle_t *
   3925 #endif
   3926 #ifndef acc_pclock_p
   3927 #define acc_pclock_p acc_pclock_t *
   3928 #endif
   3929 #define ACC_PCLOCK_REALTIME             0
   3930 #define ACC_PCLOCK_MONOTONIC            1
   3931 #define ACC_PCLOCK_PROCESS_CPUTIME_ID   2
   3932 #define ACC_PCLOCK_THREAD_CPUTIME_ID    3
   3933 #define ACC_PCLOCK_REALTIME_HR          4
   3934 #define ACC_PCLOCK_MONOTONIC_HR         5
   3935 struct acc_pclock_handle_t {
   3936     acclib_handle_t h;
   3937     int mode;
   3938     const char* name;
   3939     int (*gettime) (acc_pclock_handle_p, acc_pclock_p);
   3940 #if defined(acc_int64l_t)
   3941     acc_uint64l_t ticks_base;
   3942 #endif
   3943 #if defined(__ACCLIB_PCLOCK_USE_PERFCTR)
   3944     acc_perfctr_handle_t pch;
   3945 #endif
   3946 };
   3947 struct acc_pclock_t {
   3948 #if defined(acc_int64l_t)
   3949     acc_int64l_t tv_sec;
   3950 #else
   3951     acc_int32l_t tv_sec_high;
   3952     acc_uint32l_t tv_sec_low;
   3953 #endif
   3954     acc_uint32l_t tv_nsec;
   3955 };
   3956 ACCLIB_EXTERN(int, acc_pclock_open)  (acc_pclock_handle_p, int);
   3957 ACCLIB_EXTERN(int, acc_pclock_open_default) (acc_pclock_handle_p);
   3958 ACCLIB_EXTERN(int, acc_pclock_close) (acc_pclock_handle_p);
   3959 ACCLIB_EXTERN(void, acc_pclock_read) (acc_pclock_handle_p, acc_pclock_p);
   3960 #if !defined(ACC_CFG_NO_DOUBLE)
   3961 ACCLIB_EXTERN(double, acc_pclock_get_elapsed) (acc_pclock_handle_p, const acc_pclock_p, const acc_pclock_p);
   3962 #endif
   3963 ACCLIB_EXTERN(int, acc_pclock_flush_cpu_cache) (acc_pclock_handle_p, unsigned);
   3964 #if !defined(acc_int64l_t) || defined(ACC_CFG_NO_DOUBLE)
   3965 #  undef __ACCLIB_UCLOCK_USE_QPC
   3966 #elif (ACC_OS_CYGWIN || ACC_OS_EMX || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
   3967 #  define __ACCLIB_UCLOCK_USE_QPC 1
   3968 #else
   3969 #  undef __ACCLIB_UCLOCK_USE_QPC
   3970 #endif
   3971 typedef struct {
   3972     acclib_handle_t h;
   3973     int mode;
   3974     const char* name;
   3975 #if defined(__ACCLIB_UCLOCK_USE_PERFCTR)
   3976     acc_perfctr_handle_t pch;
   3977 #endif
   3978 #if defined(__ACCLIB_UCLOCK_USE_QPC)
   3979     double qpf;
   3980 #endif
   3981 } acc_uclock_handle_t;
   3982 typedef struct {
   3983     union {
   3984         acc_uint32l_t t32;
   3985 #if !(ACC_OS_DOS16 || ACC_OS_WIN16)
   3986 #  if !defined(ACC_CFG_NO_DOUBLE)
   3987         double td;
   3988 #  endif
   3989 #  if defined(acc_int64l_t)
   3990         acc_int64l_t t64;
   3991 #  endif
   3992 #endif
   3993     } ticks;
   3994 #if defined(__ACCLIB_UCLOCK_USE_RDTSC)
   3995     acc_uint64l_t tsc;
   3996 #endif
   3997 #if defined(__ACCLIB_UCLOCK_USE_PERFCTR)
   3998     acc_perfctr_clock_t pcc;
   3999 #endif
   4000 #if defined(__ACCLIB_UCLOCK_USE_QPC)
   4001     acc_int64l_t qpc;
   4002 #endif
   4003 } acc_uclock_t;
   4004 #ifndef acc_uclock_handle_p
   4005 #define acc_uclock_handle_p acc_uclock_handle_t *
   4006 #endif
   4007 #ifndef acc_uclock_p
   4008 #define acc_uclock_p acc_uclock_t *
   4009 #endif
   4010 ACCLIB_EXTERN(int, acc_uclock_open)  (acc_uclock_handle_p);
   4011 ACCLIB_EXTERN(int, acc_uclock_close) (acc_uclock_handle_p);
   4012 ACCLIB_EXTERN(void, acc_uclock_read) (acc_uclock_handle_p, acc_uclock_p);
   4013 #if !defined(ACC_CFG_NO_DOUBLE)
   4014 ACCLIB_EXTERN(double, acc_uclock_get_elapsed) (acc_uclock_handle_p, const acc_uclock_p, const acc_uclock_p);
   4015 #endif
   4016 ACCLIB_EXTERN(int, acc_uclock_flush_cpu_cache) (acc_uclock_handle_p, unsigned);
   4017 struct acc_getopt_t;
   4018 typedef struct acc_getopt_t acc_getopt_t;
   4019 #ifndef acc_getopt_p
   4020 #define acc_getopt_p acc_getopt_t *
   4021 #endif
   4022 struct acc_getopt_longopt_t;
   4023 typedef struct acc_getopt_longopt_t acc_getopt_longopt_t;
   4024 #ifndef acc_getopt_longopt_p
   4025 #define acc_getopt_longopt_p acc_getopt_longopt_t *
   4026 #endif
   4027 struct acc_getopt_longopt_t {
   4028     const char* name;
   4029     int has_arg;
   4030     int* flag;
   4031     int val;
   4032 };
   4033 struct acc_getopt_t {
   4034     void *user;
   4035     char *optarg;
   4036     void (*opterr)(acc_getopt_p, const char*, void *);
   4037     int optind;
   4038     int optopt;
   4039     int errcount;
   4040     const char* progname;
   4041     int argc; char** argv;
   4042     int eof; int shortpos;
   4043     int pending_rotate_first, pending_rotate_middle;
   4044 };
   4045 enum { ACC_GETOPT_NO_ARG, ACC_GETOPT_REQUIRED_ARG, ACC_GETOPT_OPTIONAL_ARG, ACC_GETOPT_EXACT_ARG = 0x10 };
   4046 enum { ACC_GETOPT_PERMUTE, ACC_GETOPT_RETURN_IN_ORDER, ACC_GETOPT_REQUIRE_ORDER };
   4047 ACCLIB_EXTERN(void, acc_getopt_init) (acc_getopt_p g,
   4048                                       int start_argc, int argc, char** argv);
   4049 ACCLIB_EXTERN(int, acc_getopt) (acc_getopt_p g,
   4050                                 const char* shortopts,
   4051                                 const acc_getopt_longopt_p longopts,
   4052                                 int* longind);
   4053 typedef struct {
   4054     acc_uint32l_t seed;
   4055 } acc_rand31_t;
   4056 #ifndef acc_rand31_p
   4057 #define acc_rand31_p acc_rand31_t *
   4058 #endif
   4059 ACCLIB_EXTERN(void, acc_srand31) (acc_rand31_p, acc_uint32l_t);
   4060 ACCLIB_EXTERN(acc_uint32l_t, acc_rand31) (acc_rand31_p);
   4061 #if defined(acc_int64l_t)
   4062 typedef struct {
   4063     acc_uint64l_t seed;
   4064 } acc_rand48_t;
   4065 #ifndef acc_rand48_p
   4066 #define acc_rand48_p acc_rand48_t *
   4067 #endif
   4068 ACCLIB_EXTERN(void, acc_srand48) (acc_rand48_p, acc_uint32l_t);
   4069 ACCLIB_EXTERN(acc_uint32l_t, acc_rand48) (acc_rand48_p);
   4070 ACCLIB_EXTERN(acc_uint32l_t, acc_rand48_r32) (acc_rand48_p);
   4071 #endif
   4072 #if defined(acc_int64l_t)
   4073 typedef struct {
   4074     acc_uint64l_t seed;
   4075 } acc_rand64_t;
   4076 #ifndef acc_rand64_p
   4077 #define acc_rand64_p acc_rand64_t *
   4078 #endif
   4079 ACCLIB_EXTERN(void, acc_srand64) (acc_rand64_p, acc_uint64l_t);
   4080 ACCLIB_EXTERN(acc_uint32l_t, acc_rand64) (acc_rand64_p);
   4081 ACCLIB_EXTERN(acc_uint32l_t, acc_rand64_r32) (acc_rand64_p);
   4082 #endif
   4083 typedef struct {
   4084     unsigned n;
   4085     acc_uint32l_t s[624];
   4086 } acc_randmt_t;
   4087 #ifndef acc_randmt_p
   4088 #define acc_randmt_p acc_randmt_t *
   4089 #endif
   4090 ACCLIB_EXTERN(void, acc_srandmt) (acc_randmt_p, acc_uint32l_t);
   4091 ACCLIB_EXTERN(acc_uint32l_t, acc_randmt) (acc_randmt_p);
   4092 ACCLIB_EXTERN(acc_uint32l_t, acc_randmt_r32) (acc_randmt_p);
   4093 #if defined(acc_int64l_t)
   4094 typedef struct {
   4095     unsigned n;
   4096     acc_uint64l_t s[312];
   4097 } acc_randmt64_t;
   4098 #ifndef acc_randmt64_p
   4099 #define acc_randmt64_p acc_randmt64_t *
   4100 #endif
   4101 ACCLIB_EXTERN(void, acc_srandmt64) (acc_randmt64_p, acc_uint64l_t);
   4102 ACCLIB_EXTERN(acc_uint64l_t, acc_randmt64_r64) (acc_randmt64_p);
   4103 #endif
   4104 #define ACC_SPAWN_P_WAIT    0
   4105 #define ACC_SPAWN_P_NOWAIT  1
   4106 ACCLIB_EXTERN(int, acc_spawnv)  (int mode, const char* fn, const char* const * argv);
   4107 ACCLIB_EXTERN(int, acc_spawnvp) (int mode, const char* fn, const char* const * argv);
   4108 ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * argv, const char * const envp);
   4109 #endif
   4110 #endif
   4111 #if defined(ACC_WANT_ACC_CXX_H)
   4112 #  undef ACC_WANT_ACC_CXX_H
   4113 #ifndef __ACC_CXX_H_INCLUDED
   4114 #define __ACC_CXX_H_INCLUDED 1
   4115 #if defined(__cplusplus)
   4116 #if defined(ACC_CXX_NOTHROW)
   4117 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul))
   4118 #elif (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
   4119 #elif (ACC_CC_HIGHC)
   4120 #elif (ACC_CC_MSC && (_MSC_VER < 1100))
   4121 #elif (ACC_CC_NDPC)
   4122 #elif (ACC_CC_TURBOC)
   4123 #elif (ACC_CC_WATCOMC && !defined(_CPPUNWIND))
   4124 #elif (ACC_CC_ZORTECHC)
   4125 #else
   4126 #  define ACC_CXX_NOTHROW   throw()
   4127 #endif
   4128 #if !defined(ACC_CXX_NOTHROW)
   4129 #  define ACC_CXX_NOTHROW
   4130 #endif
   4131 #if defined(__ACC_CXX_DO_NEW)
   4132 #elif (ACC_CC_NDPC || ACC_CC_PGI)
   4133 #  define __ACC_CXX_DO_NEW          { return 0; }
   4134 #elif ((ACC_CC_BORLANDC || ACC_CC_TURBOC) && ACC_ARCH_I086)
   4135 #  define __ACC_CXX_DO_NEW          { return 0; }
   4136 #else
   4137 #  define __ACC_CXX_DO_NEW          ;
   4138 #endif
   4139 #if defined(__ACC_CXX_DO_DELETE)
   4140 #elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
   4141 #  define __ACC_CXX_DO_DELETE       { }
   4142 #else
   4143 #  define __ACC_CXX_DO_DELETE       ACC_CXX_NOTHROW { }
   4144 #endif
   4145 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
   4146 #elif (ACC_CC_MSC && ACC_MM_HUGE)
   4147 #  define ACC_CXX_DISABLE_NEW_DELETE private:
   4148 #elif (ACC_CC_MSC && (_MSC_VER < 1100))
   4149 #elif (ACC_CC_NDPC)
   4150 #elif (ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
   4151 #elif (ACC_CC_TURBOC)
   4152 #elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1100))
   4153 #else
   4154 #  define __ACC_CXX_HAVE_ARRAY_NEW 1
   4155 #endif
   4156 #if (__ACC_CXX_HAVE_ARRAY_NEW)
   4157 #  define __ACC_CXX_HAVE_PLACEMENT_NEW 1
   4158 #endif
   4159 #if (__ACC_CXX_HAVE_PLACEMENT_NEW)
   4160 #  if (ACC_CC_GNUC >= 0x030000ul)
   4161 #    define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
   4162 #  elif (ACC_CC_INTELC)
   4163 #    define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
   4164 #  elif (ACC_CC_MSC && (_MSC_VER >= 1200))
   4165 #    define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
   4166 #  elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
   4167 #    define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
   4168 #  elif (ACC_CC_PGI)
   4169 #    define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
   4170 #  endif
   4171 #endif
   4172 #if defined(ACC_CXX_DISABLE_NEW_DELETE)
   4173 #elif defined(new) || defined(delete)
   4174 #  define ACC_CXX_DISABLE_NEW_DELETE private:
   4175 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025b00ul))
   4176 #  define ACC_CXX_DISABLE_NEW_DELETE private:
   4177 #elif  (ACC_CC_HIGHC)
   4178 #  define ACC_CXX_DISABLE_NEW_DELETE private:
   4179 #elif !defined(__ACC_CXX_HAVE_ARRAY_NEW)
   4180 #  define ACC_CXX_DISABLE_NEW_DELETE \
   4181         protected: static void operator delete(void*) __ACC_CXX_DO_DELETE \
   4182         protected: static void* operator new(size_t) __ACC_CXX_DO_NEW \
   4183         private:
   4184 #else
   4185 #  define ACC_CXX_DISABLE_NEW_DELETE \
   4186         protected: static void operator delete(void*) __ACC_CXX_DO_DELETE \
   4187                    static void operator delete[](void*) __ACC_CXX_DO_DELETE \
   4188         private:   static void* operator new(size_t)  __ACC_CXX_DO_NEW \
   4189                    static void* operator new[](size_t) __ACC_CXX_DO_NEW
   4190 #endif
   4191 #if defined(ACC_CXX_TRIGGER_FUNCTION)
   4192 #else
   4193 #  define ACC_CXX_TRIGGER_FUNCTION \
   4194         protected: virtual const void* acc_cxx_trigger_function() const; \
   4195         private:
   4196 #endif
   4197 #if defined(ACC_CXX_TRIGGER_FUNCTION_IMPL)
   4198 #else
   4199 #  define ACC_CXX_TRIGGER_FUNCTION_IMPL(klass) \
   4200         const void* klass::acc_cxx_trigger_function() const { return 0; }
   4201 #endif
   4202 #endif
   4203 #endif
   4204 #endif
   4205 #if defined(ACC_WANT_ACC_CHK_CH)
   4206 #  undef ACC_WANT_ACC_CHK_CH
   4207 #if !defined(ACCCHK_ASSERT)
   4208 #  define ACCCHK_ASSERT(expr)   ACC_COMPILE_TIME_ASSERT_HEADER(expr)
   4209 #endif
   4210 #if !defined(ACCCHK_ASSERT_SIGN_T)
   4211 #  define ACCCHK_ASSERT_SIGN_T(type,relop) \
   4212         ACCCHK_ASSERT( (type) (-1)       relop  (type) 0 ) \
   4213         ACCCHK_ASSERT( (type) (~(type)0) relop  (type) 0 ) \
   4214         ACCCHK_ASSERT( (type) (~(type)0) ==     (type) (-1) )
   4215 #endif
   4216 #if !defined(ACCCHK_ASSERT_IS_SIGNED_T)
   4217 #  define ACCCHK_ASSERT_IS_SIGNED_T(type)       ACCCHK_ASSERT_SIGN_T(type,<)
   4218 #endif
   4219 #if !defined(ACCCHK_ASSERT_IS_UNSIGNED_T)
   4220 #  if (ACC_BROKEN_INTEGRAL_PROMOTION)
   4221 #    define ACCCHK_ASSERT_IS_UNSIGNED_T(type) \
   4222         ACCCHK_ASSERT( (type) (-1) > (type) 0 )
   4223 #  else
   4224 #    define ACCCHK_ASSERT_IS_UNSIGNED_T(type)   ACCCHK_ASSERT_SIGN_T(type,>)
   4225 #  endif
   4226 #endif
   4227 #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550) && (__BORLANDC__ < 0x0560))
   4228 #  pragma option push -w-8055
   4229 #elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0550))
   4230 #  pragma option push -w-osh
   4231 #endif
   4232 #if (ACC_0xffffffffL - ACC_UINT32_C(4294967294) != 1)
   4233 #  error "preprocessor error 1"
   4234 #endif
   4235 #if (ACC_0xffffffffL - ACC_UINT32_C(0xfffffffd) != 2)
   4236 #  error "preprocessor error 2"
   4237 #endif
   4238 #define ACCCHK_VAL  1
   4239 #define ACCCHK_TMP1 ACCCHK_VAL
   4240 #undef ACCCHK_VAL
   4241 #define ACCCHK_VAL  2
   4242 #define ACCCHK_TMP2 ACCCHK_VAL
   4243 #if (ACCCHK_TMP1 != 2)
   4244 #  error "preprocessor error 3a"
   4245 #endif
   4246 #if (ACCCHK_TMP2 != 2)
   4247 #  error "preprocessor error 3b"
   4248 #endif
   4249 #undef ACCCHK_VAL
   4250 #if (ACCCHK_TMP2)
   4251 #  error "preprocessor error 3c"
   4252 #endif
   4253 #if (ACCCHK_TMP2 + 0 != 0)
   4254 #  error "preprocessor error 3d"
   4255 #endif
   4256 #undef ACCCHK_TMP1
   4257 #undef ACCCHK_TMP2
   4258 #if 0 || defined(ACCCHK_CFG_PEDANTIC)
   4259 #  if (ACC_ARCH_MIPS) && defined(_MIPS_SZINT)
   4260     ACCCHK_ASSERT((_MIPS_SZINT) == 8 * sizeof(int))
   4261 #  endif
   4262 #  if (ACC_ARCH_MIPS) && defined(_MIPS_SZLONG)
   4263     ACCCHK_ASSERT((_MIPS_SZLONG) == 8 * sizeof(long))
   4264 #  endif
   4265 #  if (ACC_ARCH_MIPS) && defined(_MIPS_SZPTR)
   4266     ACCCHK_ASSERT((_MIPS_SZPTR) == 8 * sizeof(void *))
   4267 #  endif
   4268 #endif
   4269     ACCCHK_ASSERT(1 == 1)
   4270     ACCCHK_ASSERT(__ACC_MASK_GEN(1u,2) == 3)
   4271     ACCCHK_ASSERT(__ACC_MASK_GEN(1u,8) == 255)
   4272 #if (SIZEOF_INT >= 2)
   4273     ACCCHK_ASSERT(__ACC_MASK_GEN(1,15) == 32767)
   4274     ACCCHK_ASSERT(__ACC_MASK_GEN(1u,16) == 0xffffU)
   4275 #else
   4276     ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,16) == 0xffffUL)
   4277 #endif
   4278 #if (SIZEOF_INT >= 4)
   4279     ACCCHK_ASSERT(__ACC_MASK_GEN(1,31) == 2147483647)
   4280     ACCCHK_ASSERT(__ACC_MASK_GEN(1u,32) == 0xffffffffU)
   4281 #endif
   4282 #if (SIZEOF_LONG >= 4)
   4283     ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,32) == 0xffffffffUL)
   4284 #endif
   4285 #if (SIZEOF_LONG >= 8)
   4286     ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,64) == 0xffffffffffffffffUL)
   4287 #endif
   4288 #if !defined(ACC_BROKEN_INTEGRAL_PROMOTION)
   4289     ACCCHK_ASSERT(__ACC_MASK_GEN(1u,SIZEOF_INT*8) == ~0u)
   4290     ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,SIZEOF_LONG*8) == ~0ul)
   4291 #endif
   4292 #if !defined(ACC_BROKEN_SIGNED_RIGHT_SHIFT)
   4293     ACCCHK_ASSERT(((-1) >> 7) == -1)
   4294 #endif
   4295     ACCCHK_ASSERT(((1)  >> 7) == 0)
   4296     ACCCHK_ASSERT((~0l  & ~0)  == ~0l)
   4297     ACCCHK_ASSERT((~0l  & ~0u) == ~0u)
   4298     ACCCHK_ASSERT((~0ul & ~0)  == ~0ul)
   4299     ACCCHK_ASSERT((~0ul & ~0u) == ~0u)
   4300 #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
   4301 #elif (SIZEOF_INT == 2)
   4302     ACCCHK_ASSERT((~0l  & ~0u) == 0xffffU)
   4303     ACCCHK_ASSERT((~0ul & ~0u) == 0xffffU)
   4304 #elif (SIZEOF_INT == 4)
   4305     ACCCHK_ASSERT((~0l  & ~0u) == 0xffffffffU)
   4306     ACCCHK_ASSERT((~0ul & ~0u) == 0xffffffffU)
   4307 #endif
   4308     ACCCHK_ASSERT_IS_SIGNED_T(signed char)
   4309     ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned char)
   4310     ACCCHK_ASSERT(sizeof(signed char) == sizeof(char))
   4311     ACCCHK_ASSERT(sizeof(unsigned char) == sizeof(char))
   4312     ACCCHK_ASSERT(sizeof(char) == 1)
   4313 #if (ACC_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
   4314 #else
   4315     ACCCHK_ASSERT(sizeof(char) == sizeof((char)0))
   4316 #endif
   4317 #if defined(__cplusplus)
   4318     ACCCHK_ASSERT(sizeof('\0') == sizeof(char))
   4319 #else
   4320 #  if (ACC_CC_DMC)
   4321 #  else
   4322     ACCCHK_ASSERT(sizeof('\0') == sizeof(int))
   4323 #  endif
   4324 #endif
   4325 #if defined(__acc_alignof)
   4326     ACCCHK_ASSERT(__acc_alignof(char) == 1)
   4327     ACCCHK_ASSERT(__acc_alignof(signed char) == 1)
   4328     ACCCHK_ASSERT(__acc_alignof(unsigned char) == 1)
   4329 #if defined(acc_int16e_t)
   4330     ACCCHK_ASSERT(__acc_alignof(acc_int16e_t) >= 1)
   4331     ACCCHK_ASSERT(__acc_alignof(acc_int16e_t) <= 2)
   4332 #endif
   4333 #if defined(acc_int32e_t)
   4334     ACCCHK_ASSERT(__acc_alignof(acc_int32e_t) >= 1)
   4335     ACCCHK_ASSERT(__acc_alignof(acc_int32e_t) <= 4)
   4336 #endif
   4337 #endif
   4338     ACCCHK_ASSERT_IS_SIGNED_T(short)
   4339     ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned short)
   4340     ACCCHK_ASSERT(sizeof(short) == sizeof(unsigned short))
   4341 #if !defined(ACC_ABI_I8LP16)
   4342     ACCCHK_ASSERT(sizeof(short) >= 2)
   4343 #endif
   4344     ACCCHK_ASSERT(sizeof(short) >= sizeof(char))
   4345 #if (ACC_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
   4346 #else
   4347     ACCCHK_ASSERT(sizeof(short) == sizeof((short)0))
   4348 #endif
   4349 #if (SIZEOF_SHORT > 0)
   4350     ACCCHK_ASSERT(sizeof(short) == SIZEOF_SHORT)
   4351 #endif
   4352     ACCCHK_ASSERT_IS_SIGNED_T(int)
   4353     ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned int)
   4354     ACCCHK_ASSERT(sizeof(int) == sizeof(unsigned int))
   4355 #if !defined(ACC_ABI_I8LP16)
   4356     ACCCHK_ASSERT(sizeof(int) >= 2)
   4357 #endif
   4358     ACCCHK_ASSERT(sizeof(int) >= sizeof(short))
   4359     ACCCHK_ASSERT(sizeof(int) == sizeof(0))
   4360     ACCCHK_ASSERT(sizeof(int) == sizeof((int)0))
   4361 #if (SIZEOF_INT > 0)
   4362     ACCCHK_ASSERT(sizeof(int) == SIZEOF_INT)
   4363 #endif
   4364     ACCCHK_ASSERT(sizeof(0) == sizeof(int))
   4365     ACCCHK_ASSERT_IS_SIGNED_T(long)
   4366     ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned long)
   4367     ACCCHK_ASSERT(sizeof(long) == sizeof(unsigned long))
   4368 #if !defined(ACC_ABI_I8LP16)
   4369     ACCCHK_ASSERT(sizeof(long) >= 4)
   4370 #endif
   4371     ACCCHK_ASSERT(sizeof(long) >= sizeof(int))
   4372     ACCCHK_ASSERT(sizeof(long) == sizeof(0L))
   4373     ACCCHK_ASSERT(sizeof(long) == sizeof((long)0))
   4374 #if (SIZEOF_LONG > 0)
   4375     ACCCHK_ASSERT(sizeof(long) == SIZEOF_LONG)
   4376 #endif
   4377     ACCCHK_ASSERT(sizeof(0L) == sizeof(long))
   4378     ACCCHK_ASSERT_IS_UNSIGNED_T(size_t)
   4379     ACCCHK_ASSERT(sizeof(size_t) >= sizeof(int))
   4380     ACCCHK_ASSERT(sizeof(size_t) == sizeof(sizeof(0)))
   4381 #if (SIZEOF_SIZE_T > 0)
   4382     ACCCHK_ASSERT(sizeof(size_t) == SIZEOF_SIZE_T)
   4383 #endif
   4384     ACCCHK_ASSERT_IS_SIGNED_T(ptrdiff_t)
   4385     ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(int))
   4386     ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(size_t))
   4387 #if !defined(ACC_BROKEN_SIZEOF)
   4388     ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof((char*)0 - (char*)0))
   4389 # if (ACC_HAVE_MM_HUGE_PTR)
   4390     ACCCHK_ASSERT(4 == sizeof((char __huge*)0 - (char __huge*)0))
   4391 # endif
   4392 #endif
   4393 #if (SIZEOF_PTRDIFF_T > 0)
   4394     ACCCHK_ASSERT(sizeof(ptrdiff_t) == SIZEOF_PTRDIFF_T)
   4395 #endif
   4396     ACCCHK_ASSERT(sizeof(void*) >= sizeof(char*))
   4397 #if (SIZEOF_VOID_P > 0)
   4398     ACCCHK_ASSERT(sizeof(void*) == SIZEOF_VOID_P)
   4399     ACCCHK_ASSERT(sizeof(char*) == SIZEOF_VOID_P)
   4400 #endif
   4401 #if (ACC_HAVE_MM_HUGE_PTR)
   4402     ACCCHK_ASSERT(4 == sizeof(void __huge*))
   4403     ACCCHK_ASSERT(4 == sizeof(char __huge*))
   4404 #endif
   4405 #if defined(ACC_ABI_I8LP16)
   4406     ACCCHK_ASSERT((((1u  <<  7) + 1) >>  7) == 1)
   4407     ACCCHK_ASSERT((((1ul << 15) + 1) >> 15) == 1)
   4408 #else
   4409     ACCCHK_ASSERT((((1u  << 15) + 1) >> 15) == 1)
   4410     ACCCHK_ASSERT((((1ul << 31) + 1) >> 31) == 1)
   4411 #endif
   4412 #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
   4413 #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
   4414 #else
   4415     ACCCHK_ASSERT((1   << (8*SIZEOF_INT-1)) < 0)
   4416 #endif
   4417     ACCCHK_ASSERT((1u  << (8*SIZEOF_INT-1)) > 0)
   4418 #if 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
   4419 #else
   4420     ACCCHK_ASSERT((1l  << (8*SIZEOF_LONG-1)) < 0)
   4421 #endif
   4422     ACCCHK_ASSERT((1ul << (8*SIZEOF_LONG-1)) > 0)
   4423 #if defined(acc_int16e_t)
   4424     ACCCHK_ASSERT(sizeof(acc_int16e_t) == 2)
   4425     ACCCHK_ASSERT(sizeof(acc_int16e_t) == SIZEOF_ACC_INT16E_T)
   4426     ACCCHK_ASSERT(sizeof(acc_uint16e_t) == 2)
   4427     ACCCHK_ASSERT(sizeof(acc_int16e_t) == sizeof(acc_uint16e_t))
   4428     ACCCHK_ASSERT_IS_SIGNED_T(acc_int16e_t)
   4429     ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint16e_t)
   4430 #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
   4431 #else
   4432     ACCCHK_ASSERT(((acc_uint16e_t)(~(acc_uint16e_t)0ul) >> 15) == 1)
   4433 #endif
   4434     ACCCHK_ASSERT( (acc_int16e_t) (1 + ~(acc_int16e_t)0) == 0)
   4435 #if defined(ACCCHK_CFG_PEDANTIC)
   4436     ACCCHK_ASSERT( (acc_uint16e_t)(1 + ~(acc_uint16e_t)0) == 0)
   4437 #endif
   4438 #endif
   4439 #if defined(acc_int32e_t)
   4440     ACCCHK_ASSERT(sizeof(acc_int32e_t) == 4)
   4441     ACCCHK_ASSERT(sizeof(acc_int32e_t) == SIZEOF_ACC_INT32E_T)
   4442     ACCCHK_ASSERT(sizeof(acc_uint32e_t) == 4)
   4443     ACCCHK_ASSERT(sizeof(acc_int32e_t) == sizeof(acc_uint32e_t))
   4444     ACCCHK_ASSERT_IS_SIGNED_T(acc_int32e_t)
   4445     ACCCHK_ASSERT(((( (acc_int32e_t)1 << 30) + 1) >> 30) == 1)
   4446     ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32e_t)
   4447     ACCCHK_ASSERT(((( (acc_uint32e_t)1 << 31) + 1) >> 31) == 1)
   4448     ACCCHK_ASSERT(((acc_uint32e_t)(~(acc_uint32e_t)0ul) >> 31) == 1)
   4449     ACCCHK_ASSERT( (acc_int32e_t) (1 + ~(acc_int32e_t)0) == 0)
   4450 #if defined(ACCCHK_CFG_PEDANTIC)
   4451     ACCCHK_ASSERT( (acc_uint32e_t)(1 + ~(acc_uint32e_t)0) == 0)
   4452 #endif
   4453 #endif
   4454 #if defined(acc_int32e_t)
   4455     ACCCHK_ASSERT(sizeof(acc_int32l_t) >= sizeof(acc_int32e_t))
   4456 #endif
   4457     ACCCHK_ASSERT(sizeof(acc_int32l_t) >= 4)
   4458     ACCCHK_ASSERT(sizeof(acc_int32l_t) == SIZEOF_ACC_INT32L_T)
   4459     ACCCHK_ASSERT(sizeof(acc_uint32l_t) >= 4)
   4460     ACCCHK_ASSERT(sizeof(acc_int32l_t) == sizeof(acc_uint32l_t))
   4461     ACCCHK_ASSERT_IS_SIGNED_T(acc_int32l_t)
   4462     ACCCHK_ASSERT(((( (acc_int32l_t)1 << 30) + 1) >> 30) == 1)
   4463     ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32l_t)
   4464     ACCCHK_ASSERT(((( (acc_uint32l_t)1 << 31) + 1) >> 31) == 1)
   4465     ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(int))
   4466 #if defined(acc_int32e_t)
   4467     ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32e_t))
   4468 #endif
   4469     ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32l_t))
   4470     ACCCHK_ASSERT(sizeof(acc_int32f_t) >= 4)
   4471     ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32l_t))
   4472     ACCCHK_ASSERT(sizeof(acc_int32f_t) == SIZEOF_ACC_INT32F_T)
   4473     ACCCHK_ASSERT(sizeof(acc_uint32f_t) >= 4)
   4474     ACCCHK_ASSERT(sizeof(acc_uint32f_t) >= sizeof(acc_uint32l_t))
   4475     ACCCHK_ASSERT(sizeof(acc_int32f_t) == sizeof(acc_uint32f_t))
   4476     ACCCHK_ASSERT_IS_SIGNED_T(acc_int32f_t)
   4477     ACCCHK_ASSERT(((( (acc_int32f_t)1 << 30) + 1) >> 30) == 1)
   4478     ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32f_t)
   4479     ACCCHK_ASSERT(((( (acc_uint32f_t)1 << 31) + 1) >> 31) == 1)
   4480 #if defined(acc_int64e_t)
   4481     ACCCHK_ASSERT(sizeof(acc_int64e_t) == 8)
   4482     ACCCHK_ASSERT(sizeof(acc_int64e_t) == SIZEOF_ACC_INT64E_T)
   4483     ACCCHK_ASSERT(sizeof(acc_uint64e_t) == 8)
   4484     ACCCHK_ASSERT(sizeof(acc_int64e_t) == sizeof(acc_uint64e_t))
   4485     ACCCHK_ASSERT_IS_SIGNED_T(acc_int64e_t)
   4486 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
   4487 #else
   4488     ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64e_t)
   4489 #endif
   4490 #endif
   4491 #if defined(acc_int64l_t)
   4492 #if defined(acc_int64e_t)
   4493     ACCCHK_ASSERT(sizeof(acc_int64l_t) >= sizeof(acc_int64e_t))
   4494 #endif
   4495     ACCCHK_ASSERT(sizeof(acc_int64l_t) >= 8)
   4496     ACCCHK_ASSERT(sizeof(acc_int64l_t) == SIZEOF_ACC_INT64L_T)
   4497     ACCCHK_ASSERT(sizeof(acc_uint64l_t) >= 8)
   4498     ACCCHK_ASSERT(sizeof(acc_int64l_t) == sizeof(acc_uint64l_t))
   4499     ACCCHK_ASSERT_IS_SIGNED_T(acc_int64l_t)
   4500     ACCCHK_ASSERT(((( (acc_int64l_t)1 << 62) + 1) >> 62) == 1)
   4501     ACCCHK_ASSERT(((( ACC_INT64_C(1) << 62) + 1) >> 62) == 1)
   4502 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
   4503 #else
   4504     ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64l_t)
   4505     ACCCHK_ASSERT(ACC_UINT64_C(18446744073709551615)     > 0)
   4506 #endif
   4507     ACCCHK_ASSERT(((( (acc_uint64l_t)1 << 63) + 1) >> 63) == 1)
   4508     ACCCHK_ASSERT(((( ACC_UINT64_C(1) << 63) + 1) >> 63) == 1)
   4509 #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020600ul))
   4510     ACCCHK_ASSERT(ACC_INT64_C(9223372036854775807)       > ACC_INT64_C(0))
   4511 #else
   4512     ACCCHK_ASSERT(ACC_INT64_C(9223372036854775807)       > 0)
   4513 #endif
   4514     ACCCHK_ASSERT(ACC_INT64_C(-9223372036854775807) - 1  < 0)
   4515     ACCCHK_ASSERT( ACC_INT64_C(9223372036854775807) % ACC_INT32_C(2147483629)  == 721)
   4516     ACCCHK_ASSERT( ACC_INT64_C(9223372036854775807) % ACC_INT32_C(2147483647)  == 1)
   4517     ACCCHK_ASSERT(ACC_UINT64_C(9223372036854775807) % ACC_UINT32_C(2147483629) == 721)
   4518     ACCCHK_ASSERT(ACC_UINT64_C(9223372036854775807) % ACC_UINT32_C(2147483647) == 1)
   4519 #endif
   4520 #if !defined(__ACC_INTPTR_T_IS_POINTER)
   4521     ACCCHK_ASSERT_IS_SIGNED_T(acc_intptr_t)
   4522     ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uintptr_t)
   4523 #endif
   4524     ACCCHK_ASSERT(sizeof(acc_intptr_t) >= sizeof(void *))
   4525     ACCCHK_ASSERT(sizeof(acc_intptr_t) == SIZEOF_ACC_INTPTR_T)
   4526     ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(acc_uintptr_t))
   4527 #if defined(acc_word_t)
   4528     ACCCHK_ASSERT(ACC_WORDSIZE == SIZEOF_ACC_WORD_T)
   4529     ACCCHK_ASSERT_IS_UNSIGNED_T(acc_word_t)
   4530     ACCCHK_ASSERT_IS_SIGNED_T(acc_sword_t)
   4531     ACCCHK_ASSERT(sizeof(acc_word_t) == SIZEOF_ACC_WORD_T)
   4532     ACCCHK_ASSERT(sizeof(acc_word_t) == sizeof(acc_sword_t))
   4533 #endif
   4534 #if defined(ACC_INT16_C)
   4535     ACCCHK_ASSERT(sizeof(ACC_INT16_C(0)) >= 2)
   4536     ACCCHK_ASSERT(sizeof(ACC_UINT16_C(0)) >= 2)
   4537     ACCCHK_ASSERT((ACC_UINT16_C(0xffff) >> 15) == 1)
   4538 #endif
   4539 #if defined(ACC_INT32_C)
   4540     ACCCHK_ASSERT(sizeof(ACC_INT32_C(0)) >= 4)
   4541     ACCCHK_ASSERT(sizeof(ACC_UINT32_C(0)) >= 4)
   4542     ACCCHK_ASSERT((ACC_UINT32_C(0xffffffff) >> 31) == 1)
   4543 #endif
   4544 #if defined(ACC_INT64_C)
   4545 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0560))
   4546 #else
   4547     ACCCHK_ASSERT(sizeof(ACC_INT64_C(0)) >= 8)
   4548     ACCCHK_ASSERT(sizeof(ACC_UINT64_C(0)) >= 8)
   4549 #endif
   4550     ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) >> 63) == 1)
   4551     ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0)  == ACC_UINT64_C(0xffffffffffffffff))
   4552     ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0l) == ACC_UINT64_C(0xffffffffffffffff))
   4553 #if (SIZEOF_INT == 4)
   4554 # if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
   4555 # else
   4556     ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0u) == 0xffffffffu)
   4557 # endif
   4558 #endif
   4559 #if (SIZEOF_LONG == 4)
   4560 # if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
   4561 # else
   4562     ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0ul) == 0xfffffffful)
   4563 # endif
   4564 #endif
   4565 #endif
   4566 #if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
   4567     ACCCHK_ASSERT(sizeof(void*) == 2)
   4568     ACCCHK_ASSERT(sizeof(ptrdiff_t) == 2)
   4569 #elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
   4570     ACCCHK_ASSERT(sizeof(void*) == 4)
   4571 #endif
   4572 #if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_COMPACT)
   4573     ACCCHK_ASSERT(sizeof(void (*)(void)) == 2)
   4574 #elif (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE)
   4575     ACCCHK_ASSERT(sizeof(void (*)(void)) == 4)
   4576 #endif
   4577 #if (ACC_ABI_ILP32)
   4578     ACCCHK_ASSERT(sizeof(int) == 4)
   4579     ACCCHK_ASSERT(sizeof(long) == 4)
   4580     ACCCHK_ASSERT(sizeof(void*) == 4)
   4581     ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
   4582     ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
   4583     ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
   4584 #endif
   4585 #if (ACC_ABI_ILP64)
   4586     ACCCHK_ASSERT(sizeof(int) == 8)
   4587     ACCCHK_ASSERT(sizeof(long) == 8)
   4588     ACCCHK_ASSERT(sizeof(void*) == 8)
   4589     ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
   4590     ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
   4591     ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
   4592 #endif
   4593 #if (ACC_ABI_IP32L64)
   4594     ACCCHK_ASSERT(sizeof(int) == 4)
   4595     ACCCHK_ASSERT(sizeof(long) == 8)
   4596     ACCCHK_ASSERT(sizeof(void*) == 4)
   4597     ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
   4598     ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
   4599     ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
   4600 #endif
   4601 #if (ACC_ABI_LLP64)
   4602     ACCCHK_ASSERT(sizeof(int) == 4)
   4603     ACCCHK_ASSERT(sizeof(long) == 4)
   4604     ACCCHK_ASSERT(sizeof(void*) == 8)
   4605     ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
   4606     ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
   4607     ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
   4608 #endif
   4609 #if (ACC_ABI_LP32)
   4610     ACCCHK_ASSERT(sizeof(int) == 2)
   4611     ACCCHK_ASSERT(sizeof(long) == 4)
   4612     ACCCHK_ASSERT(sizeof(void*) == 4)
   4613     ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
   4614 #endif
   4615 #if (ACC_ABI_LP64)
   4616     ACCCHK_ASSERT(sizeof(int) == 4)
   4617     ACCCHK_ASSERT(sizeof(long) == 8)
   4618     ACCCHK_ASSERT(sizeof(void*) == 8)
   4619     ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
   4620     ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
   4621     ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
   4622 #endif
   4623 #if (ACC_ARCH_I086)
   4624     ACCCHK_ASSERT(sizeof(size_t) == 2)
   4625     ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
   4626 #elif (ACC_ARCH_I386 || ACC_ARCH_M68K)
   4627     ACCCHK_ASSERT(sizeof(size_t) == 4)
   4628     ACCCHK_ASSERT(sizeof(ptrdiff_t) == 4)
   4629     ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
   4630 #endif
   4631 #if (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_WIN32)
   4632     ACCCHK_ASSERT(sizeof(size_t) == 4)
   4633     ACCCHK_ASSERT(sizeof(ptrdiff_t) == 4)
   4634     ACCCHK_ASSERT(sizeof(void (*)(void)) == 4)
   4635 #elif (ACC_OS_WIN64)
   4636     ACCCHK_ASSERT(sizeof(size_t) == 8)
   4637     ACCCHK_ASSERT(sizeof(ptrdiff_t) == 8)
   4638     ACCCHK_ASSERT(sizeof(void (*)(void)) == 8)
   4639 #endif
   4640 #if (ACC_CC_NDPC)
   4641 #elif (SIZEOF_INT > 1)
   4642     ACCCHK_ASSERT( (int) ((unsigned char) ((signed char) -1)) == 255)
   4643 #endif
   4644 #if (ACC_CC_KEILC)
   4645 #elif (ACC_CC_NDPC)
   4646 #elif 1 && (ACC_CC_LCC || ACC_CC_LCCWIN32) && !defined(ACCCHK_CFG_PEDANTIC)
   4647 #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
   4648 #elif !defined(ACC_BROKEN_INTEGRAL_PROMOTION) && (SIZEOF_INT > 1)
   4649     ACCCHK_ASSERT( (((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0)
   4650 #endif
   4651 #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0560))
   4652 #  pragma option pop
   4653 #endif
   4654 #endif
   4655 #if defined(ACC_WANT_ACCLIB_UA)
   4656 #  undef ACC_WANT_ACCLIB_UA
   4657 #define __ACCLIB_UA_CH_INCLUDED 1
   4658 #if !defined(ACCLIB_PUBLIC)
   4659 #  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
   4660 #endif
   4661 ACCLIB_PUBLIC(unsigned, acc_ua_get_be16) (const acc_hvoid_p p)
   4662 {
   4663 #if defined(ACC_UA_GET_BE16)
   4664     return ACC_UA_GET_BE16(p);
   4665 #else
   4666     const acc_hbyte_p b = (const acc_hbyte_p) p;
   4667     return ((unsigned)b[1]) | ((unsigned)b[0] << 8);
   4668 #endif
   4669 }
   4670 ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_be24) (const acc_hvoid_p p)
   4671 {
   4672     const acc_hbyte_p b = (const acc_hbyte_p) p;
   4673     return ((acc_uint32l_t)b[2]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[0] << 16);
   4674 }
   4675 ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_be32) (const acc_hvoid_p p)
   4676 {
   4677 #if defined(ACC_UA_GET_BE32)
   4678     return ACC_UA_GET_BE32(p);
   4679 #else
   4680     const acc_hbyte_p b = (const acc_hbyte_p) p;
   4681     return ((acc_uint32l_t)b[3]) | ((acc_uint32l_t)b[2] << 8) | ((acc_uint32l_t)b[1] << 16) | ((acc_uint32l_t)b[0] << 24);
   4682 #endif
   4683 }
   4684 ACCLIB_PUBLIC(void, acc_ua_set_be16) (acc_hvoid_p p, unsigned v)
   4685 {
   4686 #if defined(ACC_UA_SET_BE16)
   4687     ACC_UA_SET_BE16(p, v);
   4688 #else
   4689     acc_hbyte_p b = (acc_hbyte_p) p;
   4690     b[1] = (unsigned char) ((v >>  0) & 0xff);
   4691     b[0] = (unsigned char) ((v >>  8) & 0xff);
   4692 #endif
   4693 }
   4694 ACCLIB_PUBLIC(void, acc_ua_set_be24) (acc_hvoid_p p, acc_uint32l_t v)
   4695 {
   4696     acc_hbyte_p b = (acc_hbyte_p) p;
   4697     b[2] = (unsigned char) ((v >>  0) & 0xff);
   4698     b[1] = (unsigned char) ((v >>  8) & 0xff);
   4699     b[0] = (unsigned char) ((v >> 16) & 0xff);
   4700 }
   4701 ACCLIB_PUBLIC(void, acc_ua_set_be32) (acc_hvoid_p p, acc_uint32l_t v)
   4702 {
   4703 #if defined(ACC_UA_SET_BE32)
   4704     ACC_UA_SET_BE32(p, v);
   4705 #else
   4706     acc_hbyte_p b = (acc_hbyte_p) p;
   4707     b[3] = (unsigned char) ((v >>  0) & 0xff);
   4708     b[2] = (unsigned char) ((v >>  8) & 0xff);
   4709     b[1] = (unsigned char) ((v >> 16) & 0xff);
   4710     b[0] = (unsigned char) ((v >> 24) & 0xff);
   4711 #endif
   4712 }
   4713 ACCLIB_PUBLIC(unsigned, acc_ua_get_le16) (const acc_hvoid_p p)
   4714 {
   4715 #if defined(ACC_UA_GET_LE16)
   4716     return ACC_UA_GET_LE16(p);
   4717 #else
   4718     const acc_hbyte_p b = (const acc_hbyte_p) p;
   4719     return ((unsigned)b[0]) | ((unsigned)b[1] << 8);
   4720 #endif
   4721 }
   4722 ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le24) (const acc_hvoid_p p)
   4723 {
   4724     const acc_hbyte_p b = (const acc_hbyte_p) p;
   4725     return ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16);
   4726 }
   4727 ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le32) (const acc_hvoid_p p)
   4728 {
   4729 #if defined(ACC_UA_GET_LE32)
   4730     return ACC_UA_GET_LE32(p);
   4731 #else
   4732     const acc_hbyte_p b = (const acc_hbyte_p) p;
   4733     return ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16) | ((acc_uint32l_t)b[3] << 24);
   4734 #endif
   4735 }
   4736 ACCLIB_PUBLIC(void, acc_ua_set_le16) (acc_hvoid_p p, unsigned v)
   4737 {
   4738 #if defined(ACC_UA_SET_LE16)
   4739     ACC_UA_SET_LE16(p, v);
   4740 #else
   4741     acc_hbyte_p b = (acc_hbyte_p) p;
   4742     b[0] = (unsigned char) ((v >>  0) & 0xff);
   4743     b[1] = (unsigned char) ((v >>  8) & 0xff);
   4744 #endif
   4745 }
   4746 ACCLIB_PUBLIC(void, acc_ua_set_le24) (acc_hvoid_p p, acc_uint32l_t v)
   4747 {
   4748     acc_hbyte_p b = (acc_hbyte_p) p;
   4749     b[0] = (unsigned char) ((v >>  0) & 0xff);
   4750     b[1] = (unsigned char) ((v >>  8) & 0xff);
   4751     b[2] = (unsigned char) ((v >> 16) & 0xff);
   4752 }
   4753 ACCLIB_PUBLIC(void, acc_ua_set_le32) (acc_hvoid_p p, acc_uint32l_t v)
   4754 {
   4755 #if defined(ACC_UA_SET_LE32)
   4756     ACC_UA_SET_LE32(p, v);
   4757 #else
   4758     acc_hbyte_p b = (acc_hbyte_p) p;
   4759     b[0] = (unsigned char) ((v >>  0) & 0xff);
   4760     b[1] = (unsigned char) ((v >>  8) & 0xff);
   4761     b[2] = (unsigned char) ((v >> 16) & 0xff);
   4762     b[3] = (unsigned char) ((v >> 24) & 0xff);
   4763 #endif
   4764 }
   4765 #if defined(acc_int64l_t)
   4766 ACCLIB_PUBLIC(acc_uint64l_t, acc_ua_get_be64) (const acc_hvoid_p p)
   4767 {
   4768 #if defined(ACC_UA_GET_BE64)
   4769     return ACC_UA_GET_BE64(p);
   4770 #elif defined(ACC_UA_GET_BE32)
   4771     const acc_hbyte_p b = (const acc_hbyte_p) p;
   4772     acc_uint32e_t v0, v1;
   4773     v1 = ACC_UA_GET_BE32(b + 0);
   4774     v0 = ACC_UA_GET_BE32(b + 4);
   4775     return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
   4776 #elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
   4777     const acc_hbyte_p b = (const acc_hbyte_p) p;
   4778     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);
   4779 #else
   4780     const acc_hbyte_p b = (const acc_hbyte_p) p;
   4781     acc_uint32l_t v0, v1;
   4782     v1 = ((acc_uint32l_t)b[3]) | ((acc_uint32l_t)b[2] << 8) | ((acc_uint32l_t)b[1] << 16) | ((acc_uint32l_t)b[0] << 24);
   4783     b += 4;
   4784     v0 = ((acc_uint32l_t)b[3]) | ((acc_uint32l_t)b[2] << 8) | ((acc_uint32l_t)b[1] << 16) | ((acc_uint32l_t)b[0] << 24);
   4785     return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
   4786 #endif
   4787 }
   4788 ACCLIB_PUBLIC(void, acc_ua_set_be64) (acc_hvoid_p p, acc_uint64l_t v)
   4789 {
   4790 #if defined(ACC_UA_SET_BE64)
   4791     ACC_UA_SET_BE64(p, v);
   4792 #elif defined(ACC_UA_SET_BE32)
   4793     acc_hbyte_p b = (acc_hbyte_p) p;
   4794     ACC_UA_SET_BE32(b + 4, (v >>  0));
   4795     ACC_UA_SET_BE32(b + 0, (v >> 32));
   4796 #elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
   4797     acc_hbyte_p b = (acc_hbyte_p) p;
   4798     b[7] = (unsigned char) ((v >>  0) & 0xff);
   4799     b[6] = (unsigned char) ((v >>  8) & 0xff);
   4800     b[5] = (unsigned char) ((v >> 16) & 0xff);
   4801     b[4] = (unsigned char) ((v >> 24) & 0xff);
   4802     b[3] = (unsigned char) ((v >> 32) & 0xff);
   4803     b[2] = (unsigned char) ((v >> 40) & 0xff);
   4804     b[1] = (unsigned char) ((v >> 48) & 0xff);
   4805     b[0] = (unsigned char) ((v >> 56) & 0xff);
   4806 #else
   4807     acc_hbyte_p b = (acc_hbyte_p) p;
   4808     acc_uint32l_t x;
   4809     x = (acc_uint32l_t) (v >>  0);
   4810     b[7] = (unsigned char) ((x >>  0) & 0xff);
   4811     b[6] = (unsigned char) ((x >>  8) & 0xff);
   4812     b[5] = (unsigned char) ((x >> 16) & 0xff);
   4813     b[4] = (unsigned char) ((x >> 24) & 0xff);
   4814     x = (acc_uint32l_t) (v >> 32);
   4815     b[3] = (unsigned char) ((x >>  0) & 0xff);
   4816     b[2] = (unsigned char) ((x >>  8) & 0xff);
   4817     b[1] = (unsigned char) ((x >> 16) & 0xff);
   4818     b[0] = (unsigned char) ((x >> 24) & 0xff);
   4819 #endif
   4820 }
   4821 #endif
   4822 #if defined(acc_int64l_t)
   4823 ACCLIB_PUBLIC(acc_uint64l_t, acc_ua_get_le64) (const acc_hvoid_p p)
   4824 {
   4825 #if defined(ACC_UA_GET_LE64)
   4826     return ACC_UA_GET_LE64(p);
   4827 #elif defined(ACC_UA_GET_LE32)
   4828     const acc_hbyte_p b = (const acc_hbyte_p) p;
   4829     acc_uint32e_t v0, v1;
   4830     v0 = ACC_UA_GET_LE32(b + 0);
   4831     v1 = ACC_UA_GET_LE32(b + 4);
   4832     return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
   4833 #elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
   4834     const acc_hbyte_p b = (const acc_hbyte_p) p;
   4835     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);
   4836 #else
   4837     const acc_hbyte_p b = (const acc_hbyte_p) p;
   4838     acc_uint32l_t v0, v1;
   4839     v0 = ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16) | ((acc_uint32l_t)b[3] << 24);
   4840     b += 4;
   4841     v1 = ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16) | ((acc_uint32l_t)b[3] << 24);
   4842     return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
   4843 #endif
   4844 }
   4845 ACCLIB_PUBLIC(void, acc_ua_set_le64) (acc_hvoid_p p, acc_uint64l_t v)
   4846 {
   4847 #if defined(ACC_UA_SET_LE64)
   4848     ACC_UA_SET_LE64(p, v);
   4849 #elif defined(ACC_UA_SET_LE32)
   4850     acc_hbyte_p b = (acc_hbyte_p) p;
   4851     ACC_UA_SET_LE32(b + 0, (v >>  0));
   4852     ACC_UA_SET_LE32(b + 4, (v >> 32));
   4853 #elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
   4854     acc_hbyte_p b = (acc_hbyte_p) p;
   4855     b[0] = (unsigned char) ((v >>  0) & 0xff);
   4856     b[1] = (unsigned char) ((v >>  8) & 0xff);
   4857     b[2] = (unsigned char) ((v >> 16) & 0xff);
   4858     b[3] = (unsigned char) ((v >> 24) & 0xff);
   4859     b[4] = (unsigned char) ((v >> 32) & 0xff);
   4860     b[5] = (unsigned char) ((v >> 40) & 0xff);
   4861     b[6] = (unsigned char) ((v >> 48) & 0xff);
   4862     b[7] = (unsigned char) ((v >> 56) & 0xff);
   4863 #else
   4864     acc_hbyte_p b = (acc_hbyte_p) p;
   4865     acc_uint32l_t x;
   4866     x = (acc_uint32l_t) (v >>  0);
   4867     b[0] = (unsigned char) ((x >>  0) & 0xff);
   4868     b[1] = (unsigned char) ((x >>  8) & 0xff);
   4869     b[2] = (unsigned char) ((x >> 16) & 0xff);
   4870     b[3] = (unsigned char) ((x >> 24) & 0xff);
   4871     x = (acc_uint32l_t) (v >> 32);
   4872     b[4] = (unsigned char) ((x >>  0) & 0xff);
   4873     b[5] = (unsigned char) ((x >>  8) & 0xff);
   4874     b[6] = (unsigned char) ((x >> 16) & 0xff);
   4875     b[7] = (unsigned char) ((x >> 24) & 0xff);
   4876 #endif
   4877 }
   4878 #endif
   4879 #endif
   4880 #if defined(ACC_WANT_ACCLIB_VGET)
   4881 #  undef ACC_WANT_ACCLIB_VGET
   4882 #define __ACCLIB_VGET_CH_INCLUDED 1
   4883 #if !defined(ACCLIB_PUBLIC)
   4884 #  define ACCLIB_PUBLIC(r,f)                r __ACCLIB_FUNCNAME(f)
   4885 #endif
   4886 #if !defined(ACCLIB_PUBLIC_NOINLINE)
   4887 #  if !defined(__acc_noinline)
   4888 #    define ACCLIB_PUBLIC_NOINLINE(r,f)     r __ACCLIB_FUNCNAME(f)
   4889 #  elif (ACC_CC_GNUC >= 0x030400ul) || (ACC_CC_LLVM)
   4890 #    define ACCLIB_PUBLIC_NOINLINE(r,f)     __acc_noinline __attribute__((__used__)) r __ACCLIB_FUNCNAME(f)
   4891 #  else
   4892 #    define ACCLIB_PUBLIC_NOINLINE(r,f)     __acc_noinline r __ACCLIB_FUNCNAME(f)
   4893 #  endif
   4894 #endif
   4895 #if (ACC_CC_GNUC >= 0x030400ul) || (ACC_CC_LLVM)
   4896 extern void* volatile __acc_vget_ptr;
   4897 void* volatile __attribute__((__used__)) __acc_vget_ptr = (void *) 0;
   4898 #else
   4899 extern void* volatile __acc_vget_ptr;
   4900 void* volatile __acc_vget_ptr = (void *) 0;
   4901 #endif
   4902 #ifndef __ACCLIB_VGET_BODY
   4903 #define __ACCLIB_VGET_BODY(T) \
   4904     if __acc_unlikely(__acc_vget_ptr) { \
   4905         * (T *) __acc_vget_ptr = v; \
   4906         * (int *) __acc_vget_ptr = expr; \
   4907         v = * (T *) __acc_vget_ptr; \
   4908     } \
   4909     return v;
   4910 #endif
   4911 ACCLIB_PUBLIC_NOINLINE(short, acc_vget_short) (short v, int expr)
   4912 {
   4913     __ACCLIB_VGET_BODY(short)
   4914 }
   4915 ACCLIB_PUBLIC_NOINLINE(int, acc_vget_int) (int v, int expr)
   4916 {
   4917     __ACCLIB_VGET_BODY(int)
   4918 }
   4919 ACCLIB_PUBLIC_NOINLINE(long, acc_vget_long) (long v, int expr)
   4920 {
   4921     __ACCLIB_VGET_BODY(long)
   4922 }
   4923 #if defined(acc_int64l_t)
   4924 ACCLIB_PUBLIC_NOINLINE(acc_int64l_t, acc_vget_acc_int64l_t) (acc_int64l_t v, int expr)
   4925 {
   4926     __ACCLIB_VGET_BODY(acc_int64l_t)
   4927 }
   4928 #endif
   4929 ACCLIB_PUBLIC_NOINLINE(acc_hsize_t, acc_vget_acc_hsize_t) (acc_hsize_t v, int expr)
   4930 {
   4931     __ACCLIB_VGET_BODY(acc_hsize_t)
   4932 }
   4933 #if !defined(ACC_CFG_NO_FLOAT)
   4934 ACCLIB_PUBLIC_NOINLINE(float, acc_vget_float) (float v, int expr)
   4935 {
   4936     __ACCLIB_VGET_BODY(float)
   4937 }
   4938 #endif
   4939 #if !defined(ACC_CFG_NO_DOUBLE)
   4940 ACCLIB_PUBLIC_NOINLINE(double, acc_vget_double) (double v, int expr)
   4941 {
   4942     __ACCLIB_VGET_BODY(double)
   4943 }
   4944 #endif
   4945 ACCLIB_PUBLIC_NOINLINE(acc_hvoid_p, acc_vget_acc_hvoid_p) (acc_hvoid_p v, int expr)
   4946 {
   4947     __ACCLIB_VGET_BODY(acc_hvoid_p)
   4948 }
   4949 #if (ACC_ARCH_I086 && ACC_CC_TURBOC && (__TURBOC__ == 0x0295)) && !defined(__cplusplus)
   4950 ACCLIB_PUBLIC_NOINLINE(acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoid_p vv, int expr)
   4951 {
   4952     acc_hvoid_p v = (acc_hvoid_p) vv;
   4953     __ACCLIB_VGET_BODY(acc_hvoid_p)
   4954 }
   4955 #else
   4956 ACCLIB_PUBLIC_NOINLINE(const acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoid_p v, int expr)
   4957 {
   4958     __ACCLIB_VGET_BODY(const acc_hvoid_p)
   4959 }
   4960 #endif
   4961 #endif
   4962 #if defined(ACC_WANT_ACCLIB_HMEMCPY)
   4963 #  undef ACC_WANT_ACCLIB_HMEMCPY
   4964 #define __ACCLIB_HMEMCPY_CH_INCLUDED 1
   4965 #if !defined(ACCLIB_PUBLIC)
   4966 #  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
   4967 #endif
   4968 ACCLIB_PUBLIC(int, acc_hmemcmp) (const acc_hvoid_p s1, const acc_hvoid_p s2, acc_hsize_t len)
   4969 {
   4970 #if (ACC_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMCMP)
   4971     const acc_hbyte_p p1 = (const acc_hbyte_p) s1;
   4972     const acc_hbyte_p p2 = (const acc_hbyte_p) s2;
   4973     if __acc_likely(len > 0) do
   4974     {
   4975         int d = *p1 - *p2;
   4976         if (d != 0)
   4977             return d;
   4978         p1++; p2++;
   4979     } while __acc_likely(--len > 0);
   4980     return 0;
   4981 #else
   4982     return memcmp(s1, s2, len);
   4983 #endif
   4984 }
   4985 ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemcpy) (acc_hvoid_p dest, const acc_hvoid_p src, acc_hsize_t len)
   4986 {
   4987 #if (ACC_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMCPY)
   4988     acc_hbyte_p p1 = (acc_hbyte_p) dest;
   4989     const acc_hbyte_p p2 = (const acc_hbyte_p) src;
   4990     if (!(len > 0) || p1 == p2)
   4991         return dest;
   4992     do
   4993         *p1++ = *p2++;
   4994     while __acc_likely(--len > 0);
   4995     return dest;
   4996 #else
   4997     return memcpy(dest, src, len);
   4998 #endif
   4999 }
   5000 ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemmove) (acc_hvoid_p dest, const acc_hvoid_p src, acc_hsize_t len)
   5001 {
   5002 #if (ACC_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMMOVE)
   5003     acc_hbyte_p p1 = (acc_hbyte_p) dest;
   5004     const acc_hbyte_p p2 = (const acc_hbyte_p) src;
   5005     if (!(len > 0) || p1 == p2)
   5006         return dest;
   5007     if (p1 < p2)
   5008     {
   5009         do
   5010             *p1++ = *p2++;
   5011         while __acc_likely(--len > 0);
   5012     }
   5013     else
   5014     {
   5015         p1 += len;
   5016         p2 += len;
   5017         do
   5018             *--p1 = *--p2;
   5019         while __acc_likely(--len > 0);
   5020     }
   5021     return dest;
   5022 #else
   5023     return memmove(dest, src, len);
   5024 #endif
   5025 }
   5026 ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemset) (acc_hvoid_p s, int c, acc_hsize_t len)
   5027 {
   5028 #if (ACC_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMSET)
   5029     acc_hbyte_p p = (acc_hbyte_p) s;
   5030     if __acc_likely(len > 0) do
   5031         *p++ = (unsigned char) c;
   5032     while __acc_likely(--len > 0);
   5033     return s;
   5034 #else
   5035     return memset(s, c, len);
   5036 #endif
   5037 }
   5038 #endif
   5039 #if defined(ACC_WANT_ACCLIB_RAND)
   5040 #  undef ACC_WANT_ACCLIB_RAND
   5041 #define __ACCLIB_RAND_CH_INCLUDED 1
   5042 #if !defined(ACCLIB_PUBLIC)
   5043 #  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
   5044 #endif
   5045 ACCLIB_PUBLIC(void, acc_srand31) (acc_rand31_p r, acc_uint32l_t seed)
   5046 {
   5047     r->seed = seed & ACC_UINT32_C(0xffffffff);
   5048 }
   5049 ACCLIB_PUBLIC(acc_uint32l_t, acc_rand31) (acc_rand31_p r)
   5050 {
   5051     r->seed = r->seed * ACC_UINT32_C(1103515245) + 12345;
   5052     r->seed &= ACC_UINT32_C(0x7fffffff);
   5053     return r->seed;
   5054 }
   5055 #if defined(acc_int64l_t)
   5056 ACCLIB_PUBLIC(void, acc_srand48) (acc_rand48_p r, acc_uint32l_t seed)
   5057 {
   5058     r->seed = seed & ACC_UINT32_C(0xffffffff);
   5059     r->seed <<= 16; r->seed |= 0x330e;
   5060 }
   5061 ACCLIB_PUBLIC(acc_uint32l_t, acc_rand48) (acc_rand48_p r)
   5062 {
   5063     r->seed = r->seed * ACC_UINT64_C(25214903917) + 11;
   5064     r->seed &= ACC_UINT64_C(0xffffffffffff);
   5065     return (acc_uint32l_t) (r->seed >> 17);
   5066 }
   5067 ACCLIB_PUBLIC(acc_uint32l_t, acc_rand48_r32) (acc_rand48_p r)
   5068 {
   5069     r->seed = r->seed * ACC_UINT64_C(25214903917) + 11;
   5070     r->seed &= ACC_UINT64_C(0xffffffffffff);
   5071     return (acc_uint32l_t) (r->seed >> 16);
   5072 }
   5073 #endif
   5074 #if defined(acc_int64l_t)
   5075 ACCLIB_PUBLIC(void, acc_srand64) (acc_rand64_p r, acc_uint64l_t seed)
   5076 {
   5077     r->seed = seed & ACC_UINT64_C(0xffffffffffffffff);
   5078 }
   5079 ACCLIB_PUBLIC(acc_uint32l_t, acc_rand64) (acc_rand64_p r)
   5080 {
   5081     r->seed = r->seed * ACC_UINT64_C(6364136223846793005) + 1;
   5082 #if (ACC_SIZEOF_ACC_INT64L_T > 8)
   5083     r->seed &= ACC_UINT64_C(0xffffffffffffffff);
   5084 #endif
   5085     return (acc_uint32l_t) (r->seed >> 33);
   5086 }
   5087 ACCLIB_PUBLIC(acc_uint32l_t, acc_rand64_r32) (acc_rand64_p r)
   5088 {
   5089     r->seed = r->seed * ACC_UINT64_C(6364136223846793005) + 1;
   5090 #if (ACC_SIZEOF_ACC_INT64L_T > 8)
   5091     r->seed &= ACC_UINT64_C(0xffffffffffffffff);
   5092 #endif
   5093     return (acc_uint32l_t) (r->seed >> 32);
   5094 }
   5095 #endif
   5096 ACCLIB_PUBLIC(void, acc_srandmt) (acc_randmt_p r, acc_uint32l_t seed)
   5097 {
   5098     unsigned i = 0;
   5099     do {
   5100         r->s[i++] = (seed &= ACC_UINT32_C(0xffffffff));
   5101         seed ^= seed >> 30;
   5102         seed = seed * ACC_UINT32_C(0x6c078965) + i;
   5103     } while (i != 624);
   5104     r->n = i;
   5105 }
   5106 ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt) (acc_randmt_p r)
   5107 {
   5108     return (__ACCLIB_FUNCNAME(acc_randmt_r32)(r)) >> 1;
   5109 }
   5110 ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt_r32) (acc_randmt_p r)
   5111 {
   5112     acc_uint32l_t v;
   5113     if __acc_unlikely(r->n == 624) {
   5114         int i = 0, j;
   5115         r->n = 0;
   5116         do {
   5117             j = i - 623; if (j < 0) j += 624;
   5118             v = (r->s[i] & ACC_UINT32_C(0x80000000)) ^ (r->s[j] & ACC_UINT32_C(0x7fffffff));
   5119             j = i - 227; if (j < 0) j += 624;
   5120             r->s[i] = r->s[j] ^ (v >> 1);
   5121             if (v & 1) r->s[i] ^= ACC_UINT32_C(0x9908b0df);
   5122         } while (++i != 624);
   5123     }
   5124     v = r->s[r->n++];
   5125     v ^= v >> 11; v ^= (v & ACC_UINT32_C(0x013a58ad)) << 7;
   5126     v ^= (v & ACC_UINT32_C(0x0001df8c)) << 15; v ^= v >> 18;
   5127     return v;
   5128 }
   5129 #if defined(acc_int64l_t)
   5130 ACCLIB_PUBLIC(void, acc_srandmt64) (acc_randmt64_p r, acc_uint64l_t seed)
   5131 {
   5132     unsigned i = 0;
   5133     do {
   5134         r->s[i++] = (seed &= ACC_UINT64_C(0xffffffffffffffff));
   5135         seed ^= seed >> 62;
   5136         seed = seed * ACC_UINT64_C(0x5851f42d4c957f2d) + i;
   5137     } while (i != 312);
   5138     r->n = i;
   5139 }
   5140 #if 0
   5141 ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt64) (acc_randmt64_p r)
   5142 {
   5143     acc_uint64l_t v;
   5144     v = (__ACCLIB_FUNCNAME(acc_randmt64_r64)(r)) >> 33;
   5145     return (acc_uint32l_t) v;
   5146 }
   5147 #endif
   5148 ACCLIB_PUBLIC(acc_uint64l_t, acc_randmt64_r64) (acc_randmt64_p r)
   5149 {
   5150     acc_uint64l_t v;
   5151     if __acc_unlikely(r->n == 312) {
   5152         int i = 0, j;
   5153         r->n = 0;
   5154         do {
   5155             j = i - 311; if (j < 0) j += 312;
   5156             v = (r->s[i] & ACC_UINT64_C(0xffffffff80000000)) ^ (r->s[j] & ACC_UINT64_C(0x7fffffff));
   5157             j = i - 156; if (j < 0) j += 312;
   5158             r->s[i] = r->s[j] ^ (v >> 1);
   5159             if (v & 1) r->s[i] ^= ACC_UINT64_C(0xb5026f5aa96619e9);
   5160         } while (++i != 312);
   5161     }
   5162     v = r->s[r->n++];
   5163     v ^= (v & ACC_UINT64_C(0xaaaaaaaaa0000000)) >> 29;
   5164     v ^= (v & ACC_UINT64_C(0x38eb3ffff6d3)) << 17;
   5165     v ^= (v & ACC_UINT64_C(0x7ffbf77)) << 37;
   5166     return v ^ (v >> 43);
   5167 }
   5168 #endif
   5169 #endif
   5170 #if defined(ACC_WANT_ACCLIB_RDTSC)
   5171 #  undef ACC_WANT_ACCLIB_RDTSC
   5172 #define __ACCLIB_RDTSC_CH_INCLUDED 1
   5173 #if !defined(ACCLIB_PUBLIC)
   5174 #  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
   5175 #endif
   5176 #if defined(acc_int32e_t)
   5177 #if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
   5178 #  pragma warn(push)
   5179 #  pragma warn(disable:2007)
   5180 #endif
   5181 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
   5182 #if (ACC_ARCH_AMD64 && ACC_CC_PATHSCALE)
   5183 #  define __ACCLIB_RDTSC_REGS   : : "c" (t) : "cc", "memory", "rax", "rdx"
   5184 #elif (ACC_ARCH_AMD64 && ACC_CC_INTELC)
   5185 #  define __ACCLIB_RDTSC_REGS   : : "r" (t) : "memory", "rax", "rdx"
   5186 #elif (ACC_ARCH_AMD64)
   5187 #  define __ACCLIB_RDTSC_REGS   : : "r" (t) : "cc", "memory", "rax", "rdx"
   5188 #elif (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
   5189 #  define __ACCLIB_RDTSC_REGS   : : "r" (t) : "ax", "dx"
   5190 #elif (ACC_ARCH_I386 && ACC_CC_INTELC)
   5191 #  define __ACCLIB_RDTSC_REGS   : : "r" (t) : "memory", "eax", "edx"
   5192 #elif (ACC_ARCH_I386 && ACC_CC_PATHSCALE)
   5193 #  define __ACCLIB_RDTSC_REGS   : : "c" (t) : "memory", "eax", "edx"
   5194 #else
   5195 #  define __ACCLIB_RDTSC_REGS   : : "r" (t) : "cc", "memory", "eax", "edx"
   5196 #endif
   5197 #endif
   5198 ACCLIB_PUBLIC(int, acc_tsc_read) (acc_uint32e_t* t)
   5199 {
   5200 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
   5201     __asm__ __volatile__(
   5202         "clc \n" ".byte 0x0f,0x31\n"
   5203         "movl %%eax,(%0)\n" "movl %%edx,4(%0)\n"
   5204         __ACCLIB_RDTSC_REGS
   5205     );
   5206     return 0;
   5207 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
   5208     ACC_UNUSED(t);
   5209     __asm {
   5210         mov ecx, t
   5211         clc
   5212 #  if (ACC_CC_MSC && (_MSC_VER < 1200))
   5213         _emit 0x0f
   5214         _emit 0x31
   5215 #  else
   5216         rdtsc
   5217 #  endif
   5218         mov [ecx], eax
   5219         mov [ecx+4], edx
   5220     }
   5221     return 0;
   5222 #else
   5223     t[0] = t[1] = 0; return -1;
   5224 #endif
   5225 }
   5226 #if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
   5227 #  pragma warn(pop)
   5228 #endif
   5229 #endif
   5230 #endif
   5231 #if defined(ACC_WANT_ACCLIB_DOSALLOC)
   5232 #  undef ACC_WANT_ACCLIB_DOSALLOC
   5233 #define __ACCLIB_DOSALLOC_CH_INCLUDED 1
   5234 #if !defined(ACCLIB_PUBLIC)
   5235 #  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
   5236 #endif
   5237 #if (ACC_OS_OS216)
   5238 ACC_EXTERN_C unsigned short __far __pascal DosAllocHuge(unsigned short, unsigned short, unsigned short __far *, unsigned short, unsigned short);
   5239 ACC_EXTERN_C unsigned short __far __pascal DosFreeSeg(unsigned short);
   5240 #endif
   5241 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
   5242 #if !defined(ACC_CC_AZTECC)
   5243 ACCLIB_PUBLIC(void __far*, acc_dos_alloc) (unsigned long size)
   5244 {
   5245     void __far* p = 0;
   5246     union REGS ri, ro;
   5247     if ((long)size <= 0)
   5248         return p;
   5249     size = (size + 15) >> 4;
   5250     if (size > 0xffffu)
   5251         return p;
   5252     ri.x.ax = 0x4800;
   5253     ri.x.bx = (unsigned short) size;
   5254     int86(0x21, &ri, &ro);
   5255     if ((ro.x.cflag & 1) == 0)
   5256         p = (void __far*) ACC_PTR_MK_FP(ro.x.ax, 0);
   5257     return p;
   5258 }
   5259 ACCLIB_PUBLIC(int, acc_dos_free) (void __far* p)
   5260 {
   5261     union REGS ri, ro;
   5262     struct SREGS rs;
   5263     if (!p)
   5264         return 0;
   5265     if (ACC_PTR_FP_OFF(p) != 0)
   5266         return -1;
   5267     segread(&rs);
   5268     ri.x.ax = 0x4900;
   5269     rs.es = ACC_PTR_FP_SEG(p);
   5270     int86x(0x21, &ri, &ro, &rs);
   5271     if (ro.x.cflag & 1)
   5272         return -1;
   5273     return 0;
   5274 }
   5275 #endif
   5276 #endif
   5277 #if (ACC_OS_OS216)
   5278 ACCLIB_PUBLIC(void __far*, acc_dos_alloc) (unsigned long size)
   5279 {
   5280     void __far* p = 0;
   5281     unsigned short sel = 0;
   5282     if ((long)size <= 0)
   5283         return p;
   5284     if (DosAllocHuge((unsigned short)(size >> 16), (unsigned short)size, &sel, 0, 0) == 0)
   5285         p = (void __far*) ACC_PTR_MK_FP(sel, 0);
   5286     return p;
   5287 }
   5288 ACCLIB_PUBLIC(int, acc_dos_free) (void __far* p)
   5289 {
   5290     if (!p)
   5291         return 0;
   5292     if (ACC_PTR_FP_OFF(p) != 0)
   5293         return -1;
   5294     if (DosFreeSeg(ACC_PTR_FP_SEG(p)) != 0)
   5295         return -1;
   5296     return 0;
   5297 }
   5298 #endif
   5299 #endif
   5300 #if defined(ACC_WANT_ACCLIB_HALLOC)
   5301 #  undef ACC_WANT_ACCLIB_HALLOC
   5302 #define __ACCLIB_HALLOC_CH_INCLUDED 1
   5303 #if !defined(ACCLIB_PUBLIC)
   5304 #  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
   5305 #endif
   5306 #if (ACC_HAVE_MM_HUGE_PTR)
   5307 #if 1 && (ACC_OS_DOS16 && defined(BLX286))
   5308 #  define __ACCLIB_HALLOC_USE_DAH 1
   5309 #elif 1 && (ACC_OS_DOS16 && defined(DOSX286))
   5310 #  define __ACCLIB_HALLOC_USE_DAH 1
   5311 #elif 1 && (ACC_OS_OS216)
   5312 #  define __ACCLIB_HALLOC_USE_DAH 1
   5313 #elif 1 && (ACC_OS_WIN16)
   5314 #  define __ACCLIB_HALLOC_USE_GA 1
   5315 #elif 1 && (ACC_OS_DOS16) && (ACC_CC_BORLANDC) && defined(__DPMI16__)
   5316 #  define __ACCLIB_HALLOC_USE_GA 1
   5317 #endif
   5318 #endif
   5319 #if (__ACCLIB_HALLOC_USE_DAH)
   5320 #if 0 && (ACC_OS_OS216)
   5321 #include <os2.h>
   5322 #else
   5323 ACC_EXTERN_C unsigned short __far __pascal DosAllocHuge(unsigned short, unsigned short, unsigned short __far *, unsigned short, unsigned short);
   5324 ACC_EXTERN_C unsigned short __far __pascal DosFreeSeg(unsigned short);
   5325 #endif
   5326 #endif
   5327 #if (__ACCLIB_HALLOC_USE_GA)
   5328 #if 0
   5329 #define STRICT 1
   5330 #include <windows.h>
   5331 #else
   5332 ACC_EXTERN_C const void __near* __far __pascal GlobalAlloc(unsigned, unsigned long);
   5333 ACC_EXTERN_C const void __near* __far __pascal GlobalFree(const void __near*);
   5334 ACC_EXTERN_C unsigned long __far __pascal GlobalHandle(unsigned);
   5335 ACC_EXTERN_C void __far* __far __pascal GlobalLock(const void __near*);
   5336 ACC_EXTERN_C int __far __pascal GlobalUnlock(const void __near*);
   5337 #endif
   5338 #endif
   5339 ACCLIB_PUBLIC(acc_hvoid_p, acc_halloc) (acc_hsize_t size)
   5340 {
   5341     acc_hvoid_p p = 0;
   5342     if (!(size > 0))
   5343         return p;
   5344 #if 0 && defined(__palmos__)
   5345     p = MemPtrNew(size);
   5346 #elif !defined(ACC_HAVE_MM_HUGE_PTR)
   5347     if (size < (size_t) -1)
   5348         p = malloc((size_t) size);
   5349 #else
   5350     if ((long)size <= 0)
   5351         return p;
   5352 {
   5353 #if (__ACCLIB_HALLOC_USE_DAH)
   5354     unsigned short sel = 0;
   5355     if (DosAllocHuge((unsigned short)(size >> 16), (unsigned short)size, &sel, 0, 0) == 0)
   5356         p = (acc_hvoid_p) ACC_PTR_MK_FP(sel, 0);
   5357 #elif (__ACCLIB_HALLOC_USE_GA)
   5358     const void __near* h = GlobalAlloc(2, size);
   5359     if (h) {
   5360         p = GlobalLock(h);
   5361         if (p && ACC_PTR_FP_OFF(p) != 0) {
   5362             GlobalUnlock(h);
   5363             p = 0;
   5364         }
   5365         if (!p)
   5366             GlobalFree(h);
   5367     }
   5368 #elif (ACC_CC_MSC && (_MSC_VER >= 700))
   5369     p = _halloc(size, 1);
   5370 #elif (ACC_CC_MSC || ACC_CC_WATCOMC)
   5371     p = halloc(size, 1);
   5372 #elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
   5373     p = farmalloc(size);
   5374 #elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
   5375     p = farmalloc(size);
   5376 #elif defined(ACC_CC_AZTECC)
   5377     p = lmalloc(size);
   5378 #else
   5379     if (size < (size_t) -1)
   5380         p = malloc((size_t) size);
   5381 #endif
   5382 }
   5383 #endif
   5384     return p;
   5385 }
   5386 ACCLIB_PUBLIC(void, acc_hfree) (acc_hvoid_p p)
   5387 {
   5388     if (!p)
   5389         return;
   5390 #if 0 && defined(__palmos__)
   5391     MemPtrFree(p);
   5392 #elif !defined(ACC_HAVE_MM_HUGE_PTR)
   5393     free(p);
   5394 #else
   5395 #if (__ACCLIB_HALLOC_USE_DAH)
   5396     if (ACC_PTR_FP_OFF(p) == 0)
   5397         DosFreeSeg((unsigned short) ACC_PTR_FP_SEG(p));
   5398 #elif (__ACCLIB_HALLOC_USE_GA)
   5399     if (ACC_PTR_FP_OFF(p) == 0) {
   5400         const void __near* h = (const void __near*) (unsigned) GlobalHandle(ACC_PTR_FP_SEG(p));
   5401         if (h) {
   5402             GlobalUnlock(h);
   5403             GlobalFree(h);
   5404         }
   5405     }
   5406 #elif (ACC_CC_MSC && (_MSC_VER >= 700))
   5407     _hfree(p);
   5408 #elif (ACC_CC_MSC || ACC_CC_WATCOMC)
   5409     hfree(p);
   5410 #elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
   5411     farfree((void __far*) p);
   5412 #elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
   5413     farfree((void __far*) p);
   5414 #elif defined(ACC_CC_AZTECC)
   5415     lfree(p);
   5416 #else
   5417     free(p);
   5418 #endif
   5419 #endif
   5420 }
   5421 #endif
   5422 #if defined(ACC_WANT_ACCLIB_HFREAD)
   5423 #  undef ACC_WANT_ACCLIB_HFREAD
   5424 #define __ACCLIB_HFREAD_CH_INCLUDED 1
   5425 #if !defined(ACCLIB_PUBLIC)
   5426 #  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
   5427 #endif
   5428 ACCLIB_PUBLIC(acc_hsize_t, acc_hfread) (void* vfp, acc_hvoid_p buf, acc_hsize_t size)
   5429 {
   5430     FILE* fp = (FILE *) vfp;
   5431 #if (ACC_HAVE_MM_HUGE_PTR)
   5432 #if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
   5433 #define __ACCLIB_REQUIRE_HMEMCPY_CH 1
   5434     unsigned char tmp[512];
   5435     acc_hsize_t l = 0;
   5436     while (l < size)
   5437     {
   5438         size_t n = size - l > sizeof(tmp) ? sizeof(tmp) : (size_t) (size - l);
   5439         n = fread(tmp, 1, n, fp);
   5440         if (n == 0)
   5441             break;
   5442         __ACCLIB_FUNCNAME(acc_hmemcpy)((acc_hbyte_p)buf + l, tmp, (acc_hsize_t)n);
   5443         l += n;
   5444     }
   5445     return l;
   5446 #elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
   5447     acc_hbyte_p b = (acc_hbyte_p) buf;
   5448     acc_hsize_t l = 0;
   5449     while (l < size)
   5450     {
   5451         size_t n;
   5452         n = ACC_PTR_FP_OFF(b); n = (n <= 1) ? 0x8000u : (0u - n);
   5453         if ((acc_hsize_t) n > size - l)
   5454             n = (size_t) (size - l);
   5455         n = fread((void __far*)b, 1, n, fp);
   5456         if (n == 0)
   5457             break;
   5458         b += n; l += n;
   5459     }
   5460     return l;
   5461 #else
   5462 #  error "unknown memory model"
   5463 #endif
   5464 #else
   5465     return fread(buf, 1, size, fp);
   5466 #endif
   5467 }
   5468 ACCLIB_PUBLIC(acc_hsize_t, acc_hfwrite) (void* vfp, const acc_hvoid_p buf, acc_hsize_t size)
   5469 {
   5470     FILE* fp = (FILE *) vfp;
   5471 #if (ACC_HAVE_MM_HUGE_PTR)
   5472 #if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
   5473 #define __ACCLIB_REQUIRE_HMEMCPY_CH 1
   5474     unsigned char tmp[512];
   5475     acc_hsize_t l = 0;
   5476     while (l < size)
   5477     {
   5478         size_t n = size - l > sizeof(tmp) ? sizeof(tmp) : (size_t) (size - l);
   5479         __ACCLIB_FUNCNAME(acc_hmemcpy)(tmp, (const acc_hbyte_p)buf + l, (acc_hsize_t)n);
   5480         n = fwrite(tmp, 1, n, fp);
   5481         if (n == 0)
   5482             break;
   5483         l += n;
   5484     }
   5485     return l;
   5486 #elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
   5487     const acc_hbyte_p b = (const acc_hbyte_p) buf;
   5488     acc_hsize_t l = 0;
   5489     while (l < size)
   5490     {
   5491         size_t n;
   5492         n = ACC_PTR_FP_OFF(b); n = (n <= 1) ? 0x8000u : (0u - n);
   5493         if ((acc_hsize_t) n > size - l)
   5494             n = (size_t) (size - l);
   5495         n = fwrite((void __far*)b, 1, n, fp);
   5496         if (n == 0)
   5497             break;
   5498         b += n; l += n;
   5499     }
   5500     return l;
   5501 #else
   5502 #  error "unknown memory model"
   5503 #endif
   5504 #else
   5505     return fwrite(buf, 1, size, fp);
   5506 #endif
   5507 }
   5508 #endif
   5509 #if defined(ACC_WANT_ACCLIB_HSREAD)
   5510 #  undef ACC_WANT_ACCLIB_HSREAD
   5511 #define __ACCLIB_HSREAD_CH_INCLUDED 1
   5512 #if !defined(ACCLIB_PUBLIC)
   5513 #  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
   5514 #endif
   5515 ACCLIB_PUBLIC(long, acc_safe_hread) (int fd, acc_hvoid_p buf, long size)
   5516 {
   5517     acc_hbyte_p b = (acc_hbyte_p) buf;
   5518     long l = 0;
   5519     int saved_errno;
   5520     saved_errno = errno;
   5521     while (l < size)
   5522     {
   5523         long n = size - l;
   5524 #if (ACC_HAVE_MM_HUGE_PTR)
   5525 #  define __ACCLIB_REQUIRE_HREAD_CH 1
   5526         errno = 0; n = acc_hread(fd, b, n);
   5527 #elif (ACC_OS_DOS32) && defined(__DJGPP__)
   5528         errno = 0; n = _read(fd, b, n);
   5529 #else
   5530         errno = 0; n = read(fd, b, n);
   5531 #endif
   5532         if (n == 0)
   5533             break;
   5534         if (n < 0) {
   5535 #if defined(EAGAIN)
   5536             if (errno == (EAGAIN)) continue;
   5537 #endif
   5538 #if defined(EINTR)
   5539             if (errno == (EINTR)) continue;
   5540 #endif
   5541             if (errno == 0) errno = 1;
   5542             return l;
   5543         }
   5544         b += n; l += n;
   5545     }
   5546     errno = saved_errno;
   5547     return l;
   5548 }
   5549 ACCLIB_PUBLIC(long, acc_safe_hwrite) (int fd, const acc_hvoid_p buf, long size)
   5550 {
   5551     const acc_hbyte_p b = (const acc_hbyte_p) buf;
   5552     long l = 0;
   5553     int saved_errno;
   5554     saved_errno = errno;
   5555     while (l < size)
   5556     {
   5557         long n = size - l;
   5558 #if (ACC_HAVE_MM_HUGE_PTR)
   5559 #  define __ACCLIB_REQUIRE_HREAD_CH 1
   5560         errno = 0; n = acc_hwrite(fd, b, n);
   5561 #elif (ACC_OS_DOS32) && defined(__DJGPP__)
   5562         errno = 0; n = _write(fd, b, n);
   5563 #else
   5564         errno = 0; n = write(fd, b, n);
   5565 #endif
   5566         if (n == 0)
   5567             break;
   5568         if (n < 0) {
   5569 #if defined(EAGAIN)
   5570             if (errno == (EAGAIN)) continue;
   5571 #endif
   5572 #if defined(EINTR)
   5573             if (errno == (EINTR)) continue;
   5574 #endif
   5575             if (errno == 0) errno = 1;
   5576             return l;
   5577         }
   5578         b += n; l += n;
   5579     }
   5580     errno = saved_errno;
   5581     return l;
   5582 }
   5583 #endif
   5584 #if defined(ACC_WANT_ACCLIB_PCLOCK)
   5585 #  undef ACC_WANT_ACCLIB_PCLOCK
   5586 #define __ACCLIB_PCLOCK_CH_INCLUDED 1
   5587 #if !defined(ACCLIB_PUBLIC)
   5588 #  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
   5589 #endif
   5590 #if defined(HAVE_GETTIMEOFDAY)
   5591 #ifndef acc_pclock_read_gettimeofday
   5592 #define acc_pclock_read_gettimeofday acc_pclock_read_gettimeofday
   5593 #endif
   5594 static int acc_pclock_read_gettimeofday(acc_pclock_handle_p h, acc_pclock_p c)
   5595 {
   5596     struct timeval tv;
   5597     if (gettimeofday(&tv, 0) != 0)
   5598         return -1;
   5599 #if defined(acc_int64l_t)
   5600     c->tv_sec = tv.tv_sec;
   5601 #else
   5602     c->tv_sec_high = 0;
   5603     c->tv_sec_low = tv.tv_sec;
   5604 #endif
   5605     c->tv_nsec = (acc_uint32l_t) (tv.tv_usec * 1000u);
   5606     ACC_UNUSED(h); return 0;
   5607 }
   5608 #endif
   5609 #if defined(CLOCKS_PER_SEC)
   5610 #ifndef acc_pclock_read_clock
   5611 #define acc_pclock_read_clock acc_pclock_read_clock
   5612 #endif
   5613 static int acc_pclock_read_clock(acc_pclock_handle_p h, acc_pclock_p c)
   5614 {
   5615     clock_t ticks;
   5616     double secs;
   5617 #if defined(acc_int64l_t)
   5618     acc_uint64l_t nsecs;
   5619     ticks = clock();
   5620     secs = (double)ticks / (CLOCKS_PER_SEC);
   5621     nsecs = (acc_uint64l_t) (secs * 1000000000.0);
   5622     c->tv_sec = (acc_int64l_t) (nsecs / 1000000000ul);
   5623     c->tv_nsec = (acc_uint32l_t) (nsecs % 1000000000ul);
   5624 #else
   5625     ticks = clock();
   5626     secs = (double)ticks / (CLOCKS_PER_SEC);
   5627     c->tv_sec_high = 0;
   5628     c->tv_sec_low = (acc_uint32l_t) (secs + 0.5);
   5629     c->tv_nsec = 0;
   5630 #endif
   5631     ACC_UNUSED(h); return 0;
   5632 }
   5633 #endif
   5634 #if (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__) && defined(UCLOCKS_PER_SEC)
   5635 #ifndef acc_pclock_read_uclock
   5636 #define acc_pclock_read_uclock acc_pclock_read_uclock
   5637 #endif
   5638 static int acc_pclock_read_uclock(acc_pclock_handle_p h, acc_pclock_p c)
   5639 {
   5640     acc_uint64l_t ticks;
   5641     double secs;
   5642     acc_uint64l_t nsecs;
   5643     ticks = uclock();
   5644     secs = (double)ticks / (UCLOCKS_PER_SEC);
   5645     nsecs = (acc_uint64l_t) (secs * 1000000000.0);
   5646     c->tv_sec = nsecs / 1000000000ul;
   5647     c->tv_nsec = (acc_uint32l_t) (nsecs % 1000000000ul);
   5648     ACC_UNUSED(h); return 0;
   5649 }
   5650 #endif
   5651 #if 0 && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID) && defined(acc_int64l_t)
   5652 #ifndef acc_pclock_read_clock_gettime_p
   5653 #define acc_pclock_read_clock_gettime_p acc_pclock_read_clock_gettime_p
   5654 #endif
   5655 static int acc_pclock_read_clock_gettime_p(acc_pclock_handle_p h, acc_pclock_p c)
   5656 {
   5657     struct timespec ts;
   5658     if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts) != 0)
   5659         return -1;
   5660     c->tv_sec = ts.tv_sec;
   5661     c->tv_nsec = ts.tv_nsec;
   5662     ACC_UNUSED(h); return 0;
   5663 }
   5664 #endif
   5665 #if (ACC_OS_CYGWIN || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H) && defined(acc_int64l_t)
   5666 #ifndef acc_pclock_read_getprocesstimes
   5667 #define acc_pclock_read_getprocesstimes acc_pclock_read_getprocesstimes
   5668 #endif
   5669 static int acc_pclock_read_getprocesstimes(acc_pclock_handle_p h, acc_pclock_p c)
   5670 {
   5671     FILETIME ct, et, kt, ut;
   5672     acc_uint64l_t ticks;
   5673     if (GetProcessTimes(GetCurrentProcess(), &ct, &et, &kt, &ut) == 0)
   5674         return -1;
   5675     ticks = ((acc_uint64l_t)ut.dwHighDateTime << 32) | ut.dwLowDateTime;
   5676     if __acc_unlikely(h->ticks_base == 0)
   5677         h->ticks_base = ticks;
   5678     else
   5679         ticks -= h->ticks_base;
   5680     c->tv_sec = (acc_int64l_t) (ticks / 10000000ul);
   5681     c->tv_nsec = (acc_uint32l_t)(ticks % 10000000ul) * 100u;
   5682     ACC_UNUSED(h); return 0;
   5683 }
   5684 #endif
   5685 #if defined(HAVE_GETRUSAGE) && defined(RUSAGE_SELF)
   5686 #ifndef acc_pclock_read_getrusage
   5687 #define acc_pclock_read_getrusage acc_pclock_read_getrusage
   5688 #endif
   5689 static int acc_pclock_read_getrusage(acc_pclock_handle_p h, acc_pclock_p c)
   5690 {
   5691     struct rusage ru;
   5692     if (getrusage(RUSAGE_SELF, &ru) != 0)
   5693         return -1;
   5694 #if defined(acc_int64l_t)
   5695     c->tv_sec = ru.ru_utime.tv_sec;
   5696 #else
   5697     c->tv_sec_high = 0;
   5698     c->tv_sec_low = ru.ru_utime.tv_sec;
   5699 #endif
   5700     c->tv_nsec = (acc_uint32l_t) (ru.ru_utime.tv_usec * 1000u);
   5701     ACC_UNUSED(h); return 0;
   5702 }
   5703 #endif
   5704 #if (__ACCLIB_PCLOCK_USE_PERFCTR)
   5705 #ifndef acc_pclock_read_perfctr
   5706 #define acc_pclock_read_perfctr acc_pclock_read_perfctr
   5707 #endif
   5708 static int acc_pclock_read_perfctr(acc_pclock_handle_p h, acc_pclock_p c)
   5709 {
   5710     acc_perfctr_clock_t pcc;
   5711     double secs;
   5712     acc_uint64l_t nsecs;
   5713     acc_perfctr_read(&h->pch, &pcc);
   5714     if __acc_unlikely(h->ticks_base == 0)
   5715         h->ticks_base = pcc.tsc;
   5716     else
   5717         pcc.tsc -= h->ticks_base;
   5718     secs = pcc.tsc * h->pch.tsc_to_seconds;
   5719     nsecs = (acc_uint64l_t) (secs * 1000000000.0);
   5720     c->tv_sec = nsecs / 1000000000ul;
   5721     c->tv_nsec = (acc_uint32l_t) (nsecs % 1000000000ul);
   5722     ACC_UNUSED(h); return 0;
   5723 }
   5724 #endif
   5725 #if 0 && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_THREAD_CPUTIME_ID) && defined(acc_int64l_t)
   5726 #ifndef acc_pclock_read_clock_gettime_t
   5727 #define acc_pclock_read_clock_gettime_t acc_pclock_read_clock_gettime_t
   5728 #endif
   5729 static int acc_pclock_read_clock_gettime_t(acc_pclock_handle_p h, acc_pclock_p c)
   5730 {
   5731     struct timespec ts;
   5732     if (clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts) != 0)
   5733         return -1;
   5734     c->tv_sec = ts.tv_sec;
   5735     c->tv_nsec = ts.tv_nsec;
   5736     ACC_UNUSED(h); return 0;
   5737 }
   5738 #endif
   5739 #if (ACC_OS_CYGWIN || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H) && defined(acc_int64l_t)
   5740 #ifndef acc_pclock_read_getthreadtimes
   5741 #define acc_pclock_read_getthreadtimes acc_pclock_read_getthreadtimes
   5742 #endif
   5743 static int acc_pclock_read_getthreadtimes(acc_pclock_handle_p h, acc_pclock_p c)
   5744 {
   5745     FILETIME ct, et, kt, ut;
   5746     acc_uint64l_t ticks;
   5747     if (GetThreadTimes(GetCurrentThread(), &ct, &et, &kt, &ut) == 0)
   5748         return -1;
   5749     ticks = ((acc_uint64l_t)ut.dwHighDateTime << 32) | ut.dwLowDateTime;
   5750     if __acc_unlikely(h->ticks_base == 0)
   5751         h->ticks_base = ticks;
   5752     else
   5753         ticks -= h->ticks_base;
   5754     c->tv_sec = (acc_int64l_t) (ticks / 10000000ul);
   5755     c->tv_nsec = (acc_uint32l_t)(ticks % 10000000ul) * 100;
   5756     ACC_UNUSED(h); return 0;
   5757 }
   5758 #endif
   5759 ACCLIB_PUBLIC(int, acc_pclock_open) (acc_pclock_handle_p h, int mode)
   5760 {
   5761     acc_pclock_t c;
   5762     int i;
   5763     h->h = (acclib_handle_t) 0;
   5764     h->mode = -1;
   5765     h->name = NULL;
   5766     h->gettime = 0;
   5767 #if defined(acc_int64l_t)
   5768     h->ticks_base = 0;
   5769 #endif
   5770     switch (mode)
   5771     {
   5772     case ACC_PCLOCK_REALTIME_HR:
   5773 #     if defined(acc_pclock_read_gettimeofday)
   5774         h->gettime = acc_pclock_read_gettimeofday;
   5775         h->name = "gettimeofday";
   5776 #     endif
   5777         break;
   5778     case ACC_PCLOCK_REALTIME:
   5779 #     if defined(acc_pclock_read_gettimeofday)
   5780         h->gettime = acc_pclock_read_gettimeofday;
   5781         h->name = "gettimeofday";
   5782 #     endif
   5783         break;
   5784     case ACC_PCLOCK_MONOTONIC_HR:
   5785 #     if defined(acc_pclock_read_uclock)
   5786         h->gettime = acc_pclock_read_uclock;
   5787         h->name = "uclock";
   5788 #     endif
   5789         break;
   5790     case ACC_PCLOCK_MONOTONIC:
   5791 #     if defined(acc_pclock_read_clock)
   5792         if (!h->gettime) {
   5793             h->gettime = acc_pclock_read_clock;
   5794             h->name = "clock";
   5795         }
   5796 #     endif
   5797         break;
   5798     case ACC_PCLOCK_PROCESS_CPUTIME_ID:
   5799 #     if defined(acc_pclock_read_perfctr)
   5800         if (acc_perfctr_open(&h->pch) == 0) {
   5801             h->gettime = acc_pclock_read_perfctr;
   5802             h->name = "perfctr";
   5803             break;
   5804         }
   5805 #     endif
   5806 #     if defined(acc_pclock_read_getprocesstimes)
   5807         if (!h->gettime && acc_pclock_read_getprocesstimes(h, &c) == 0) {
   5808             h->gettime = acc_pclock_read_getprocesstimes;
   5809             h->name = "GetProcessTimes";
   5810             break;
   5811         }
   5812 #     endif
   5813 #     if defined(acc_pclock_read_clock_gettime_p)
   5814         if (!h->gettime && acc_pclock_read_clock_gettime_p(h, &c) == 0) {
   5815             h->gettime = acc_pclock_read_clock_gettime_p;
   5816             h->name = "CLOCK_PROCESS_CPUTIME_ID";
   5817             break;
   5818         }
   5819 #     endif
   5820 #     if defined(acc_pclock_read_getrusage)
   5821         h->gettime = acc_pclock_read_getrusage;
   5822         h->name = "getrusage";
   5823 #     endif
   5824         break;
   5825     case ACC_PCLOCK_THREAD_CPUTIME_ID:
   5826 #     if defined(acc_pclock_read_getthreadtimes)
   5827         if (!h->gettime && acc_pclock_read_getthreadtimes(h, &c) == 0) {
   5828             h->gettime = acc_pclock_read_getthreadtimes;
   5829             h->name = "GetThreadTimes";
   5830         }
   5831 #     endif
   5832 #     if defined(acc_pclock_read_clock_gettime_t)
   5833         if (!h->gettime && acc_pclock_read_clock_gettime_t(h, &c) == 0) {
   5834             h->gettime = acc_pclock_read_clock_gettime_t;
   5835             h->name = "CLOCK_THREAD_CPUTIME_ID";
   5836             break;
   5837         }
   5838 #     endif
   5839         break;
   5840     }
   5841     if (!h->gettime)
   5842         return -1;
   5843     if (!h->h)
   5844         h->h = (acclib_handle_t) 1;
   5845     h->mode = mode;
   5846     if (!h->name)
   5847         h->name = "unknown";
   5848     for (i = 0; i < 10; i++) {
   5849         acc_pclock_read(h, &c);
   5850     }
   5851     return 0;
   5852 }
   5853 ACCLIB_PUBLIC(int, acc_pclock_open_default) (acc_pclock_handle_p h)
   5854 {
   5855     if (acc_pclock_open(h, ACC_PCLOCK_PROCESS_CPUTIME_ID) == 0)
   5856         return 0;
   5857     if (acc_pclock_open(h, ACC_PCLOCK_MONOTONIC_HR) == 0)
   5858         return 0;
   5859     if (acc_pclock_open(h, ACC_PCLOCK_REALTIME_HR) == 0)
   5860         return 0;
   5861     if (acc_pclock_open(h, ACC_PCLOCK_MONOTONIC) == 0)
   5862         return 0;
   5863     if (acc_pclock_open(h, ACC_PCLOCK_REALTIME) == 0)
   5864         return 0;
   5865     if (acc_pclock_open(h, ACC_PCLOCK_THREAD_CPUTIME_ID) == 0)
   5866         return 0;
   5867     return -1;
   5868 }
   5869 ACCLIB_PUBLIC(int, acc_pclock_close) (acc_pclock_handle_p h)
   5870 {
   5871     h->h = (acclib_handle_t) 0;
   5872     h->mode = -1;
   5873     h->name = NULL;
   5874     h->gettime = 0;
   5875 #if (__ACCLIB_PCLOCK_USE_PERFCTR)
   5876     acc_perfctr_close(&h->pch);
   5877 #endif
   5878     return 0;
   5879 }
   5880 ACCLIB_PUBLIC(void, acc_pclock_read) (acc_pclock_handle_p h, acc_pclock_p c)
   5881 {
   5882     if (h->gettime) {
   5883         if (h->gettime(h, c) == 0)
   5884             return;
   5885     }
   5886 #if defined(acc_int64l_t)
   5887     c->tv_sec = 0;
   5888 #else
   5889     c->tv_sec_high = 0;
   5890     c->tv_sec_low = 0;
   5891 #endif
   5892     c->tv_nsec = 0;
   5893 }
   5894 #if !defined(ACC_CFG_NO_DOUBLE)
   5895 ACCLIB_PUBLIC(double, acc_pclock_get_elapsed) (acc_pclock_handle_p h, const acc_pclock_p start, const acc_pclock_p stop)
   5896 {
   5897     double tstop, tstart;
   5898     if (!h->h) {
   5899         h->mode = -1;
   5900         return 0.0;
   5901     }
   5902 #if defined(acc_int64l_t)
   5903     tstop  = stop->tv_sec  + stop->tv_nsec  / 1000000000.0;
   5904     tstart = start->tv_sec + start->tv_nsec / 1000000000.0;
   5905 #else
   5906     tstop  = stop->tv_sec_low  + stop->tv_nsec  / 1000000000.0;
   5907     tstart = start->tv_sec_low + start->tv_nsec / 1000000000.0;
   5908 #endif
   5909     return tstop - tstart;
   5910 }
   5911 #endif
   5912 ACCLIB_PUBLIC(int, acc_pclock_flush_cpu_cache) (acc_pclock_handle_p h, unsigned flags)
   5913 {
   5914     if (h->h) {
   5915 #if (__ACCLIB_PCLOCK_USE_PERFCTR)
   5916         return acc_perfctr_flush_cpu_cache(&h->pch, flags);
   5917 #endif
   5918     }
   5919     ACC_UNUSED(h); ACC_UNUSED(flags);
   5920     return -1;
   5921 }
   5922 #if defined(__ACCLIB_PCLOCK_NEED_WARN_POP)
   5923 #  if (ACC_CC_MSC && (_MSC_VER >= 1200))
   5924 #    pragma warning(pop)
   5925 #  else
   5926 #    error "__ACCLIB_PCLOCK_NEED_WARN_POP"
   5927 #  endif
   5928 #  undef __ACCLIB_PCLOCK_NEED_WARN_POP
   5929 #endif
   5930 #endif
   5931 #if defined(ACC_WANT_ACCLIB_UCLOCK)
   5932 #  undef ACC_WANT_ACCLIB_UCLOCK
   5933 #define __ACCLIB_UCLOCK_CH_INCLUDED 1
   5934 #if !defined(ACCLIB_PUBLIC)
   5935 #  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
   5936 #endif
   5937 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
   5938 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
   5939 #elif (ACC_OS_CYGWIN || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
   5940 #  if ((ACC_CC_DMC && (__DMC__ < 0x838)) || ACC_CC_LCCWIN32)
   5941 #    define __ACCLIB_UCLOCK_USE_CLOCK 1
   5942 #  else
   5943 #    define __ACCLIB_UCLOCK_USE_WINMM 1
   5944 #    if (ACC_CC_MSC && (_MSC_VER >= 1200))
   5945 #      pragma warning(push)
   5946 #      define __ACCLIB_UCLOCK_NEED_WARN_POP 1
   5947 #    endif
   5948 #    if (ACC_CC_MSC && (_MSC_VER >= 900))
   5949 #      pragma warning(disable: 4201)
   5950 #    elif (ACC_CC_MWERKS)
   5951 #      define LPUINT __ACC_MMSYSTEM_H_LPUINT
   5952 #    endif
   5953 #    if 1
   5954 #      include <mmsystem.h>
   5955 #    else
   5956 #      if (ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC)
   5957          ACC_EXTERN_C __declspec(dllimport) unsigned long __stdcall timeGetTime(void);
   5958 #      else
   5959          ACC_EXTERN_C unsigned long __stdcall timeGetTime(void);
   5960 #      endif
   5961 #    endif
   5962 #    if (ACC_CC_DMC)
   5963 #      pragma DMC includelib "winmm.lib"
   5964 #    elif (ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC)
   5965 #      pragma comment(lib, "winmm.lib")
   5966 #    elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3000))
   5967 #      pragma comment(lib, "winmm.lib")
   5968 #    elif (ACC_CC_SYMANTECC)
   5969 #      pragma SC includelib "winmm.lib"
   5970 #    elif (ACC_CC_WATCOMC && (__WATCOMC__ >= 1050))
   5971 #      pragma library("winmm.lib")
   5972 #    endif
   5973 #  endif
   5974 #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)
   5975 #  define __ACCLIB_UCLOCK_USE_CLOCK 1
   5976 #elif (ACC_OS_CONSOLE) && defined(CLOCKS_PER_SEC)
   5977 #  define __ACCLIB_UCLOCK_USE_CLOCK 1
   5978 #elif (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99) && defined(CLOCKS_PER_SEC)
   5979 #  define __ACCLIB_UCLOCK_USE_CLOCK 1
   5980 #endif
   5981 #if (__ACCLIB_UCLOCK_USE_CLOCK) && !defined(CLOCKS_PER_SEC)
   5982 #  if defined(CLK_TCK)
   5983 #    define CLOCKS_PER_SEC CLK_TCK
   5984 #  else
   5985 #    undef __ACCLIB_UCLOCK_USE_CLOCK
   5986 #  endif
   5987 #endif
   5988 #if (__ACCLIB_UCLOCK_USE_GETRUSAGE)
   5989 #  if !defined(RUSAGE_SELF)
   5990 #    undef __ACCLIB_UCLOCK_USE_GETRUSAGE
   5991 #  endif
   5992 #endif
   5993 ACCLIB_PUBLIC(int, acc_uclock_open) (acc_uclock_handle_p h)
   5994 {
   5995     int i;
   5996 #if (__ACCLIB_UCLOCK_USE_QPC)
   5997     LARGE_INTEGER li;
   5998 #endif
   5999     h->h = (acclib_handle_t) 1;
   6000     h->mode = 0;
   6001     h->name = NULL;
   6002 #if (__ACCLIB_UCLOCK_USE_PERFCTR)
   6003     h->pch.h = 0;
   6004     if (h->mode == 0 && acc_perfctr_open(&h->pch) == 0)
   6005         h->mode = 2;
   6006 #endif
   6007 #if (__ACCLIB_UCLOCK_USE_QPC)
   6008     h->qpf = 0.0;
   6009     if (h->mode == 0 && QueryPerformanceFrequency(&li) != 0) {
   6010         double d = (double) li.QuadPart;
   6011         if (d > 0.0 && QueryPerformanceCounter(&li) != 0) {
   6012             h->mode = 3;
   6013             h->qpf = d;
   6014         }
   6015     }
   6016 #endif
   6017     for (i = 0; i < 10; i++) {
   6018         acc_uclock_t c;
   6019         acc_uclock_read(h, &c);
   6020     }
   6021     return 0;
   6022 }
   6023 ACCLIB_PUBLIC(int, acc_uclock_close) (acc_uclock_handle_p h)
   6024 {
   6025     h->h = (acclib_handle_t) 0;
   6026     h->mode = -1;
   6027     h->name = NULL;
   6028 #if (__ACCLIB_UCLOCK_USE_PERFCTR)
   6029     acc_perfctr_close(&h->pch);
   6030 #endif
   6031     return 0;
   6032 }
   6033 ACCLIB_PUBLIC(void, acc_uclock_read) (acc_uclock_handle_p h, acc_uclock_p c)
   6034 {
   6035 #if (__ACCLIB_UCLOCK_USE_RDTSC)
   6036     acc_tsc_read((acc_uint32e_t*) (void*) &c->tsc);
   6037 #endif
   6038 #if (__ACCLIB_UCLOCK_USE_PERFCTR)
   6039     if (h->pch.h) {
   6040         acc_perfctr_read(&h->pch, &c->pcc);
   6041         if (h->mode > 0 && h->mode <= 2)
   6042             return;
   6043     }
   6044 #endif
   6045 #if (__ACCLIB_UCLOCK_USE_QPC)
   6046     if (h->qpf > 0.0) {
   6047         LARGE_INTEGER li;
   6048         if (QueryPerformanceCounter(&li) != 0) {
   6049             c->qpc = (acc_int64l_t) li.QuadPart;
   6050             if (h->mode > 0 && h->mode <= 3)
   6051                 return;
   6052         } else {
   6053             h->mode = 0; h->qpf = 0.0; c->qpc = 0;
   6054         }
   6055     }
   6056 #endif
   6057     {
   6058 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
   6059 # if (ACC_CC_AZTECC)
   6060     c->ticks.t32 = 0;
   6061 # else
   6062     union REGS ri, ro;
   6063     ri.x.ax = 0x2c00; int86(0x21, &ri, &ro);
   6064     c->ticks.t32 = ro.h.ch*60UL*60UL*100UL + ro.h.cl*60UL*100UL + ro.h.dh*100UL + ro.h.dl;
   6065 # endif
   6066 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
   6067     c->ticks.t64 = uclock();
   6068 #elif (__ACCLIB_UCLOCK_USE_CLOCK) && defined(acc_int64l_t)
   6069     c->ticks.t64 = clock();
   6070 #elif (__ACCLIB_UCLOCK_USE_CLOCK)
   6071     c->ticks.t32 = clock();
   6072 #elif (__ACCLIB_UCLOCK_USE_WINMM)
   6073     c->ticks.t32 = timeGetTime();
   6074 #elif (__ACCLIB_UCLOCK_USE_GETRUSAGE)
   6075     struct rusage ru;
   6076     if (getrusage(RUSAGE_SELF, &ru) != 0) c->ticks.td = 0;
   6077     else c->ticks.td = ru.ru_utime.tv_sec + ru.ru_utime.tv_usec / 1000000.0;
   6078 #elif (HAVE_GETTIMEOFDAY)
   6079     struct timeval tv;
   6080     if (gettimeofday(&tv, 0) != 0) c->ticks.td = 0;
   6081     else c->ticks.td = tv.tv_sec + tv.tv_usec / 1000000.0;
   6082 #else
   6083     ACC_UNUSED(c);
   6084 #endif
   6085     }
   6086     ACC_UNUSED(h);
   6087 }
   6088 ACCLIB_PUBLIC(double, acc_uclock_get_elapsed) (acc_uclock_handle_p h, const acc_uclock_p start, const acc_uclock_p stop)
   6089 {
   6090     double d;
   6091     if (!h->h) {
   6092         h->mode = -1;
   6093         return 0.0;
   6094     }
   6095 #if (__ACCLIB_UCLOCK_USE_RDTSC)
   6096     if (h->mode == 1) {
   6097         if (!h->name) h->name = "rdtsc";
   6098         d = (double) ((acc_int64l_t)stop->tsc - (acc_int64l_t)start->tsc);
   6099         return d / 1000000000.0;
   6100     }
   6101 #endif
   6102 #if (__ACCLIB_UCLOCK_USE_PERFCTR)
   6103     if (h->pch.h && h->mode == 2) {
   6104         if (!h->name) h->name = "perfctr";
   6105         return acc_perfctr_get_elapsed(&h->pch, &start->pcc, &stop->pcc);
   6106     }
   6107 #endif
   6108 #if (__ACCLIB_UCLOCK_USE_QPC)
   6109     if (h->qpf > 0.0 && h->mode == 3) {
   6110         if (!h->name) h->name = "qpc";
   6111         if (start->qpc == 0 || stop->qpc == 0) return 0.0;
   6112         return (double) (stop->qpc - start->qpc) / h->qpf;
   6113     }
   6114 #endif
   6115 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
   6116     h->mode = 11;
   6117     if (!h->name) h->name = "uclock";
   6118     d = (double) (stop->ticks.t32 - start->ticks.t32) / 100.0;
   6119     if (d < 0.0) d += 86400.0;
   6120 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
   6121     h->mode = 12;
   6122     if (!h->name) h->name = "uclock";
   6123     d = (double) (stop->ticks.t64 - start->ticks.t64) / (UCLOCKS_PER_SEC);
   6124 #elif (__ACCLIB_UCLOCK_USE_CLOCK) && defined(acc_int64l_t)
   6125     h->mode = 13;
   6126     if (!h->name) h->name = "clock";
   6127     {
   6128     acc_int64l_t t;
   6129     t = stop->ticks.t64 - start->ticks.t64;
   6130     if (t < 0)
   6131         t += sizeof(clock_t) == 4 ? ACC_INT64_C(0x100000000) : ACC_INT64_C(0);
   6132     d = (double) t / (CLOCKS_PER_SEC);
   6133     }
   6134 #elif (__ACCLIB_UCLOCK_USE_CLOCK)
   6135     h->mode = 14;
   6136     if (!h->name) h->name = "clock";
   6137     d = (double) (stop->ticks.t32 - start->ticks.t32) / (CLOCKS_PER_SEC);
   6138 #elif (__ACCLIB_UCLOCK_USE_WINMM)
   6139     h->mode = 15;
   6140     if (!h->name) h->name = "timeGetTime";
   6141     d = (double) (stop->ticks.t32 - start->ticks.t32) / 1000.0;
   6142 #elif (__ACCLIB_UCLOCK_USE_GETRUSAGE)
   6143     h->mode = 16;
   6144     if (!h->name) h->name = "getrusage";
   6145     d = stop->ticks.td - start->ticks.td;
   6146 #elif (HAVE_GETTIMEOFDAY)
   6147     h->mode = 17;
   6148     if (!h->name) h->name = "gettimeofday";
   6149     d = stop->ticks.td - start->ticks.td;
   6150 #else
   6151     h->mode = 0;
   6152     d = 0.0;
   6153 #endif
   6154     return d;
   6155 }
   6156 ACCLIB_PUBLIC(int, acc_uclock_flush_cpu_cache) (acc_uclock_handle_p h, unsigned flags)
   6157 {
   6158     if (h->h) {
   6159 #if (__ACCLIB_UCLOCK_USE_PERFCTR)
   6160         return acc_perfctr_flush_cpu_cache(&h->pch, flags);
   6161 #endif
   6162     }
   6163     ACC_UNUSED(h); ACC_UNUSED(flags);
   6164     return -1;
   6165 }
   6166 #if defined(__ACCLIB_UCLOCK_NEED_WARN_POP)
   6167 #  if (ACC_CC_MSC && (_MSC_VER >= 1200))
   6168 #    pragma warning(pop)
   6169 #  else
   6170 #    error "__ACCLIB_UCLOCK_NEED_WARN_POP"
   6171 #  endif
   6172 #  undef __ACCLIB_UCLOCK_NEED_WARN_POP
   6173 #endif
   6174 #endif
   6175 #if defined(ACC_WANT_ACCLIB_MISC)
   6176 #  undef ACC_WANT_ACCLIB_MISC
   6177 #define __ACCLIB_MISC_CH_INCLUDED 1
   6178 #if !defined(ACCLIB_PUBLIC)
   6179 #  define ACCLIB_PUBLIC(r,f)                r __ACCLIB_FUNCNAME(f)
   6180 #endif
   6181 #if !defined(ACCLIB_PUBLIC_NOINLINE)
   6182 #  if !defined(__acc_noinline)
   6183 #    define ACCLIB_PUBLIC_NOINLINE(r,f)     r __ACCLIB_FUNCNAME(f)
   6184 #  elif (ACC_CC_GNUC >= 0x030400ul) || (ACC_CC_LLVM)
   6185 #    define ACCLIB_PUBLIC_NOINLINE(r,f)     __acc_noinline __attribute__((__used__)) r __ACCLIB_FUNCNAME(f)
   6186 #  else
   6187 #    define ACCLIB_PUBLIC_NOINLINE(r,f)     __acc_noinline r __ACCLIB_FUNCNAME(f)
   6188 #  endif
   6189 #endif
   6190 #if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
   6191 #  pragma warn(push)
   6192 #  pragma warn(disable:2007)
   6193 #endif
   6194 ACCLIB_PUBLIC(const char *, acc_getenv) (const char *s)
   6195 {
   6196 #if defined(HAVE_GETENV)
   6197     return getenv(s);
   6198 #else
   6199     ACC_UNUSED(s); return (const char *) 0;
   6200 #endif
   6201 }
   6202 ACCLIB_PUBLIC(acclib_handle_t, acc_get_osfhandle) (int fd)
   6203 {
   6204     if (fd < 0)
   6205         return -1;
   6206 #if (ACC_OS_CYGWIN)
   6207     return get_osfhandle(fd);
   6208 #elif (ACC_OS_EMX && defined(__RSXNT__))
   6209     return -1;
   6210 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
   6211     return -1;
   6212 #elif (ACC_OS_WIN32 || ACC_OS_WIN64)
   6213 # if (ACC_CC_PELLESC && (__POCC__ < 280))
   6214     return -1;
   6215 # elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))
   6216     return -1;
   6217 # elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1100))
   6218     return _os_handle(fd);
   6219 # else
   6220     return _get_osfhandle(fd);
   6221 # endif
   6222 #else
   6223     return fd;
   6224 #endif
   6225 }
   6226 ACCLIB_PUBLIC(int, acc_set_binmode) (int fd, int binary)
   6227 {
   6228 #if (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC) && defined(__MINT__)
   6229     FILE* fp; int old_binary;
   6230     if (fd == STDIN_FILENO) fp = stdin;
   6231     else if (fd == STDOUT_FILENO) fp = stdout;
   6232     else if (fd == STDERR_FILENO) fp = stderr;
   6233     else return -1;
   6234     old_binary = fp->__mode.__binary;
   6235     __set_binmode(fp, binary ? 1 : 0);
   6236     return old_binary ? 1 : 0;
   6237 #elif (ACC_ARCH_M68K && ACC_OS_TOS)
   6238     ACC_UNUSED(fd); ACC_UNUSED(binary);
   6239     return -1;
   6240 #elif (ACC_OS_DOS16 && (ACC_CC_AZTECC || ACC_CC_PACIFICC))
   6241     ACC_UNUSED(fd); ACC_UNUSED(binary);
   6242     return -1;
   6243 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
   6244     int r; unsigned old_flags = __djgpp_hwint_flags;
   6245     ACC_COMPILE_TIME_ASSERT(O_BINARY > 0)
   6246     ACC_COMPILE_TIME_ASSERT(O_TEXT > 0)
   6247     if (fd < 0) return -1;
   6248     r = setmode(fd, binary ? O_BINARY : O_TEXT);
   6249     if ((old_flags & 1u) != (__djgpp_hwint_flags & 1u))
   6250         __djgpp_set_ctrl_c(!(old_flags & 1));
   6251     if (r == -1) return -1;
   6252     return (r & O_TEXT) ? 0 : 1;
   6253 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
   6254     if (fd < 0) return -1;
   6255     ACC_UNUSED(binary);
   6256     return 1;
   6257 #elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
   6258     FILE* fp; int r;
   6259     if (fd == fileno(stdin)) fp = stdin;
   6260     else if (fd == fileno(stdout)) fp = stdout;
   6261     else if (fd == fileno(stderr)) fp = stderr;
   6262     else return -1;
   6263     r = _setmode(fp, binary ? _BINARY : _TEXT);
   6264     if (r == -1) return -1;
   6265     return (r & _BINARY) ? 1 : 0;
   6266 #elif (ACC_OS_WIN32 && ACC_CC_MWERKS) && defined(__MSL__)
   6267     ACC_UNUSED(fd); ACC_UNUSED(binary);
   6268     return -1;
   6269 #elif (ACC_OS_CYGWIN && (ACC_CC_GNUC < 0x025a00ul))
   6270     ACC_UNUSED(fd); ACC_UNUSED(binary);
   6271     return -1;
   6272 #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)
   6273     int r;
   6274 #if !defined(ACC_CC_ZORTECHC)
   6275     ACC_COMPILE_TIME_ASSERT(O_BINARY > 0)
   6276 #endif
   6277     ACC_COMPILE_TIME_ASSERT(O_TEXT > 0)
   6278     if (fd < 0) return -1;
   6279     r = setmode(fd, binary ? O_BINARY : O_TEXT);
   6280     if (r == -1) return -1;
   6281     return (r & O_TEXT) ? 0 : 1;
   6282 #else
   6283     if (fd < 0) return -1;
   6284     ACC_UNUSED(binary);
   6285     return 1;
   6286 #endif
   6287 }
   6288 ACCLIB_PUBLIC(int, acc_isatty) (int fd)
   6289 {
   6290     if (fd < 0)
   6291         return 0;
   6292 #if (ACC_OS_DOS16 && !defined(ACC_CC_AZTECC))
   6293     {
   6294         union REGS ri, ro;
   6295         ri.x.ax = 0x4400; ri.x.bx = fd;
   6296         int86(0x21, &ri, &ro);
   6297         if ((ro.x.cflag & 1) == 0)
   6298             if ((ro.x.ax & 0x83) != 0x83)
   6299                 return 0;
   6300     }
   6301 #elif (ACC_OS_DOS32 && ACC_CC_WATCOMC)
   6302     {
   6303         union REGS ri, ro;
   6304         ri.w.ax = 0x4400; ri.w.bx = (unsigned short) fd;
   6305         int386(0x21, &ri, &ro);
   6306         if ((ro.w.cflag & 1) == 0)
   6307             if ((ro.w.ax & 0x83) != 0x83)
   6308                 return 0;
   6309     }
   6310 #elif (ACC_HAVE_WINDOWS_H)
   6311     {
   6312         acclib_handle_t h = __ACCLIB_FUNCNAME(acc_get_osfhandle)(fd);
   6313         if ((HANDLE)h != INVALID_HANDLE_VALUE)
   6314         {
   6315             DWORD d = 0;
   6316             if (GetConsoleMode((HANDLE)h, &d) == 0)
   6317                 return 0;
   6318         }
   6319     }
   6320 #endif
   6321 #if defined(HAVE_ISATTY)
   6322     return (isatty(fd)) ? 1 : 0;
   6323 #else
   6324     return 0;
   6325 #endif
   6326 }
   6327 ACCLIB_PUBLIC(int, acc_mkdir) (const char* name, unsigned mode)
   6328 {
   6329 #if !defined(HAVE_MKDIR)
   6330     ACC_UNUSED(name); ACC_UNUSED(mode);
   6331     return -1;
   6332 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
   6333     ACC_UNUSED(mode);
   6334     return Dcreate(name);
   6335 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
   6336     return mkdir(name, mode);
   6337 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
   6338     return mkdir(name, mode);
   6339 #elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
   6340     ACC_UNUSED(mode);
   6341 # if (ACC_CC_HIGHC || ACC_CC_PACIFICC)
   6342     return mkdir((char*) name);
   6343 # else
   6344     return mkdir(name);
   6345 # endif
   6346 #else
   6347     return mkdir(name, mode);
   6348 #endif
   6349 }
   6350 ACCLIB_PUBLIC(int, acc_rmdir) (const char* name)
   6351 {
   6352 #if !defined(HAVE_RMDIR)
   6353     ACC_UNUSED(name);
   6354     return -1;
   6355 #elif ((ACC_OS_DOS16 || ACC_OS_DOS32) && (ACC_CC_HIGHC || ACC_CC_PACIFICC))
   6356     return rmdir((char *) name);
   6357 #else
   6358     return rmdir(name);
   6359 #endif
   6360 }
   6361 #if defined(acc_int32e_t)
   6362 ACCLIB_PUBLIC(acc_int32e_t, acc_muldiv32s) (acc_int32e_t a, acc_int32e_t b, acc_int32e_t x)
   6363 {
   6364     acc_int32e_t r = 0;
   6365     if __acc_likely(x != 0)
   6366     {
   6367 #if defined(acc_int64l_t)
   6368         r = (acc_int32e_t) (((acc_int64l_t) a * b) / x);
   6369 #else
   6370         ACC_UNUSED(a); ACC_UNUSED(b);
   6371 #endif
   6372     }
   6373     return r;
   6374 }
   6375 ACCLIB_PUBLIC(acc_uint32e_t, acc_muldiv32u) (acc_uint32e_t a, acc_uint32e_t b, acc_uint32e_t x)
   6376 {
   6377     acc_uint32e_t r = 0;
   6378     if __acc_likely(x != 0)
   6379     {
   6380 #if defined(acc_int64l_t)
   6381         r = (acc_uint32e_t) (((acc_uint64l_t) a * b) / x);
   6382 #else
   6383         ACC_UNUSED(a); ACC_UNUSED(b);
   6384 #endif
   6385     }
   6386     return r;
   6387 }
   6388 #endif
   6389 #if 0
   6390 ACCLIB_PUBLIC_NOINLINE(int, acc_syscall_clock_gettime) (int c)
   6391 {
   6392 }
   6393 #endif
   6394 #if (ACC_OS_WIN16)
   6395 ACC_EXTERN_C void __far __pascal DebugBreak(void);
   6396 #endif
   6397 ACCLIB_PUBLIC_NOINLINE(void, acc_debug_break) (void)
   6398 {
   6399 #if (ACC_OS_WIN16)
   6400     DebugBreak();
   6401 #elif (ACC_ARCH_I086)
   6402 #elif (ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
   6403     DebugBreak();
   6404 #elif defined(ACC_CFG_NO_INLINE_ASM) && (ACC_OS_WIN32) && (ACC_HAVE_WINDOWS_H)
   6405     DebugBreak();
   6406 #elif (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
   6407     __asm__ __volatile__("int $3\n" : : : __ACC_ASM_CLOBBER);
   6408 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
   6409     __asm { int 3 }
   6410 #elif (ACC_OS_WIN32) && (ACC_HAVE_WINDOWS_H)
   6411     DebugBreak();
   6412 #else
   6413     * (volatile int *) 0x1 = -1;
   6414 #endif
   6415 }
   6416 ACCLIB_PUBLIC_NOINLINE(void, acc_debug_nop) (void)
   6417 {
   6418 }
   6419 ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_query) (void)
   6420 {
   6421 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
   6422     size_t r;
   6423     __asm__ __volatile__("pushf\n pop %0\n" : "=a" (r) : : __ACC_ASM_CLOBBER);
   6424     return (int)(r >> 18) & 1;
   6425 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
   6426     unsigned long r;
   6427     __asm {
   6428         pushf
   6429         pop eax
   6430         mov r,eax
   6431     }
   6432     return (int)(r >> 18) & 1;
   6433 #else
   6434     return -1;
   6435 #endif
   6436 }
   6437 ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_enable) (int v)
   6438 {
   6439     int r;
   6440 #if (ACC_ARCH_AMD64) && (ACC_ASM_SYNTAX_GNUC)
   6441     if (v) {
   6442         __asm__ __volatile__("pushf\n orl $262144,(%%rsp)\n popf\n" : : : __ACC_ASM_CLOBBER);
   6443     } else {
   6444         __asm__ __volatile__("pushf\n andl $-262145,(%%rsp)\n popf\n" : : : __ACC_ASM_CLOBBER);
   6445     }
   6446     r = 0;
   6447 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
   6448     if (v) {
   6449         __asm__ __volatile__("pushf\n orl $262144,(%%esp)\n popf\n" : : : __ACC_ASM_CLOBBER);
   6450     } else {
   6451         __asm__ __volatile__("pushf\n andl $-262145,(%%esp)\n popf\n" : : : __ACC_ASM_CLOBBER);
   6452     }
   6453     r = 0;
   6454 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
   6455     if (v) { __asm {
   6456         pushf
   6457         or dword ptr [esp],262144
   6458         popf
   6459     }} else { __asm {
   6460         pushf
   6461         and dword ptr [esp],-262145
   6462         popf
   6463     }}
   6464     r = 0;
   6465 #else
   6466     r = -1;
   6467 #endif
   6468     ACC_UNUSED(v); return r;
   6469 }
   6470 ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_qemu) (void)
   6471 {
   6472     unsigned r = 0;
   6473 #if (ACC_OS_POSIX_LINUX || ACC_OS_WIN32 || ACC_OS_WIN64)
   6474     const char* p;
   6475     p = acc_getenv("ACC_ENV_RUNNING_ON_QEMU");
   6476     if (p) {
   6477         if (p[0] == 0) r = 0;
   6478         else if ((p[0] >= '0' && p[0] <= '9') && p[1] == 0) r = p[0] - '0';
   6479         else r = 1;
   6480     }
   6481 #endif
   6482     return r;
   6483 }
   6484 ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_valgrind) (void)
   6485 {
   6486 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
   6487     volatile unsigned long args[5] = { 0x1001, 0, 0, 0, 0 };
   6488     unsigned long r = 0;
   6489     __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);
   6490     return (unsigned) r;
   6491 #else
   6492     return 0;
   6493 #endif
   6494 }
   6495 #if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
   6496 #  pragma warn(pop)
   6497 #endif
   6498 #endif
   6499 #if defined(ACC_WANT_ACCLIB_WILDARGV)
   6500 #  undef ACC_WANT_ACCLIB_WILDARGV
   6501 #define __ACCLIB_WILDARGV_CH_INCLUDED 1
   6502 #if !defined(ACCLIB_PUBLIC)
   6503 #  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)
   6504 #endif
   6505 #if (ACC_OS_DOS16 || ACC_OS216 || ACC_OS_WIN16)
   6506 #if 0 && (ACC_CC_MSC)
   6507 ACC_EXTERN_C int __acc_cdecl __setargv(void);
   6508 ACC_EXTERN_C int __acc_cdecl _setargv(void);
   6509 ACC_EXTERN_C int __acc_cdecl _setargv(void) { return __setargv(); }
   6510 #endif
   6511 #endif
   6512 #if (ACC_OS_WIN32 || ACC_OS_WIN64)
   6513 #if (ACC_CC_INTELC || ACC_CC_MSC)
   6514 ACC_EXTERN_C int __acc_cdecl __setargv(void);
   6515 ACC_EXTERN_C int __acc_cdecl _setargv(void);
   6516 ACC_EXTERN_C int __acc_cdecl _setargv(void) { return __setargv(); }
   6517 #endif
   6518 #endif
   6519 #if (ACC_OS_EMX)
   6520 #define __ACCLIB_HAVE_ACC_WILDARGV 1
   6521 ACCLIB_PUBLIC(void, acc_wildargv) (int* argc, char*** argv)
   6522 {
   6523     if (argc && argv) {
   6524         _response(argc, argv);
   6525         _wildcard(argc, argv);
   6526     }
   6527 }
   6528 #endif
   6529 #if (ACC_OS_CONSOLE_PSP) && defined(__PSPSDK_DEBUG__)
   6530 #define __ACCLIB_HAVE_ACC_WILDARGV 1
   6531 ACC_EXTERN_C int acc_psp_init_module(int*, char***, int);
   6532 ACCLIB_PUBLIC(void, acc_wildargv) (int* argc, char*** argv)
   6533 {
   6534     acc_psp_init_module(argc, argv, -1);
   6535 }
   6536 #endif
   6537 #if !defined(__ACCLIB_HAVE_ACC_WILDARGV)
   6538 #define __ACCLIB_HAVE_ACC_WILDARGV 1
   6539 ACCLIB_PUBLIC(void, acc_wildargv) (int* argc, char*** argv)
   6540 {
   6541 #if 1 && (ACC_ARCH_I086PM)
   6542     if (ACC_MM_AHSHIFT != 3) { exit(1); }
   6543 #elif 1 && (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC) && defined(__MINT__)
   6544     __binmode(1);
   6545     if (isatty(1)) __set_binmode(stdout, 0);
   6546     if (isatty(2)) __set_binmode(stderr, 0);
   6547 #endif
   6548     ACC_UNUSED(argc); ACC_UNUSED(argv);
   6549 }
   6550 #endif
   6551 #endif
   6552 
   6553 /* vim:set ts=4 et: */
   6554