Blame src/lzo_supp.h

Packit 679830
/* lzo_supp.h -- architecture, OS and compiler specific defines
Packit 679830
Packit 679830
   This file is part of the LZO real-time data compression library.
Packit 679830
Packit 679830
   Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Packit 679830
   All Rights Reserved.
Packit 679830
Packit 679830
   The LZO library is free software; you can redistribute it and/or
Packit 679830
   modify it under the terms of the GNU General Public License as
Packit 679830
   published by the Free Software Foundation; either version 2 of
Packit 679830
   the License, or (at your option) any later version.
Packit 679830
Packit 679830
   The LZO library is distributed in the hope that it will be useful,
Packit 679830
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 679830
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 679830
   GNU General Public License for more details.
Packit 679830
Packit 679830
   You should have received a copy of the GNU General Public License
Packit 679830
   along with the LZO library; see the file COPYING.
Packit 679830
   If not, write to the Free Software Foundation, Inc.,
Packit 679830
   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Packit 679830
Packit 679830
   Markus F.X.J. Oberhumer
Packit 679830
   <markus@oberhumer.com>
Packit 679830
   http://www.oberhumer.com/opensource/lzo/
Packit 679830
 */
Packit 679830
Packit 679830
Packit 679830
#ifndef __LZO_SUPP_H_INCLUDED
Packit 679830
#define __LZO_SUPP_H_INCLUDED 1
Packit 679830
#if (LZO_CFG_NO_CONFIG_HEADER)
Packit 679830
#elif defined(LZO_CFG_CONFIG_HEADER)
Packit 679830
#else
Packit 679830
#if !(LZO_CFG_AUTO_NO_HEADERS)
Packit 679830
#if (LZO_LIBC_NAKED)
Packit 679830
#elif (LZO_LIBC_FREESTANDING)
Packit 679830
#  define HAVE_LIMITS_H 1
Packit 679830
#  define HAVE_STDARG_H 1
Packit 679830
#  define HAVE_STDDEF_H 1
Packit 679830
#elif (LZO_LIBC_MOSTLY_FREESTANDING)
Packit 679830
#  define HAVE_LIMITS_H 1
Packit 679830
#  define HAVE_SETJMP_H 1
Packit 679830
#  define HAVE_STDARG_H 1
Packit 679830
#  define HAVE_STDDEF_H 1
Packit 679830
#  define HAVE_STDIO_H 1
Packit 679830
#  define HAVE_STRING_H 1
Packit 679830
#else
Packit 679830
#define STDC_HEADERS 1
Packit 679830
#define HAVE_ASSERT_H 1
Packit 679830
#define HAVE_CTYPE_H 1
Packit 679830
#define HAVE_DIRENT_H 1
Packit 679830
#define HAVE_ERRNO_H 1
Packit 679830
#define HAVE_FCNTL_H 1
Packit 679830
#define HAVE_FLOAT_H 1
Packit 679830
#define HAVE_LIMITS_H 1
Packit 679830
#define HAVE_MALLOC_H 1
Packit 679830
#define HAVE_MEMORY_H 1
Packit 679830
#define HAVE_SETJMP_H 1
Packit 679830
#define HAVE_SIGNAL_H 1
Packit 679830
#define HAVE_STDARG_H 1
Packit 679830
#define HAVE_STDDEF_H 1
Packit 679830
#define HAVE_STDIO_H 1
Packit 679830
#define HAVE_STDLIB_H 1
Packit 679830
#define HAVE_STRING_H 1
Packit 679830
#define HAVE_TIME_H 1
Packit 679830
#define HAVE_UNISTD_H 1
Packit 679830
#define HAVE_UTIME_H 1
Packit 679830
#define HAVE_SYS_STAT_H 1
Packit 679830
#define HAVE_SYS_TIME_H 1
Packit 679830
#define HAVE_SYS_TYPES_H 1
Packit 679830
#if (LZO_OS_POSIX)
Packit 679830
#  if (LZO_OS_POSIX_AIX)
Packit 679830
#    define HAVE_SYS_RESOURCE_H 1
Packit 679830
#  elif (LZO_OS_POSIX_FREEBSD || LZO_OS_POSIX_MACOSX || LZO_OS_POSIX_NETBSD || LZO_OS_POSIX_OPENBSD)
Packit 679830
#    define HAVE_STRINGS_H 1
Packit 679830
#    undef HAVE_MALLOC_H
Packit 679830
#  elif (LZO_OS_POSIX_HPUX || LZO_OS_POSIX_INTERIX)
Packit 679830
#    define HAVE_ALLOCA_H 1
Packit 679830
#  elif (LZO_OS_POSIX_MACOSX && LZO_LIBC_MSL)
Packit 679830
#    undef HAVE_SYS_TIME_H
Packit 679830
#    undef HAVE_SYS_TYPES_H
Packit 679830
#  elif (LZO_OS_POSIX_SOLARIS || LZO_OS_POSIX_SUNOS)
Packit 679830
#    define HAVE_ALLOCA_H 1
Packit 679830
#  endif
Packit 679830
#  if (LZO_LIBC_DIETLIBC || LZO_LIBC_GLIBC || LZO_LIBC_UCLIBC)
Packit 679830
#    define HAVE_STRINGS_H 1
Packit 679830
#    define HAVE_SYS_MMAN_H 1
Packit 679830
#    define HAVE_SYS_RESOURCE_H 1
Packit 679830
#    define HAVE_SYS_WAIT_H 1
Packit 679830
#  endif
Packit 679830
#  if (LZO_LIBC_NEWLIB)
Packit 679830
#    undef HAVE_STRINGS_H
Packit 679830
#  endif
Packit 679830
#elif (LZO_OS_CYGWIN)
Packit 679830
#  define HAVE_IO_H 1
Packit 679830
#elif (LZO_OS_EMX)
Packit 679830
#  define HAVE_ALLOCA_H 1
Packit 679830
#  define HAVE_IO_H 1
Packit 679830
#elif (LZO_ARCH_M68K && LZO_OS_TOS && LZO_CC_GNUC)
Packit 679830
#  if !defined(__MINT__)
Packit 679830
#    undef HAVE_MALLOC_H
Packit 679830
#  endif
Packit 679830
#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC))
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_FCNTL_H
Packit 679830
#  undef HAVE_MALLOC_H
Packit 679830
#  undef HAVE_MEMORY_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  undef HAVE_SYS_STAT_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#  undef HAVE_SYS_TYPES_H
Packit 679830
#endif
Packit 679830
#if (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64)
Packit 679830
#define HAVE_CONIO_H 1
Packit 679830
#define HAVE_DIRECT_H 1
Packit 679830
#define HAVE_DOS_H 1
Packit 679830
#define HAVE_IO_H 1
Packit 679830
#define HAVE_SHARE_H 1
Packit 679830
#if (LZO_CC_AZTECC)
Packit 679830
#  undef HAVE_CONIO_H
Packit 679830
#  undef HAVE_DIRECT_H
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_MALLOC_H
Packit 679830
#  undef HAVE_SHARE_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  undef HAVE_SYS_STAT_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#  undef HAVE_SYS_TYPES_H
Packit 679830
#elif (LZO_CC_BORLANDC)
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#  if (LZO_OS_WIN32 || LZO_OS_WIN64)
Packit 679830
#    undef HAVE_DIRENT_H
Packit 679830
#  endif
Packit 679830
#  if (__BORLANDC__ < 0x0400)
Packit 679830
#    undef HAVE_DIRENT_H
Packit 679830
#    undef HAVE_UTIME_H
Packit 679830
#  endif
Packit 679830
#elif (LZO_CC_DMC)
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  define HAVE_SYS_DIRENT_H 1
Packit 679830
#elif (LZO_OS_DOS32 && LZO_CC_GNUC) && defined(__DJGPP__)
Packit 679830
#elif (LZO_OS_DOS32 && LZO_CC_HIGHC)
Packit 679830
#  define HAVE_ALLOCA_H 1
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#elif (LZO_CC_IBMC && LZO_OS_OS2)
Packit 679830
#  undef HAVE_DOS_H
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#  define HAVE_SYS_UTIME_H 1
Packit 679830
#elif (LZO_CC_GHS || LZO_CC_INTELC || LZO_CC_MSC)
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#  define HAVE_SYS_UTIME_H 1
Packit 679830
#elif (LZO_CC_LCCWIN32)
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_DOS_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__MINGW32__)
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  define HAVE_SYS_UTIME_H 1
Packit 679830
#elif (LZO_OS_WIN32 && LZO_LIBC_MSL)
Packit 679830
#  define HAVE_ALLOCA_H 1
Packit 679830
#  undef HAVE_DOS_H
Packit 679830
#  undef HAVE_SHARE_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#elif (LZO_CC_NDPC)
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_DOS_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#elif (LZO_CC_PACIFICC)
Packit 679830
#  undef HAVE_DIRECT_H
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_FCNTL_H
Packit 679830
#  undef HAVE_IO_H
Packit 679830
#  undef HAVE_MALLOC_H
Packit 679830
#  undef HAVE_MEMORY_H
Packit 679830
#  undef HAVE_SHARE_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  undef HAVE_SYS_STAT_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#  undef HAVE_SYS_TYPES_H
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_PELLESC)
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_DOS_H
Packit 679830
#  undef HAVE_MALLOC_H
Packit 679830
#  undef HAVE_SHARE_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#  if (__POCC__ < 280)
Packit 679830
#  else
Packit 679830
#    define HAVE_SYS_UTIME_H 1
Packit 679830
#  endif
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_PGI) && defined(__MINGW32__)
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  define HAVE_SYS_UTIME_H 1
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__)
Packit 679830
#elif (LZO_CC_SYMANTECC)
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  if (__SC__ < 0x700)
Packit 679830
#    undef HAVE_UTIME_H
Packit 679830
#    undef HAVE_SYS_TIME_H
Packit 679830
#  endif
Packit 679830
#elif (LZO_CC_TOPSPEEDC)
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  undef HAVE_SYS_STAT_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#  undef HAVE_SYS_TYPES_H
Packit 679830
#elif (LZO_CC_TURBOC)
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#  undef HAVE_SYS_TYPES_H
Packit 679830
#  if (LZO_OS_WIN32 || LZO_OS_WIN64)
Packit 679830
#    undef HAVE_DIRENT_H
Packit 679830
#  endif
Packit 679830
#  if (__TURBOC__ < 0x0200)
Packit 679830
#    undef HAVE_SIGNAL_H
Packit 679830
#  endif
Packit 679830
#  if (__TURBOC__ < 0x0400)
Packit 679830
#    undef HAVE_DIRECT_H
Packit 679830
#    undef HAVE_DIRENT_H
Packit 679830
#    undef HAVE_MALLOC_H
Packit 679830
#    undef HAVE_MEMORY_H
Packit 679830
#    undef HAVE_UTIME_H
Packit 679830
#  endif
Packit 679830
#elif (LZO_CC_WATCOMC)
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#  define HAVE_SYS_UTIME_H 1
Packit 679830
#  if (__WATCOMC__ < 950)
Packit 679830
#    undef HAVE_UNISTD_H
Packit 679830
#  endif
Packit 679830
#elif (LZO_CC_ZORTECHC)
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_MEMORY_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if (LZO_OS_CONSOLE)
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#endif
Packit 679830
#if (LZO_OS_EMBEDDED)
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#endif
Packit 679830
#if (LZO_LIBC_ISOC90 || LZO_LIBC_ISOC99)
Packit 679830
#  undef HAVE_DIRENT_H
Packit 679830
#  undef HAVE_FCNTL_H
Packit 679830
#  undef HAVE_MALLOC_H
Packit 679830
#  undef HAVE_UNISTD_H
Packit 679830
#  undef HAVE_UTIME_H
Packit 679830
#  undef HAVE_SYS_STAT_H
Packit 679830
#  undef HAVE_SYS_TIME_H
Packit 679830
#  undef HAVE_SYS_TYPES_H
Packit 679830
#endif
Packit 679830
#if (LZO_LIBC_GLIBC >= 0x020100ul)
Packit 679830
#  define HAVE_STDINT_H 1
Packit 679830
#elif (LZO_LIBC_DIETLIBC)
Packit 679830
#  undef HAVE_STDINT_H
Packit 679830
#elif (LZO_LIBC_UCLIBC)
Packit 679830
#  define HAVE_STDINT_H 1
Packit 679830
#elif (LZO_CC_BORLANDC) && (__BORLANDC__ >= 0x560)
Packit 679830
#  undef HAVE_STDINT_H
Packit 679830
#elif (LZO_CC_DMC) && (__DMC__ >= 0x825)
Packit 679830
#  define HAVE_STDINT_H 1
Packit 679830
#endif
Packit 679830
#if (HAVE_SYS_TIME_H && HAVE_TIME_H)
Packit 679830
#  define TIME_WITH_SYS_TIME 1
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if !(LZO_CFG_AUTO_NO_FUNCTIONS)
Packit 679830
#if (LZO_LIBC_NAKED)
Packit 679830
#elif (LZO_LIBC_FREESTANDING)
Packit 679830
#elif (LZO_LIBC_MOSTLY_FREESTANDING)
Packit 679830
#  define HAVE_LONGJMP 1
Packit 679830
#  define HAVE_MEMCMP 1
Packit 679830
#  define HAVE_MEMCPY 1
Packit 679830
#  define HAVE_MEMMOVE 1
Packit 679830
#  define HAVE_MEMSET 1
Packit 679830
#  define HAVE_SETJMP 1
Packit 679830
#else
Packit 679830
#define HAVE_ACCESS 1
Packit 679830
#define HAVE_ALLOCA 1
Packit 679830
#define HAVE_ATEXIT 1
Packit 679830
#define HAVE_ATOI 1
Packit 679830
#define HAVE_ATOL 1
Packit 679830
#define HAVE_CHMOD 1
Packit 679830
#define HAVE_CHOWN 1
Packit 679830
#define HAVE_CTIME 1
Packit 679830
#define HAVE_DIFFTIME 1
Packit 679830
#define HAVE_FILENO 1
Packit 679830
#define HAVE_FSTAT 1
Packit 679830
#define HAVE_GETENV 1
Packit 679830
#define HAVE_GETTIMEOFDAY 1
Packit 679830
#define HAVE_GMTIME 1
Packit 679830
#define HAVE_ISATTY 1
Packit 679830
#define HAVE_LOCALTIME 1
Packit 679830
#define HAVE_LONGJMP 1
Packit 679830
#define HAVE_LSTAT 1
Packit 679830
#define HAVE_MEMCMP 1
Packit 679830
#define HAVE_MEMCPY 1
Packit 679830
#define HAVE_MEMMOVE 1
Packit 679830
#define HAVE_MEMSET 1
Packit 679830
#define HAVE_MKDIR 1
Packit 679830
#define HAVE_MKTIME 1
Packit 679830
#define HAVE_QSORT 1
Packit 679830
#define HAVE_RAISE 1
Packit 679830
#define HAVE_RMDIR 1
Packit 679830
#define HAVE_SETJMP 1
Packit 679830
#define HAVE_SIGNAL 1
Packit 679830
#define HAVE_SNPRINTF 1
Packit 679830
#define HAVE_STAT 1
Packit 679830
#define HAVE_STRCHR 1
Packit 679830
#define HAVE_STRDUP 1
Packit 679830
#define HAVE_STRERROR 1
Packit 679830
#define HAVE_STRFTIME 1
Packit 679830
#define HAVE_STRRCHR 1
Packit 679830
#define HAVE_STRSTR 1
Packit 679830
#define HAVE_TIME 1
Packit 679830
#define HAVE_UMASK 1
Packit 679830
#define HAVE_UTIME 1
Packit 679830
#define HAVE_VSNPRINTF 1
Packit 679830
#if (LZO_OS_BEOS || LZO_OS_CYGWIN || LZO_OS_POSIX || LZO_OS_QNX || LZO_OS_VMS)
Packit 679830
#  define HAVE_STRCASECMP 1
Packit 679830
#  define HAVE_STRNCASECMP 1
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__)
Packit 679830
#  define HAVE_STRCASECMP 1
Packit 679830
#  define HAVE_STRNCASECMP 1
Packit 679830
#else
Packit 679830
#  define HAVE_STRICMP 1
Packit 679830
#  define HAVE_STRNICMP 1
Packit 679830
#endif
Packit 679830
#if (LZO_OS_POSIX)
Packit 679830
#  if (LZO_OS_POSIX_AIX)
Packit 679830
#    define HAVE_GETRUSAGE 1
Packit 679830
#  elif (LZO_OS_POSIX_MACOSX && LZO_LIBC_MSL)
Packit 679830
#    undef HAVE_CHOWN
Packit 679830
#    undef HAVE_LSTAT
Packit 679830
#  elif (LZO_OS_POSIX_UNICOS)
Packit 679830
#    undef HAVE_ALLOCA
Packit 679830
#    undef HAVE_SNPRINTF
Packit 679830
#    undef HAVE_VSNPRINTF
Packit 679830
#  endif
Packit 679830
#  if (LZO_CC_TINYC)
Packit 679830
#    undef HAVE_ALLOCA
Packit 679830
#  endif
Packit 679830
#  if (LZO_LIBC_DIETLIBC || LZO_LIBC_GLIBC || LZO_LIBC_UCLIBC)
Packit 679830
#    define HAVE_GETRUSAGE 1
Packit 679830
#    define HAVE_GETPAGESIZE 1
Packit 679830
#    define HAVE_MMAP 1
Packit 679830
#    define HAVE_MPROTECT 1
Packit 679830
#    define HAVE_MUNMAP 1
Packit 679830
#  endif
Packit 679830
#elif (LZO_OS_CYGWIN)
Packit 679830
#  if (LZO_CC_GNUC < 0x025a00ul)
Packit 679830
#    undef HAVE_GETTIMEOFDAY
Packit 679830
#    undef HAVE_LSTAT
Packit 679830
#  endif
Packit 679830
#  if (LZO_CC_GNUC < 0x025f00ul)
Packit 679830
#    undef HAVE_SNPRINTF
Packit 679830
#    undef HAVE_VSNPRINTF
Packit 679830
#  endif
Packit 679830
#elif (LZO_OS_EMX)
Packit 679830
#  undef HAVE_CHOWN
Packit 679830
#  undef HAVE_LSTAT
Packit 679830
#elif (LZO_ARCH_M68K && LZO_OS_TOS && LZO_CC_GNUC)
Packit 679830
#  if !defined(__MINT__)
Packit 679830
#    undef HAVE_SNPRINTF
Packit 679830
#    undef HAVE_VSNPRINTF
Packit 679830
#  endif
Packit 679830
#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC))
Packit 679830
#  undef HAVE_ALLOCA
Packit 679830
#  undef HAVE_ACCESS
Packit 679830
#  undef HAVE_CHMOD
Packit 679830
#  undef HAVE_CHOWN
Packit 679830
#  undef HAVE_FSTAT
Packit 679830
#  undef HAVE_GETTIMEOFDAY
Packit 679830
#  undef HAVE_LSTAT
Packit 679830
#  undef HAVE_SNPRINTF
Packit 679830
#  undef HAVE_UMASK
Packit 679830
#  undef HAVE_UTIME
Packit 679830
#  undef HAVE_VSNPRINTF
Packit 679830
#endif
Packit 679830
#if (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64)
Packit 679830
#undef HAVE_CHOWN
Packit 679830
#undef HAVE_GETTIMEOFDAY
Packit 679830
#undef HAVE_LSTAT
Packit 679830
#undef HAVE_UMASK
Packit 679830
#if (LZO_CC_AZTECC)
Packit 679830
#  undef HAVE_ALLOCA
Packit 679830
#  undef HAVE_DIFFTIME
Packit 679830
#  undef HAVE_FSTAT
Packit 679830
#  undef HAVE_STRDUP
Packit 679830
#  undef HAVE_SNPRINTF
Packit 679830
#  undef HAVE_UTIME
Packit 679830
#  undef HAVE_VSNPRINTF
Packit 679830
#elif (LZO_CC_BORLANDC)
Packit 679830
#  if (__BORLANDC__ < 0x0400)
Packit 679830
#    undef HAVE_ALLOCA
Packit 679830
#    undef HAVE_UTIME
Packit 679830
#  endif
Packit 679830
#  if ((__BORLANDC__ < 0x0410) && LZO_OS_WIN16)
Packit 679830
#    undef HAVE_ALLOCA
Packit 679830
#  endif
Packit 679830
#  if (__BORLANDC__ < 0x0550)
Packit 679830
#    undef HAVE_SNPRINTF
Packit 679830
#    undef HAVE_VSNPRINTF
Packit 679830
#  endif
Packit 679830
#elif (LZO_CC_DMC)
Packit 679830
#  if (LZO_OS_WIN16)
Packit 679830
#    undef HAVE_ALLOCA
Packit 679830
#  endif
Packit 679830
#  define snprintf _snprintf
Packit 679830
#  define vsnprintf _vsnprintf
Packit 679830
#elif (LZO_OS_DOS32 && LZO_CC_GNUC) && defined(__DJGPP__)
Packit 679830
#  undef HAVE_SNPRINTF
Packit 679830
#  undef HAVE_VSNPRINTF
Packit 679830
#elif (LZO_OS_DOS32 && LZO_CC_HIGHC)
Packit 679830
#  undef HAVE_SNPRINTF
Packit 679830
#  undef HAVE_VSNPRINTF
Packit 679830
#elif (LZO_CC_GHS)
Packit 679830
#  undef HAVE_ALLOCA
Packit 679830
#  ifndef snprintf
Packit 679830
#  define snprintf _snprintf
Packit 679830
#  endif
Packit 679830
#  ifndef vsnprintf
Packit 679830
#  define vsnprintf _vsnprintf
Packit 679830
#  endif
Packit 679830
#elif (LZO_CC_IBMC)
Packit 679830
#  undef HAVE_SNPRINTF
Packit 679830
#  undef HAVE_VSNPRINTF
Packit 679830
#elif (LZO_CC_INTELC)
Packit 679830
#  ifndef snprintf
Packit 679830
#  define snprintf _snprintf
Packit 679830
#  endif
Packit 679830
#  ifndef vsnprintf
Packit 679830
#  define vsnprintf _vsnprintf
Packit 679830
#  endif
Packit 679830
#elif (LZO_CC_LCCWIN32)
Packit 679830
#  define utime _utime
Packit 679830
#elif (LZO_CC_MSC)
Packit 679830
#  if (_MSC_VER < 600)
Packit 679830
#    undef HAVE_STRFTIME
Packit 679830
#  endif
Packit 679830
#  if (_MSC_VER < 700)
Packit 679830
#    undef HAVE_SNPRINTF
Packit 679830
#    undef HAVE_VSNPRINTF
Packit 679830
#  elif (_MSC_VER < 1500)
Packit 679830
#    ifndef snprintf
Packit 679830
#    define snprintf _snprintf
Packit 679830
#    endif
Packit 679830
#    ifndef vsnprintf
Packit 679830
#    define vsnprintf _vsnprintf
Packit 679830
#    endif
Packit 679830
#  else
Packit 679830
#    ifndef snprintf
Packit 679830
#    define snprintf _snprintf
Packit 679830
#    endif
Packit 679830
#  endif
Packit 679830
#  if ((_MSC_VER < 800) && LZO_OS_WIN16)
Packit 679830
#    undef HAVE_ALLOCA
Packit 679830
#  endif
Packit 679830
#  if (LZO_ARCH_I086) && defined(__cplusplus)
Packit 679830
#    undef HAVE_LONGJMP
Packit 679830
#    undef HAVE_SETJMP
Packit 679830
#  endif
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__MINGW32__)
Packit 679830
#  if (LZO_CC_GNUC < 0x025f00ul)
Packit 679830
#    undef HAVE_SNPRINTF
Packit 679830
#    undef HAVE_VSNPRINTF
Packit 679830
#  else
Packit 679830
#    define snprintf _snprintf
Packit 679830
#    define vsnprintf _vsnprintf
Packit 679830
#  endif
Packit 679830
#elif (LZO_OS_WIN32 && LZO_LIBC_MSL)
Packit 679830
#  if (__MSL__ < 0x8000ul)
Packit 679830
#    undef HAVE_CHMOD
Packit 679830
#  endif
Packit 679830
#elif (LZO_CC_NDPC)
Packit 679830
#  undef HAVE_ALLOCA
Packit 679830
#  undef HAVE_SNPRINTF
Packit 679830
#  undef HAVE_STRNICMP
Packit 679830
#  undef HAVE_UTIME
Packit 679830
#  undef HAVE_VSNPRINTF
Packit 679830
#  if defined(__cplusplus)
Packit 679830
#    undef HAVE_STAT
Packit 679830
#  endif
Packit 679830
#elif (LZO_CC_PACIFICC)
Packit 679830
#  undef HAVE_ACCESS
Packit 679830
#  undef HAVE_ALLOCA
Packit 679830
#  undef HAVE_CHMOD
Packit 679830
#  undef HAVE_DIFFTIME
Packit 679830
#  undef HAVE_FSTAT
Packit 679830
#  undef HAVE_MKTIME
Packit 679830
#  undef HAVE_RAISE
Packit 679830
#  undef HAVE_SNPRINTF
Packit 679830
#  undef HAVE_STRFTIME
Packit 679830
#  undef HAVE_UTIME
Packit 679830
#  undef HAVE_VSNPRINTF
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_PELLESC)
Packit 679830
#  if (__POCC__ < 280)
Packit 679830
#    define alloca _alloca
Packit 679830
#    undef HAVE_UTIME
Packit 679830
#  endif
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_PGI) && defined(__MINGW32__)
Packit 679830
#  define snprintf _snprintf
Packit 679830
#  define vsnprintf _vsnprintf
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__)
Packit 679830
#  undef HAVE_SNPRINTF
Packit 679830
#  undef HAVE_VSNPRINTF
Packit 679830
#elif (LZO_CC_SYMANTECC)
Packit 679830
#  if (LZO_OS_WIN16 && (LZO_MM_MEDIUM || LZO_MM_LARGE || LZO_MM_HUGE))
Packit 679830
#    undef HAVE_ALLOCA
Packit 679830
#  endif
Packit 679830
#  if (__SC__ < 0x600)
Packit 679830
#    undef HAVE_SNPRINTF
Packit 679830
#    undef HAVE_VSNPRINTF
Packit 679830
#  else
Packit 679830
#    define snprintf _snprintf
Packit 679830
#    define vsnprintf _vsnprintf
Packit 679830
#  endif
Packit 679830
#  if (__SC__ < 0x700)
Packit 679830
#    undef HAVE_DIFFTIME
Packit 679830
#    undef HAVE_UTIME
Packit 679830
#  endif
Packit 679830
#elif (LZO_CC_TOPSPEEDC)
Packit 679830
#  undef HAVE_SNPRINTF
Packit 679830
#  undef HAVE_VSNPRINTF
Packit 679830
#elif (LZO_CC_TURBOC)
Packit 679830
#  undef HAVE_ALLOCA
Packit 679830
#  undef HAVE_SNPRINTF
Packit 679830
#  undef HAVE_VSNPRINTF
Packit 679830
#  if (__TURBOC__ < 0x0200)
Packit 679830
#    undef HAVE_RAISE
Packit 679830
#    undef HAVE_SIGNAL
Packit 679830
#  endif
Packit 679830
#  if (__TURBOC__ < 0x0295)
Packit 679830
#    undef HAVE_MKTIME
Packit 679830
#    undef HAVE_STRFTIME
Packit 679830
#  endif
Packit 679830
#  if (__TURBOC__ < 0x0400)
Packit 679830
#    undef HAVE_UTIME
Packit 679830
#  endif
Packit 679830
#elif (LZO_CC_WATCOMC)
Packit 679830
#  if (__WATCOMC__ < 1100)
Packit 679830
#    undef HAVE_SNPRINTF
Packit 679830
#    undef HAVE_VSNPRINTF
Packit 679830
#  elif (__WATCOMC__ < 1200)
Packit 679830
#    define snprintf _snprintf
Packit 679830
#    define vsnprintf _vsnprintf
Packit 679830
#  endif
Packit 679830
#elif (LZO_CC_ZORTECHC)
Packit 679830
#  if (LZO_OS_WIN16 && (LZO_MM_MEDIUM || LZO_MM_LARGE || LZO_MM_HUGE))
Packit 679830
#    undef HAVE_ALLOCA
Packit 679830
#  endif
Packit 679830
#  undef HAVE_DIFFTIME
Packit 679830
#  undef HAVE_SNPRINTF
Packit 679830
#  undef HAVE_UTIME
Packit 679830
#  undef HAVE_VSNPRINTF
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if (LZO_OS_CONSOLE)
Packit 679830
#  undef HAVE_ACCESS
Packit 679830
#  undef HAVE_CHMOD
Packit 679830
#  undef HAVE_CHOWN
Packit 679830
#  undef HAVE_GETTIMEOFDAY
Packit 679830
#  undef HAVE_LSTAT
Packit 679830
#  undef HAVE_TIME
Packit 679830
#  undef HAVE_UMASK
Packit 679830
#  undef HAVE_UTIME
Packit 679830
#endif
Packit 679830
#if (LZO_LIBC_ISOC90 || LZO_LIBC_ISOC99)
Packit 679830
#  undef HAVE_ACCESS
Packit 679830
#  undef HAVE_CHMOD
Packit 679830
#  undef HAVE_CHOWN
Packit 679830
#  undef HAVE_FILENO
Packit 679830
#  undef HAVE_FSTAT
Packit 679830
#  undef HAVE_GETTIMEOFDAY
Packit 679830
#  undef HAVE_LSTAT
Packit 679830
#  undef HAVE_STAT
Packit 679830
#  undef HAVE_UMASK
Packit 679830
#  undef HAVE_UTIME
Packit 679830
# if 1
Packit 679830
#  undef HAVE_ALLOCA
Packit 679830
#  undef HAVE_ISATTY
Packit 679830
#  undef HAVE_MKDIR
Packit 679830
#  undef HAVE_RMDIR
Packit 679830
#  undef HAVE_STRDUP
Packit 679830
#  undef HAVE_STRICMP
Packit 679830
#  undef HAVE_STRNICMP
Packit 679830
# endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if !(LZO_CFG_AUTO_NO_SIZES)
Packit 679830
#if !defined(SIZEOF_SHORT) && defined(LZO_SIZEOF_SHORT)
Packit 679830
#  define SIZEOF_SHORT          LZO_SIZEOF_SHORT
Packit 679830
#endif
Packit 679830
#if !defined(SIZEOF_INT) && defined(LZO_SIZEOF_INT)
Packit 679830
#  define SIZEOF_INT            LZO_SIZEOF_INT
Packit 679830
#endif
Packit 679830
#if !defined(SIZEOF_LONG) && defined(LZO_SIZEOF_LONG)
Packit 679830
#  define SIZEOF_LONG           LZO_SIZEOF_LONG
Packit 679830
#endif
Packit 679830
#if !defined(SIZEOF_LONG_LONG) && defined(LZO_SIZEOF_LONG_LONG)
Packit 679830
#  define SIZEOF_LONG_LONG      LZO_SIZEOF_LONG_LONG
Packit 679830
#endif
Packit 679830
#if !defined(SIZEOF___INT32) && defined(LZO_SIZEOF___INT32)
Packit 679830
#  define SIZEOF___INT32        LZO_SIZEOF___INT32
Packit 679830
#endif
Packit 679830
#if !defined(SIZEOF___INT64) && defined(LZO_SIZEOF___INT64)
Packit 679830
#  define SIZEOF___INT64        LZO_SIZEOF___INT64
Packit 679830
#endif
Packit 679830
#if !defined(SIZEOF_VOID_P) && defined(LZO_SIZEOF_VOID_P)
Packit 679830
#  define SIZEOF_VOID_P         LZO_SIZEOF_VOID_P
Packit 679830
#endif
Packit 679830
#if !defined(SIZEOF_SIZE_T) && defined(LZO_SIZEOF_SIZE_T)
Packit 679830
#  define SIZEOF_SIZE_T         LZO_SIZEOF_SIZE_T
Packit 679830
#endif
Packit 679830
#if !defined(SIZEOF_PTRDIFF_T) && defined(LZO_SIZEOF_PTRDIFF_T)
Packit 679830
#  define SIZEOF_PTRDIFF_T      LZO_SIZEOF_PTRDIFF_T
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if (HAVE_SIGNAL) && !defined(RETSIGTYPE)
Packit 679830
#  define RETSIGTYPE void
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if !(LZO_CFG_SKIP_LZO_TYPES)
Packit 679830
#if 1 && !defined(lzo_signo_t) && defined(__linux__) && defined(__dietlibc__) && (LZO_SIZEOF_INT != 4)
Packit 679830
#  define lzo_signo_t               lzo_int32e_t
Packit 679830
#endif
Packit 679830
#if !defined(lzo_signo_t)
Packit 679830
#  define lzo_signo_t               int
Packit 679830
#endif
Packit 679830
#if defined(__cplusplus)
Packit 679830
extern "C" {
Packit 679830
#endif
Packit 679830
#if (LZO_BROKEN_CDECL_ALT_SYNTAX)
Packit 679830
typedef void __lzo_cdecl_sighandler (*lzo_sighandler_t)(lzo_signo_t);
Packit 679830
#elif defined(RETSIGTYPE)
Packit 679830
typedef RETSIGTYPE (__lzo_cdecl_sighandler *lzo_sighandler_t)(lzo_signo_t);
Packit 679830
#else
Packit 679830
typedef void (__lzo_cdecl_sighandler *lzo_sighandler_t)(lzo_signo_t);
Packit 679830
#endif
Packit 679830
#if defined(__cplusplus)
Packit 679830
}
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACC_INCD_H)
Packit 679830
#  undef LZO_WANT_ACC_INCD_H
Packit 679830
#ifndef __LZO_INCD_H_INCLUDED
Packit 679830
#define __LZO_INCD_H_INCLUDED 1
Packit 679830
#if (LZO_LIBC_NAKED)
Packit 679830
#ifndef __LZO_FALLBACK_STDDEF_H_INCLUDED
Packit 679830
#define __LZO_FALLBACK_STDDEF_H_INCLUDED 1
Packit 679830
#if defined(__PTRDIFF_TYPE__)
Packit 679830
typedef __PTRDIFF_TYPE__ lzo_fallback_ptrdiff_t;
Packit 679830
#elif defined(__MIPS_PSX2__)
Packit 679830
typedef int lzo_fallback_ptrdiff_t;
Packit 679830
#else
Packit 679830
typedef long lzo_fallback_ptrdiff_t;
Packit 679830
#endif
Packit 679830
#if defined(__SIZE_TYPE__)
Packit 679830
typedef __SIZE_TYPE__ lzo_fallback_size_t;
Packit 679830
#elif defined(__MIPS_PSX2__)
Packit 679830
typedef unsigned int lzo_fallback_size_t;
Packit 679830
#else
Packit 679830
typedef unsigned long lzo_fallback_size_t;
Packit 679830
#endif
Packit 679830
#if !defined(ptrdiff_t)
Packit 679830
typedef lzo_fallback_ptrdiff_t ptrdiff_t;
Packit 679830
#ifndef _PTRDIFF_T_DEFINED
Packit 679830
#define _PTRDIFF_T_DEFINED 1
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if !defined(size_t)
Packit 679830
typedef lzo_fallback_size_t size_t;
Packit 679830
#ifndef _SIZE_T_DEFINED
Packit 679830
#define _SIZE_T_DEFINED 1
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if !defined(__cplusplus) && !defined(wchar_t)
Packit 679830
typedef unsigned short wchar_t;
Packit 679830
#ifndef _WCHAR_T_DEFINED
Packit 679830
#define _WCHAR_T_DEFINED 1
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#ifndef NULL
Packit 679830
#if defined(__cplusplus) && defined(__GNUC__) && (__GNUC__ >= 4)
Packit 679830
#define NULL    __null
Packit 679830
#elif defined(__cplusplus)
Packit 679830
#define NULL    0
Packit 679830
#else
Packit 679830
#define NULL    ((void*)0)
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#ifndef offsetof
Packit 679830
#define offsetof(s,m)   ((size_t)((ptrdiff_t)&(((s*)0)->m)))
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#elif (LZO_LIBC_FREESTANDING)
Packit 679830
# if defined(HAVE_STDDEF_H) && (HAVE_STDDEF_H+0)
Packit 679830
#  include <stddef.h>
Packit 679830
# endif
Packit 679830
# if defined(HAVE_STDINT_H) && (HAVE_STDINT_H+0)
Packit 679830
#  include <stdint.h>
Packit 679830
# endif
Packit 679830
#elif (LZO_LIBC_MOSTLY_FREESTANDING)
Packit 679830
# if defined(HAVE_STDIO_H) && (HAVE_STDIO_H+0)
Packit 679830
#  include <stdio.h>
Packit 679830
# endif
Packit 679830
# if defined(HAVE_STDDEF_H) && (HAVE_STDDEF_H+0)
Packit 679830
#  include <stddef.h>
Packit 679830
# endif
Packit 679830
# if defined(HAVE_STDINT_H) && (HAVE_STDINT_H+0)
Packit 679830
#  include <stdint.h>
Packit 679830
# endif
Packit 679830
#else
Packit 679830
#include <stdio.h>
Packit 679830
#if defined(HAVE_TIME_H) && (HAVE_TIME_H+0) && defined(__MSL__) && defined(__cplusplus)
Packit 679830
# include <time.h>
Packit 679830
#endif
Packit 679830
#if defined(HAVE_SYS_TYPES_H) && (HAVE_SYS_TYPES_H+0)
Packit 679830
# include <sys/types.h>
Packit 679830
#endif
Packit 679830
#if defined(HAVE_SYS_STAT_H) && (HAVE_SYS_STAT_H+0)
Packit 679830
# include <sys/stat.h>
Packit 679830
#endif
Packit 679830
#if defined(STDC_HEADERS) && (STDC_HEADERS+0)
Packit 679830
# include <stdlib.h>
Packit 679830
#elif defined(HAVE_STDLIB_H) && (HAVE_STDLIB_H+0)
Packit 679830
# include <stdlib.h>
Packit 679830
#endif
Packit 679830
#include <stddef.h>
Packit 679830
#if defined(HAVE_STRING_H) && (HAVE_STRING_H+0)
Packit 679830
# if defined(STDC_HEADERS) && (STDC_HEADERS+0)
Packit 679830
# elif defined(HAVE_MEMORY_H) && (HAVE_MEMORY_H+0)
Packit 679830
#  include <memory.h>
Packit 679830
# endif
Packit 679830
# include <string.h>
Packit 679830
#endif
Packit 679830
#if defined(HAVE_STRINGS_H) && (HAVE_STRINGS_H+0)
Packit 679830
# include <strings.h>
Packit 679830
#endif
Packit 679830
#if defined(HAVE_INTTYPES_H) && (HAVE_INTTYPES_H+0)
Packit 679830
# include <inttypes.h>
Packit 679830
#endif
Packit 679830
#if defined(HAVE_STDINT_H) && (HAVE_STDINT_H+0)
Packit 679830
# include <stdint.h>
Packit 679830
#endif
Packit 679830
#if defined(HAVE_UNISTD_H) && (HAVE_UNISTD_H+0)
Packit 679830
# include <unistd.h>
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACC_INCE_H)
Packit 679830
#  undef LZO_WANT_ACC_INCE_H
Packit 679830
#ifndef __LZO_INCE_H_INCLUDED
Packit 679830
#define __LZO_INCE_H_INCLUDED 1
Packit 679830
#if (LZO_LIBC_NAKED)
Packit 679830
#elif (LZO_LIBC_FREESTANDING)
Packit 679830
#elif (LZO_LIBC_MOSTLY_FREESTANDING)
Packit 679830
#  if (HAVE_SETJMP_H)
Packit 679830
#    include <setjmp.h>
Packit 679830
#  endif
Packit 679830
#else
Packit 679830
#if (HAVE_STDARG_H)
Packit 679830
#  include <stdarg.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_CTYPE_H)
Packit 679830
#  include <ctype.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_ERRNO_H)
Packit 679830
#  include <errno.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_MALLOC_H)
Packit 679830
#  include <malloc.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_ALLOCA_H)
Packit 679830
#  include <alloca.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_FCNTL_H)
Packit 679830
#  include <fcntl.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_DIRENT_H)
Packit 679830
#  include <dirent.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_SETJMP_H)
Packit 679830
#  include <setjmp.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_SIGNAL_H)
Packit 679830
#  include <signal.h>
Packit 679830
#endif
Packit 679830
#if (TIME_WITH_SYS_TIME)
Packit 679830
#  include <sys/time.h>
Packit 679830
#  include <time.h>
Packit 679830
#elif (HAVE_TIME_H)
Packit 679830
#  include <time.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_UTIME_H)
Packit 679830
#  include <utime.h>
Packit 679830
#elif (HAVE_SYS_UTIME_H)
Packit 679830
#  include <sys/utime.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_IO_H)
Packit 679830
#  include <io.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_DOS_H)
Packit 679830
#  include <dos.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_DIRECT_H)
Packit 679830
#  include <direct.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_SHARE_H)
Packit 679830
#  include <share.h>
Packit 679830
#endif
Packit 679830
#if (LZO_CC_NDPC)
Packit 679830
#  include <os.h>
Packit 679830
#endif
Packit 679830
#if defined(__TOS__) && (defined(__PUREC__) || defined(__TURBOC__))
Packit 679830
#  include <ext.h>
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACC_INCI_H)
Packit 679830
#  undef LZO_WANT_ACC_INCI_H
Packit 679830
#ifndef __LZO_INCI_H_INCLUDED
Packit 679830
#define __LZO_INCI_H_INCLUDED 1
Packit 679830
#if (LZO_LIBC_NAKED)
Packit 679830
#elif (LZO_LIBC_FREESTANDING)
Packit 679830
#elif (LZO_LIBC_MOSTLY_FREESTANDING)
Packit 679830
#else
Packit 679830
#if (LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC))
Packit 679830
#  include <tos.h>
Packit 679830
#elif (LZO_HAVE_WINDOWS_H)
Packit 679830
#  if 1 && !defined(WIN32_LEAN_AND_MEAN)
Packit 679830
#    define WIN32_LEAN_AND_MEAN 1
Packit 679830
#  endif
Packit 679830
#  if 1 && !defined(_WIN32_WINNT)
Packit 679830
#    define _WIN32_WINNT 0x0400
Packit 679830
#  endif
Packit 679830
#  include <windows.h>
Packit 679830
#  if (LZO_CC_BORLANDC || LZO_CC_TURBOC)
Packit 679830
#    include <dir.h>
Packit 679830
#  endif
Packit 679830
#elif (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_WIN16)
Packit 679830
#  if (LZO_CC_AZTECC)
Packit 679830
#    include <model.h>
Packit 679830
#    include <stat.h>
Packit 679830
#  elif (LZO_CC_BORLANDC || LZO_CC_TURBOC)
Packit 679830
#    include <alloc.h>
Packit 679830
#    include <dir.h>
Packit 679830
#  elif (LZO_OS_DOS32 && LZO_CC_GNUC) && defined(__DJGPP__)
Packit 679830
#    include <sys/exceptn.h>
Packit 679830
#  elif (LZO_CC_PACIFICC)
Packit 679830
#    include <unixio.h>
Packit 679830
#    include <stat.h>
Packit 679830
#    include <sys.h>
Packit 679830
#  elif (LZO_CC_WATCOMC)
Packit 679830
#    include <i86.h>
Packit 679830
#  endif
Packit 679830
#elif (LZO_OS_OS216)
Packit 679830
#  if (LZO_CC_WATCOMC)
Packit 679830
#    include <i86.h>
Packit 679830
#  endif
Packit 679830
#endif
Packit 679830
#if (HAVE_SYS_MMAN_H)
Packit 679830
#  include <sys/mman.h>
Packit 679830
#endif
Packit 679830
#if (HAVE_SYS_RESOURCE_H)
Packit 679830
#  include <sys/resource.h>
Packit 679830
#endif
Packit 679830
#if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
Packit 679830
#  if defined(FP_OFF)
Packit 679830
#    define LZO_PTR_FP_OFF(x)   FP_OFF(x)
Packit 679830
#  elif defined(_FP_OFF)
Packit 679830
#    define LZO_PTR_FP_OFF(x)   _FP_OFF(x)
Packit 679830
#  else
Packit 679830
#    define LZO_PTR_FP_OFF(x)   (((const unsigned __far*)&(x))[0])
Packit 679830
#  endif
Packit 679830
#  if defined(FP_SEG)
Packit 679830
#    define LZO_PTR_FP_SEG(x)   FP_SEG(x)
Packit 679830
#  elif defined(_FP_SEG)
Packit 679830
#    define LZO_PTR_FP_SEG(x)   _FP_SEG(x)
Packit 679830
#  else
Packit 679830
#    define LZO_PTR_FP_SEG(x)   (((const unsigned __far*)&(x))[1])
Packit 679830
#  endif
Packit 679830
#  if defined(MK_FP)
Packit 679830
#    define LZO_PTR_MK_FP(s,o)  MK_FP(s,o)
Packit 679830
#  elif defined(_MK_FP)
Packit 679830
#    define LZO_PTR_MK_FP(s,o)  _MK_FP(s,o)
Packit 679830
#  else
Packit 679830
#    define LZO_PTR_MK_FP(s,o)  ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o)))
Packit 679830
#  endif
Packit 679830
#  if 0
Packit 679830
#    undef LZO_PTR_FP_OFF
Packit 679830
#    undef LZO_PTR_FP_SEG
Packit 679830
#    undef LZO_PTR_MK_FP
Packit 679830
#    define LZO_PTR_FP_OFF(x)   (((const unsigned __far*)&(x))[0])
Packit 679830
#    define LZO_PTR_FP_SEG(x)   (((const unsigned __far*)&(x))[1])
Packit 679830
#    define LZO_PTR_MK_FP(s,o)  ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o)))
Packit 679830
#  endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACC_LIB_H)
Packit 679830
#  undef LZO_WANT_ACC_LIB_H
Packit 679830
#ifndef __LZO_LIB_H_INCLUDED
Packit 679830
#define __LZO_LIB_H_INCLUDED 1
Packit 679830
#if !defined(__LZOLIB_FUNCNAME)
Packit 679830
#  define __LZOLIB_FUNCNAME(f)  f
Packit 679830
#endif
Packit 679830
#if !defined(LZOLIB_EXTERN)
Packit 679830
#  define LZOLIB_EXTERN(r,f)                extern r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
#if !defined(LZOLIB_EXTERN_NOINLINE)
Packit 679830
#  if defined(__lzo_noinline)
Packit 679830
#    define LZOLIB_EXTERN_NOINLINE(r,f)     extern __lzo_noinline r __LZOLIB_FUNCNAME(f)
Packit 679830
#  else
Packit 679830
#    define LZOLIB_EXTERN_NOINLINE(r,f)     extern r __LZOLIB_FUNCNAME(f)
Packit 679830
#  endif
Packit 679830
#endif
Packit 679830
#if (LZO_SIZEOF_LONG > LZO_SIZEOF_VOID_P)
Packit 679830
#  define lzolib_handle_t       long
Packit 679830
#else
Packit 679830
#  define lzolib_handle_t       lzo_intptr_t
Packit 679830
#endif
Packit 679830
#if 0
Packit 679830
LZOLIB_EXTERN(int, lzo_ascii_digit)   (int);
Packit 679830
LZOLIB_EXTERN(int, lzo_ascii_islower) (int);
Packit 679830
LZOLIB_EXTERN(int, lzo_ascii_isupper) (int);
Packit 679830
LZOLIB_EXTERN(int, lzo_ascii_tolower) (int);
Packit 679830
LZOLIB_EXTERN(int, lzo_ascii_toupper) (int);
Packit 679830
LZOLIB_EXTERN(int, lzo_ascii_utolower) (int);
Packit 679830
LZOLIB_EXTERN(int, lzo_ascii_utoupper) (int);
Packit 679830
#endif
Packit 679830
#define lzo_ascii_isdigit(c)    ((LZO_ICAST(unsigned, c) - 48) < 10)
Packit 679830
#define lzo_ascii_islower(c)    ((LZO_ICAST(unsigned, c) - 97) < 26)
Packit 679830
#define lzo_ascii_isupper(c)    ((LZO_ICAST(unsigned, c) - 65) < 26)
Packit 679830
#define lzo_ascii_tolower(c)    (LZO_ICAST(int, c) + (lzo_ascii_isupper(c) << 5))
Packit 679830
#define lzo_ascii_toupper(c)    (LZO_ICAST(int, c) - (lzo_ascii_islower(c) << 5))
Packit 679830
#define lzo_ascii_utolower(c)   lzo_ascii_tolower(LZO_ITRUNC(unsigned char, c))
Packit 679830
#define lzo_ascii_utoupper(c)   lzo_ascii_toupper(LZO_ITRUNC(unsigned char, c))
Packit 679830
#ifndef lzo_hsize_t
Packit 679830
#if (LZO_HAVE_MM_HUGE_PTR)
Packit 679830
#  define lzo_hsize_t   unsigned long
Packit 679830
#  define lzo_hvoid_p   void __huge *
Packit 679830
#  define lzo_hchar_p   char __huge *
Packit 679830
#  define lzo_hchar_pp  char __huge * __huge *
Packit 679830
#  define lzo_hbyte_p   unsigned char __huge *
Packit 679830
#else
Packit 679830
#  define lzo_hsize_t   size_t
Packit 679830
#  define lzo_hvoid_p   void *
Packit 679830
#  define lzo_hchar_p   char *
Packit 679830
#  define lzo_hchar_pp  char **
Packit 679830
#  define lzo_hbyte_p   unsigned char *
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_halloc) (lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(void, lzo_hfree) (lzo_hvoid_p);
Packit 679830
#if (LZO_OS_DOS16 || LZO_OS_OS216)
Packit 679830
LZOLIB_EXTERN(void __far*, lzo_dos_alloc) (unsigned long);
Packit 679830
LZOLIB_EXTERN(int, lzo_dos_free) (void __far*);
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN(int, lzo_hmemcmp) (const lzo_hvoid_p, const lzo_hvoid_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_hmemcpy) (lzo_hvoid_p, const lzo_hvoid_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_hmemmove) (lzo_hvoid_p, const lzo_hvoid_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_hmemset) (lzo_hvoid_p, int, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hsize_t, lzo_hstrlen) (const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(int, lzo_hstrcmp) (const lzo_hchar_p, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(int, lzo_hstrncmp)(const lzo_hchar_p, const lzo_hchar_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(int, lzo_ascii_hstricmp) (const lzo_hchar_p, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(int, lzo_ascii_hstrnicmp)(const lzo_hchar_p, const lzo_hchar_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(int, lzo_ascii_hmemicmp) (const lzo_hvoid_p, const lzo_hvoid_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_hstrstr) (const lzo_hchar_p, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_ascii_hstristr) (const lzo_hchar_p, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_hmemmem) (const lzo_hvoid_p, lzo_hsize_t, const lzo_hvoid_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_ascii_hmemimem) (const lzo_hvoid_p, lzo_hsize_t, const lzo_hvoid_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_hstrcpy) (lzo_hchar_p, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_hstrcat) (lzo_hchar_p, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hsize_t, lzo_hstrlcpy) (lzo_hchar_p, const lzo_hchar_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hsize_t, lzo_hstrlcat) (lzo_hchar_p, const lzo_hchar_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(int, lzo_hstrscpy) (lzo_hchar_p, const lzo_hchar_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(int, lzo_hstrscat) (lzo_hchar_p, const lzo_hchar_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_hstrccpy) (lzo_hchar_p, const lzo_hchar_p, int);
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_hmemccpy) (lzo_hvoid_p, const lzo_hvoid_p, int, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_hstrchr)  (const lzo_hchar_p, int);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_hstrrchr) (const lzo_hchar_p, int);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_ascii_hstrichr) (const lzo_hchar_p, int);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_ascii_hstrrichr) (const lzo_hchar_p, int);
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_hmemchr)  (const lzo_hvoid_p, int, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_hmemrchr) (const lzo_hvoid_p, int, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_ascii_hmemichr) (const lzo_hvoid_p, int, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_ascii_hmemrichr) (const lzo_hvoid_p, int, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hsize_t, lzo_hstrspn)  (const lzo_hchar_p, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hsize_t, lzo_hstrrspn) (const lzo_hchar_p, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hsize_t, lzo_hstrcspn)  (const lzo_hchar_p, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hsize_t, lzo_hstrrcspn) (const lzo_hchar_p, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_hstrpbrk)  (const lzo_hchar_p, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_hstrrpbrk) (const lzo_hchar_p, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_hstrsep)  (lzo_hchar_pp, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_hstrrsep) (lzo_hchar_pp, const lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_ascii_hstrlwr) (lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hchar_p, lzo_ascii_hstrupr) (lzo_hchar_p);
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_ascii_hmemlwr) (lzo_hvoid_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hvoid_p, lzo_ascii_hmemupr) (lzo_hvoid_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hsize_t, lzo_hfread) (void *, lzo_hvoid_p, lzo_hsize_t);
Packit 679830
LZOLIB_EXTERN(lzo_hsize_t, lzo_hfwrite) (void *, const lzo_hvoid_p, lzo_hsize_t);
Packit 679830
#if (LZO_HAVE_MM_HUGE_PTR)
Packit 679830
LZOLIB_EXTERN(long, lzo_hread) (int, lzo_hvoid_p, long);
Packit 679830
LZOLIB_EXTERN(long, lzo_hwrite) (int, const lzo_hvoid_p, long);
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN(long, lzo_safe_hread) (int, lzo_hvoid_p, long);
Packit 679830
LZOLIB_EXTERN(long, lzo_safe_hwrite) (int, const lzo_hvoid_p, long);
Packit 679830
LZOLIB_EXTERN(unsigned, lzo_ua_get_be16) (const lzo_hvoid_p);
Packit 679830
LZOLIB_EXTERN(lzo_uint32l_t, lzo_ua_get_be24) (const lzo_hvoid_p);
Packit 679830
LZOLIB_EXTERN(lzo_uint32l_t, lzo_ua_get_be32) (const lzo_hvoid_p);
Packit 679830
LZOLIB_EXTERN(void, lzo_ua_set_be16) (lzo_hvoid_p, unsigned);
Packit 679830
LZOLIB_EXTERN(void, lzo_ua_set_be24) (lzo_hvoid_p, lzo_uint32l_t);
Packit 679830
LZOLIB_EXTERN(void, lzo_ua_set_be32) (lzo_hvoid_p, lzo_uint32l_t);
Packit 679830
LZOLIB_EXTERN(unsigned, lzo_ua_get_le16) (const lzo_hvoid_p);
Packit 679830
LZOLIB_EXTERN(lzo_uint32l_t, lzo_ua_get_le24) (const lzo_hvoid_p);
Packit 679830
LZOLIB_EXTERN(lzo_uint32l_t, lzo_ua_get_le32) (const lzo_hvoid_p);
Packit 679830
LZOLIB_EXTERN(void, lzo_ua_set_le16) (lzo_hvoid_p, unsigned);
Packit 679830
LZOLIB_EXTERN(void, lzo_ua_set_le24) (lzo_hvoid_p, lzo_uint32l_t);
Packit 679830
LZOLIB_EXTERN(void, lzo_ua_set_le32) (lzo_hvoid_p, lzo_uint32l_t);
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
LZOLIB_EXTERN(lzo_uint64l_t, lzo_ua_get_be64) (const lzo_hvoid_p);
Packit 679830
LZOLIB_EXTERN(void, lzo_ua_set_be64) (lzo_hvoid_p, lzo_uint64l_t);
Packit 679830
LZOLIB_EXTERN(lzo_uint64l_t, lzo_ua_get_le64) (const lzo_hvoid_p);
Packit 679830
LZOLIB_EXTERN(void, lzo_ua_set_le64) (lzo_hvoid_p, lzo_uint64l_t);
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN_NOINLINE(short, lzo_vget_short) (short, int);
Packit 679830
LZOLIB_EXTERN_NOINLINE(int, lzo_vget_int) (int, int);
Packit 679830
LZOLIB_EXTERN_NOINLINE(long, lzo_vget_long) (long, int);
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
LZOLIB_EXTERN_NOINLINE(lzo_int64l_t, lzo_vget_lzo_int64l_t) (lzo_int64l_t, int);
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN_NOINLINE(lzo_hsize_t, lzo_vget_lzo_hsize_t) (lzo_hsize_t, int);
Packit 679830
#if !(LZO_CFG_NO_FLOAT)
Packit 679830
LZOLIB_EXTERN_NOINLINE(float, lzo_vget_float) (float, int);
Packit 679830
#endif
Packit 679830
#if !(LZO_CFG_NO_DOUBLE)
Packit 679830
LZOLIB_EXTERN_NOINLINE(double, lzo_vget_double) (double, int);
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN_NOINLINE(lzo_hvoid_p, lzo_vget_lzo_hvoid_p) (lzo_hvoid_p, int);
Packit 679830
LZOLIB_EXTERN_NOINLINE(const lzo_hvoid_p, lzo_vget_lzo_hvoid_cp) (const lzo_hvoid_p, int);
Packit 679830
#if !defined(LZO_FN_PATH_MAX)
Packit 679830
#if (LZO_OS_DOS16 || LZO_OS_WIN16)
Packit 679830
#  define LZO_FN_PATH_MAX   143
Packit 679830
#elif (LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN32 || LZO_OS_WIN64)
Packit 679830
#  define LZO_FN_PATH_MAX   259
Packit 679830
#elif (LZO_OS_TOS)
Packit 679830
#  define LZO_FN_PATH_MAX   259
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if !defined(LZO_FN_PATH_MAX)
Packit 679830
#  define LZO_FN_PATH_MAX   1023
Packit 679830
#endif
Packit 679830
#if !defined(LZO_FN_NAME_MAX)
Packit 679830
#if (LZO_OS_DOS16 || LZO_OS_WIN16)
Packit 679830
#  define LZO_FN_NAME_MAX   12
Packit 679830
#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC))
Packit 679830
#  define LZO_FN_NAME_MAX   12
Packit 679830
#elif (LZO_OS_DOS32 && LZO_CC_GNUC) && defined(__DJGPP__)
Packit 679830
#elif (LZO_OS_DOS32)
Packit 679830
#  define LZO_FN_NAME_MAX   12
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if !defined(LZO_FN_NAME_MAX)
Packit 679830
#  define LZO_FN_NAME_MAX   LZO_FN_PATH_MAX
Packit 679830
#endif
Packit 679830
#define LZO_FNMATCH_NOESCAPE        1
Packit 679830
#define LZO_FNMATCH_PATHNAME        2
Packit 679830
#define LZO_FNMATCH_PATHSTAR        4
Packit 679830
#define LZO_FNMATCH_PERIOD          8
Packit 679830
#define LZO_FNMATCH_ASCII_CASEFOLD  16
Packit 679830
LZOLIB_EXTERN(int, lzo_fnmatch) (const lzo_hchar_p, const lzo_hchar_p, int);
Packit 679830
#undef __LZOLIB_USE_OPENDIR
Packit 679830
#if (HAVE_DIRENT_H || LZO_CC_WATCOMC)
Packit 679830
#  define __LZOLIB_USE_OPENDIR 1
Packit 679830
#  if (LZO_OS_DOS32 && defined(__BORLANDC__))
Packit 679830
#  elif (LZO_OS_DOS32 && LZO_CC_GNUC) && defined(__DJGPP__)
Packit 679830
#  elif (LZO_OS_OS2 || LZO_OS_OS216)
Packit 679830
#  elif (LZO_ARCH_M68K && LZO_OS_TOS && LZO_CC_GNUC)
Packit 679830
#  elif (LZO_OS_WIN32 && !(LZO_HAVE_WINDOWS_H))
Packit 679830
#  elif (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_TOS || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64)
Packit 679830
#    undef __LZOLIB_USE_OPENDIR
Packit 679830
#  endif
Packit 679830
#endif
Packit 679830
typedef struct
Packit 679830
{
Packit 679830
#if defined(__LZOLIB_USE_OPENDIR)
Packit 679830
    void* u_dirp;
Packit 679830
# if (LZO_CC_WATCOMC)
Packit 679830
    unsigned short f_time;
Packit 679830
    unsigned short f_date;
Packit 679830
    unsigned long f_size;
Packit 679830
# endif
Packit 679830
    char f_name[LZO_FN_NAME_MAX+1];
Packit 679830
#elif (LZO_OS_WIN32 || LZO_OS_WIN64)
Packit 679830
    lzolib_handle_t u_handle;
Packit 679830
    unsigned f_attr;
Packit 679830
    unsigned f_size_low;
Packit 679830
    unsigned f_size_high;
Packit 679830
    char f_name[LZO_FN_NAME_MAX+1];
Packit 679830
#elif (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_TOS || LZO_OS_WIN16)
Packit 679830
    char u_dta[21];
Packit 679830
    unsigned char f_attr;
Packit 679830
    unsigned short f_time;
Packit 679830
    unsigned short f_date;
Packit 679830
    unsigned short f_size_low;
Packit 679830
    unsigned short f_size_high;
Packit 679830
    char f_name[LZO_FN_NAME_MAX+1];
Packit 679830
    char u_dirp;
Packit 679830
#else
Packit 679830
    void* u_dirp;
Packit 679830
    char f_name[LZO_FN_NAME_MAX+1];
Packit 679830
#endif
Packit 679830
} lzo_dir_t;
Packit 679830
#ifndef lzo_dir_p
Packit 679830
#define lzo_dir_p lzo_dir_t *
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN(int, lzo_opendir)  (lzo_dir_p, const char*);
Packit 679830
LZOLIB_EXTERN(int, lzo_readdir)  (lzo_dir_p);
Packit 679830
LZOLIB_EXTERN(int, lzo_closedir) (lzo_dir_p);
Packit 679830
#if (LZO_CC_GNUC) && (defined(__CYGWIN__) || defined(__MINGW32__))
Packit 679830
#  define lzo_alloca(x)     __builtin_alloca((x))
Packit 679830
#elif (LZO_CC_GNUC) && (LZO_OS_CONSOLE_PS2)
Packit 679830
#  define lzo_alloca(x)     __builtin_alloca((x))
Packit 679830
#elif (LZO_CC_BORLANDC || LZO_CC_LCC) && defined(__linux__)
Packit 679830
#elif (HAVE_ALLOCA)
Packit 679830
#  define lzo_alloca(x)     LZO_STATIC_CAST(void *, alloca((x)))
Packit 679830
#endif
Packit 679830
#if (LZO_OS_DOS32 && LZO_CC_GNUC) && defined(__DJGPP__)
Packit 679830
#  define lzo_stackavail()  stackavail()
Packit 679830
#elif (LZO_ARCH_I086 && LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0410))
Packit 679830
#  define lzo_stackavail()  stackavail()
Packit 679830
#elif (LZO_ARCH_I086 && LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0400))
Packit 679830
#  if (LZO_OS_WIN16) && (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM)
Packit 679830
#  else
Packit 679830
#    define lzo_stackavail()  stackavail()
Packit 679830
#  endif
Packit 679830
#elif ((LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_CC_DMC || LZO_CC_SYMANTECC))
Packit 679830
#  define lzo_stackavail()  stackavail()
Packit 679830
#elif ((LZO_ARCH_I086) && LZO_CC_MSC && (_MSC_VER >= 700))
Packit 679830
#  define lzo_stackavail()  _stackavail()
Packit 679830
#elif ((LZO_ARCH_I086) && LZO_CC_MSC)
Packit 679830
#  define lzo_stackavail()  stackavail()
Packit 679830
#elif ((LZO_ARCH_I086 || LZO_ARCH_I386) && LZO_CC_TURBOC && (__TURBOC__ >= 0x0450))
Packit 679830
#  define lzo_stackavail()  stackavail()
Packit 679830
#elif (LZO_ARCH_I086 && LZO_CC_TURBOC && (__TURBOC__ >= 0x0400))
Packit 679830
   LZO_EXTERN_C size_t __cdecl stackavail(void);
Packit 679830
#  define lzo_stackavail()  stackavail()
Packit 679830
#elif ((LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_CC_WATCOMC))
Packit 679830
#  define lzo_stackavail()  stackavail()
Packit 679830
#elif (LZO_ARCH_I086 && LZO_CC_ZORTECHC)
Packit 679830
#  define lzo_stackavail()  _chkstack()
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN(lzo_intptr_t, lzo_get_osfhandle) (int);
Packit 679830
LZOLIB_EXTERN(const char *, lzo_getenv) (const char *);
Packit 679830
LZOLIB_EXTERN(int, lzo_isatty) (int);
Packit 679830
LZOLIB_EXTERN(int, lzo_mkdir) (const char*, unsigned);
Packit 679830
LZOLIB_EXTERN(int, lzo_rmdir) (const char*);
Packit 679830
LZOLIB_EXTERN(int, lzo_response) (int*, char***);
Packit 679830
LZOLIB_EXTERN(int, lzo_set_binmode) (int, int);
Packit 679830
#if defined(lzo_int32e_t)
Packit 679830
LZOLIB_EXTERN(lzo_int32e_t, lzo_muldiv32s) (lzo_int32e_t, lzo_int32e_t, lzo_int32e_t);
Packit 679830
LZOLIB_EXTERN(lzo_uint32e_t, lzo_muldiv32u) (lzo_uint32e_t, lzo_uint32e_t, lzo_uint32e_t);
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN(void, lzo_wildargv) (int*, char***);
Packit 679830
LZOLIB_EXTERN_NOINLINE(void, lzo_debug_break) (void);
Packit 679830
LZOLIB_EXTERN_NOINLINE(void, lzo_debug_nop) (void);
Packit 679830
LZOLIB_EXTERN_NOINLINE(int, lzo_debug_align_check_query) (void);
Packit 679830
LZOLIB_EXTERN_NOINLINE(int, lzo_debug_align_check_enable) (int);
Packit 679830
LZOLIB_EXTERN_NOINLINE(unsigned, lzo_debug_running_on_qemu) (void);
Packit 679830
LZOLIB_EXTERN_NOINLINE(unsigned, lzo_debug_running_on_valgrind) (void);
Packit 679830
#if defined(lzo_int32e_t)
Packit 679830
LZOLIB_EXTERN(int, lzo_tsc_read) (lzo_uint32e_t*);
Packit 679830
#endif
Packit 679830
struct lzo_pclock_handle_t;
Packit 679830
struct lzo_pclock_t;
Packit 679830
typedef struct lzo_pclock_handle_t lzo_pclock_handle_t;
Packit 679830
typedef struct lzo_pclock_t lzo_pclock_t;
Packit 679830
#ifndef lzo_pclock_handle_p
Packit 679830
#define lzo_pclock_handle_p lzo_pclock_handle_t *
Packit 679830
#endif
Packit 679830
#ifndef lzo_pclock_p
Packit 679830
#define lzo_pclock_p lzo_pclock_t *
Packit 679830
#endif
Packit 679830
#define LZO_PCLOCK_REALTIME             0
Packit 679830
#define LZO_PCLOCK_MONOTONIC            1
Packit 679830
#define LZO_PCLOCK_PROCESS_CPUTIME_ID   2
Packit 679830
#define LZO_PCLOCK_THREAD_CPUTIME_ID    3
Packit 679830
typedef int (*lzo_pclock_gettime_t) (lzo_pclock_handle_p, lzo_pclock_p);
Packit 679830
struct lzo_pclock_handle_t {
Packit 679830
    lzolib_handle_t h;
Packit 679830
    int mode;
Packit 679830
    int read_error;
Packit 679830
    const char* name;
Packit 679830
    lzo_pclock_gettime_t gettime;
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
    lzo_uint64l_t ticks_base;
Packit 679830
#endif
Packit 679830
};
Packit 679830
struct lzo_pclock_t {
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
    lzo_int64l_t tv_sec;
Packit 679830
#else
Packit 679830
    lzo_int32l_t tv_sec_high;
Packit 679830
    lzo_uint32l_t tv_sec_low;
Packit 679830
#endif
Packit 679830
    lzo_uint32l_t tv_nsec;
Packit 679830
};
Packit 679830
LZOLIB_EXTERN(int, lzo_pclock_open)  (lzo_pclock_handle_p, int);
Packit 679830
LZOLIB_EXTERN(int, lzo_pclock_open_default) (lzo_pclock_handle_p);
Packit 679830
LZOLIB_EXTERN(int, lzo_pclock_close) (lzo_pclock_handle_p);
Packit 679830
LZOLIB_EXTERN(void, lzo_pclock_read) (lzo_pclock_handle_p, lzo_pclock_p);
Packit 679830
#if !(LZO_CFG_NO_DOUBLE)
Packit 679830
LZOLIB_EXTERN(double, lzo_pclock_get_elapsed) (lzo_pclock_handle_p, const lzo_pclock_p, const lzo_pclock_p);
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN(int, lzo_pclock_flush_cpu_cache) (lzo_pclock_handle_p, unsigned);
Packit 679830
struct lzo_getopt_t;
Packit 679830
typedef struct lzo_getopt_t lzo_getopt_t;
Packit 679830
#ifndef lzo_getopt_p
Packit 679830
#define lzo_getopt_p lzo_getopt_t *
Packit 679830
#endif
Packit 679830
struct lzo_getopt_longopt_t;
Packit 679830
typedef struct lzo_getopt_longopt_t lzo_getopt_longopt_t;
Packit 679830
#ifndef lzo_getopt_longopt_p
Packit 679830
#define lzo_getopt_longopt_p lzo_getopt_longopt_t *
Packit 679830
#endif
Packit 679830
struct lzo_getopt_longopt_t {
Packit 679830
    const char* name;
Packit 679830
    int has_arg;
Packit 679830
    int* flag;
Packit 679830
    int val;
Packit 679830
};
Packit 679830
typedef void (*lzo_getopt_opterr_t)(lzo_getopt_p, const char*, void *);
Packit 679830
struct lzo_getopt_t {
Packit 679830
    void *user;
Packit 679830
    const char *progname;
Packit 679830
    int bad_option;
Packit 679830
    char *optarg;
Packit 679830
    lzo_getopt_opterr_t opterr;
Packit 679830
    int optind;
Packit 679830
    int optopt;
Packit 679830
    int errcount;
Packit 679830
    int argc; char** argv;
Packit 679830
    int eof; int shortpos;
Packit 679830
    int pending_rotate_first, pending_rotate_middle;
Packit 679830
};
Packit 679830
enum { LZO_GETOPT_NO_ARG, LZO_GETOPT_REQUIRED_ARG, LZO_GETOPT_OPTIONAL_ARG, LZO_GETOPT_EXACT_ARG = 0x10 };
Packit 679830
enum { LZO_GETOPT_PERMUTE, LZO_GETOPT_RETURN_IN_ORDER, LZO_GETOPT_REQUIRE_ORDER };
Packit 679830
LZOLIB_EXTERN(void, lzo_getopt_init) (lzo_getopt_p g,
Packit 679830
                                      int start_argc, int argc, char** argv);
Packit 679830
LZOLIB_EXTERN(int, lzo_getopt) (lzo_getopt_p g,
Packit 679830
                                const char* shortopts,
Packit 679830
                                const lzo_getopt_longopt_p longopts,
Packit 679830
                                int* longind);
Packit 679830
typedef struct {
Packit 679830
    lzo_uint32l_t seed;
Packit 679830
} lzo_rand31_t;
Packit 679830
#ifndef lzo_rand31_p
Packit 679830
#define lzo_rand31_p lzo_rand31_t *
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN(void, lzo_srand31) (lzo_rand31_p, lzo_uint32l_t);
Packit 679830
LZOLIB_EXTERN(lzo_uint32l_t, lzo_rand31) (lzo_rand31_p);
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
typedef struct {
Packit 679830
    lzo_uint64l_t seed;
Packit 679830
} lzo_rand48_t;
Packit 679830
#ifndef lzo_rand48_p
Packit 679830
#define lzo_rand48_p lzo_rand48_t *
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN(void, lzo_srand48) (lzo_rand48_p, lzo_uint32l_t);
Packit 679830
LZOLIB_EXTERN(lzo_uint32l_t, lzo_rand48) (lzo_rand48_p);
Packit 679830
LZOLIB_EXTERN(lzo_uint32l_t, lzo_rand48_r32) (lzo_rand48_p);
Packit 679830
#endif
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
typedef struct {
Packit 679830
    lzo_uint64l_t seed;
Packit 679830
} lzo_rand64_t;
Packit 679830
#ifndef lzo_rand64_p
Packit 679830
#define lzo_rand64_p lzo_rand64_t *
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN(void, lzo_srand64) (lzo_rand64_p, lzo_uint64l_t);
Packit 679830
LZOLIB_EXTERN(lzo_uint32l_t, lzo_rand64) (lzo_rand64_p);
Packit 679830
LZOLIB_EXTERN(lzo_uint32l_t, lzo_rand64_r32) (lzo_rand64_p);
Packit 679830
#endif
Packit 679830
typedef struct {
Packit 679830
    unsigned n;
Packit 679830
    lzo_uint32l_t s[624];
Packit 679830
} lzo_randmt_t;
Packit 679830
#ifndef lzo_randmt_p
Packit 679830
#define lzo_randmt_p lzo_randmt_t *
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN(void, lzo_srandmt) (lzo_randmt_p, lzo_uint32l_t);
Packit 679830
LZOLIB_EXTERN(lzo_uint32l_t, lzo_randmt) (lzo_randmt_p);
Packit 679830
LZOLIB_EXTERN(lzo_uint32l_t, lzo_randmt_r32) (lzo_randmt_p);
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
typedef struct {
Packit 679830
    unsigned n;
Packit 679830
    lzo_uint64l_t s[312];
Packit 679830
} lzo_randmt64_t;
Packit 679830
#ifndef lzo_randmt64_p
Packit 679830
#define lzo_randmt64_p lzo_randmt64_t *
Packit 679830
#endif
Packit 679830
LZOLIB_EXTERN(void, lzo_srandmt64) (lzo_randmt64_p, lzo_uint64l_t);
Packit 679830
LZOLIB_EXTERN(lzo_uint64l_t, lzo_randmt64_r64) (lzo_randmt64_p);
Packit 679830
#endif
Packit 679830
#define LZO_SPAWN_P_WAIT    0
Packit 679830
#define LZO_SPAWN_P_NOWAIT  1
Packit 679830
LZOLIB_EXTERN(int, lzo_spawnv)  (int mode, const char* fn, const char* const * argv);
Packit 679830
LZOLIB_EXTERN(int, lzo_spawnvp) (int mode, const char* fn, const char* const * argv);
Packit 679830
LZOLIB_EXTERN(int, lzo_spawnve) (int mode, const char* fn, const char* const * argv, const char * const envp);
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACC_CXX_H)
Packit 679830
#  undef LZO_WANT_ACC_CXX_H
Packit 679830
#ifndef __LZO_CXX_H_INCLUDED
Packit 679830
#define __LZO_CXX_H_INCLUDED 1
Packit 679830
#if defined(__cplusplus)
Packit 679830
#if defined(LZO_CXX_NOTHROW)
Packit 679830
#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul))
Packit 679830
#elif (LZO_CC_BORLANDC && (__BORLANDC__ < 0x0450))
Packit 679830
#elif (LZO_CC_GHS && !defined(__EXCEPTIONS))
Packit 679830
#elif (LZO_CC_HIGHC)
Packit 679830
#elif (LZO_CC_MSC && (_MSC_VER < 1100))
Packit 679830
#elif (LZO_CC_NDPC)
Packit 679830
#elif (LZO_CC_TURBOC)
Packit 679830
#elif (LZO_CC_WATCOMC && !defined(_CPPUNWIND))
Packit 679830
#elif (LZO_CC_ZORTECHC)
Packit 679830
#else
Packit 679830
#  define LZO_CXX_NOTHROW           throw()
Packit 679830
#endif
Packit 679830
#if !defined(LZO_CXX_NOTHROW)
Packit 679830
#  define LZO_CXX_NOTHROW           /*empty*/
Packit 679830
#endif
Packit 679830
#if defined(__LZO_CXX_DO_NEW)
Packit 679830
#elif (LZO_CC_GHS || LZO_CC_NDPC || LZO_CC_PGI)
Packit 679830
#  define __LZO_CXX_DO_NEW          { return 0; }
Packit 679830
#elif ((LZO_CC_BORLANDC || LZO_CC_TURBOC) && LZO_ARCH_I086)
Packit 679830
#  define __LZO_CXX_DO_NEW          { return 0; }
Packit 679830
#else
Packit 679830
#  define __LZO_CXX_DO_NEW          ;
Packit 679830
#endif
Packit 679830
#if defined(__LZO_CXX_DO_DELETE)
Packit 679830
#elif (LZO_CC_BORLANDC || LZO_CC_TURBOC)
Packit 679830
#  define __LZO_CXX_DO_DELETE       { }
Packit 679830
#else
Packit 679830
#  define __LZO_CXX_DO_DELETE       LZO_CXX_NOTHROW { }
Packit 679830
#endif
Packit 679830
#if (LZO_CC_BORLANDC && (__BORLANDC__ < 0x0450))
Packit 679830
#elif (LZO_CC_MSC && LZO_MM_HUGE)
Packit 679830
#  define LZO_CXX_DISABLE_NEW_DELETE private:
Packit 679830
#elif (LZO_CC_MSC && (_MSC_VER < 1100))
Packit 679830
#elif (LZO_CC_NDPC)
Packit 679830
#elif (LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
Packit 679830
#elif (LZO_CC_TURBOC)
Packit 679830
#elif (LZO_CC_WATCOMC && (__WATCOMC__ < 1100))
Packit 679830
#else
Packit 679830
#  define __LZO_CXX_HAVE_ARRAY_NEW 1
Packit 679830
#endif
Packit 679830
#if (__LZO_CXX_HAVE_ARRAY_NEW)
Packit 679830
#  define __LZO_CXX_HAVE_PLACEMENT_NEW 1
Packit 679830
#endif
Packit 679830
#if (__LZO_CXX_HAVE_PLACEMENT_NEW)
Packit 679830
#  if (LZO_CC_GNUC >= 0x030000ul)
Packit 679830
#    define __LZO_CXX_HAVE_PLACEMENT_DELETE 1
Packit 679830
#  elif (LZO_CC_INTELC)
Packit 679830
#    define __LZO_CXX_HAVE_PLACEMENT_DELETE 1
Packit 679830
#  elif (LZO_CC_MSC && (_MSC_VER >= 1200))
Packit 679830
#    define __LZO_CXX_HAVE_PLACEMENT_DELETE 1
Packit 679830
#  elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
Packit 679830
#    define __LZO_CXX_HAVE_PLACEMENT_DELETE 1
Packit 679830
#  elif (LZO_CC_PGI)
Packit 679830
#    define __LZO_CXX_HAVE_PLACEMENT_DELETE 1
Packit 679830
#  endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_CXX_DISABLE_NEW_DELETE)
Packit 679830
#elif defined(new) || defined(delete)
Packit 679830
#  define LZO_CXX_DISABLE_NEW_DELETE private:
Packit 679830
#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025b00ul))
Packit 679830
#  define LZO_CXX_DISABLE_NEW_DELETE private:
Packit 679830
#elif  (LZO_CC_HIGHC)
Packit 679830
#  define LZO_CXX_DISABLE_NEW_DELETE private:
Packit 679830
#elif !(__LZO_CXX_HAVE_ARRAY_NEW)
Packit 679830
#  define LZO_CXX_DISABLE_NEW_DELETE \
Packit 679830
        protected: static void operator delete(void*) __LZO_CXX_DO_DELETE \
Packit 679830
        protected: static void* operator new(size_t) __LZO_CXX_DO_NEW \
Packit 679830
        private:
Packit 679830
#else
Packit 679830
#  define LZO_CXX_DISABLE_NEW_DELETE \
Packit 679830
        protected: static void operator delete(void*) __LZO_CXX_DO_DELETE \
Packit 679830
                   static void operator delete[](void*) __LZO_CXX_DO_DELETE \
Packit 679830
        private:   static void* operator new(size_t)  __LZO_CXX_DO_NEW \
Packit 679830
                   static void* operator new[](size_t) __LZO_CXX_DO_NEW
Packit 679830
#endif
Packit 679830
#if defined(LZO_CXX_TRIGGER_FUNCTION)
Packit 679830
#else
Packit 679830
#  define LZO_CXX_TRIGGER_FUNCTION \
Packit 679830
        protected: virtual const void* lzo_cxx_trigger_function() const; \
Packit 679830
        private:
Packit 679830
#endif
Packit 679830
#if defined(LZO_CXX_TRIGGER_FUNCTION_IMPL)
Packit 679830
#else
Packit 679830
#  define LZO_CXX_TRIGGER_FUNCTION_IMPL(klass) \
Packit 679830
        const void* klass::lzo_cxx_trigger_function() const { return LZO_STATIC_CAST(const void *, 0); }
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACC_CHK_CH)
Packit 679830
#  undef LZO_WANT_ACC_CHK_CH
Packit 679830
#if !defined(LZOCHK_ASSERT)
Packit 679830
#  define LZOCHK_ASSERT(expr)   LZO_COMPILE_TIME_ASSERT_HEADER(expr)
Packit 679830
#endif
Packit 679830
#if !defined(LZOCHK_ASSERT_SIGN_T)
Packit 679830
#  define LZOCHK_ASSERT_SIGN_T(type,relop) \
Packit 679830
        LZOCHK_ASSERT( LZO_STATIC_CAST(type, -1)  relop  LZO_STATIC_CAST(type, 0)) \
Packit 679830
        LZOCHK_ASSERT( LZO_STATIC_CAST(type, ~LZO_STATIC_CAST(type, 0)) relop  LZO_STATIC_CAST(type, 0)) \
Packit 679830
        LZOCHK_ASSERT( LZO_STATIC_CAST(type, ~LZO_STATIC_CAST(type, 0)) ==     LZO_STATIC_CAST(type, -1))
Packit 679830
#endif
Packit 679830
#if !defined(LZOCHK_ASSERT_IS_SIGNED_T)
Packit 679830
#  define LZOCHK_ASSERT_IS_SIGNED_T(type)       LZOCHK_ASSERT_SIGN_T(type,<)
Packit 679830
#endif
Packit 679830
#if !defined(LZOCHK_ASSERT_IS_UNSIGNED_T)
Packit 679830
#  if (LZO_BROKEN_INTEGRAL_PROMOTION)
Packit 679830
#    define LZOCHK_ASSERT_IS_UNSIGNED_T(type) \
Packit 679830
        LZOCHK_ASSERT( LZO_STATIC_CAST(type, -1) > LZO_STATIC_CAST(type, 0) )
Packit 679830
#  else
Packit 679830
#    define LZOCHK_ASSERT_IS_UNSIGNED_T(type)   LZOCHK_ASSERT_SIGN_T(type,>)
Packit 679830
#  endif
Packit 679830
#endif
Packit 679830
#if defined(LZOCHK_CFG_PEDANTIC)
Packit 679830
#if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550) && (__BORLANDC__ < 0x0560))
Packit 679830
#  pragma option push -w-8055
Packit 679830
#elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0550))
Packit 679830
#  pragma option push -w-osh
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if (LZO_0xffffffffL - LZO_UINT32_C(4294967294) != 1)
Packit 679830
#  error "preprocessor error"
Packit 679830
#endif
Packit 679830
#if (LZO_0xffffffffL - LZO_UINT32_C(0xfffffffd) != 2)
Packit 679830
#  error "preprocessor error"
Packit 679830
#endif
Packit 679830
#if +0
Packit 679830
#  error "preprocessor error"
Packit 679830
#endif
Packit 679830
#if -0
Packit 679830
#  error "preprocessor error"
Packit 679830
#endif
Packit 679830
#if +0 != 0
Packit 679830
#  error "preprocessor error"
Packit 679830
#endif
Packit 679830
#if -0 != 0
Packit 679830
#  error "preprocessor error"
Packit 679830
#endif
Packit 679830
#define LZOCHK_VAL  1
Packit 679830
#define LZOCHK_TMP1 LZOCHK_VAL
Packit 679830
#undef LZOCHK_VAL
Packit 679830
#define LZOCHK_VAL  2
Packit 679830
#define LZOCHK_TMP2 LZOCHK_VAL
Packit 679830
#if (LZOCHK_TMP1 != 2)
Packit 679830
#  error "preprocessor error 3a"
Packit 679830
#endif
Packit 679830
#if (LZOCHK_TMP2 != 2)
Packit 679830
#  error "preprocessor error 3b"
Packit 679830
#endif
Packit 679830
#undef LZOCHK_VAL
Packit 679830
#if (LZOCHK_TMP2)
Packit 679830
#  error "preprocessor error 3c"
Packit 679830
#endif
Packit 679830
#if (LZOCHK_TMP2 + 0 != 0)
Packit 679830
#  error "preprocessor error 3d"
Packit 679830
#endif
Packit 679830
#undef LZOCHK_TMP1
Packit 679830
#undef LZOCHK_TMP2
Packit 679830
#if 0 || defined(LZOCHK_CFG_PEDANTIC)
Packit 679830
#  if (LZO_ARCH_MIPS) && defined(_MIPS_SZINT)
Packit 679830
    LZOCHK_ASSERT((_MIPS_SZINT) == 8 * sizeof(int))
Packit 679830
#  endif
Packit 679830
#  if (LZO_ARCH_MIPS) && defined(_MIPS_SZLONG)
Packit 679830
    LZOCHK_ASSERT((_MIPS_SZLONG) == 8 * sizeof(long))
Packit 679830
#  endif
Packit 679830
#  if (LZO_ARCH_MIPS) && defined(_MIPS_SZPTR)
Packit 679830
    LZOCHK_ASSERT((_MIPS_SZPTR) == 8 * sizeof(void *))
Packit 679830
#  endif
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(1 == 1)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1u,1) == 1)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1u,2) == 3)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1u,3) == 7)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1u,8) == 255)
Packit 679830
#if (SIZEOF_INT >= 2)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1,15) == 32767)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1u,16) == 0xffffU)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(0u,16) == 0u)
Packit 679830
#else
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1ul,16) == 0xffffUL)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(0ul,16) == 0ul)
Packit 679830
#endif
Packit 679830
#if (SIZEOF_INT >= 4)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1,31) == 2147483647)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1u,32) == 0xffffffffU)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(0u,32) == 0u)
Packit 679830
#endif
Packit 679830
#if (SIZEOF_LONG >= 4)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1ul,32) == 0xffffffffUL)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(0ul,32) == 0ul)
Packit 679830
#endif
Packit 679830
#if (SIZEOF_LONG >= 8)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1ul,64) == 0xffffffffffffffffUL)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(0ul,64) == 0ul)
Packit 679830
#endif
Packit 679830
#if !(LZO_BROKEN_INTEGRAL_PROMOTION)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1u,SIZEOF_INT*8) == ~0u)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1ul,SIZEOF_LONG*8) == ~0ul)
Packit 679830
#endif
Packit 679830
#if 1
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(0,0) == 0)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(1,0) == 0)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(2,0) == 0)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(4,0) == 0)
Packit 679830
#endif
Packit 679830
#if 1
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(2,1) == 2)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(4,1) == 4)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(8,1) == 8)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(2,2) == 2+4)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(4,2) == 4+8)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(8,2) == 8+16)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(2,3) == 2+4+8)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(4,3) == 4+8+16)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(8,3) == 8+16+32)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(7,1) == 7)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(7,2) == 7+14)
Packit 679830
    LZOCHK_ASSERT(__LZO_MASK_GEN(7,3) == 7+14+28)
Packit 679830
#endif
Packit 679830
#if !(LZO_BROKEN_SIGNED_RIGHT_SHIFT)
Packit 679830
    LZOCHK_ASSERT(((-1) >> 7) == -1)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(((1)  >> 7) == 0)
Packit 679830
#if (LZO_CC_INTELC && (__INTEL_COMPILER >= 900))
Packit 679830
#  pragma warning(push)
Packit 679830
#  pragma warning(disable: 1025)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT((~0l  & ~0)  == ~0l)
Packit 679830
    LZOCHK_ASSERT((~0l  & ~0u) == ~0u)
Packit 679830
    LZOCHK_ASSERT((~0ul & ~0)  == ~0ul)
Packit 679830
    LZOCHK_ASSERT((~0ul & ~0u) == ~0u)
Packit 679830
#if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
Packit 679830
#elif (SIZEOF_INT == 2)
Packit 679830
    LZOCHK_ASSERT((~0l  & ~0u) == 0xffffU)
Packit 679830
    LZOCHK_ASSERT((~0ul & ~0u) == 0xffffU)
Packit 679830
#elif (SIZEOF_INT == 4)
Packit 679830
    LZOCHK_ASSERT((~0l  & ~0u) == 0xffffffffU)
Packit 679830
    LZOCHK_ASSERT((~0ul & ~0u) == 0xffffffffU)
Packit 679830
#endif
Packit 679830
#if (LZO_CC_INTELC && (__INTEL_COMPILER >= 900))
Packit 679830
#  pragma warning(pop)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(signed char)
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(unsigned char)
Packit 679830
    LZOCHK_ASSERT(sizeof(signed char) == sizeof(char))
Packit 679830
    LZOCHK_ASSERT(sizeof(unsigned char) == sizeof(char))
Packit 679830
    LZOCHK_ASSERT(sizeof(char) == 1)
Packit 679830
#if (LZO_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
Packit 679830
#else
Packit 679830
    LZOCHK_ASSERT(sizeof(char) == sizeof(LZO_STATIC_CAST(char, 0)))
Packit 679830
#endif
Packit 679830
#if defined(__cplusplus)
Packit 679830
    LZOCHK_ASSERT(sizeof('\0') == sizeof(char))
Packit 679830
#else
Packit 679830
#  if (LZO_CC_DMC)
Packit 679830
#  else
Packit 679830
    LZOCHK_ASSERT(sizeof('\0') == sizeof(int))
Packit 679830
#  endif
Packit 679830
#endif
Packit 679830
#if defined(__lzo_alignof)
Packit 679830
    LZOCHK_ASSERT(__lzo_alignof(char) == 1)
Packit 679830
    LZOCHK_ASSERT(__lzo_alignof(signed char) == 1)
Packit 679830
    LZOCHK_ASSERT(__lzo_alignof(unsigned char) == 1)
Packit 679830
#if defined(lzo_int16e_t)
Packit 679830
    LZOCHK_ASSERT(__lzo_alignof(lzo_int16e_t) >= 1)
Packit 679830
    LZOCHK_ASSERT(__lzo_alignof(lzo_int16e_t) <= 2)
Packit 679830
#endif
Packit 679830
#if defined(lzo_int32e_t)
Packit 679830
    LZOCHK_ASSERT(__lzo_alignof(lzo_int32e_t) >= 1)
Packit 679830
    LZOCHK_ASSERT(__lzo_alignof(lzo_int32e_t) <= 4)
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(short)
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(unsigned short)
Packit 679830
    LZOCHK_ASSERT(sizeof(short) == sizeof(unsigned short))
Packit 679830
#if !(LZO_ABI_I8LP16)
Packit 679830
    LZOCHK_ASSERT(sizeof(short) >= 2)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(sizeof(short) >= sizeof(char))
Packit 679830
#if (LZO_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
Packit 679830
#else
Packit 679830
    LZOCHK_ASSERT(sizeof(short) == sizeof(LZO_STATIC_CAST(short, 0)))
Packit 679830
#endif
Packit 679830
#if (SIZEOF_SHORT > 0)
Packit 679830
    LZOCHK_ASSERT(sizeof(short) == SIZEOF_SHORT)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(int)
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(unsigned int)
Packit 679830
    LZOCHK_ASSERT(sizeof(int) == sizeof(unsigned int))
Packit 679830
#if !(LZO_ABI_I8LP16)
Packit 679830
    LZOCHK_ASSERT(sizeof(int) >= 2)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(sizeof(int) >= sizeof(short))
Packit 679830
    LZOCHK_ASSERT(sizeof(int) == sizeof(0))
Packit 679830
    LZOCHK_ASSERT(sizeof(int) == sizeof(LZO_STATIC_CAST(int, 0)))
Packit 679830
#if (SIZEOF_INT > 0)
Packit 679830
    LZOCHK_ASSERT(sizeof(int) == SIZEOF_INT)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(sizeof(0) == sizeof(int))
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(long)
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(unsigned long)
Packit 679830
    LZOCHK_ASSERT(sizeof(long) == sizeof(unsigned long))
Packit 679830
#if !(LZO_ABI_I8LP16)
Packit 679830
    LZOCHK_ASSERT(sizeof(long) >= 4)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(sizeof(long) >= sizeof(int))
Packit 679830
    LZOCHK_ASSERT(sizeof(long) == sizeof(0L))
Packit 679830
    LZOCHK_ASSERT(sizeof(long) == sizeof(LZO_STATIC_CAST(long, 0)))
Packit 679830
#if (SIZEOF_LONG > 0)
Packit 679830
    LZOCHK_ASSERT(sizeof(long) == SIZEOF_LONG)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(sizeof(0L) == sizeof(long))
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(size_t)
Packit 679830
    LZOCHK_ASSERT(sizeof(size_t) >= sizeof(int))
Packit 679830
    LZOCHK_ASSERT(sizeof(size_t) == sizeof(sizeof(0)))
Packit 679830
#if (SIZEOF_SIZE_T > 0)
Packit 679830
    LZOCHK_ASSERT(sizeof(size_t) == SIZEOF_SIZE_T)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(ptrdiff_t)
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(int))
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(size_t))
Packit 679830
#if !(LZO_BROKEN_SIZEOF)
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(LZO_STATIC_CAST(char*, 0) - LZO_STATIC_CAST(char*, 0)))
Packit 679830
# if (LZO_HAVE_MM_HUGE_PTR)
Packit 679830
    LZOCHK_ASSERT(4 == sizeof(LZO_STATIC_CAST(char __huge*, 0) - LZO_STATIC_CAST(char __huge*, 0)))
Packit 679830
# endif
Packit 679830
#endif
Packit 679830
#if (SIZEOF_PTRDIFF_T > 0)
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) == SIZEOF_PTRDIFF_T)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(sizeof(void*) >= sizeof(char*))
Packit 679830
#if (SIZEOF_VOID_P > 0)
Packit 679830
    LZOCHK_ASSERT(sizeof(void*) == SIZEOF_VOID_P)
Packit 679830
    LZOCHK_ASSERT(sizeof(char*) == SIZEOF_VOID_P)
Packit 679830
#endif
Packit 679830
#if (LZO_HAVE_MM_HUGE_PTR)
Packit 679830
    LZOCHK_ASSERT(4 == sizeof(void __huge*))
Packit 679830
    LZOCHK_ASSERT(4 == sizeof(char __huge*))
Packit 679830
#endif
Packit 679830
#if (LZO_ABI_I8LP16)
Packit 679830
    LZOCHK_ASSERT((((1u  <<  7) + 1) >>  7) == 1)
Packit 679830
    LZOCHK_ASSERT((((1ul << 15) + 1) >> 15) == 1)
Packit 679830
#else
Packit 679830
    LZOCHK_ASSERT((((1u  << 15) + 1) >> 15) == 1)
Packit 679830
    LZOCHK_ASSERT((((1ul << 31) + 1) >> 31) == 1)
Packit 679830
#endif
Packit 679830
#if defined(LZOCHK_CFG_PEDANTIC)
Packit 679830
#if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
Packit 679830
#else
Packit 679830
    LZOCHK_ASSERT((1   << (8*SIZEOF_INT-1)) < 0)
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT((1u  << (8*SIZEOF_INT-1)) > 0)
Packit 679830
#if defined(LZOCHK_CFG_PEDANTIC)
Packit 679830
    LZOCHK_ASSERT((1l  << (8*SIZEOF_LONG-1)) < 0)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT((1ul << (8*SIZEOF_LONG-1)) > 0)
Packit 679830
#if defined(lzo_int16e_t)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int16e_t) == 2)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int16e_t) == LZO_SIZEOF_LZO_INT16E_T)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_uint16e_t) == 2)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int16e_t) == sizeof(lzo_uint16e_t))
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(lzo_int16e_t)
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uint16e_t)
Packit 679830
#if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
Packit 679830
#else
Packit 679830
    LZOCHK_ASSERT((LZO_STATIC_CAST(lzo_uint16e_t, (~LZO_STATIC_CAST(lzo_uint16e_t,0ul))) >> 15) == 1)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT( LZO_STATIC_CAST(lzo_int16e_t, (1 + ~LZO_STATIC_CAST(lzo_int16e_t, 0))) == 0)
Packit 679830
#if defined(LZOCHK_CFG_PEDANTIC)
Packit 679830
    LZOCHK_ASSERT( LZO_STATIC_CAST(lzo_uint16e_t, (1 + ~LZO_STATIC_CAST(lzo_uint16e_t, 0))) == 0)
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(lzo_int32e_t)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32e_t) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32e_t) == LZO_SIZEOF_LZO_INT32E_T)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_uint32e_t) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32e_t) == sizeof(lzo_uint32e_t))
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(lzo_int32e_t)
Packit 679830
    LZOCHK_ASSERT(((( LZO_STATIC_CAST(lzo_int32e_t, 1) << 30) + 1) >> 30) == 1)
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uint32e_t)
Packit 679830
    LZOCHK_ASSERT(((( LZO_STATIC_CAST(lzo_uint32e_t, 1) << 31) + 1) >> 31) == 1)
Packit 679830
    LZOCHK_ASSERT((LZO_STATIC_CAST(lzo_uint32e_t, (~LZO_STATIC_CAST(lzo_uint32e_t, 0ul))) >> 31) == 1)
Packit 679830
    LZOCHK_ASSERT( LZO_STATIC_CAST(lzo_int32e_t, (1 + ~LZO_STATIC_CAST(lzo_int32e_t, 0))) == 0)
Packit 679830
#if defined(LZOCHK_CFG_PEDANTIC)
Packit 679830
    LZOCHK_ASSERT( LZO_STATIC_CAST(lzo_uint32e_t, (1 + ~LZO_STATIC_CAST(lzo_uint32e_t, 0))) == 0)
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(lzo_int32e_t)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32l_t) >= sizeof(lzo_int32e_t))
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32l_t) >= 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32l_t) == LZO_SIZEOF_LZO_INT32L_T)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_uint32l_t) >= 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32l_t) == sizeof(lzo_uint32l_t))
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(lzo_int32l_t)
Packit 679830
    LZOCHK_ASSERT(((( LZO_STATIC_CAST(lzo_int32l_t, 1) << 30) + 1) >> 30) == 1)
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uint32l_t)
Packit 679830
    LZOCHK_ASSERT(((( LZO_STATIC_CAST(lzo_uint32l_t, 1) << 31) + 1) >> 31) == 1)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32f_t) >= sizeof(int))
Packit 679830
#if defined(lzo_int32e_t)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32f_t) >= sizeof(lzo_int32e_t))
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32f_t) >= sizeof(lzo_int32l_t))
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32f_t) >= 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32f_t) >= sizeof(lzo_int32l_t))
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32f_t) == LZO_SIZEOF_LZO_INT32F_T)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_uint32f_t) >= 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_uint32f_t) >= sizeof(lzo_uint32l_t))
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int32f_t) == sizeof(lzo_uint32f_t))
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(lzo_int32f_t)
Packit 679830
    LZOCHK_ASSERT(((( LZO_STATIC_CAST(lzo_int32f_t, 1) << 30) + 1) >> 30) == 1)
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uint32f_t)
Packit 679830
    LZOCHK_ASSERT(((( LZO_STATIC_CAST(lzo_uint32f_t, 1) << 31) + 1) >> 31) == 1)
Packit 679830
#if defined(lzo_int64e_t)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64e_t) == 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64e_t) == LZO_SIZEOF_LZO_INT64E_T)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_uint64e_t) == 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64e_t) == sizeof(lzo_uint64e_t))
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(lzo_int64e_t)
Packit 679830
#if (LZO_CC_BORLANDC && (__BORLANDC__ < 0x0530))
Packit 679830
#else
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uint64e_t)
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
#if defined(lzo_int64e_t)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64l_t) >= sizeof(lzo_int64e_t))
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64l_t) >= 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64l_t) == LZO_SIZEOF_LZO_INT64L_T)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_uint64l_t) >= 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64l_t) == sizeof(lzo_uint64l_t))
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(lzo_int64l_t)
Packit 679830
    LZOCHK_ASSERT(((( LZO_STATIC_CAST(lzo_int64l_t, 1) << 62) + 1) >> 62) == 1)
Packit 679830
    LZOCHK_ASSERT(((( LZO_INT64_C(1) << 62) + 1) >> 62) == 1)
Packit 679830
#if (LZO_CC_BORLANDC && (__BORLANDC__ < 0x0530))
Packit 679830
#else
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uint64l_t)
Packit 679830
    LZOCHK_ASSERT(LZO_UINT64_C(18446744073709551615)     > 0)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(((( LZO_STATIC_CAST(lzo_uint64l_t, 1) << 63) + 1) >> 63) == 1)
Packit 679830
    LZOCHK_ASSERT(((( LZO_UINT64_C(1) << 63) + 1) >> 63) == 1)
Packit 679830
#if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020600ul))
Packit 679830
    LZOCHK_ASSERT(LZO_INT64_C(9223372036854775807)       > LZO_INT64_C(0))
Packit 679830
#else
Packit 679830
    LZOCHK_ASSERT(LZO_INT64_C(9223372036854775807)       > 0)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(LZO_INT64_C(-9223372036854775807) - 1  < 0)
Packit 679830
    LZOCHK_ASSERT( LZO_INT64_C(9223372036854775807) % LZO_INT32_C(2147483629)  == 721)
Packit 679830
    LZOCHK_ASSERT( LZO_INT64_C(9223372036854775807) % LZO_INT32_C(2147483647)  == 1)
Packit 679830
    LZOCHK_ASSERT(LZO_UINT64_C(9223372036854775807) % LZO_UINT32_C(2147483629) == 721)
Packit 679830
    LZOCHK_ASSERT(LZO_UINT64_C(9223372036854775807) % LZO_UINT32_C(2147483647) == 1)
Packit 679830
#endif
Packit 679830
#if defined(lzo_int64f_t)
Packit 679830
#if defined(lzo_int64e_t)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64f_t) >= sizeof(lzo_int64e_t))
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64f_t) >= sizeof(lzo_int64l_t))
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64f_t) >= 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64f_t) >= sizeof(lzo_int64l_t))
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64f_t) == LZO_SIZEOF_LZO_INT64F_T)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_uint64f_t) >= 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_uint64f_t) >= sizeof(lzo_uint64l_t))
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int64f_t) == sizeof(lzo_uint64f_t))
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(lzo_int64f_t)
Packit 679830
#if (LZO_CC_BORLANDC && (__BORLANDC__ < 0x0530))
Packit 679830
#else
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uint64f_t)
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if !defined(__LZO_INTPTR_T_IS_POINTER)
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(lzo_intptr_t)
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uintptr_t)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_intptr_t) >= sizeof(void *))
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_intptr_t) == LZO_SIZEOF_LZO_INTPTR_T)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_intptr_t) == sizeof(lzo_uintptr_t))
Packit 679830
#if defined(lzo_word_t)
Packit 679830
    LZOCHK_ASSERT(LZO_WORDSIZE == LZO_SIZEOF_LZO_WORD_T)
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_word_t)
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(lzo_sword_t)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_word_t) == LZO_SIZEOF_LZO_WORD_T)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_word_t) == sizeof(lzo_sword_t))
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int8_t) == 1)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_uint8_t) == 1)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t))
Packit 679830
    LZOCHK_ASSERT_IS_SIGNED_T(lzo_int8_t)
Packit 679830
    LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uint8_t)
Packit 679830
#if defined(LZO_INT16_C)
Packit 679830
    LZOCHK_ASSERT(sizeof(LZO_INT16_C(0)) >= 2)
Packit 679830
    LZOCHK_ASSERT(sizeof(LZO_UINT16_C(0)) >= 2)
Packit 679830
    LZOCHK_ASSERT((LZO_UINT16_C(0xffff) >> 15) == 1)
Packit 679830
#endif
Packit 679830
#if defined(LZO_INT32_C)
Packit 679830
    LZOCHK_ASSERT(sizeof(LZO_INT32_C(0)) >= 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(LZO_UINT32_C(0)) >= 4)
Packit 679830
    LZOCHK_ASSERT((LZO_UINT32_C(0xffffffff) >> 31) == 1)
Packit 679830
#endif
Packit 679830
#if defined(LZO_INT64_C)
Packit 679830
#if (LZO_CC_BORLANDC && (__BORLANDC__ < 0x0560))
Packit 679830
#else
Packit 679830
    LZOCHK_ASSERT(sizeof(LZO_INT64_C(0)) >= 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(LZO_UINT64_C(0)) >= 8)
Packit 679830
#endif
Packit 679830
    LZOCHK_ASSERT((LZO_UINT64_C(0xffffffffffffffff) >> 63) == 1)
Packit 679830
    LZOCHK_ASSERT((LZO_UINT64_C(0xffffffffffffffff) & ~0)  == LZO_UINT64_C(0xffffffffffffffff))
Packit 679830
    LZOCHK_ASSERT((LZO_UINT64_C(0xffffffffffffffff) & ~0l) == LZO_UINT64_C(0xffffffffffffffff))
Packit 679830
#if (SIZEOF_INT == 4)
Packit 679830
# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul))
Packit 679830
# else
Packit 679830
    LZOCHK_ASSERT((LZO_UINT64_C(0xffffffffffffffff) & (~0u+0u)) == 0xffffffffu)
Packit 679830
# endif
Packit 679830
#endif
Packit 679830
#if (SIZEOF_LONG == 4)
Packit 679830
# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul))
Packit 679830
# else
Packit 679830
    LZOCHK_ASSERT((LZO_UINT64_C(0xffffffffffffffff) & (~0ul+0ul)) == 0xfffffffful)
Packit 679830
# endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM)
Packit 679830
    LZOCHK_ASSERT(sizeof(void*) == 2)
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) == 2)
Packit 679830
#elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE)
Packit 679830
    LZOCHK_ASSERT(sizeof(void*) == 4)
Packit 679830
#endif
Packit 679830
#if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_COMPACT)
Packit 679830
    LZOCHK_ASSERT(sizeof(void (*)(void)) == 2)
Packit 679830
#elif (LZO_MM_MEDIUM || LZO_MM_LARGE || LZO_MM_HUGE)
Packit 679830
    LZOCHK_ASSERT(sizeof(void (*)(void)) == 4)
Packit 679830
#endif
Packit 679830
#if (LZO_ABI_ILP32)
Packit 679830
    LZOCHK_ASSERT(sizeof(int) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(long) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(void*) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
Packit 679830
    LZOCHK_ASSERT(sizeof(size_t) == sizeof(void*))
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_intptr_t) == sizeof(void *))
Packit 679830
#endif
Packit 679830
#if (LZO_ABI_ILP64)
Packit 679830
    LZOCHK_ASSERT(sizeof(int) == 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(long) == 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(void*) == 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
Packit 679830
    LZOCHK_ASSERT(sizeof(size_t) == sizeof(void*))
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_intptr_t) == sizeof(void *))
Packit 679830
#endif
Packit 679830
#if (LZO_ABI_IP32L64)
Packit 679830
    LZOCHK_ASSERT(sizeof(int) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(long) == 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(void*) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
Packit 679830
    LZOCHK_ASSERT(sizeof(size_t) == sizeof(void*))
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_intptr_t) == sizeof(void *))
Packit 679830
#endif
Packit 679830
#if (LZO_ABI_LLP64)
Packit 679830
    LZOCHK_ASSERT(sizeof(int) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(long) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(void*) == 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
Packit 679830
    LZOCHK_ASSERT(sizeof(size_t) == sizeof(void*))
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_intptr_t) == sizeof(void *))
Packit 679830
#endif
Packit 679830
#if (LZO_ABI_LP32)
Packit 679830
    LZOCHK_ASSERT(sizeof(int) == 2)
Packit 679830
    LZOCHK_ASSERT(sizeof(long) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(void*) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_intptr_t) == sizeof(void *))
Packit 679830
#endif
Packit 679830
#if (LZO_ABI_LP64)
Packit 679830
    LZOCHK_ASSERT(sizeof(int) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(long) == 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(void*) == 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
Packit 679830
    LZOCHK_ASSERT(sizeof(size_t) == sizeof(void*))
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_intptr_t) == sizeof(void *))
Packit 679830
#endif
Packit 679830
#if (LZO_ARCH_I086)
Packit 679830
    LZOCHK_ASSERT(sizeof(size_t) == 2)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_intptr_t) == sizeof(void *))
Packit 679830
#elif (LZO_ARCH_I386 || LZO_ARCH_M68K)
Packit 679830
    LZOCHK_ASSERT(sizeof(size_t) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(lzo_intptr_t) == sizeof(void *))
Packit 679830
#endif
Packit 679830
#if (LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_WIN32)
Packit 679830
    LZOCHK_ASSERT(sizeof(size_t) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) == 4)
Packit 679830
    LZOCHK_ASSERT(sizeof(void (*)(void)) == 4)
Packit 679830
#elif (LZO_OS_WIN64)
Packit 679830
    LZOCHK_ASSERT(sizeof(size_t) == 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(ptrdiff_t) == 8)
Packit 679830
    LZOCHK_ASSERT(sizeof(void (*)(void)) == 8)
Packit 679830
#endif
Packit 679830
#if (LZO_CC_NDPC)
Packit 679830
#elif (SIZEOF_INT > 1)
Packit 679830
    LZOCHK_ASSERT( LZO_STATIC_CAST(int, LZO_STATIC_CAST(unsigned char, LZO_STATIC_CAST(signed char, -1))) == 255)
Packit 679830
#endif
Packit 679830
#if defined(LZOCHK_CFG_PEDANTIC)
Packit 679830
#if (LZO_CC_KEILC)
Packit 679830
#elif (LZO_CC_NDPC)
Packit 679830
#elif !(LZO_BROKEN_INTEGRAL_PROMOTION) && (SIZEOF_INT > 1)
Packit 679830
    LZOCHK_ASSERT( ((LZO_STATIC_CAST(unsigned char, 128)) << LZO_STATIC_CAST(int, (8*sizeof(int)-8))) < 0)
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZOCHK_CFG_PEDANTIC)
Packit 679830
#if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0560))
Packit 679830
#  pragma option pop
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACCLIB_VGET)
Packit 679830
#  undef LZO_WANT_ACCLIB_VGET
Packit 679830
#define __LZOLIB_VGET_CH_INCLUDED 1
Packit 679830
#if !defined(LZOLIB_PUBLIC)
Packit 679830
#  define LZOLIB_PUBLIC(r,f)                r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
#if !defined(LZOLIB_PUBLIC_NOINLINE)
Packit 679830
#  if !defined(__lzo_noinline)
Packit 679830
#    define LZOLIB_PUBLIC_NOINLINE(r,f)     r __LZOLIB_FUNCNAME(f)
Packit 679830
#  elif (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x030400ul) || LZO_CC_LLVM)
Packit 679830
#    define LZOLIB_PUBLIC_NOINLINE(r,f)     __lzo_noinline __attribute__((__used__)) r __LZOLIB_FUNCNAME(f)
Packit 679830
#  else
Packit 679830
#    define LZOLIB_PUBLIC_NOINLINE(r,f)     __lzo_noinline r __LZOLIB_FUNCNAME(f)
Packit 679830
#  endif
Packit 679830
#endif
Packit 679830
extern void* volatile lzo_vget_ptr__;
Packit 679830
#if (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x030400ul) || LZO_CC_LLVM)
Packit 679830
void* volatile __attribute__((__used__)) lzo_vget_ptr__ = LZO_STATIC_CAST(void *, 0);
Packit 679830
#else
Packit 679830
void* volatile lzo_vget_ptr__ = LZO_STATIC_CAST(void *, 0);
Packit 679830
#endif
Packit 679830
#ifndef __LZOLIB_VGET_BODY
Packit 679830
#define __LZOLIB_VGET_BODY(T) \
Packit 679830
    if __lzo_unlikely(lzo_vget_ptr__) { \
Packit 679830
        typedef T __lzo_may_alias TT; \
Packit 679830
        unsigned char e; expr &= 255; e = LZO_STATIC_CAST(unsigned char, expr); \
Packit 679830
        * LZO_STATIC_CAST(TT *, lzo_vget_ptr__) = v; \
Packit 679830
        * LZO_STATIC_CAST(unsigned char *, lzo_vget_ptr__) = e; \
Packit 679830
        v = * LZO_STATIC_CAST(TT *, lzo_vget_ptr__); \
Packit 679830
    } \
Packit 679830
    return v;
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC_NOINLINE(short, lzo_vget_short) (short v, int expr)
Packit 679830
{
Packit 679830
    __LZOLIB_VGET_BODY(short)
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC_NOINLINE(int, lzo_vget_int) (int v, int expr)
Packit 679830
{
Packit 679830
    __LZOLIB_VGET_BODY(int)
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC_NOINLINE(long, lzo_vget_long) (long v, int expr)
Packit 679830
{
Packit 679830
    __LZOLIB_VGET_BODY(long)
Packit 679830
}
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
LZOLIB_PUBLIC_NOINLINE(lzo_int64l_t, lzo_vget_lzo_int64l_t) (lzo_int64l_t v, int expr)
Packit 679830
{
Packit 679830
    __LZOLIB_VGET_BODY(lzo_int64l_t)
Packit 679830
}
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC_NOINLINE(lzo_hsize_t, lzo_vget_lzo_hsize_t) (lzo_hsize_t v, int expr)
Packit 679830
{
Packit 679830
    __LZOLIB_VGET_BODY(lzo_hsize_t)
Packit 679830
}
Packit 679830
#if !(LZO_CFG_NO_DOUBLE)
Packit 679830
LZOLIB_PUBLIC_NOINLINE(double, lzo_vget_double) (double v, int expr)
Packit 679830
{
Packit 679830
    __LZOLIB_VGET_BODY(double)
Packit 679830
}
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC_NOINLINE(lzo_hvoid_p, lzo_vget_lzo_hvoid_p) (lzo_hvoid_p v, int expr)
Packit 679830
{
Packit 679830
    __LZOLIB_VGET_BODY(lzo_hvoid_p)
Packit 679830
}
Packit 679830
#if (LZO_ARCH_I086 && LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) && !defined(__cplusplus)
Packit 679830
LZOLIB_PUBLIC_NOINLINE(lzo_hvoid_p, lzo_vget_lzo_hvoid_cp) (const lzo_hvoid_p vv, int expr)
Packit 679830
{
Packit 679830
    lzo_hvoid_p v = (lzo_hvoid_p) vv;
Packit 679830
    __LZOLIB_VGET_BODY(lzo_hvoid_p)
Packit 679830
}
Packit 679830
#else
Packit 679830
LZOLIB_PUBLIC_NOINLINE(const lzo_hvoid_p, lzo_vget_lzo_hvoid_cp) (const lzo_hvoid_p v, int expr)
Packit 679830
{
Packit 679830
    __LZOLIB_VGET_BODY(const lzo_hvoid_p)
Packit 679830
}
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACCLIB_HMEMCPY)
Packit 679830
#  undef LZO_WANT_ACCLIB_HMEMCPY
Packit 679830
#define __LZOLIB_HMEMCPY_CH_INCLUDED 1
Packit 679830
#if !defined(LZOLIB_PUBLIC)
Packit 679830
#  define LZOLIB_PUBLIC(r,f)    r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC(int, lzo_hmemcmp) (const lzo_hvoid_p s1, const lzo_hvoid_p s2, lzo_hsize_t len)
Packit 679830
{
Packit 679830
#if (LZO_HAVE_MM_HUGE_PTR) || !(HAVE_MEMCMP)
Packit 679830
    const lzo_hbyte_p p1 = LZO_STATIC_CAST(const lzo_hbyte_p, s1);
Packit 679830
    const lzo_hbyte_p p2 = LZO_STATIC_CAST(const lzo_hbyte_p, s2);
Packit 679830
    if __lzo_likely(len > 0) do
Packit 679830
    {
Packit 679830
        int d = *p1 - *p2;
Packit 679830
        if (d != 0)
Packit 679830
            return d;
Packit 679830
        p1++; p2++;
Packit 679830
    } while __lzo_likely(--len > 0);
Packit 679830
    return 0;
Packit 679830
#else
Packit 679830
    return memcmp(s1, s2, len);
Packit 679830
#endif
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemcpy) (lzo_hvoid_p dest, const lzo_hvoid_p src, lzo_hsize_t len)
Packit 679830
{
Packit 679830
#if (LZO_HAVE_MM_HUGE_PTR) || !(HAVE_MEMCPY)
Packit 679830
    lzo_hbyte_p p1 = LZO_STATIC_CAST(lzo_hbyte_p, dest);
Packit 679830
    const lzo_hbyte_p p2 = LZO_STATIC_CAST(const lzo_hbyte_p, src);
Packit 679830
    if (!(len > 0) || p1 == p2)
Packit 679830
        return dest;
Packit 679830
    do
Packit 679830
        *p1++ = *p2++;
Packit 679830
    while __lzo_likely(--len > 0);
Packit 679830
    return dest;
Packit 679830
#else
Packit 679830
    return memcpy(dest, src, len);
Packit 679830
#endif
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemmove) (lzo_hvoid_p dest, const lzo_hvoid_p src, lzo_hsize_t len)
Packit 679830
{
Packit 679830
#if (LZO_HAVE_MM_HUGE_PTR) || !(HAVE_MEMMOVE)
Packit 679830
    lzo_hbyte_p p1 = LZO_STATIC_CAST(lzo_hbyte_p, dest);
Packit 679830
    const lzo_hbyte_p p2 = LZO_STATIC_CAST(const lzo_hbyte_p, src);
Packit 679830
    if (!(len > 0) || p1 == p2)
Packit 679830
        return dest;
Packit 679830
    if (p1 < p2)
Packit 679830
    {
Packit 679830
        do
Packit 679830
            *p1++ = *p2++;
Packit 679830
        while __lzo_likely(--len > 0);
Packit 679830
    }
Packit 679830
    else
Packit 679830
    {
Packit 679830
        p1 += len;
Packit 679830
        p2 += len;
Packit 679830
        do
Packit 679830
            *--p1 = *--p2;
Packit 679830
        while __lzo_likely(--len > 0);
Packit 679830
    }
Packit 679830
    return dest;
Packit 679830
#else
Packit 679830
    return memmove(dest, src, len);
Packit 679830
#endif
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemset) (lzo_hvoid_p s, int cc, lzo_hsize_t len)
Packit 679830
{
Packit 679830
#if (LZO_HAVE_MM_HUGE_PTR) || !(HAVE_MEMSET)
Packit 679830
    lzo_hbyte_p p = LZO_STATIC_CAST(lzo_hbyte_p, s);
Packit 679830
    unsigned char c = LZO_ITRUNC(unsigned char, cc);
Packit 679830
    if __lzo_likely(len > 0) do
Packit 679830
        *p++ = c;
Packit 679830
    while __lzo_likely(--len > 0);
Packit 679830
    return s;
Packit 679830
#else
Packit 679830
    return memset(s, cc, len);
Packit 679830
#endif
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACCLIB_RAND)
Packit 679830
#  undef LZO_WANT_ACCLIB_RAND
Packit 679830
#define __LZOLIB_RAND_CH_INCLUDED 1
Packit 679830
#if !defined(LZOLIB_PUBLIC)
Packit 679830
#  define LZOLIB_PUBLIC(r,f)    r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC(void, lzo_srand31) (lzo_rand31_p r, lzo_uint32l_t seed)
Packit 679830
{
Packit 679830
    r->seed = seed & LZO_UINT32_C(0xffffffff);
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_uint32l_t, lzo_rand31) (lzo_rand31_p r)
Packit 679830
{
Packit 679830
    r->seed = r->seed * LZO_UINT32_C(1103515245) + 12345;
Packit 679830
    r->seed &= LZO_UINT32_C(0x7fffffff);
Packit 679830
    return r->seed;
Packit 679830
}
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
LZOLIB_PUBLIC(void, lzo_srand48) (lzo_rand48_p r, lzo_uint32l_t seed)
Packit 679830
{
Packit 679830
    r->seed = seed & LZO_UINT32_C(0xffffffff);
Packit 679830
    r->seed <<= 16; r->seed |= 0x330e;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_uint32l_t, lzo_rand48) (lzo_rand48_p r)
Packit 679830
{
Packit 679830
    lzo_uint64l_t a;
Packit 679830
    r->seed = r->seed * LZO_UINT64_C(25214903917) + 11;
Packit 679830
    r->seed &= LZO_UINT64_C(0xffffffffffff);
Packit 679830
    a = r->seed >> 17;
Packit 679830
    return LZO_STATIC_CAST(lzo_uint32l_t, a);
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_uint32l_t, lzo_rand48_r32) (lzo_rand48_p r)
Packit 679830
{
Packit 679830
    lzo_uint64l_t a;
Packit 679830
    r->seed = r->seed * LZO_UINT64_C(25214903917) + 11;
Packit 679830
    r->seed &= LZO_UINT64_C(0xffffffffffff);
Packit 679830
    a = r->seed >> 16;
Packit 679830
    return LZO_STATIC_CAST(lzo_uint32l_t, a);
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
LZOLIB_PUBLIC(void, lzo_srand64) (lzo_rand64_p r, lzo_uint64l_t seed)
Packit 679830
{
Packit 679830
    r->seed = seed & LZO_UINT64_C(0xffffffffffffffff);
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_uint32l_t, lzo_rand64) (lzo_rand64_p r)
Packit 679830
{
Packit 679830
    lzo_uint64l_t a;
Packit 679830
    r->seed = r->seed * LZO_UINT64_C(6364136223846793005) + 1;
Packit 679830
#if (LZO_SIZEOF_LZO_INT64L_T > 8)
Packit 679830
    r->seed &= LZO_UINT64_C(0xffffffffffffffff);
Packit 679830
#endif
Packit 679830
    a = r->seed >> 33;
Packit 679830
    return LZO_STATIC_CAST(lzo_uint32l_t, a);
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_uint32l_t, lzo_rand64_r32) (lzo_rand64_p r)
Packit 679830
{
Packit 679830
    lzo_uint64l_t a;
Packit 679830
    r->seed = r->seed * LZO_UINT64_C(6364136223846793005) + 1;
Packit 679830
#if (LZO_SIZEOF_LZO_INT64L_T > 8)
Packit 679830
    r->seed &= LZO_UINT64_C(0xffffffffffffffff);
Packit 679830
#endif
Packit 679830
    a = r->seed >> 32;
Packit 679830
    return LZO_STATIC_CAST(lzo_uint32l_t, a);
Packit 679830
}
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC(void, lzo_srandmt) (lzo_randmt_p r, lzo_uint32l_t seed)
Packit 679830
{
Packit 679830
    unsigned i = 0;
Packit 679830
    do {
Packit 679830
        r->s[i++] = (seed &= LZO_UINT32_C(0xffffffff));
Packit 679830
        seed ^= seed >> 30;
Packit 679830
        seed = seed * LZO_UINT32_C(0x6c078965) + i;
Packit 679830
    } while (i != 624);
Packit 679830
    r->n = i;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_uint32l_t, lzo_randmt) (lzo_randmt_p r)
Packit 679830
{
Packit 679830
    return (__LZOLIB_FUNCNAME(lzo_randmt_r32)(r)) >> 1;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_uint32l_t, lzo_randmt_r32) (lzo_randmt_p r)
Packit 679830
{
Packit 679830
    lzo_uint32l_t v;
Packit 679830
    if __lzo_unlikely(r->n == 624) {
Packit 679830
        unsigned i = 0, j;
Packit 679830
        r->n = 0;
Packit 679830
        do {
Packit 679830
            j = i - 623; if (LZO_STATIC_CAST(int, j) < 0) j += 624;
Packit 679830
            v = (r->s[i] & LZO_UINT32_C(0x80000000)) ^ (r->s[j] & LZO_UINT32_C(0x7fffffff));
Packit 679830
            j = i - 227; if (LZO_STATIC_CAST(int, j) < 0) j += 624;
Packit 679830
            r->s[i] = r->s[j] ^ (v >> 1);
Packit 679830
            if (v & 1) r->s[i] ^= LZO_UINT32_C(0x9908b0df);
Packit 679830
        } while (++i != 624);
Packit 679830
    }
Packit 679830
    { unsigned i = r->n++; v = r->s[i]; }
Packit 679830
    v ^= v >> 11; v ^= (v & LZO_UINT32_C(0x013a58ad)) << 7;
Packit 679830
    v ^= (v & LZO_UINT32_C(0x0001df8c)) << 15; v ^= v >> 18;
Packit 679830
    return v;
Packit 679830
}
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
LZOLIB_PUBLIC(void, lzo_srandmt64) (lzo_randmt64_p r, lzo_uint64l_t seed)
Packit 679830
{
Packit 679830
    unsigned i = 0;
Packit 679830
    do {
Packit 679830
        r->s[i++] = (seed &= LZO_UINT64_C(0xffffffffffffffff));
Packit 679830
        seed ^= seed >> 62;
Packit 679830
        seed = seed * LZO_UINT64_C(0x5851f42d4c957f2d) + i;
Packit 679830
    } while (i != 312);
Packit 679830
    r->n = i;
Packit 679830
}
Packit 679830
#if 0
Packit 679830
LZOLIB_PUBLIC(lzo_uint32l_t, lzo_randmt64) (lzo_randmt64_p r)
Packit 679830
{
Packit 679830
    lzo_uint64l_t v;
Packit 679830
    v = (__LZOLIB_FUNCNAME(lzo_randmt64_r64)(r)) >> 33;
Packit 679830
    return LZO_STATIC_CAST(lzo_uint32l_t, v);
Packit 679830
}
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC(lzo_uint64l_t, lzo_randmt64_r64) (lzo_randmt64_p r)
Packit 679830
{
Packit 679830
    lzo_uint64l_t v;
Packit 679830
    if __lzo_unlikely(r->n == 312) {
Packit 679830
        unsigned i = 0, j;
Packit 679830
        r->n = 0;
Packit 679830
        do {
Packit 679830
            j = i - 311; if (LZO_STATIC_CAST(int, j) < 0) j += 312;
Packit 679830
            v = (r->s[i] & LZO_UINT64_C(0xffffffff80000000)) ^ (r->s[j] & LZO_UINT64_C(0x7fffffff));
Packit 679830
            j = i - 156; if (LZO_STATIC_CAST(int, j) < 0) j += 312;
Packit 679830
            r->s[i] = r->s[j] ^ (v >> 1);
Packit 679830
            if (v & 1) r->s[i] ^= LZO_UINT64_C(0xb5026f5aa96619e9);
Packit 679830
        } while (++i != 312);
Packit 679830
    }
Packit 679830
    { unsigned i = r->n++; v = r->s[i]; }
Packit 679830
    v ^= (v & LZO_UINT64_C(0xaaaaaaaaa0000000)) >> 29;
Packit 679830
    v ^= (v & LZO_UINT64_C(0x38eb3ffff6d3)) << 17;
Packit 679830
    v ^= (v & LZO_UINT64_C(0x7ffbf77)) << 37;
Packit 679830
    return v ^ (v >> 43);
Packit 679830
}
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACCLIB_RDTSC)
Packit 679830
#  undef LZO_WANT_ACCLIB_RDTSC
Packit 679830
#define __LZOLIB_RDTSC_CH_INCLUDED 1
Packit 679830
#if !defined(LZOLIB_PUBLIC)
Packit 679830
#  define LZOLIB_PUBLIC(r,f)    r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
#if defined(lzo_int32e_t)
Packit 679830
#if (LZO_OS_WIN32 && LZO_CC_PELLESC && (__POCC__ >= 290))
Packit 679830
#  pragma warn(push)
Packit 679830
#  pragma warn(disable:2007)
Packit 679830
#endif
Packit 679830
#if (LZO_ARCH_AMD64 || LZO_ARCH_I386) && (LZO_ASM_SYNTAX_GNUC)
Packit 679830
#if (LZO_ARCH_AMD64 && LZO_CC_INTELC)
Packit 679830
#  define __LZOLIB_RDTSC_REGS   : : "c" (t) : "memory", "rax", "rdx"
Packit 679830
#elif (LZO_ARCH_AMD64)
Packit 679830
#  define __LZOLIB_RDTSC_REGS   : : "c" (t) : "cc", "memory", "rax", "rdx"
Packit 679830
#elif (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul))
Packit 679830
#  define __LZOLIB_RDTSC_REGS   : : "c" (t) : "ax", "dx"
Packit 679830
#elif (LZO_ARCH_I386 && LZO_CC_INTELC)
Packit 679830
#  define __LZOLIB_RDTSC_REGS   : : "c" (t) : "memory", "eax", "edx"
Packit 679830
#else
Packit 679830
#  define __LZOLIB_RDTSC_REGS   : : "c" (t) : "cc", "memory", "eax", "edx"
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC(int, lzo_tsc_read) (lzo_uint32e_t* t)
Packit 679830
{
Packit 679830
#if (LZO_ARCH_AMD64 || LZO_ARCH_I386) && (LZO_ASM_SYNTAX_GNUC)
Packit 679830
    __asm__ __volatile__(
Packit 679830
        "clc \n" ".byte 0x0f,0x31\n"
Packit 679830
        "movl %%eax,(%0)\n" "movl %%edx,4(%0)\n"
Packit 679830
        __LZOLIB_RDTSC_REGS
Packit 679830
    );
Packit 679830
    return 0;
Packit 679830
#elif (LZO_ARCH_I386) && (LZO_ASM_SYNTAX_MSC)
Packit 679830
    LZO_UNUSED(t);
Packit 679830
    __asm {
Packit 679830
        mov ecx, t
Packit 679830
        clc
Packit 679830
#  if (LZO_CC_MSC && (_MSC_VER < 1200))
Packit 679830
        _emit 0x0f
Packit 679830
        _emit 0x31
Packit 679830
#  else
Packit 679830
        rdtsc
Packit 679830
#  endif
Packit 679830
        mov [ecx], eax
Packit 679830
        mov [ecx+4], edx
Packit 679830
    }
Packit 679830
    return 0;
Packit 679830
#else
Packit 679830
    t[0] = t[1] = 0; return -1;
Packit 679830
#endif
Packit 679830
}
Packit 679830
#if (LZO_OS_WIN32 && LZO_CC_PELLESC && (__POCC__ >= 290))
Packit 679830
#  pragma warn(pop)
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACCLIB_DOSALLOC)
Packit 679830
#  undef LZO_WANT_ACCLIB_DOSALLOC
Packit 679830
#define __LZOLIB_DOSALLOC_CH_INCLUDED 1
Packit 679830
#if !defined(LZOLIB_PUBLIC)
Packit 679830
#  define LZOLIB_PUBLIC(r,f)    r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
#if (LZO_OS_OS216)
Packit 679830
LZO_EXTERN_C unsigned short __far __pascal DosAllocHuge(unsigned short, unsigned short, unsigned short __far *, unsigned short, unsigned short);
Packit 679830
LZO_EXTERN_C unsigned short __far __pascal DosFreeSeg(unsigned short);
Packit 679830
#endif
Packit 679830
#if (LZO_OS_DOS16 || LZO_OS_WIN16)
Packit 679830
#if !(LZO_CC_AZTECC)
Packit 679830
LZOLIB_PUBLIC(void __far*, lzo_dos_alloc) (unsigned long size)
Packit 679830
{
Packit 679830
    void __far* p = 0;
Packit 679830
    union REGS ri, ro;
Packit 679830
    if ((long)size <= 0)
Packit 679830
        return p;
Packit 679830
    size = (size + 15) >> 4;
Packit 679830
    if (size > 0xffffu)
Packit 679830
        return p;
Packit 679830
    ri.x.ax = 0x4800;
Packit 679830
    ri.x.bx = (unsigned short) size;
Packit 679830
    int86(0x21, &ri, &ro);
Packit 679830
    if ((ro.x.cflag & 1) == 0)
Packit 679830
        p = (void __far*) LZO_PTR_MK_FP(ro.x.ax, 0);
Packit 679830
    return p;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(int, lzo_dos_free) (void __far* p)
Packit 679830
{
Packit 679830
    union REGS ri, ro;
Packit 679830
    struct SREGS rs;
Packit 679830
    if (!p)
Packit 679830
        return 0;
Packit 679830
    if (LZO_PTR_FP_OFF(p) != 0)
Packit 679830
        return -1;
Packit 679830
    segread(&rs);
Packit 679830
    ri.x.ax = 0x4900;
Packit 679830
    rs.es = LZO_PTR_FP_SEG(p);
Packit 679830
    int86x(0x21, &ri, &ro, &rs);
Packit 679830
    if (ro.x.cflag & 1)
Packit 679830
        return -1;
Packit 679830
    return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if (LZO_OS_OS216)
Packit 679830
LZOLIB_PUBLIC(void __far*, lzo_dos_alloc) (unsigned long size)
Packit 679830
{
Packit 679830
    void __far* p = 0;
Packit 679830
    unsigned short sel = 0;
Packit 679830
    if ((long)size <= 0)
Packit 679830
        return p;
Packit 679830
    if (DosAllocHuge((unsigned short)(size >> 16), (unsigned short)size, &sel, 0, 0) == 0)
Packit 679830
        p = (void __far*) LZO_PTR_MK_FP(sel, 0);
Packit 679830
    return p;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(int, lzo_dos_free) (void __far* p)
Packit 679830
{
Packit 679830
    if (!p)
Packit 679830
        return 0;
Packit 679830
    if (LZO_PTR_FP_OFF(p) != 0)
Packit 679830
        return -1;
Packit 679830
    if (DosFreeSeg(LZO_PTR_FP_SEG(p)) != 0)
Packit 679830
        return -1;
Packit 679830
    return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACCLIB_GETOPT)
Packit 679830
#  undef LZO_WANT_ACCLIB_GETOPT
Packit 679830
#define __LZOLIB_GETOPT_CH_INCLUDED 1
Packit 679830
#if !defined(LZOLIB_PUBLIC)
Packit 679830
#  define LZOLIB_PUBLIC(r,f)    r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC(void, lzo_getopt_init) (lzo_getopt_p g,
Packit 679830
                                      int start_argc, int argc, char** argv)
Packit 679830
{
Packit 679830
    memset(g, 0, sizeof(*g));
Packit 679830
    g->optind = start_argc;
Packit 679830
    g->argc = argc; g->argv = argv;
Packit 679830
    g->optopt = -1;
Packit 679830
}
Packit 679830
static int __LZOLIB_FUNCNAME(lzo_getopt_rotate) (char** p, int first, int middle, int last)
Packit 679830
{
Packit 679830
    int i = middle, n = middle - first;
Packit 679830
    if (first >= middle || middle >= last) return 0;
Packit 679830
    for (;;)
Packit 679830
    {
Packit 679830
        char* t = p[first]; p[first] = p[i]; p[i] = t;
Packit 679830
        if (++first == middle)
Packit 679830
        {
Packit 679830
            if (++i == last) break;
Packit 679830
            middle = i;
Packit 679830
        }
Packit 679830
        else if (++i == last)
Packit 679830
            i = middle;
Packit 679830
    }
Packit 679830
    return n;
Packit 679830
}
Packit 679830
static int __LZOLIB_FUNCNAME(lzo_getopt_perror) (lzo_getopt_p g, int ret, const char* f, ...)
Packit 679830
{
Packit 679830
    if (g->opterr)
Packit 679830
    {
Packit 679830
#if (HAVE_STDARG_H)
Packit 679830
        struct { va_list ap; } s;
Packit 679830
        va_start(s.ap, f);
Packit 679830
        g->opterr(g, f, &s);
Packit 679830
        va_end(s.ap);
Packit 679830
#else
Packit 679830
        g->opterr(g, f, NULL);
Packit 679830
#endif
Packit 679830
    }
Packit 679830
    ++g->errcount;
Packit 679830
    return ret;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(int, lzo_getopt) (lzo_getopt_p g,
Packit 679830
                                const char* shortopts,
Packit 679830
                                const lzo_getopt_longopt_p longopts,
Packit 679830
                                int* longind)
Packit 679830
{
Packit 679830
#define pe  __LZOLIB_FUNCNAME(lzo_getopt_perror)
Packit 679830
    int ordering = LZO_GETOPT_PERMUTE;
Packit 679830
    int missing_arg_ret = g->bad_option;
Packit 679830
    char* a;
Packit 679830
    if (shortopts)
Packit 679830
    {
Packit 679830
        if (*shortopts == '-' || *shortopts == '+')
Packit 679830
            ordering = *shortopts++ == '-' ? LZO_GETOPT_RETURN_IN_ORDER : LZO_GETOPT_REQUIRE_ORDER;
Packit 679830
        if (*shortopts == ':')
Packit 679830
            missing_arg_ret = *shortopts++;
Packit 679830
    }
Packit 679830
    g->optarg = NULL;
Packit 679830
    if (g->optopt == -1)
Packit 679830
        g->optopt = g->bad_option;
Packit 679830
    if (longind)
Packit 679830
        *longind = -1;
Packit 679830
    if (g->eof)
Packit 679830
        return -1;
Packit 679830
    if (g->shortpos)
Packit 679830
        goto lzo_label_next_shortopt;
Packit 679830
    g->optind -= __LZOLIB_FUNCNAME(lzo_getopt_rotate)(g->argv, g->pending_rotate_first, g->pending_rotate_middle, g->optind);
Packit 679830
    g->pending_rotate_first = g->pending_rotate_middle = g->optind;
Packit 679830
    if (ordering == LZO_GETOPT_PERMUTE)
Packit 679830
    {
Packit 679830
        while (g->optind < g->argc && !(g->argv[g->optind][0] == '-' && g->argv[g->optind][1]))
Packit 679830
            ++g->optind;
Packit 679830
        g->pending_rotate_middle = g->optind;
Packit 679830
    }
Packit 679830
    if (g->optind >= g->argc)
Packit 679830
    {
Packit 679830
        g->optind = g->pending_rotate_first;
Packit 679830
        goto lzo_label_eof;
Packit 679830
    }
Packit 679830
    a = g->argv[g->optind];
Packit 679830
    if (a[0] == '-' && a[1] == '-')
Packit 679830
    {
Packit 679830
        size_t l = 0;
Packit 679830
        const lzo_getopt_longopt_p o;
Packit 679830
        const lzo_getopt_longopt_p o1 = NULL;
Packit 679830
        const lzo_getopt_longopt_p o2 = NULL;
Packit 679830
        int need_exact = 0;
Packit 679830
        ++g->optind;
Packit 679830
        if (!a[2])
Packit 679830
            goto lzo_label_eof;
Packit 679830
        for (a += 2; a[l] && a[l] != '=' && a[l] != '#'; )
Packit 679830
            ++l;
Packit 679830
        for (o = longopts; l && o && o->name; ++o)
Packit 679830
        {
Packit 679830
            if (strncmp(a, o->name, l) != 0)
Packit 679830
                continue;
Packit 679830
            if (!o->name[l])
Packit 679830
                goto lzo_label_found_o;
Packit 679830
            need_exact |= o->has_arg & LZO_GETOPT_EXACT_ARG;
Packit 679830
            if (o1) o2 = o;
Packit 679830
            else    o1 = o;
Packit 679830
        }
Packit 679830
        if (!o1 || need_exact)
Packit 679830
            return pe(g, g->bad_option, "unrecognized option '--%s'", a);
Packit 679830
        if (o2)
Packit 679830
            return pe(g, g->bad_option, "option '--%s' is ambiguous (could be '--%s' or '--%s')", a, o1->name, o2->name);
Packit 679830
        o = o1;
Packit 679830
    lzo_label_found_o:
Packit 679830
        a += l;
Packit 679830
        switch (o->has_arg & 0x2f)
Packit 679830
        {
Packit 679830
        case LZO_GETOPT_OPTIONAL_ARG:
Packit 679830
            if (a[0])
Packit 679830
                g->optarg = a + 1;
Packit 679830
            break;
Packit 679830
        case LZO_GETOPT_REQUIRED_ARG:
Packit 679830
            if (a[0])
Packit 679830
                g->optarg = a + 1;
Packit 679830
            else if (g->optind < g->argc)
Packit 679830
                g->optarg = g->argv[g->optind++];
Packit 679830
            if (!g->optarg)
Packit 679830
                return pe(g, missing_arg_ret, "option '--%s' requires an argument", o->name);
Packit 679830
            break;
Packit 679830
        case LZO_GETOPT_REQUIRED_ARG | 0x20:
Packit 679830
            if (a[0] && a[1])
Packit 679830
                g->optarg = a + 1;
Packit 679830
            if (!g->optarg)
Packit 679830
                return pe(g, missing_arg_ret, "option '--%s=' requires an argument", o->name);
Packit 679830
            break;
Packit 679830
        default:
Packit 679830
            if (a[0])
Packit 679830
                return pe(g, g->bad_option, "option '--%s' doesn't allow an argument", o->name);
Packit 679830
            break;
Packit 679830
        }
Packit 679830
        if (longind)
Packit 679830
            *longind = (int) (o - longopts);
Packit 679830
        if (o->flag)
Packit 679830
        {
Packit 679830
            *o->flag = o->val;
Packit 679830
            return 0;
Packit 679830
        }
Packit 679830
        return o->val;
Packit 679830
    }
Packit 679830
    if (a[0] == '-' && a[1])
Packit 679830
    {
Packit 679830
        unsigned char c;
Packit 679830
        const char* s;
Packit 679830
    lzo_label_next_shortopt:
Packit 679830
        a = g->argv[g->optind] + ++g->shortpos;
Packit 679830
        c = (unsigned char) *a++; s = NULL;
Packit 679830
        if (c != ':' && shortopts)
Packit 679830
            s = strchr(shortopts, c);
Packit 679830
        if (!s || s[1] != ':')
Packit 679830
        {
Packit 679830
            if (!a[0])
Packit 679830
                ++g->optind, g->shortpos = 0;
Packit 679830
            if (!s)
Packit 679830
            {
Packit 679830
                g->optopt = c;
Packit 679830
                return pe(g, g->bad_option, "invalid option '-%c'", c);
Packit 679830
            }
Packit 679830
        }
Packit 679830
        else
Packit 679830
        {
Packit 679830
            ++g->optind, g->shortpos = 0;
Packit 679830
            if (a[0])
Packit 679830
                g->optarg = a;
Packit 679830
            else if (s[2] != ':')
Packit 679830
            {
Packit 679830
                if (g->optind < g->argc)
Packit 679830
                    g->optarg = g->argv[g->optind++];
Packit 679830
                else
Packit 679830
                {
Packit 679830
                    g->optopt = c;
Packit 679830
                    return pe(g, missing_arg_ret, "option '-%c' requires an argument", c);
Packit 679830
                }
Packit 679830
            }
Packit 679830
        }
Packit 679830
        return c;
Packit 679830
    }
Packit 679830
    if (ordering == LZO_GETOPT_RETURN_IN_ORDER)
Packit 679830
    {
Packit 679830
        ++g->optind;
Packit 679830
        g->optarg = a;
Packit 679830
        return 1;
Packit 679830
    }
Packit 679830
lzo_label_eof:
Packit 679830
    g->optind -= __LZOLIB_FUNCNAME(lzo_getopt_rotate)(g->argv, g->pending_rotate_first, g->pending_rotate_middle, g->optind);
Packit 679830
    g->pending_rotate_first = g->pending_rotate_middle = g->optind;
Packit 679830
    g->eof = 1;
Packit 679830
    return -1;
Packit 679830
#undef pe
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACCLIB_HALLOC)
Packit 679830
#  undef LZO_WANT_ACCLIB_HALLOC
Packit 679830
#define __LZOLIB_HALLOC_CH_INCLUDED 1
Packit 679830
#if !defined(LZOLIB_PUBLIC)
Packit 679830
#  define LZOLIB_PUBLIC(r,f)    r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
#if (LZO_HAVE_MM_HUGE_PTR)
Packit 679830
#if 1 && (LZO_OS_DOS16 && defined(BLX286))
Packit 679830
#  define __LZOLIB_HALLOC_USE_DAH 1
Packit 679830
#elif 1 && (LZO_OS_DOS16 && defined(DOSX286))
Packit 679830
#  define __LZOLIB_HALLOC_USE_DAH 1
Packit 679830
#elif 1 && (LZO_OS_OS216)
Packit 679830
#  define __LZOLIB_HALLOC_USE_DAH 1
Packit 679830
#elif 1 && (LZO_OS_WIN16)
Packit 679830
#  define __LZOLIB_HALLOC_USE_GA 1
Packit 679830
#elif 1 && (LZO_OS_DOS16) && (LZO_CC_BORLANDC) && defined(__DPMI16__)
Packit 679830
#  define __LZOLIB_HALLOC_USE_GA 1
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if (__LZOLIB_HALLOC_USE_DAH)
Packit 679830
#if 0 && (LZO_OS_OS216)
Packit 679830
#include <os2.h>
Packit 679830
#else
Packit 679830
LZO_EXTERN_C unsigned short __far __pascal DosAllocHuge(unsigned short, unsigned short, unsigned short __far *, unsigned short, unsigned short);
Packit 679830
LZO_EXTERN_C unsigned short __far __pascal DosFreeSeg(unsigned short);
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if (__LZOLIB_HALLOC_USE_GA)
Packit 679830
#if 0
Packit 679830
#define STRICT 1
Packit 679830
#include <windows.h>
Packit 679830
#else
Packit 679830
LZO_EXTERN_C const void __near* __far __pascal GlobalAlloc(unsigned, unsigned long);
Packit 679830
LZO_EXTERN_C const void __near* __far __pascal GlobalFree(const void __near*);
Packit 679830
LZO_EXTERN_C unsigned long __far __pascal GlobalHandle(unsigned);
Packit 679830
LZO_EXTERN_C void __far* __far __pascal GlobalLock(const void __near*);
Packit 679830
LZO_EXTERN_C int __far __pascal GlobalUnlock(const void __near*);
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC(lzo_hvoid_p, lzo_halloc) (lzo_hsize_t size)
Packit 679830
{
Packit 679830
    lzo_hvoid_p p = LZO_STATIC_CAST(lzo_hvoid_p, 0);
Packit 679830
    if (!(size > 0))
Packit 679830
        return p;
Packit 679830
#if 0 && defined(__palmos__)
Packit 679830
    p = MemPtrNew(size);
Packit 679830
#elif !(LZO_HAVE_MM_HUGE_PTR)
Packit 679830
    if (size < LZO_STATIC_CAST(size_t, -1))
Packit 679830
        p = malloc(LZO_STATIC_CAST(size_t, size));
Packit 679830
#else
Packit 679830
    if (LZO_STATIC_CAST(long, size) <= 0)
Packit 679830
        return p;
Packit 679830
{
Packit 679830
#if (__LZOLIB_HALLOC_USE_DAH)
Packit 679830
    unsigned short sel = 0;
Packit 679830
    if (DosAllocHuge((unsigned short)(size >> 16), (unsigned short)size, &sel, 0, 0) == 0)
Packit 679830
        p = (lzo_hvoid_p) LZO_PTR_MK_FP(sel, 0);
Packit 679830
#elif (__LZOLIB_HALLOC_USE_GA)
Packit 679830
    const void __near* h = GlobalAlloc(2, size);
Packit 679830
    if (h) {
Packit 679830
        p = GlobalLock(h);
Packit 679830
        if (p && LZO_PTR_FP_OFF(p) != 0) {
Packit 679830
            GlobalUnlock(h);
Packit 679830
            p = 0;
Packit 679830
        }
Packit 679830
        if (!p)
Packit 679830
            GlobalFree(h);
Packit 679830
    }
Packit 679830
#elif (LZO_CC_MSC && (_MSC_VER >= 700))
Packit 679830
    p = _halloc(size, 1);
Packit 679830
#elif (LZO_CC_MSC || LZO_CC_WATCOMC)
Packit 679830
    p = halloc(size, 1);
Packit 679830
#elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
Packit 679830
    p = farmalloc(size);
Packit 679830
#elif (LZO_CC_BORLANDC || LZO_CC_TURBOC)
Packit 679830
    p = farmalloc(size);
Packit 679830
#elif (LZO_CC_AZTECC)
Packit 679830
    p = lmalloc(size);
Packit 679830
#else
Packit 679830
    if (size < LZO_STATIC_CAST(size_t, -1))
Packit 679830
        p = malloc((size_t) size);
Packit 679830
#endif
Packit 679830
}
Packit 679830
#endif
Packit 679830
    return p;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(void, lzo_hfree) (lzo_hvoid_p p)
Packit 679830
{
Packit 679830
    if (!p)
Packit 679830
        return;
Packit 679830
#if 0 && defined(__palmos__)
Packit 679830
    MemPtrFree(p);
Packit 679830
#elif !(LZO_HAVE_MM_HUGE_PTR)
Packit 679830
    free(p);
Packit 679830
#else
Packit 679830
#if (__LZOLIB_HALLOC_USE_DAH)
Packit 679830
    if (LZO_PTR_FP_OFF(p) == 0)
Packit 679830
        DosFreeSeg((unsigned short) LZO_PTR_FP_SEG(p));
Packit 679830
#elif (__LZOLIB_HALLOC_USE_GA)
Packit 679830
    if (LZO_PTR_FP_OFF(p) == 0) {
Packit 679830
        const void __near* h = (const void __near*) (unsigned) GlobalHandle(LZO_PTR_FP_SEG(p));
Packit 679830
        if (h) {
Packit 679830
            GlobalUnlock(h);
Packit 679830
            GlobalFree(h);
Packit 679830
        }
Packit 679830
    }
Packit 679830
#elif (LZO_CC_MSC && (_MSC_VER >= 700))
Packit 679830
    _hfree(p);
Packit 679830
#elif (LZO_CC_MSC || LZO_CC_WATCOMC)
Packit 679830
    hfree(p);
Packit 679830
#elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
Packit 679830
    farfree((void __far*) p);
Packit 679830
#elif (LZO_CC_BORLANDC || LZO_CC_TURBOC)
Packit 679830
    farfree((void __far*) p);
Packit 679830
#elif (LZO_CC_AZTECC)
Packit 679830
    lfree(p);
Packit 679830
#else
Packit 679830
    free(p);
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACCLIB_HFREAD)
Packit 679830
#  undef LZO_WANT_ACCLIB_HFREAD
Packit 679830
#define __LZOLIB_HFREAD_CH_INCLUDED 1
Packit 679830
#if !defined(LZOLIB_PUBLIC)
Packit 679830
#  define LZOLIB_PUBLIC(r,f)    r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC(lzo_hsize_t, lzo_hfread) (void* vfp, lzo_hvoid_p buf, lzo_hsize_t size)
Packit 679830
{
Packit 679830
    FILE* fp = LZO_STATIC_CAST(FILE *, vfp);
Packit 679830
#if (LZO_HAVE_MM_HUGE_PTR)
Packit 679830
#if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM)
Packit 679830
#define __LZOLIB_REQUIRE_HMEMCPY_CH 1
Packit 679830
    unsigned char tmp[512];
Packit 679830
    lzo_hsize_t l = 0;
Packit 679830
    while (l < size)
Packit 679830
    {
Packit 679830
        size_t n = size - l > sizeof(tmp) ? sizeof(tmp) : (size_t) (size - l);
Packit 679830
        n = fread(tmp, 1, n, fp);
Packit 679830
        if (n == 0)
Packit 679830
            break;
Packit 679830
        __LZOLIB_FUNCNAME(lzo_hmemcpy)((lzo_hbyte_p)buf + l, tmp, (lzo_hsize_t)n);
Packit 679830
        l += n;
Packit 679830
    }
Packit 679830
    return l;
Packit 679830
#elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE)
Packit 679830
    lzo_hbyte_p b = (lzo_hbyte_p) buf;
Packit 679830
    lzo_hsize_t l = 0;
Packit 679830
    while (l < size)
Packit 679830
    {
Packit 679830
        size_t n;
Packit 679830
        n = LZO_PTR_FP_OFF(b); n = (n <= 1) ? 0x8000u : (0u - n);
Packit 679830
        if ((lzo_hsize_t) n > size - l)
Packit 679830
            n = (size_t) (size - l);
Packit 679830
        n = fread((void __far*)b, 1, n, fp);
Packit 679830
        if (n == 0)
Packit 679830
            break;
Packit 679830
        b += n; l += n;
Packit 679830
    }
Packit 679830
    return l;
Packit 679830
#else
Packit 679830
#  error "unknown memory model"
Packit 679830
#endif
Packit 679830
#else
Packit 679830
    return fread(buf, 1, size, fp);
Packit 679830
#endif
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_hsize_t, lzo_hfwrite) (void* vfp, const lzo_hvoid_p buf, lzo_hsize_t size)
Packit 679830
{
Packit 679830
    FILE* fp = LZO_STATIC_CAST(FILE *, vfp);
Packit 679830
#if (LZO_HAVE_MM_HUGE_PTR)
Packit 679830
#if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM)
Packit 679830
#define __LZOLIB_REQUIRE_HMEMCPY_CH 1
Packit 679830
    unsigned char tmp[512];
Packit 679830
    lzo_hsize_t l = 0;
Packit 679830
    while (l < size)
Packit 679830
    {
Packit 679830
        size_t n = size - l > sizeof(tmp) ? sizeof(tmp) : (size_t) (size - l);
Packit 679830
        __LZOLIB_FUNCNAME(lzo_hmemcpy)(tmp, (const lzo_hbyte_p)buf + l, (lzo_hsize_t)n);
Packit 679830
        n = fwrite(tmp, 1, n, fp);
Packit 679830
        if (n == 0)
Packit 679830
            break;
Packit 679830
        l += n;
Packit 679830
    }
Packit 679830
    return l;
Packit 679830
#elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE)
Packit 679830
    const lzo_hbyte_p b = (const lzo_hbyte_p) buf;
Packit 679830
    lzo_hsize_t l = 0;
Packit 679830
    while (l < size)
Packit 679830
    {
Packit 679830
        size_t n;
Packit 679830
        n = LZO_PTR_FP_OFF(b); n = (n <= 1) ? 0x8000u : (0u - n);
Packit 679830
        if ((lzo_hsize_t) n > size - l)
Packit 679830
            n = (size_t) (size - l);
Packit 679830
        n = fwrite((void __far*)b, 1, n, fp);
Packit 679830
        if (n == 0)
Packit 679830
            break;
Packit 679830
        b += n; l += n;
Packit 679830
    }
Packit 679830
    return l;
Packit 679830
#else
Packit 679830
#  error "unknown memory model"
Packit 679830
#endif
Packit 679830
#else
Packit 679830
    return fwrite(buf, 1, size, fp);
Packit 679830
#endif
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACCLIB_HSREAD)
Packit 679830
#  undef LZO_WANT_ACCLIB_HSREAD
Packit 679830
#define __LZOLIB_HSREAD_CH_INCLUDED 1
Packit 679830
#if !defined(LZOLIB_PUBLIC)
Packit 679830
#  define LZOLIB_PUBLIC(r,f)    r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC(long, lzo_safe_hread) (int fd, lzo_hvoid_p buf, long size)
Packit 679830
{
Packit 679830
    lzo_hbyte_p b = (lzo_hbyte_p) buf;
Packit 679830
    long l = 0;
Packit 679830
    int saved_errno;
Packit 679830
    saved_errno = errno;
Packit 679830
    while (l < size)
Packit 679830
    {
Packit 679830
        long n = size - l;
Packit 679830
#if (LZO_HAVE_MM_HUGE_PTR)
Packit 679830
#  define __LZOLIB_REQUIRE_HREAD_CH 1
Packit 679830
        errno = 0; n = lzo_hread(fd, b, n);
Packit 679830
#elif (LZO_OS_DOS32) && defined(__DJGPP__)
Packit 679830
        errno = 0; n = _read(fd, b, n);
Packit 679830
#else
Packit 679830
        errno = 0; n = read(fd, b, n);
Packit 679830
#endif
Packit 679830
        if (n == 0)
Packit 679830
            break;
Packit 679830
        if (n < 0) {
Packit 679830
#if defined(EAGAIN)
Packit 679830
            if (errno == (EAGAIN)) continue;
Packit 679830
#endif
Packit 679830
#if defined(EINTR)
Packit 679830
            if (errno == (EINTR)) continue;
Packit 679830
#endif
Packit 679830
            if (errno == 0) errno = 1;
Packit 679830
            return l;
Packit 679830
        }
Packit 679830
        b += n; l += n;
Packit 679830
    }
Packit 679830
    errno = saved_errno;
Packit 679830
    return l;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(long, lzo_safe_hwrite) (int fd, const lzo_hvoid_p buf, long size)
Packit 679830
{
Packit 679830
    const lzo_hbyte_p b = (const lzo_hbyte_p) buf;
Packit 679830
    long l = 0;
Packit 679830
    int saved_errno;
Packit 679830
    saved_errno = errno;
Packit 679830
    while (l < size)
Packit 679830
    {
Packit 679830
        long n = size - l;
Packit 679830
#if (LZO_HAVE_MM_HUGE_PTR)
Packit 679830
#  define __LZOLIB_REQUIRE_HREAD_CH 1
Packit 679830
        errno = 0; n = lzo_hwrite(fd, b, n);
Packit 679830
#elif (LZO_OS_DOS32) && defined(__DJGPP__)
Packit 679830
        errno = 0; n = _write(fd, b, n);
Packit 679830
#else
Packit 679830
        errno = 0; n = write(fd, b, n);
Packit 679830
#endif
Packit 679830
        if (n == 0)
Packit 679830
            break;
Packit 679830
        if (n < 0) {
Packit 679830
#if defined(EAGAIN)
Packit 679830
            if (errno == (EAGAIN)) continue;
Packit 679830
#endif
Packit 679830
#if defined(EINTR)
Packit 679830
            if (errno == (EINTR)) continue;
Packit 679830
#endif
Packit 679830
            if (errno == 0) errno = 1;
Packit 679830
            return l;
Packit 679830
        }
Packit 679830
        b += n; l += n;
Packit 679830
    }
Packit 679830
    errno = saved_errno;
Packit 679830
    return l;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACCLIB_PCLOCK)
Packit 679830
#  undef LZO_WANT_ACCLIB_PCLOCK
Packit 679830
#define __LZOLIB_PCLOCK_CH_INCLUDED 1
Packit 679830
#if !defined(LZOLIB_PUBLIC)
Packit 679830
#  define LZOLIB_PUBLIC(r,f)    r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
#if 1 && (LZO_OS_POSIX_LINUX && LZO_ARCH_AMD64 && LZO_ASM_SYNTAX_GNUC)
Packit 679830
#ifndef lzo_pclock_syscall_clock_gettime
Packit 679830
#define lzo_pclock_syscall_clock_gettime lzo_pclock_syscall_clock_gettime
Packit 679830
#endif
Packit 679830
__lzo_static_noinline long lzo_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
Packit 679830
{
Packit 679830
    unsigned long r = 228;
Packit 679830
    __asm__ __volatile__("syscall\n" : "=a" (r) : "0" (r), "D" (clockid), "S" (ts) __LZO_ASM_CLOBBER_LIST_CC_MEMORY);
Packit 679830
    return LZO_ICAST(long, r);
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if 1 && (LZO_OS_POSIX_LINUX && LZO_ARCH_I386 && LZO_ASM_SYNTAX_GNUC) && defined(lzo_int64l_t)
Packit 679830
#ifndef lzo_pclock_syscall_clock_gettime
Packit 679830
#define lzo_pclock_syscall_clock_gettime lzo_pclock_syscall_clock_gettime
Packit 679830
#endif
Packit 679830
__lzo_static_noinline long lzo_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
Packit 679830
{
Packit 679830
    unsigned long r = 265;
Packit 679830
    __asm__ __volatile__("pushl %%ebx\n pushl %%edx\n popl %%ebx\n int $0x80\n popl %%ebx\n" : "=a" (r) : "0" (r), "d" (clockid), "c" (ts) __LZO_ASM_CLOBBER_LIST_CC_MEMORY);
Packit 679830
    return LZO_ICAST(long, r);
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if 0 && defined(lzo_pclock_syscall_clock_gettime)
Packit 679830
#ifndef lzo_pclock_read_clock_gettime_r_syscall
Packit 679830
#define lzo_pclock_read_clock_gettime_r_syscall lzo_pclock_read_clock_gettime_r_syscall
Packit 679830
#endif
Packit 679830
static int lzo_pclock_read_clock_gettime_r_syscall(lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
     struct timespec ts;
Packit 679830
    if (lzo_pclock_syscall_clock_gettime(0, &ts) != 0)
Packit 679830
        return -1;
Packit 679830
    c->tv_sec = ts.tv_sec;
Packit 679830
    c->tv_nsec = LZO_STATIC_CAST(lzo_uint32l_t, ts.tv_nsec);
Packit 679830
    LZO_UNUSED(h); return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if (HAVE_GETTIMEOFDAY)
Packit 679830
#ifndef lzo_pclock_read_gettimeofday
Packit 679830
#define lzo_pclock_read_gettimeofday lzo_pclock_read_gettimeofday
Packit 679830
#endif
Packit 679830
static int lzo_pclock_read_gettimeofday(lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
    struct timeval tv;
Packit 679830
    if (gettimeofday(&tv, NULL) != 0)
Packit 679830
        return -1;
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
    c->tv_sec = tv.tv_sec;
Packit 679830
#else
Packit 679830
    c->tv_sec_high = 0;
Packit 679830
    c->tv_sec_low = tv.tv_sec;
Packit 679830
#endif
Packit 679830
    c->tv_nsec = LZO_STATIC_CAST(lzo_uint32l_t, (tv.tv_usec * 1000u));
Packit 679830
    LZO_UNUSED(h); return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if defined(CLOCKS_PER_SEC) && !(LZO_CFG_NO_DOUBLE)
Packit 679830
#ifndef lzo_pclock_read_clock
Packit 679830
#define lzo_pclock_read_clock lzo_pclock_read_clock
Packit 679830
#endif
Packit 679830
static int lzo_pclock_read_clock(lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
    clock_t ticks;
Packit 679830
    double secs;
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
    lzo_uint64l_t nsecs;
Packit 679830
    ticks = clock();
Packit 679830
    secs = LZO_STATIC_CAST(double, ticks) / (CLOCKS_PER_SEC);
Packit 679830
    nsecs = LZO_STATIC_CAST(lzo_uint64l_t, (secs * 1000000000.0));
Packit 679830
    c->tv_sec = LZO_STATIC_CAST(lzo_int64l_t, (nsecs / 1000000000ul));
Packit 679830
    nsecs = (nsecs % 1000000000ul);
Packit 679830
    c->tv_nsec = LZO_STATIC_CAST(lzo_uint32l_t, nsecs);
Packit 679830
#else
Packit 679830
    ticks = clock();
Packit 679830
    secs = LZO_STATIC_CAST(double, ticks) / (CLOCKS_PER_SEC);
Packit 679830
    c->tv_sec_high = 0;
Packit 679830
    c->tv_sec_low = LZO_STATIC_CAST(lzo_uint32l_t, (secs + 0.5));
Packit 679830
    c->tv_nsec = 0;
Packit 679830
#endif
Packit 679830
    LZO_UNUSED(h); return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if 1 && defined(lzo_pclock_syscall_clock_gettime)
Packit 679830
#ifndef lzo_pclock_read_clock_gettime_m_syscall
Packit 679830
#define lzo_pclock_read_clock_gettime_m_syscall lzo_pclock_read_clock_gettime_m_syscall
Packit 679830
#endif
Packit 679830
static int lzo_pclock_read_clock_gettime_m_syscall(lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
     struct timespec ts;
Packit 679830
    if (lzo_pclock_syscall_clock_gettime(1, &ts) != 0)
Packit 679830
        return -1;
Packit 679830
    c->tv_sec = ts.tv_sec;
Packit 679830
    c->tv_nsec = LZO_STATIC_CAST(lzo_uint32l_t, ts.tv_nsec);
Packit 679830
    LZO_UNUSED(h); return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if (LZO_OS_DOS32 && LZO_CC_GNUC) && defined(__DJGPP__) && defined(UCLOCKS_PER_SEC) && !(LZO_CFG_NO_DOUBLE)
Packit 679830
#ifndef lzo_pclock_read_uclock
Packit 679830
#define lzo_pclock_read_uclock lzo_pclock_read_uclock
Packit 679830
#endif
Packit 679830
static int lzo_pclock_read_uclock(lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
    lzo_uint64l_t ticks;
Packit 679830
    double secs;
Packit 679830
    lzo_uint64l_t nsecs;
Packit 679830
    ticks = uclock();
Packit 679830
    secs = LZO_STATIC_CAST(double, ticks) / (UCLOCKS_PER_SEC);
Packit 679830
    nsecs = LZO_STATIC_CAST(lzo_uint64l_t, (secs * 1000000000.0));
Packit 679830
    c->tv_sec = nsecs / 1000000000ul;
Packit 679830
    c->tv_nsec = LZO_STATIC_CAST(lzo_uint32l_t, (nsecs % 1000000000ul));
Packit 679830
    LZO_UNUSED(h); return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if 1 && (HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID) && defined(lzo_int64l_t)
Packit 679830
#ifndef lzo_pclock_read_clock_gettime_p_libc
Packit 679830
#define lzo_pclock_read_clock_gettime_p_libc lzo_pclock_read_clock_gettime_p_libc
Packit 679830
#endif
Packit 679830
static int lzo_pclock_read_clock_gettime_p_libc(lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
    struct timespec ts;
Packit 679830
    if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts) != 0)
Packit 679830
        return -1;
Packit 679830
    c->tv_sec = ts.tv_sec;
Packit 679830
    c->tv_nsec = LZO_STATIC_CAST(lzo_uint32l_t, ts.tv_nsec);
Packit 679830
    LZO_UNUSED(h); return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if 1 && defined(lzo_pclock_syscall_clock_gettime)
Packit 679830
#ifndef lzo_pclock_read_clock_gettime_p_syscall
Packit 679830
#define lzo_pclock_read_clock_gettime_p_syscall lzo_pclock_read_clock_gettime_p_syscall
Packit 679830
#endif
Packit 679830
static int lzo_pclock_read_clock_gettime_p_syscall(lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
     struct timespec ts;
Packit 679830
    if (lzo_pclock_syscall_clock_gettime(2, &ts) != 0)
Packit 679830
        return -1;
Packit 679830
    c->tv_sec = ts.tv_sec;
Packit 679830
    c->tv_nsec = LZO_STATIC_CAST(lzo_uint32l_t, ts.tv_nsec);
Packit 679830
    LZO_UNUSED(h); return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if (LZO_OS_CYGWIN || LZO_OS_WIN32 || LZO_OS_WIN64) && (LZO_HAVE_WINDOWS_H) && defined(lzo_int64l_t)
Packit 679830
#ifndef lzo_pclock_read_getprocesstimes
Packit 679830
#define lzo_pclock_read_getprocesstimes lzo_pclock_read_getprocesstimes
Packit 679830
#endif
Packit 679830
static int lzo_pclock_read_getprocesstimes(lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
    FILETIME ct, et, kt, ut;
Packit 679830
    lzo_uint64l_t ticks;
Packit 679830
    if (GetProcessTimes(GetCurrentProcess(), &ct, &et, &kt, &ut) == 0)
Packit 679830
        return -1;
Packit 679830
    ticks = (LZO_STATIC_CAST(lzo_uint64l_t, ut.dwHighDateTime) << 32) | ut.dwLowDateTime;
Packit 679830
    if __lzo_unlikely(h->ticks_base == 0)
Packit 679830
        h->ticks_base = ticks;
Packit 679830
    else
Packit 679830
        ticks -= h->ticks_base;
Packit 679830
    c->tv_sec = LZO_STATIC_CAST(lzo_int64l_t, (ticks / 10000000ul));
Packit 679830
    ticks = (ticks % 10000000ul) * 100u;
Packit 679830
    c->tv_nsec = LZO_STATIC_CAST(lzo_uint32l_t, ticks);
Packit 679830
    LZO_UNUSED(h); return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if (HAVE_GETRUSAGE) && defined(RUSAGE_SELF)
Packit 679830
#ifndef lzo_pclock_read_getrusage
Packit 679830
#define lzo_pclock_read_getrusage lzo_pclock_read_getrusage
Packit 679830
#endif
Packit 679830
static int lzo_pclock_read_getrusage(lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
    struct rusage ru;
Packit 679830
    if (getrusage(RUSAGE_SELF, &ru) != 0)
Packit 679830
        return -1;
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
    c->tv_sec = ru.ru_utime.tv_sec;
Packit 679830
#else
Packit 679830
    c->tv_sec_high = 0;
Packit 679830
    c->tv_sec_low = ru.ru_utime.tv_sec;
Packit 679830
#endif
Packit 679830
    c->tv_nsec = LZO_STATIC_CAST(lzo_uint32l_t, (ru.ru_utime.tv_usec * 1000u));
Packit 679830
    LZO_UNUSED(h); return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if 1 && (HAVE_CLOCK_GETTIME) && defined(CLOCK_THREAD_CPUTIME_ID) && defined(lzo_int64l_t)
Packit 679830
#ifndef lzo_pclock_read_clock_gettime_t_libc
Packit 679830
#define lzo_pclock_read_clock_gettime_t_libc lzo_pclock_read_clock_gettime_t_libc
Packit 679830
#endif
Packit 679830
static int lzo_pclock_read_clock_gettime_t_libc(lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
    struct timespec ts;
Packit 679830
    if (clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts) != 0)
Packit 679830
        return -1;
Packit 679830
    c->tv_sec = ts.tv_sec;
Packit 679830
    c->tv_nsec = (lzo_uint32l_t) ts.tv_nsec;
Packit 679830
    LZO_UNUSED(h); return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if 1 && defined(lzo_pclock_syscall_clock_gettime)
Packit 679830
#ifndef lzo_pclock_read_clock_gettime_t_syscall
Packit 679830
#define lzo_pclock_read_clock_gettime_t_syscall lzo_pclock_read_clock_gettime_t_syscall
Packit 679830
#endif
Packit 679830
static int lzo_pclock_read_clock_gettime_t_syscall(lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
     struct timespec ts;
Packit 679830
    if (lzo_pclock_syscall_clock_gettime(3, &ts) != 0)
Packit 679830
        return -1;
Packit 679830
    c->tv_sec = ts.tv_sec;
Packit 679830
    c->tv_nsec = LZO_STATIC_CAST(lzo_uint32l_t, ts.tv_nsec);
Packit 679830
    LZO_UNUSED(h); return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if (LZO_OS_CYGWIN || LZO_OS_WIN32 || LZO_OS_WIN64) && (LZO_HAVE_WINDOWS_H) && defined(lzo_int64l_t)
Packit 679830
#ifndef lzo_pclock_read_getthreadtimes
Packit 679830
#define lzo_pclock_read_getthreadtimes lzo_pclock_read_getthreadtimes
Packit 679830
#endif
Packit 679830
static int lzo_pclock_read_getthreadtimes(lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
    FILETIME ct, et, kt, ut;
Packit 679830
    lzo_uint64l_t ticks;
Packit 679830
    if (GetThreadTimes(GetCurrentThread(), &ct, &et, &kt, &ut) == 0)
Packit 679830
        return -1;
Packit 679830
    ticks = (LZO_STATIC_CAST(lzo_uint64l_t, ut.dwHighDateTime) << 32) | ut.dwLowDateTime;
Packit 679830
    if __lzo_unlikely(h->ticks_base == 0)
Packit 679830
        h->ticks_base = ticks;
Packit 679830
    else
Packit 679830
        ticks -= h->ticks_base;
Packit 679830
    c->tv_sec = LZO_STATIC_CAST(lzo_int64l_t, (ticks / 10000000ul));
Packit 679830
    ticks = (ticks % 10000000ul) * 100u;
Packit 679830
    c->tv_nsec = LZO_STATIC_CAST(lzo_uint32l_t, ticks);
Packit 679830
    LZO_UNUSED(h); return 0;
Packit 679830
}
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC(int, lzo_pclock_open) (lzo_pclock_handle_p h, int mode)
Packit 679830
{
Packit 679830
    lzo_pclock_t c;
Packit 679830
    int i;
Packit 679830
    h->h = LZO_STATIC_CAST(lzolib_handle_t, 0);
Packit 679830
    h->mode = -1;
Packit 679830
    h->read_error = 2;
Packit 679830
    h->name = NULL;
Packit 679830
    h->gettime = LZO_STATIC_CAST(lzo_pclock_gettime_t, 0);
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
    h->ticks_base = 0;
Packit 679830
#endif
Packit 679830
    switch (mode)
Packit 679830
    {
Packit 679830
    case LZO_PCLOCK_REALTIME:
Packit 679830
#     if defined(lzo_pclock_read_clock_gettime_r_syscall)
Packit 679830
        if (lzo_pclock_read_clock_gettime_r_syscall(h, &c) == 0) {
Packit 679830
            h->gettime = lzo_pclock_read_clock_gettime_r_syscall;
Packit 679830
            h->name = "CLOCK_REALTIME/syscall";
Packit 679830
            break;
Packit 679830
        }
Packit 679830
#     endif
Packit 679830
#     if defined(lzo_pclock_read_gettimeofday)
Packit 679830
        if (lzo_pclock_read_gettimeofday(h, &c) == 0) {
Packit 679830
            h->gettime = lzo_pclock_read_gettimeofday;
Packit 679830
            h->name = "gettimeofday";
Packit 679830
            break;
Packit 679830
        }
Packit 679830
#     endif
Packit 679830
        break;
Packit 679830
    case LZO_PCLOCK_MONOTONIC:
Packit 679830
#     if defined(lzo_pclock_read_clock_gettime_m_syscall)
Packit 679830
        if (lzo_pclock_read_clock_gettime_m_syscall(h, &c) == 0) {
Packit 679830
            h->gettime = lzo_pclock_read_clock_gettime_m_syscall;
Packit 679830
            h->name = "CLOCK_MONOTONIC/syscall";
Packit 679830
            break;
Packit 679830
        }
Packit 679830
#     endif
Packit 679830
#     if defined(lzo_pclock_read_uclock)
Packit 679830
        if (lzo_pclock_read_uclock(h, &c) == 0) {
Packit 679830
            h->gettime = lzo_pclock_read_uclock;
Packit 679830
            h->name = "uclock";
Packit 679830
            break;
Packit 679830
        }
Packit 679830
#     endif
Packit 679830
#     if defined(lzo_pclock_read_clock)
Packit 679830
        if (lzo_pclock_read_clock(h, &c) == 0) {
Packit 679830
            h->gettime = lzo_pclock_read_clock;
Packit 679830
            h->name = "clock";
Packit 679830
            break;
Packit 679830
        }
Packit 679830
#     endif
Packit 679830
        break;
Packit 679830
    case LZO_PCLOCK_PROCESS_CPUTIME_ID:
Packit 679830
#     if defined(lzo_pclock_read_getprocesstimes)
Packit 679830
        if (lzo_pclock_read_getprocesstimes(h, &c) == 0) {
Packit 679830
            h->gettime = lzo_pclock_read_getprocesstimes;
Packit 679830
            h->name = "GetProcessTimes";
Packit 679830
            break;
Packit 679830
        }
Packit 679830
#     endif
Packit 679830
#     if defined(lzo_pclock_read_clock_gettime_p_syscall)
Packit 679830
        if (lzo_pclock_read_clock_gettime_p_syscall(h, &c) == 0) {
Packit 679830
            h->gettime = lzo_pclock_read_clock_gettime_p_syscall;
Packit 679830
            h->name = "CLOCK_PROCESS_CPUTIME_ID/syscall";
Packit 679830
            break;
Packit 679830
        }
Packit 679830
#     endif
Packit 679830
#     if defined(lzo_pclock_read_clock_gettime_p_libc)
Packit 679830
        if (lzo_pclock_read_clock_gettime_p_libc(h, &c) == 0) {
Packit 679830
            h->gettime = lzo_pclock_read_clock_gettime_p_libc;
Packit 679830
            h->name = "CLOCK_PROCESS_CPUTIME_ID/libc";
Packit 679830
            break;
Packit 679830
        }
Packit 679830
#     endif
Packit 679830
#     if defined(lzo_pclock_read_getrusage)
Packit 679830
        if (lzo_pclock_read_getrusage(h, &c) == 0) {
Packit 679830
            h->gettime = lzo_pclock_read_getrusage;
Packit 679830
            h->name = "getrusage";
Packit 679830
            break;
Packit 679830
        }
Packit 679830
#     endif
Packit 679830
        break;
Packit 679830
    case LZO_PCLOCK_THREAD_CPUTIME_ID:
Packit 679830
#     if defined(lzo_pclock_read_getthreadtimes)
Packit 679830
        if (lzo_pclock_read_getthreadtimes(h, &c) == 0) {
Packit 679830
            h->gettime = lzo_pclock_read_getthreadtimes;
Packit 679830
            h->name = "GetThreadTimes";
Packit 679830
        }
Packit 679830
#     endif
Packit 679830
#     if defined(lzo_pclock_read_clock_gettime_t_syscall)
Packit 679830
        if (lzo_pclock_read_clock_gettime_t_syscall(h, &c) == 0) {
Packit 679830
            h->gettime = lzo_pclock_read_clock_gettime_t_syscall;
Packit 679830
            h->name = "CLOCK_THREAD_CPUTIME_ID/syscall";
Packit 679830
            break;
Packit 679830
        }
Packit 679830
#     endif
Packit 679830
#     if defined(lzo_pclock_read_clock_gettime_t_libc)
Packit 679830
        if (lzo_pclock_read_clock_gettime_t_libc(h, &c) == 0) {
Packit 679830
            h->gettime = lzo_pclock_read_clock_gettime_t_libc;
Packit 679830
            h->name = "CLOCK_THREAD_CPUTIME_ID/libc";
Packit 679830
            break;
Packit 679830
        }
Packit 679830
#     endif
Packit 679830
        break;
Packit 679830
    }
Packit 679830
    if (!h->gettime)
Packit 679830
        return -1;
Packit 679830
    if (!h->h)
Packit 679830
        h->h = LZO_STATIC_CAST(lzolib_handle_t, 1);
Packit 679830
    h->mode = mode;
Packit 679830
    h->read_error = 0;
Packit 679830
    if (!h->name)
Packit 679830
        h->name = "unknown";
Packit 679830
    for (i = 0; i < 10; i++) {
Packit 679830
        __LZOLIB_FUNCNAME(lzo_pclock_read)(h, &c);
Packit 679830
    }
Packit 679830
    return 0;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(int, lzo_pclock_open_default) (lzo_pclock_handle_p h)
Packit 679830
{
Packit 679830
    if (__LZOLIB_FUNCNAME(lzo_pclock_open)(h, LZO_PCLOCK_PROCESS_CPUTIME_ID) == 0)
Packit 679830
        return 0;
Packit 679830
    if (__LZOLIB_FUNCNAME(lzo_pclock_open)(h, LZO_PCLOCK_MONOTONIC) == 0)
Packit 679830
        return 0;
Packit 679830
    if (__LZOLIB_FUNCNAME(lzo_pclock_open)(h, LZO_PCLOCK_REALTIME) == 0)
Packit 679830
        return 0;
Packit 679830
    if (__LZOLIB_FUNCNAME(lzo_pclock_open)(h, LZO_PCLOCK_THREAD_CPUTIME_ID) == 0)
Packit 679830
        return 0;
Packit 679830
    return -1;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(int, lzo_pclock_close) (lzo_pclock_handle_p h)
Packit 679830
{
Packit 679830
    h->h = LZO_STATIC_CAST(lzolib_handle_t, 0);
Packit 679830
    h->mode = -1;
Packit 679830
    h->name = NULL;
Packit 679830
    h->gettime = LZO_STATIC_CAST(lzo_pclock_gettime_t, 0);
Packit 679830
    return 0;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(void, lzo_pclock_read) (lzo_pclock_handle_p h, lzo_pclock_p c)
Packit 679830
{
Packit 679830
    if (h->gettime) {
Packit 679830
        if (h->gettime(h, c) == 0)
Packit 679830
            return;
Packit 679830
    }
Packit 679830
    h->read_error = 1;
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
    c->tv_sec = 0;
Packit 679830
#else
Packit 679830
    c->tv_sec_high = 0;
Packit 679830
    c->tv_sec_low = 0;
Packit 679830
#endif
Packit 679830
    c->tv_nsec = 0;
Packit 679830
}
Packit 679830
#if !(LZO_CFG_NO_DOUBLE)
Packit 679830
LZOLIB_PUBLIC(double, lzo_pclock_get_elapsed) (lzo_pclock_handle_p h, const lzo_pclock_p start, const lzo_pclock_p stop)
Packit 679830
{
Packit 679830
    if (!h->h) { h->mode = -1; return 0.0; }
Packit 679830
    {
Packit 679830
#if 1 && (LZO_ARCH_I386 && LZO_CC_GNUC) && defined(__STRICT_ALIGNMENT__)
Packit 679830
    float tstop, tstart;
Packit 679830
    tstop  = LZO_STATIC_CAST(float, (stop->tv_sec  + stop->tv_nsec  / 1000000000.0));
Packit 679830
    tstart = LZO_STATIC_CAST(float, (start->tv_sec + start->tv_nsec / 1000000000.0));
Packit 679830
#elif defined(lzo_int64l_t)
Packit 679830
    double tstop, tstart;
Packit 679830
#if 1 && (LZO_CC_INTELC)
Packit 679830
    { lzo_int64l_t a = stop->tv_sec; lzo_uint32l_t b = stop->tv_nsec;
Packit 679830
    tstop = a + b / 1000000000.0; }
Packit 679830
    { lzo_int64l_t a = start->tv_sec; lzo_uint32l_t b = start->tv_nsec;
Packit 679830
    tstart = a + b / 1000000000.0; }
Packit 679830
#else
Packit 679830
    tstop  = stop->tv_sec  + stop->tv_nsec  / 1000000000.0;
Packit 679830
    tstart = start->tv_sec + start->tv_nsec / 1000000000.0;
Packit 679830
#endif
Packit 679830
#else
Packit 679830
    double tstop, tstart;
Packit 679830
    tstop  = stop->tv_sec_low  + stop->tv_nsec  / 1000000000.0;
Packit 679830
    tstart = start->tv_sec_low + start->tv_nsec / 1000000000.0;
Packit 679830
#endif
Packit 679830
    return tstop - tstart;
Packit 679830
    }
Packit 679830
}
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC(int, lzo_pclock_flush_cpu_cache) (lzo_pclock_handle_p h, unsigned flags)
Packit 679830
{
Packit 679830
    LZO_UNUSED(h); LZO_UNUSED(flags);
Packit 679830
    return -1;
Packit 679830
}
Packit 679830
#if defined(__LZOLIB_PCLOCK_NEED_WARN_POP)
Packit 679830
#  if (LZO_CC_MSC && (_MSC_VER >= 1200))
Packit 679830
#    pragma warning(pop)
Packit 679830
#  else
Packit 679830
#    error "__LZOLIB_PCLOCK_NEED_WARN_POP"
Packit 679830
#  endif
Packit 679830
#  undef __LZOLIB_PCLOCK_NEED_WARN_POP
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACCLIB_MISC)
Packit 679830
#  undef LZO_WANT_ACCLIB_MISC
Packit 679830
#define __LZOLIB_MISC_CH_INCLUDED 1
Packit 679830
#if !defined(LZOLIB_PUBLIC)
Packit 679830
#  define LZOLIB_PUBLIC(r,f)                r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
#if !defined(LZOLIB_PUBLIC_NOINLINE)
Packit 679830
#  if !defined(__lzo_noinline)
Packit 679830
#    define LZOLIB_PUBLIC_NOINLINE(r,f)     r __LZOLIB_FUNCNAME(f)
Packit 679830
#  elif (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x030400ul) || LZO_CC_LLVM)
Packit 679830
#    define LZOLIB_PUBLIC_NOINLINE(r,f)     __lzo_noinline __attribute__((__used__)) r __LZOLIB_FUNCNAME(f)
Packit 679830
#  else
Packit 679830
#    define LZOLIB_PUBLIC_NOINLINE(r,f)     __lzo_noinline r __LZOLIB_FUNCNAME(f)
Packit 679830
#  endif
Packit 679830
#endif
Packit 679830
#if (LZO_OS_WIN32 && LZO_CC_PELLESC && (__POCC__ >= 290))
Packit 679830
#  pragma warn(push)
Packit 679830
#  pragma warn(disable:2007)
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC(const char *, lzo_getenv) (const char *s)
Packit 679830
{
Packit 679830
#if (HAVE_GETENV)
Packit 679830
    return getenv(s);
Packit 679830
#else
Packit 679830
    LZO_UNUSED(s); return LZO_STATIC_CAST(const char *, 0);
Packit 679830
#endif
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_intptr_t, lzo_get_osfhandle) (int fd)
Packit 679830
{
Packit 679830
    if (fd < 0)
Packit 679830
        return -1;
Packit 679830
#if (LZO_OS_CYGWIN)
Packit 679830
    return get_osfhandle(fd);
Packit 679830
#elif (LZO_OS_EMX && defined(__RSXNT__))
Packit 679830
    return -1;
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__)
Packit 679830
    return -1;
Packit 679830
#elif (LZO_OS_WIN32 || LZO_OS_WIN64)
Packit 679830
# if (LZO_CC_PELLESC && (__POCC__ < 280))
Packit 679830
    return -1;
Packit 679830
# elif (LZO_CC_WATCOMC && (__WATCOMC__ < 1000))
Packit 679830
    return -1;
Packit 679830
# elif (LZO_CC_WATCOMC && (__WATCOMC__ < 1100))
Packit 679830
    return _os_handle(fd);
Packit 679830
# else
Packit 679830
    return _get_osfhandle(fd);
Packit 679830
# endif
Packit 679830
#else
Packit 679830
    return fd;
Packit 679830
#endif
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(int, lzo_set_binmode) (int fd, int binary)
Packit 679830
{
Packit 679830
#if (LZO_ARCH_M68K && LZO_OS_TOS && LZO_CC_GNUC) && defined(__MINT__)
Packit 679830
    FILE* fp; int old_binary;
Packit 679830
    if (fd == STDIN_FILENO) fp = stdin;
Packit 679830
    else if (fd == STDOUT_FILENO) fp = stdout;
Packit 679830
    else if (fd == STDERR_FILENO) fp = stderr;
Packit 679830
    else return -1;
Packit 679830
    old_binary = fp->__mode.__binary;
Packit 679830
    __set_binmode(fp, binary ? 1 : 0);
Packit 679830
    return old_binary ? 1 : 0;
Packit 679830
#elif (LZO_ARCH_M68K && LZO_OS_TOS)
Packit 679830
    LZO_UNUSED(fd); LZO_UNUSED(binary);
Packit 679830
    return -1;
Packit 679830
#elif (LZO_OS_DOS16 && (LZO_CC_AZTECC || LZO_CC_PACIFICC))
Packit 679830
    LZO_UNUSED(fd); LZO_UNUSED(binary);
Packit 679830
    return -1;
Packit 679830
#elif (LZO_OS_DOS32 && LZO_CC_GNUC) && defined(__DJGPP__)
Packit 679830
    int r; unsigned old_flags = __djgpp_hwint_flags;
Packit 679830
    LZO_COMPILE_TIME_ASSERT(O_BINARY > 0)
Packit 679830
    LZO_COMPILE_TIME_ASSERT(O_TEXT > 0)
Packit 679830
    if (fd < 0) return -1;
Packit 679830
    r = setmode(fd, binary ? O_BINARY : O_TEXT);
Packit 679830
    if ((old_flags & 1u) != (__djgpp_hwint_flags & 1u))
Packit 679830
        __djgpp_set_ctrl_c(!(old_flags & 1));
Packit 679830
    if (r == -1) return -1;
Packit 679830
    return (r & O_TEXT) ? 0 : 1;
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__)
Packit 679830
    if (fd < 0) return -1;
Packit 679830
    LZO_UNUSED(binary);
Packit 679830
    return 1;
Packit 679830
#elif (LZO_OS_DOS32 && LZO_CC_HIGHC)
Packit 679830
    FILE* fp; int r;
Packit 679830
    if (fd == fileno(stdin)) fp = stdin;
Packit 679830
    else if (fd == fileno(stdout)) fp = stdout;
Packit 679830
    else if (fd == fileno(stderr)) fp = stderr;
Packit 679830
    else return -1;
Packit 679830
    r = _setmode(fp, binary ? _BINARY : _TEXT);
Packit 679830
    if (r == -1) return -1;
Packit 679830
    return (r & _BINARY) ? 1 : 0;
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_MWERKS) && defined(__MSL__)
Packit 679830
    LZO_UNUSED(fd); LZO_UNUSED(binary);
Packit 679830
    return -1;
Packit 679830
#elif (LZO_OS_CYGWIN && (LZO_CC_GNUC < 0x025a00ul))
Packit 679830
    LZO_UNUSED(fd); LZO_UNUSED(binary);
Packit 679830
    return -1;
Packit 679830
#elif (LZO_OS_CYGWIN || LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_EMX || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64)
Packit 679830
    int r;
Packit 679830
#if !(LZO_CC_ZORTECHC)
Packit 679830
    LZO_COMPILE_TIME_ASSERT(O_BINARY > 0)
Packit 679830
#endif
Packit 679830
    LZO_COMPILE_TIME_ASSERT(O_TEXT > 0)
Packit 679830
    if (fd < 0) return -1;
Packit 679830
    r = setmode(fd, binary ? O_BINARY : O_TEXT);
Packit 679830
    if (r == -1) return -1;
Packit 679830
    return (r & O_TEXT) ? 0 : 1;
Packit 679830
#else
Packit 679830
    if (fd < 0) return -1;
Packit 679830
    LZO_UNUSED(binary);
Packit 679830
    return 1;
Packit 679830
#endif
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(int, lzo_isatty) (int fd)
Packit 679830
{
Packit 679830
    if (fd < 0)
Packit 679830
        return 0;
Packit 679830
#if (LZO_OS_DOS16 && !(LZO_CC_AZTECC))
Packit 679830
    {
Packit 679830
        union REGS ri, ro;
Packit 679830
        ri.x.ax = 0x4400; ri.x.bx = fd;
Packit 679830
        int86(0x21, &ri, &ro);
Packit 679830
        if ((ro.x.cflag & 1) == 0)
Packit 679830
            if ((ro.x.ax & 0x83) != 0x83)
Packit 679830
                return 0;
Packit 679830
    }
Packit 679830
#elif (LZO_OS_DOS32 && LZO_CC_WATCOMC)
Packit 679830
    {
Packit 679830
        union REGS ri, ro;
Packit 679830
        ri.w.ax = 0x4400; ri.w.bx = LZO_STATIC_CAST(unsigned short, fd);
Packit 679830
        int386(0x21, &ri, &ro);
Packit 679830
        if ((ro.w.cflag & 1) == 0)
Packit 679830
            if ((ro.w.ax & 0x83) != 0x83)
Packit 679830
                return 0;
Packit 679830
    }
Packit 679830
#elif (LZO_HAVE_WINDOWS_H)
Packit 679830
    {
Packit 679830
        lzo_intptr_t h = __LZOLIB_FUNCNAME(lzo_get_osfhandle)(fd);
Packit 679830
        LZO_COMPILE_TIME_ASSERT(sizeof(h) == sizeof(HANDLE))
Packit 679830
        if (h != -1)
Packit 679830
        {
Packit 679830
            DWORD d = 0;
Packit 679830
            if (GetConsoleMode(LZO_REINTERPRET_CAST(HANDLE, h), &d) == 0)
Packit 679830
                return 0;
Packit 679830
        }
Packit 679830
    }
Packit 679830
#endif
Packit 679830
#if (HAVE_ISATTY)
Packit 679830
    return (isatty(fd)) ? 1 : 0;
Packit 679830
#else
Packit 679830
    return 0;
Packit 679830
#endif
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(int, lzo_mkdir) (const char* name, unsigned mode)
Packit 679830
{
Packit 679830
#if !(HAVE_MKDIR)
Packit 679830
    LZO_UNUSED(name); LZO_UNUSED(mode);
Packit 679830
    return -1;
Packit 679830
#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC))
Packit 679830
    LZO_UNUSED(mode);
Packit 679830
    return Dcreate(name);
Packit 679830
#elif (LZO_OS_DOS32 && LZO_CC_GNUC) && defined(__DJGPP__)
Packit 679830
    return mkdir(name, mode);
Packit 679830
#elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__)
Packit 679830
    return mkdir(name, mode);
Packit 679830
#elif ((LZO_OS_DOS16 || LZO_OS_DOS32) && (LZO_CC_HIGHC || LZO_CC_PACIFICC))
Packit 679830
    LZO_UNUSED(mode);
Packit 679830
    return mkdir(LZO_UNCONST_CAST(char *, name));
Packit 679830
#elif (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64)
Packit 679830
    LZO_UNUSED(mode);
Packit 679830
    return mkdir(name);
Packit 679830
#elif (LZO_CC_WATCOMC)
Packit 679830
    return mkdir(name, LZO_STATIC_CAST(mode_t, mode));
Packit 679830
#else
Packit 679830
    return mkdir(name, mode);
Packit 679830
#endif
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(int, lzo_rmdir) (const char* name)
Packit 679830
{
Packit 679830
#if !(HAVE_RMDIR)
Packit 679830
    LZO_UNUSED(name);
Packit 679830
    return -1;
Packit 679830
#elif ((LZO_OS_DOS16 || LZO_OS_DOS32) && (LZO_CC_HIGHC || LZO_CC_PACIFICC))
Packit 679830
    return rmdir(LZO_UNCONST_CAST(char *, name));
Packit 679830
#else
Packit 679830
    return rmdir(name);
Packit 679830
#endif
Packit 679830
}
Packit 679830
#if defined(lzo_int32e_t)
Packit 679830
LZOLIB_PUBLIC(lzo_int32e_t, lzo_muldiv32s) (lzo_int32e_t a, lzo_int32e_t b, lzo_int32e_t x)
Packit 679830
{
Packit 679830
    lzo_int32e_t r = 0;
Packit 679830
    if __lzo_likely(x != 0)
Packit 679830
    {
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
        lzo_int64l_t rr = (LZO_ICONV(lzo_int64l_t, a) * b) / x;
Packit 679830
        r = LZO_ITRUNC(lzo_int32e_t, rr);
Packit 679830
#else
Packit 679830
        LZO_UNUSED(a); LZO_UNUSED(b);
Packit 679830
#endif
Packit 679830
    }
Packit 679830
    return r;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC(lzo_uint32e_t, lzo_muldiv32u) (lzo_uint32e_t a, lzo_uint32e_t b, lzo_uint32e_t x)
Packit 679830
{
Packit 679830
    lzo_uint32e_t r = 0;
Packit 679830
    if __lzo_likely(x != 0)
Packit 679830
    {
Packit 679830
#if defined(lzo_int64l_t)
Packit 679830
        lzo_uint64l_t rr = (LZO_ICONV(lzo_uint64l_t, a) * b) / x;
Packit 679830
        r = LZO_ITRUNC(lzo_uint32e_t, rr);
Packit 679830
#else
Packit 679830
        LZO_UNUSED(a); LZO_UNUSED(b);
Packit 679830
#endif
Packit 679830
    }
Packit 679830
    return r;
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if 0
Packit 679830
LZOLIB_PUBLIC_NOINLINE(int, lzo_syscall_clock_gettime) (int c)
Packit 679830
{
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if (LZO_OS_WIN16)
Packit 679830
LZO_EXTERN_C void __far __pascal DebugBreak(void);
Packit 679830
#endif
Packit 679830
LZOLIB_PUBLIC_NOINLINE(void, lzo_debug_break) (void)
Packit 679830
{
Packit 679830
#if (LZO_OS_WIN16)
Packit 679830
    DebugBreak();
Packit 679830
#elif (LZO_ARCH_I086)
Packit 679830
#elif (LZO_OS_WIN64) && (LZO_HAVE_WINDOWS_H)
Packit 679830
    DebugBreak();
Packit 679830
#elif (LZO_ARCH_AMD64 || LZO_ARCH_I386) && (LZO_ASM_SYNTAX_GNUC)
Packit 679830
    __asm__ __volatile__("int $3\n" : : __LZO_ASM_CLOBBER_LIST_CC_MEMORY);
Packit 679830
#elif (LZO_ARCH_I386) && (LZO_ASM_SYNTAX_MSC)
Packit 679830
    __asm { int 3 }
Packit 679830
#elif (LZO_OS_WIN32) && (LZO_HAVE_WINDOWS_H)
Packit 679830
    DebugBreak();
Packit 679830
#else
Packit 679830
    volatile lzo_intptr_t a = -1;
Packit 679830
    * LZO_STATIC_CAST(volatile unsigned long *, LZO_REINTERPRET_CAST(volatile void *, a)) = ~0ul;
Packit 679830
#endif
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC_NOINLINE(void, lzo_debug_nop) (void)
Packit 679830
{
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC_NOINLINE(int, lzo_debug_align_check_query) (void)
Packit 679830
{
Packit 679830
#if (LZO_ARCH_AMD64 || LZO_ARCH_I386) && (LZO_ASM_SYNTAX_GNUC)
Packit 679830
# if (LZO_ARCH_AMD64)
Packit 679830
    lzo_uint64e_t r = 0;
Packit 679830
# else
Packit 679830
    size_t r = 0;
Packit 679830
# endif
Packit 679830
    __asm__ __volatile__("pushf\n pop %0\n" : "=a" (r) : __LZO_ASM_CLOBBER_LIST_CC_MEMORY);
Packit 679830
    return LZO_ICONV(int, (r >> 18) & 1);
Packit 679830
#elif (LZO_ARCH_I386) && (LZO_ASM_SYNTAX_MSC)
Packit 679830
    unsigned long r;
Packit 679830
    __asm {
Packit 679830
        pushf
Packit 679830
        pop eax
Packit 679830
        mov r,eax
Packit 679830
    }
Packit 679830
    return LZO_ICONV(int, (r >> 18) & 1);
Packit 679830
#else
Packit 679830
    return -1;
Packit 679830
#endif
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC_NOINLINE(int, lzo_debug_align_check_enable) (int v)
Packit 679830
{
Packit 679830
#if (LZO_ARCH_AMD64) && (LZO_ASM_SYNTAX_GNUC)
Packit 679830
    if (v) {
Packit 679830
        __asm__ __volatile__("pushf\n orl $262144,(%%rsp)\n popf\n" : : __LZO_ASM_CLOBBER_LIST_CC_MEMORY);
Packit 679830
    } else {
Packit 679830
        __asm__ __volatile__("pushf\n andl $-262145,(%%rsp)\n popf\n" : : __LZO_ASM_CLOBBER_LIST_CC_MEMORY);
Packit 679830
    }
Packit 679830
    return 0;
Packit 679830
#elif (LZO_ARCH_I386) && (LZO_ASM_SYNTAX_GNUC)
Packit 679830
    if (v) {
Packit 679830
        __asm__ __volatile__("pushf\n orl $262144,(%%esp)\n popf\n" : : __LZO_ASM_CLOBBER_LIST_CC_MEMORY);
Packit 679830
    } else {
Packit 679830
        __asm__ __volatile__("pushf\n andl $-262145,(%%esp)\n popf\n" : : __LZO_ASM_CLOBBER_LIST_CC_MEMORY);
Packit 679830
    }
Packit 679830
    return 0;
Packit 679830
#elif (LZO_ARCH_I386) && (LZO_ASM_SYNTAX_MSC)
Packit 679830
    if (v) { __asm {
Packit 679830
        pushf
Packit 679830
        or dword ptr [esp],262144
Packit 679830
        popf
Packit 679830
    }} else { __asm {
Packit 679830
        pushf
Packit 679830
        and dword ptr [esp],-262145
Packit 679830
        popf
Packit 679830
    }}
Packit 679830
    return 0;
Packit 679830
#else
Packit 679830
    LZO_UNUSED(v); return -1;
Packit 679830
#endif
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC_NOINLINE(unsigned, lzo_debug_running_on_qemu) (void)
Packit 679830
{
Packit 679830
    unsigned r = 0;
Packit 679830
#if (LZO_OS_POSIX_LINUX || LZO_OS_WIN32 || LZO_OS_WIN64)
Packit 679830
    const char* p;
Packit 679830
    p = __LZOLIB_FUNCNAME(lzo_getenv)(LZO_PP_STRINGIZE(LZO_ENV_RUNNING_ON_QEMU));
Packit 679830
    if (p) {
Packit 679830
        if (p[0] == 0) r = 0;
Packit 679830
        else if ((p[0] >= '0' && p[0] <= '9') && p[1] == 0) r = LZO_ICAST(unsigned, p[0]) - '0';
Packit 679830
        else r = 1;
Packit 679830
    }
Packit 679830
#endif
Packit 679830
    return r;
Packit 679830
}
Packit 679830
LZOLIB_PUBLIC_NOINLINE(unsigned, lzo_debug_running_on_valgrind) (void)
Packit 679830
{
Packit 679830
#if (LZO_ARCH_AMD64 && LZO_ABI_ILP32)
Packit 679830
    return 0;
Packit 679830
#elif (LZO_ARCH_AMD64 || LZO_ARCH_I386) && (LZO_ASM_SYNTAX_GNUC)
Packit 679830
    volatile size_t a[6];
Packit 679830
    size_t r = 0;
Packit 679830
    a[0] = 0x1001; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 0;
Packit 679830
#  if (LZO_ARCH_AMD64)
Packit 679830
    __asm__ __volatile__(".byte 0x48,0xc1,0xc7,0x03,0x48,0xc1,0xc7,0x0d,0x48,0xc1,0xc7,0x3d,0x48,0xc1,0xc7,0x33,0x48,0x87,0xdb\n" : "=d" (r) : "a" (&a[0]), "d" (r) __LZO_ASM_CLOBBER_LIST_CC_MEMORY);
Packit 679830
#  elif (LZO_ARCH_I386)
Packit 679830
    __asm__ __volatile__(".byte 0xc1,0xc7,0x03,0xc1,0xc7,0x0d,0xc1,0xc7,0x1d,0xc1,0xc7,0x13,0x87,0xdb\n" : "=d" (r) : "a" (&a[0]), "d" (r) __LZO_ASM_CLOBBER_LIST_CC_MEMORY);
Packit 679830
#  endif
Packit 679830
    return LZO_ITRUNC(unsigned, r);
Packit 679830
#else
Packit 679830
    return 0;
Packit 679830
#endif
Packit 679830
}
Packit 679830
#if (LZO_OS_WIN32 && LZO_CC_PELLESC && (__POCC__ >= 290))
Packit 679830
#  pragma warn(pop)
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if defined(LZO_WANT_ACCLIB_WILDARGV)
Packit 679830
#  undef LZO_WANT_ACCLIB_WILDARGV
Packit 679830
#define __LZOLIB_WILDARGV_CH_INCLUDED 1
Packit 679830
#if !defined(LZOLIB_PUBLIC)
Packit 679830
#  define LZOLIB_PUBLIC(r,f)    r __LZOLIB_FUNCNAME(f)
Packit 679830
#endif
Packit 679830
#if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
Packit 679830
#if 0 && (LZO_CC_MSC)
Packit 679830
LZO_EXTERN_C int __lzo_cdecl __setargv(void);
Packit 679830
LZO_EXTERN_C int __lzo_cdecl _setargv(void);
Packit 679830
LZO_EXTERN_C int __lzo_cdecl _setargv(void) { return __setargv(); }
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if (LZO_OS_WIN32 || LZO_OS_WIN64)
Packit 679830
#if (LZO_CC_INTELC || LZO_CC_MSC)
Packit 679830
LZO_EXTERN_C int __lzo_cdecl __setargv(void);
Packit 679830
LZO_EXTERN_C int __lzo_cdecl _setargv(void);
Packit 679830
LZO_EXTERN_C int __lzo_cdecl _setargv(void) { return __setargv(); }
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#if (LZO_OS_EMX)
Packit 679830
#define __LZOLIB_HAVE_LZO_WILDARGV 1
Packit 679830
LZOLIB_PUBLIC(void, lzo_wildargv) (int* argc, char*** argv)
Packit 679830
{
Packit 679830
    if (argc && argv) {
Packit 679830
        _response(argc, argv);
Packit 679830
        _wildcard(argc, argv);
Packit 679830
    }
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if (LZO_OS_CONSOLE_PSP) && defined(__PSPSDK_DEBUG__)
Packit 679830
#define __LZOLIB_HAVE_LZO_WILDARGV 1
Packit 679830
LZO_EXTERN_C int lzo_psp_init_module(int*, char***, int);
Packit 679830
LZOLIB_PUBLIC(void, lzo_wildargv) (int* argc, char*** argv)
Packit 679830
{
Packit 679830
    lzo_psp_init_module(argc, argv, -1);
Packit 679830
}
Packit 679830
#endif
Packit 679830
#if !(__LZOLIB_HAVE_LZO_WILDARGV)
Packit 679830
#define __LZOLIB_HAVE_LZO_WILDARGV 1
Packit 679830
LZOLIB_PUBLIC(void, lzo_wildargv) (int* argc, char*** argv)
Packit 679830
{
Packit 679830
#if 1 && (LZO_ARCH_I086PM)
Packit 679830
    if (LZO_MM_AHSHIFT != 3) { exit(1); }
Packit 679830
#elif 1 && (LZO_ARCH_M68K && LZO_OS_TOS && LZO_CC_GNUC) && defined(__MINT__)
Packit 679830
    __binmode(1);
Packit 679830
    if (isatty(1)) __set_binmode(stdout, 0);
Packit 679830
    if (isatty(2)) __set_binmode(stderr, 0);
Packit 679830
#endif
Packit 679830
    LZO_UNUSED(argc); LZO_UNUSED(argv);
Packit 679830
}
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
Packit 679830
/* vim:set ts=4 sw=4 et: */