forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
lib/lzo: Update LZO compression to current upstream version
This commit updates the kernel LZO code to the current upsteam version which features a significant speed improvement - benchmarking the Calgary and Silesia test corpora typically shows a doubled performance in both compression and decompression on modern i386/x86_64/powerpc machines. Signed-off-by: Markus F.X.J. Oberhumer <[email protected]>
- Loading branch information
1 parent
b6bec26
commit 8b975bd
Showing
4 changed files
with
395 additions
and
343 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,28 +4,28 @@ | |
* LZO Public Kernel Interface | ||
* A mini subset of the LZO real-time data compression library | ||
* | ||
* Copyright (C) 1996-2005 Markus F.X.J. Oberhumer <[email protected]> | ||
* Copyright (C) 1996-2012 Markus F.X.J. Oberhumer <[email protected]> | ||
* | ||
* The full LZO package can be found at: | ||
* http://www.oberhumer.com/opensource/lzo/ | ||
* | ||
* Changed for kernel use by: | ||
* Changed for Linux kernel use by: | ||
* Nitin Gupta <[email protected]> | ||
* Richard Purdie <[email protected]> | ||
*/ | ||
|
||
#define LZO1X_MEM_COMPRESS (16384 * sizeof(unsigned char *)) | ||
#define LZO1X_1_MEM_COMPRESS LZO1X_MEM_COMPRESS | ||
#define LZO1X_1_MEM_COMPRESS (8192 * sizeof(unsigned short)) | ||
#define LZO1X_MEM_COMPRESS LZO1X_1_MEM_COMPRESS | ||
|
||
#define lzo1x_worst_compress(x) ((x) + ((x) / 16) + 64 + 3) | ||
|
||
/* This requires 'workmem' of size LZO1X_1_MEM_COMPRESS */ | ||
/* This requires 'wrkmem' of size LZO1X_1_MEM_COMPRESS */ | ||
int lzo1x_1_compress(const unsigned char *src, size_t src_len, | ||
unsigned char *dst, size_t *dst_len, void *wrkmem); | ||
unsigned char *dst, size_t *dst_len, void *wrkmem); | ||
|
||
/* safe decompression with overrun testing */ | ||
int lzo1x_decompress_safe(const unsigned char *src, size_t src_len, | ||
unsigned char *dst, size_t *dst_len); | ||
unsigned char *dst, size_t *dst_len); | ||
|
||
/* | ||
* Return values (< 0 = Error) | ||
|
@@ -40,5 +40,6 @@ int lzo1x_decompress_safe(const unsigned char *src, size_t src_len, | |
#define LZO_E_EOF_NOT_FOUND (-7) | ||
#define LZO_E_INPUT_NOT_CONSUMED (-8) | ||
#define LZO_E_NOT_YET_IMPLEMENTED (-9) | ||
#define LZO_E_INVALID_ARGUMENT (-10) | ||
|
||
#endif |
Oops, something went wrong.