Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:04:56

0001 /* lzo_asm.h -- assembler prototypes for the LZO data compression library
0002 
0003    This file is part of the LZO real-time data compression library.
0004 
0005    Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
0006    All Rights Reserved.
0007 
0008    The LZO library is free software; you can redistribute it and/or
0009    modify it under the terms of the GNU General Public License as
0010    published by the Free Software Foundation; either version 2 of
0011    the License, or (at your option) any later version.
0012 
0013    The LZO library is distributed in the hope that it will be useful,
0014    but WITHOUT ANY WARRANTY; without even the implied warranty of
0015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0016    GNU General Public License for more details.
0017 
0018    You should have received a copy of the GNU General Public License
0019    along with the LZO library; see the file COPYING.
0020    If not, write to the Free Software Foundation, Inc.,
0021    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
0022 
0023    Markus F.X.J. Oberhumer
0024    <markus@oberhumer.com>
0025    http://www.oberhumer.com/opensource/lzo/
0026  */
0027 
0028 
0029 #ifndef __LZO_ASM_H_INCLUDED
0030 #define __LZO_ASM_H_INCLUDED 1
0031 
0032 #ifndef __LZOCONF_H_INCLUDED
0033 #include <lzo/lzoconf.h>
0034 #endif
0035 
0036 #ifdef __cplusplus
0037 extern "C" {
0038 #endif
0039 
0040 
0041 /***********************************************************************
0042 // i386 assembly decompressors
0043 //
0044 // NOTE:
0045 // ====
0046 //
0047 // - For reasons of speed all fast assembler decompressors (having '_fast'
0048 //   in their name) can access (write to) up to 3 bytes past the end of
0049 //   the decompressed ("dst") block. Data past the end of the compressed
0050 //   ("src") block is never accessed (read from).
0051 //   [ technical note: because data is transferred in 32-bit units ]
0052 //
0053 // - Please also see asm/i386/00README.TXT and doc/LZO.FAQ for more
0054 //   important details about the assembler versions.
0055 //
0056 ************************************************************************/
0057 
0058 LZO_EXTERN(int) lzo1c_decompress_asm
0059                                 (const lzo_bytep src, lzo_uint  src_len,
0060                                        lzo_bytep dst, lzo_uintp dst_len,
0061                                        lzo_voidp wrkmem);
0062 LZO_EXTERN(int) lzo1c_decompress_asm_safe
0063                                 (const lzo_bytep src, lzo_uint  src_len,
0064                                        lzo_bytep dst, lzo_uintp dst_len,
0065                                        lzo_voidp wrkmem);
0066 
0067 LZO_EXTERN(int) lzo1f_decompress_asm_fast
0068                                 (const lzo_bytep src, lzo_uint  src_len,
0069                                        lzo_bytep dst, lzo_uintp dst_len,
0070                                        lzo_voidp wrkmem);
0071 LZO_EXTERN(int) lzo1f_decompress_asm_fast_safe
0072                                 (const lzo_bytep src, lzo_uint  src_len,
0073                                        lzo_bytep dst, lzo_uintp dst_len,
0074                                        lzo_voidp wrkmem);
0075 
0076 LZO_EXTERN(int) lzo1x_decompress_asm
0077                                 (const lzo_bytep src, lzo_uint  src_len,
0078                                        lzo_bytep dst, lzo_uintp dst_len,
0079                                        lzo_voidp wrkmem);
0080 LZO_EXTERN(int) lzo1x_decompress_asm_safe
0081                                 (const lzo_bytep src, lzo_uint  src_len,
0082                                        lzo_bytep dst, lzo_uintp dst_len,
0083                                        lzo_voidp wrkmem);
0084 LZO_EXTERN(int) lzo1x_decompress_asm_fast
0085                                 (const lzo_bytep src, lzo_uint  src_len,
0086                                        lzo_bytep dst, lzo_uintp dst_len,
0087                                        lzo_voidp wrkmem);
0088 LZO_EXTERN(int) lzo1x_decompress_asm_fast_safe
0089                                 (const lzo_bytep src, lzo_uint  src_len,
0090                                        lzo_bytep dst, lzo_uintp dst_len,
0091                                        lzo_voidp wrkmem);
0092 
0093 LZO_EXTERN(int) lzo1y_decompress_asm
0094                                 (const lzo_bytep src, lzo_uint  src_len,
0095                                        lzo_bytep dst, lzo_uintp dst_len,
0096                                        lzo_voidp wrkmem);
0097 LZO_EXTERN(int) lzo1y_decompress_asm_safe
0098                                 (const lzo_bytep src, lzo_uint  src_len,
0099                                        lzo_bytep dst, lzo_uintp dst_len,
0100                                        lzo_voidp wrkmem);
0101 LZO_EXTERN(int) lzo1y_decompress_asm_fast
0102                                 (const lzo_bytep src, lzo_uint  src_len,
0103                                        lzo_bytep dst, lzo_uintp dst_len,
0104                                        lzo_voidp wrkmem);
0105 LZO_EXTERN(int) lzo1y_decompress_asm_fast_safe
0106                                 (const lzo_bytep src, lzo_uint  src_len,
0107                                        lzo_bytep dst, lzo_uintp dst_len,
0108                                        lzo_voidp wrkmem);
0109 
0110 
0111 /***********************************************************************
0112 // checksum and misc functions
0113 ************************************************************************/
0114 
0115 #if 0
0116 
0117 LZO_EXTERN(lzo_uint32_t)
0118 lzo_crc32_asm(lzo_uint32_t c, const lzo_bytep buf, lzo_uint len,
0119               const lzo_uint32_tp tab);
0120 
0121 LZO_EXTERN(lzo_uint32_t)
0122 lzo_crc32_asm_small(lzo_uint32_t c, const lzo_bytep buf, lzo_uint len);
0123 
0124 LZO_EXTERN(int)
0125 lzo_cpuid_asm(lzo_uint32_tp /* lzo_uint32_t info[16] */ );
0126 
0127 LZO_EXTERN(lzo_uint32_t)
0128 lzo_rdtsc_asm(lzo_uint32_tp /* lzo_uint32_t ticks[2] */ );
0129 
0130 #endif
0131 
0132 
0133 #ifdef __cplusplus
0134 } /* extern "C" */
0135 #endif
0136 
0137 #endif /* already included */
0138 
0139 
0140 /* vim:set ts=4 sw=4 et: */