CnC_Remastered_Collection/REDALERT/LZOCONF.H

215 lines
6.8 KiB
C

//
// Copyright 2020 Electronic Arts Inc.
//
// TiberianDawn.DLL and RedAlert.dll and corresponding source code 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 3 of the License, or (at your option) any later version.
// TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed
// in the hope that it will be useful, but with permitted additional restrictions
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT
// distributed with this program. You should have received a copy of the
// GNU General Public License along with permitted additional restrictions
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
/* lzoconf.h -- configuration for the LZO real-time data compression library
This file is part of the LZO real-time data compression library.
Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
The LZO library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the LZO library; see the file COPYING.LIB.
If not, write to the Free Software Foundation, Inc.,
675 Mass Ave, Cambridge, MA 02139, USA.
Markus F.X.J. Oberhumer
markus.oberhumer@jk.uni-linz.ac.at
*/
#ifndef __LZOCONF_H
#define __LZOCONF_H
#define LZO_VERSION 0x0200
#define LZO_VERSION_STRING "0.20"
#define LZO_VERSION_DATE "11 Aug 1996"
#include <limits.h> /* CHAR_BIT, UINT_MAX, ULONG_MAX */
#if !defined(CHAR_BIT) || (CHAR_BIT != 8)
# error invalid CHAR_BIT
#endif
//#ifdef __cplusplus
//extern "C" {
//#endif
/***********************************************************************
// defines
************************************************************************/
#if defined(__MSDOS__) || defined(MSDOS)
# define __LZO_MSDOS
# if (UINT_MAX < 0xffffffffL)
# define __LZO_MSDOS16
# endif
#endif
/***********************************************************************
// integral and pointer types
************************************************************************/
/* Unsigned type with 32 bits or more */
#if (UINT_MAX >= 0xffffffffL)
typedef unsigned int lzo_uint;
typedef int lzo_int;
# define LZO_UINT_MAX UINT_MAX
#elif (ULONG_MAX >= 0xffffffffL)
typedef unsigned long lzo_uint;
typedef long lzo_int;
# define LZO_UINT_MAX ULONG_MAX
#else
# error lzo_uint
#endif
/* Memory model that allows to access memory at offsets of lzo_uint.
* Huge pointers (16 bit MSDOS) are somewhat slow, but they work
* fine and I really don't care about 16 bit compiler
* optimizations nowadays.
*/
#if (LZO_UINT_MAX <= UINT_MAX)
# define __LZO_MMODEL
#elif defined(__LZO_MSDOS16)
# define __LZO_MMODEL huge
# define __LZO_ENTRY __cdecl
#else
# error __LZO_MMODEL
#endif
/* no typedef here because of const-pointer issues */
#define lzo_byte unsigned char __LZO_MMODEL
#define lzo_voidp void __LZO_MMODEL *
#define lzo_bytep unsigned char __LZO_MMODEL *
#define lzo_uintp lzo_uint __LZO_MMODEL *
#define lzo_intp lzo_int __LZO_MMODEL *
#define lzo_voidpp lzo_voidp __LZO_MMODEL *
#define lzo_bytepp lzo_bytep __LZO_MMODEL *
/* Unsigned type that can store all bits of a lzo_voidp */
typedef unsigned long lzo_ptr_t;
/* Align a pointer on a boundary that is a multiple of 'size' */
#define LZO_ALIGN(ptr,size) \
((lzo_voidp) (((lzo_ptr_t)(ptr) + (size)-1) & ~((lzo_ptr_t)((size)-1))))
/***********************************************************************
// function types
************************************************************************/
//#ifdef __cplusplus
//# define LZO_EXTERN_C extern "C"
//#else
# define LZO_EXTERN_C extern
//#endif
#if !defined(__LZO_ENTRY) /* calling convention */
# define __LZO_ENTRY
#endif
#if !defined(__LZO_EXPORT) /* DLL export (and maybe size) information */
# define __LZO_EXPORT
#endif
#if !defined(LZO_EXTERN)
# define LZO_EXTERN(_rettype) LZO_EXTERN_C _rettype __LZO_ENTRY __LZO_EXPORT
#endif
typedef int __LZO_ENTRY
(__LZO_EXPORT *lzo_compress_t) ( const lzo_byte *src, lzo_uint src_len,
lzo_byte *dst, lzo_uint *dst_len,
lzo_voidp wrkmem );
typedef int __LZO_ENTRY
(__LZO_EXPORT *lzo_decompress_t)( const lzo_byte *src, lzo_uint src_len,
lzo_byte *dst, lzo_uint *dst_len,
lzo_voidp wrkmem );
/* a progress indicator callback function */
typedef void __LZO_ENTRY
(__LZO_EXPORT *lzo_progress_callback_t)(lzo_uint,lzo_uint);
/***********************************************************************
// error codes and prototypes
************************************************************************/
/* Error codes for the compression/decompression functions. Negative
* values are errors, positive values will be used for special but
* normal events.
*/
#define LZO_E_OK 0
#define LZO_E_ERROR (-1)
#define LZO_E_NOT_COMPRESSIBLE (-2) /* not used right now */
#define LZO_E_EOF_NOT_FOUND (-3)
#define LZO_E_INPUT_OVERRUN (-4)
#define LZO_E_OUTPUT_OVERRUN (-5)
#define LZO_E_LOOKBEHIND_OVERRUN (-6)
#define LZO_E_OUT_OF_MEMORY (-7) /* not used right now */
/* this should be the first function you call. Check the return code ! */
LZO_EXTERN(int) lzo_init(void);
/* version functions (useful for shared libraries) */
LZO_EXTERN(unsigned) lzo_version(void);
LZO_EXTERN(const char *) lzo_version_string(void);
/* string functions */
LZO_EXTERN(int)
lzo_memcmp(const lzo_voidp _s1, const lzo_voidp _s2, lzo_uint _len);
LZO_EXTERN(lzo_voidp)
lzo_memcpy(lzo_voidp _dest, const lzo_voidp _src, lzo_uint _len);
LZO_EXTERN(lzo_voidp)
lzo_memmove(lzo_voidp _dest, const lzo_voidp _src, lzo_uint _len);
LZO_EXTERN(lzo_voidp)
lzo_memset(lzo_voidp _s, int _c, lzo_uint _len);
/* checksum functions */
LZO_EXTERN(lzo_uint)
lzo_adler32(lzo_uint _adler, const lzo_byte *_buf, lzo_uint _len);
/* misc. */
LZO_EXTERN(int) lzo_assert(int _expr);
LZO_EXTERN(int) _lzo_config_check(void);
//#ifdef __cplusplus
//} /* extern "C" */
//#endif
#endif /* already included */
/*
vi:ts=4
*/