Updates to Tomato RAF including NGINX && PHP
[tomato.git] / release / src / router / lzo / include / lzo / lzo_asm.h
blob51bea6573106b7f62f24538e66da0cd56408aae9
1 /* lzo_asm.h -- assembler prototypes for the LZO data compression library
3 This file is part of the LZO real-time data compression library.
5 Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
6 Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
7 Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
8 Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
9 Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
10 Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
11 Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
12 Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
13 Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
14 Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
15 Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
16 Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
17 Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
18 Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
19 Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
20 Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
21 All Rights Reserved.
23 The LZO library is free software; you can redistribute it and/or
24 modify it under the terms of the GNU General Public License as
25 published by the Free Software Foundation; either version 2 of
26 the License, or (at your option) any later version.
28 The LZO library is distributed in the hope that it will be useful,
29 but WITHOUT ANY WARRANTY; without even the implied warranty of
30 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31 GNU General Public License for more details.
33 You should have received a copy of the GNU General Public License
34 along with the LZO library; see the file COPYING.
35 If not, write to the Free Software Foundation, Inc.,
36 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
38 Markus F.X.J. Oberhumer
39 <markus@oberhumer.com>
40 http://www.oberhumer.com/opensource/lzo/
44 #ifndef __LZO_ASM_H_INCLUDED
45 #define __LZO_ASM_H_INCLUDED 1
47 #ifndef __LZOCONF_H_INCLUDED
48 #include "lzoconf.h"
49 #endif
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
56 /***********************************************************************
57 // i386 assembly decompressors
59 // NOTE:
60 // ====
62 // - For reasons of speed all fast assembler decompressors (having '_fast'
63 // in their name) can access (write to) up to 3 bytes past the end of
64 // the decompressed ("dst") block. Data past the end of the compressed
65 // ("src") block is never accessed (read from).
66 // [ technical note: because data is transferred in 32-bit units ]
68 // - Please also see asm/i386/00README.TXT and doc/LZO.FAQ for more
69 // important details about the assembler versions.
71 ************************************************************************/
73 LZO_EXTERN(int) lzo1c_decompress_asm
74 (const lzo_bytep src, lzo_uint src_len,
75 lzo_bytep dst, lzo_uintp dst_len,
76 lzo_voidp wrkmem);
77 LZO_EXTERN(int) lzo1c_decompress_asm_safe
78 (const lzo_bytep src, lzo_uint src_len,
79 lzo_bytep dst, lzo_uintp dst_len,
80 lzo_voidp wrkmem);
82 LZO_EXTERN(int) lzo1f_decompress_asm_fast
83 (const lzo_bytep src, lzo_uint src_len,
84 lzo_bytep dst, lzo_uintp dst_len,
85 lzo_voidp wrkmem);
86 LZO_EXTERN(int) lzo1f_decompress_asm_fast_safe
87 (const lzo_bytep src, lzo_uint src_len,
88 lzo_bytep dst, lzo_uintp dst_len,
89 lzo_voidp wrkmem);
91 LZO_EXTERN(int) lzo1x_decompress_asm
92 (const lzo_bytep src, lzo_uint src_len,
93 lzo_bytep dst, lzo_uintp dst_len,
94 lzo_voidp wrkmem);
95 LZO_EXTERN(int) lzo1x_decompress_asm_safe
96 (const lzo_bytep src, lzo_uint src_len,
97 lzo_bytep dst, lzo_uintp dst_len,
98 lzo_voidp wrkmem);
99 LZO_EXTERN(int) lzo1x_decompress_asm_fast
100 (const lzo_bytep src, lzo_uint src_len,
101 lzo_bytep dst, lzo_uintp dst_len,
102 lzo_voidp wrkmem);
103 LZO_EXTERN(int) lzo1x_decompress_asm_fast_safe
104 (const lzo_bytep src, lzo_uint src_len,
105 lzo_bytep dst, lzo_uintp dst_len,
106 lzo_voidp wrkmem);
108 LZO_EXTERN(int) lzo1y_decompress_asm
109 (const lzo_bytep src, lzo_uint src_len,
110 lzo_bytep dst, lzo_uintp dst_len,
111 lzo_voidp wrkmem);
112 LZO_EXTERN(int) lzo1y_decompress_asm_safe
113 (const lzo_bytep src, lzo_uint src_len,
114 lzo_bytep dst, lzo_uintp dst_len,
115 lzo_voidp wrkmem);
116 LZO_EXTERN(int) lzo1y_decompress_asm_fast
117 (const lzo_bytep src, lzo_uint src_len,
118 lzo_bytep dst, lzo_uintp dst_len,
119 lzo_voidp wrkmem);
120 LZO_EXTERN(int) lzo1y_decompress_asm_fast_safe
121 (const lzo_bytep src, lzo_uint src_len,
122 lzo_bytep dst, lzo_uintp dst_len,
123 lzo_voidp wrkmem);
126 /***********************************************************************
127 // checksum and misc functions
128 ************************************************************************/
130 #if 0
132 LZO_EXTERN(lzo_uint32)
133 lzo_crc32_asm(lzo_uint32 c, const lzo_bytep buf, lzo_uint len,
134 const lzo_uint32p tab);
136 LZO_EXTERN(lzo_uint32)
137 lzo_crc32_asm_small(lzo_uint32 c, const lzo_bytep buf, lzo_uint len);
139 LZO_EXTERN(int)
140 lzo_cpuid_asm(lzo_uint32p /* lzo_uint32 info[16] */ );
142 LZO_EXTERN(lzo_uint32)
143 lzo_rdtsc_asm(lzo_uint32p /* lzo_uint32 ticks[2] */ );
145 #endif
148 #ifdef __cplusplus
149 } /* extern "C" */
150 #endif
152 #endif /* already included */
155 /* vim:set ts=4 et: */