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