diff options
author | Brian Behlendorf <[email protected]> | 2011-04-20 14:22:35 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2011-04-20 14:39:15 -0700 |
commit | 3dfc591ac4003d1c92159b5dfe8970f24e008f81 (patch) | |
tree | 0a3014aeffafed2ac02e307eaf5fdb2be649c420 /include | |
parent | b1cbc4610c8b5a9b5de80cb850a6eb58bb811a1d (diff) |
Linux 2.6.39 compat, zlib_deflate_workspacesize()
The function zlib_deflate_workspacesize() now take 2 arguments.
This was done to avoid always having to allocate the maximum size
workspace (268K). The caller can now specific the windowBits and
memLevel compression parameters to get a smaller workspace.
For our purposes we introduce a spl_zlib_deflate_workspacesize()
wrapper which accepts both arguments. When the two argument
version of zlib_deflate_workspacesize() is available the arguments
are passed through. When it's not we assume the worst case and
a maximally sized workspace is used.
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/zlib_compat.h | 37 | ||||
-rw-r--r-- | include/sys/types.h | 1 |
2 files changed, 38 insertions, 0 deletions
diff --git a/include/linux/zlib_compat.h b/include/linux/zlib_compat.h new file mode 100644 index 000000000..410dc485e --- /dev/null +++ b/include/linux/zlib_compat.h @@ -0,0 +1,37 @@ +/*****************************************************************************\ + * Copyright (C) 2011 Lawrence Livermore National Security, LLC. + * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). + * Written by Brian Behlendorf <[email protected]>. + * UCRL-CODE-235197 + * + * This file is part of the SPL, Solaris Porting Layer. + * For details, see <http://github.com/behlendorf/spl/>. + * + * The SPL is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * The SPL is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with the SPL. If not, see <http://www.gnu.org/licenses/>. +\*****************************************************************************/ + +#ifndef _SPL_ZLIB_COMPAT_H +#define _SPL_ZLIB_COMPAT_H + +#include <linux/zlib.h> + +#ifdef HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE +#define spl_zlib_deflate_workspacesize(wb, ml) \ + zlib_deflate_workspacesize(wb, ml) +#else +#define spl_zlib_deflate_workspacesize(wb, ml) \ + zlib_deflate_workspacesize() +#endif /* HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE */ + +#endif /* SPL_ZLIB_COMPAT_H */ diff --git a/include/sys/types.h b/include/sys/types.h index 786474baa..0c3d88ec3 100644 --- a/include/sys/types.h +++ b/include/sys/types.h @@ -41,6 +41,7 @@ #include <linux/sysctl_compat.h> #include <linux/proc_compat.h> #include <linux/math64_compat.h> +#include <linux/zlib_compat.h> #ifndef HAVE_UINTPTR_T typedef unsigned long uintptr_t; |