summaryrefslogtreecommitdiff
path: root/lzo/examples/portab_a.h
diff options
context:
space:
mode:
Diffstat (limited to 'lzo/examples/portab_a.h')
-rw-r--r--lzo/examples/portab_a.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/lzo/examples/portab_a.h b/lzo/examples/portab_a.h
new file mode 100644
index 00000000..a58ba99d
--- /dev/null
+++ b/lzo/examples/portab_a.h
@@ -0,0 +1,128 @@
+/* portab_a.h -- advanced portability layer
+
+ This file is part of the LZO real-time data compression library.
+
+ Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996 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
+ <markus@oberhumer.com>
+ http://www.oberhumer.com/opensource/lzo/
+ */
+
+
+/*************************************************************************
+// use the ACC library for the hard work
+**************************************************************************/
+
+#if defined(LZO_HAVE_CONFIG_H)
+# define ACC_CONFIG_NO_HEADER 1
+#endif
+
+#define ACC_WANT_ACC_INCD_H 1
+#define ACC_WANT_ACC_INCE_H 1
+#if defined(__LZO_MMODEL_HUGE) || defined(WANT_LZO_UCLOCK) || defined(WANT_LZO_WILDARGV)
+# define ACC_WANT_ACC_INCI_H 1
+# define ACC_WANT_ACC_LIB_H 1
+#endif
+#include "src/miniacc.h"
+
+#if defined(WANT_LZO_MALLOC)
+# if defined(__LZO_MMODEL_HUGE)
+# define ACC_WANT_ACCLIB_HALLOC 1
+# else
+# define acc_halloc(a) (malloc(a))
+# define acc_hfree(a) (free(a))
+# endif
+#endif
+#if defined(WANT_LZO_FREAD)
+# if defined(__LZO_MMODEL_HUGE)
+# define ACC_WANT_ACCLIB_HFREAD 1
+# else
+# define acc_hfread(f,b,s) (fread(b,1,s,f))
+# define acc_hfwrite(f,b,s) (fwrite(b,1,s,f))
+# endif
+#endif
+#if defined(WANT_LZO_UCLOCK)
+# define ACC_WANT_ACCLIB_PCLOCK 1
+# if 0 && (LZO_ARCH_AMD64 || LZO_ARCH_I386)
+# define __ACCLIB_PCLOCK_USE_RDTSC 1
+# define ACC_WANT_ACCLIB_RDTSC 1
+# endif
+#endif
+#if defined(WANT_LZO_WILDARGV)
+# define ACC_WANT_ACCLIB_WILDARGV 1
+#endif
+#if defined(__ACCLIB_PCLOCK_USE_PERFCTR)
+# include "src/fullacc.h"
+# define lzo_uclock_flush_cpu_cache(h,flags) acc_pclock_flush_cpu_cache(h,flags)
+#else
+# include "src/miniacc.h"
+#endif
+
+#if (__ACCLIB_REQUIRE_HMEMCPY_CH) && !defined(__ACCLIB_HMEMCPY_CH_INCLUDED)
+# define ACC_WANT_ACCLIB_HMEMCPY 1
+# include "src/miniacc.h"
+#endif
+
+
+/*************************************************************************
+// finally pull into the LZO namespace
+**************************************************************************/
+
+#undef lzo_malloc
+#undef lzo_free
+#undef lzo_fread
+#undef lzo_fwrite
+#if defined(WANT_LZO_MALLOC)
+# define lzo_malloc(a) acc_halloc(a)
+# define lzo_free(a) acc_hfree(a)
+#endif
+#if defined(WANT_LZO_FREAD)
+# define lzo_fread(f,b,s) acc_hfread(f,b,s)
+# define lzo_fwrite(f,b,s) acc_hfwrite(f,b,s)
+#endif
+#if defined(WANT_LZO_UCLOCK)
+# define lzo_uclock_handle_t acc_pclock_handle_t
+# define lzo_uclock_t acc_pclock_t
+# define lzo_uclock_open(a) acc_pclock_open_default(a)
+# define lzo_uclock_close(a) acc_pclock_close(a)
+# define lzo_uclock_read(a,b) acc_pclock_read(a,b)
+# define lzo_uclock_get_elapsed(a,b,c) acc_pclock_get_elapsed(a,b,c)
+#endif
+#if defined(WANT_LZO_WILDARGV)
+# define lzo_wildargv(a,b) acc_wildargv(a,b)
+#endif
+
+
+/*
+vi:ts=4:et
+*/
+