Merge branch 'fix-no-zmod' into refs/top-bases/fix-branch

This commit is contained in:
Brian Behlendorf 2008-12-03 16:56:22 -08:00
commit 509faf8d6e
2 changed files with 20 additions and 33 deletions

View File

@ -34,7 +34,6 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/processor.h> #include <sys/processor.h>
#include <sys/zfs_context.h> #include <sys/zfs_context.h>
#include <sys/zmod.h>
#include <sys/utsname.h> #include <sys/utsname.h>
/* /*
@ -800,31 +799,6 @@ kernel_fini(void)
urandom_fd = -1; urandom_fd = -1;
} }
int
z_uncompress(void *dst, size_t *dstlen, const void *src, size_t srclen)
{
int ret;
uLongf len = *dstlen;
if ((ret = uncompress(dst, &len, src, srclen)) == Z_OK)
*dstlen = (size_t)len;
return (ret);
}
int
z_compress_level(void *dst, size_t *dstlen, const void *src, size_t srclen,
int level)
{
int ret;
uLongf len = *dstlen;
if ((ret = compress2(dst, &len, src, srclen, level)) == Z_OK)
*dstlen = (size_t)len;
return (ret);
}
uid_t uid_t
crgetuid(cred_t *cr) crgetuid(cred_t *cr)
{ {

View File

@ -28,22 +28,35 @@
#include <sys/debug.h> #include <sys/debug.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/zmod.h>
#ifdef _KERNEL #ifdef _KERNEL
#include <sys/systm.h> #include <sys/systm.h>
#else #include <sys/zmod.h>
typedef size_t zlen_t;
#define compress_func z_compress_level
#define uncompress_func z_uncompress
#else /* _KERNEL */
#include <strings.h> #include <strings.h>
#include <zlib.h>
typedef uLongf zlen_t;
#define compress_func compress2
#define uncompress_func uncompress
#endif #endif
size_t size_t
gzip_compress(void *s_start, void *d_start, size_t s_len, size_t d_len, int n) gzip_compress(void *s_start, void *d_start, size_t s_len, size_t d_len, int n)
{ {
size_t dstlen = d_len; zlen_t dstlen = d_len;
ASSERT(d_len <= s_len); ASSERT(d_len <= s_len);
if (z_compress_level(d_start, &dstlen, s_start, s_len, n) != Z_OK) { if (compress_func(d_start, &dstlen, s_start, s_len, n) != Z_OK) {
if (d_len != s_len) if (d_len != s_len)
return (s_len); return (s_len);
@ -51,18 +64,18 @@ gzip_compress(void *s_start, void *d_start, size_t s_len, size_t d_len, int n)
return (s_len); return (s_len);
} }
return (dstlen); return ((size_t) dstlen);
} }
/*ARGSUSED*/ /*ARGSUSED*/
int int
gzip_decompress(void *s_start, void *d_start, size_t s_len, size_t d_len, int n) gzip_decompress(void *s_start, void *d_start, size_t s_len, size_t d_len, int n)
{ {
size_t dstlen = d_len; zlen_t dstlen = d_len;
ASSERT(d_len >= s_len); ASSERT(d_len >= s_len);
if (z_uncompress(d_start, &dstlen, s_start, s_len) != Z_OK) if (uncompress_func(d_start, &dstlen, s_start, s_len) != Z_OK)
return (-1); return (-1);
return (0); return (0);