diff options
Diffstat (limited to 'include/sys')
-rw-r--r-- | include/sys/zio.h | 3 | ||||
-rw-r--r-- | include/sys/zio_compress.h | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/include/sys/zio.h b/include/sys/zio.h index 052797928..64efde016 100644 --- a/include/sys/zio.h +++ b/include/sys/zio.h @@ -25,6 +25,7 @@ /* * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2012 by Delphix. All rights reserved. + * Copyright (c) 2013 by Saso Kiselkov. All rights reserved. */ #ifndef _ZIO_H @@ -108,6 +109,7 @@ enum zio_compress { ZIO_COMPRESS_GZIP_8, ZIO_COMPRESS_GZIP_9, ZIO_COMPRESS_ZLE, + ZIO_COMPRESS_LZ4, ZIO_COMPRESS_FUNCTIONS }; @@ -116,6 +118,7 @@ enum zio_compress { #define BOOTFS_COMPRESS_VALID(compress) \ ((compress) == ZIO_COMPRESS_LZJB || \ + (compress) == ZIO_COMPRESS_LZ4 || \ ((compress) == ZIO_COMPRESS_ON && \ ZIO_COMPRESS_ON_VALUE == ZIO_COMPRESS_LZJB) || \ (compress) == ZIO_COMPRESS_OFF) diff --git a/include/sys/zio_compress.h b/include/sys/zio_compress.h index 30bed1a67..49946af4b 100644 --- a/include/sys/zio_compress.h +++ b/include/sys/zio_compress.h @@ -54,6 +54,12 @@ typedef struct zio_compress_info { extern zio_compress_info_t zio_compress_table[ZIO_COMPRESS_FUNCTIONS]; /* + * lz4 compression init & free + */ +extern void lz4_init(void); +extern void lz4_fini(void); + +/* * Compression routines. */ extern size_t lzjb_compress(void *src, void *dst, size_t s_len, size_t d_len, @@ -68,6 +74,10 @@ extern size_t zle_compress(void *src, void *dst, size_t s_len, size_t d_len, int level); extern int zle_decompress(void *src, void *dst, size_t s_len, size_t d_len, int level); +extern size_t lz4_compress(void *src, void *dst, size_t s_len, size_t d_len, + int level); +extern int lz4_decompress(void *src, void *dst, size_t s_len, size_t d_len, + int level); /* * Compress and decompress data if necessary. |