Page MenuHomeFreeBSD

D10407.id36132.diff
No OneTemporary

D10407.id36132.diff

Index: sys/conf/files
===================================================================
--- sys/conf/files
+++ sys/conf/files
@@ -626,6 +626,23 @@
compile-with "${NORMAL_C} -I$S/contrib/ngatm"
contrib/ngatm/netnatm/sig/sig_verify.c optional ngatm_uni \
compile-with "${NORMAL_C} -I$S/contrib/ngatm"
+# Zstd
+contrib/zstd/lib/common/zstd_common.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/common/fse_decompress.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/common/entropy_common.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/common/error_private.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/common/zstd_kmalloc.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/common/xxhash.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/compress/zstd_compress.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/compress/fse_compress.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/compress/huf_compress.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/compress/zstd_double_fast.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/compress/zstd_fast.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/compress/zstd_lazy.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/compress/zstd_ldm.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/compress/zstd_opt.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/decompress/zstd_decompress.c standard compile-with ${ZSTD_C}
+contrib/zstd/lib/decompress/huf_decompress.c standard compile-with ${ZSTD_C}
crypto/blowfish/bf_ecb.c optional ipsec | ipsec_support
crypto/blowfish/bf_skey.c optional crypto | ipsec | ipsec_support
crypto/camellia/camellia.c optional crypto | ipsec | ipsec_support
Index: sys/conf/kern.pre.mk
===================================================================
--- sys/conf/kern.pre.mk
+++ sys/conf/kern.pre.mk
@@ -132,6 +132,9 @@
NORMAL_FWO= ${LD} -b binary --no-warn-mismatch -d -warn-common -r \
-m ${LD_EMULATION} -o ${.TARGET} ${.ALLSRC:M*.fw}
+# for ZSTD in the kernel
+ZSTD_C= ${CC} -c ${CFLAGS} -DZSTD_HEAPMODE=1 -I$S/contrib/zstd/lib -I$S/contrib/zstd/lib/common ${WERROR} -Wno-missing-prototypes ${PROF} ${.IMPSRC}
+
# Common for dtrace / zfs
CDDL_CFLAGS= -DFREEBSD_NAMECACHE -nostdinc -I$S/cddl/compat/opensolaris -I$S/cddl/contrib/opensolaris/uts/common -I$S -I$S/cddl/contrib/opensolaris/common ${CFLAGS} -Wno-unknown-pragmas -Wno-missing-prototypes -Wno-undef -Wno-strict-prototypes -Wno-cast-qual -Wno-parentheses -Wno-redundant-decls -Wno-missing-braces -Wno-uninitialized -Wno-unused -Wno-inline -Wno-switch -Wno-pointer-arith -Wno-unknown-pragmas
CDDL_CFLAGS+= -include $S/cddl/compat/opensolaris/sys/debug_compat.h
Index: sys/contrib/zstd/lib/common/bitstream.h
===================================================================
--- sys/contrib/zstd/lib/common/bitstream.h
+++ sys/contrib/zstd/lib/common/bitstream.h
@@ -175,7 +175,7 @@
unsigned long r=0;
_BitScanReverse ( &r, val );
return (unsigned) r;
-# elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */
+# elif defined(__GNUC__) && (__GNUC__ >= 3) && __has_builtin(__builtin_clz) /* Use GCC Intrinsic */
return 31 - __builtin_clz (val);
# else /* Software version */
static const unsigned DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29,
Index: sys/contrib/zstd/lib/common/error_private.h
===================================================================
--- sys/contrib/zstd/lib/common/error_private.h
+++ sys/contrib/zstd/lib/common/error_private.h
@@ -21,7 +21,11 @@
/* ****************************************
* Dependencies
******************************************/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <stddef.h> /* size_t */
+#endif
#include "zstd_errors.h" /* enum list */
Index: sys/contrib/zstd/lib/common/fse.h
===================================================================
--- sys/contrib/zstd/lib/common/fse.h
+++ sys/contrib/zstd/lib/common/fse.h
@@ -43,7 +43,11 @@
/*-*****************************************
* Dependencies
******************************************/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <stddef.h> /* size_t, ptrdiff_t */
+#endif
/*-*****************************************
Index: sys/contrib/zstd/lib/common/fse_decompress.c
===================================================================
--- sys/contrib/zstd/lib/common/fse_decompress.c
+++ sys/contrib/zstd/lib/common/fse_decompress.c
@@ -36,8 +36,12 @@
/* **************************************************************
* Includes
****************************************************************/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <stdlib.h> /* malloc, free, qsort */
#include <string.h> /* memcpy, memset */
+#endif
#include "bitstream.h"
#include "compiler.h"
#define FSE_STATIC_LINKING_ONLY
Index: sys/contrib/zstd/lib/common/huf.h
===================================================================
--- sys/contrib/zstd/lib/common/huf.h
+++ sys/contrib/zstd/lib/common/huf.h
@@ -40,7 +40,11 @@
#define HUF_H_298734234
/* *** Dependencies *** */
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <stddef.h> /* size_t */
+#endif
/* *** library symbols visibility *** */
Index: sys/contrib/zstd/lib/common/mem.h
===================================================================
--- sys/contrib/zstd/lib/common/mem.h
+++ sys/contrib/zstd/lib/common/mem.h
@@ -18,8 +18,12 @@
/*-****************************************
* Dependencies
******************************************/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <stddef.h> /* size_t, ptrdiff_t */
#include <string.h> /* memcpy */
+#endif
/*-****************************************
@@ -48,7 +52,9 @@
* Basic Types
*****************************************************************/
#if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) )
+#ifndef _KERNEL
# include <stdint.h>
+#endif
typedef uint8_t BYTE;
typedef uint16_t U16;
typedef int16_t S16;
Index: sys/contrib/zstd/lib/common/pool.h
===================================================================
--- sys/contrib/zstd/lib/common/pool.h
+++ sys/contrib/zstd/lib/common/pool.h
@@ -16,7 +16,11 @@
#endif
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <stddef.h> /* size_t */
+#endif
#include "zstd_internal.h" /* ZSTD_customMem */
typedef struct POOL_ctx_s POOL_ctx;
Index: sys/contrib/zstd/lib/common/xxhash.h
===================================================================
--- sys/contrib/zstd/lib/common/xxhash.h
+++ sys/contrib/zstd/lib/common/xxhash.h
@@ -75,7 +75,11 @@
/* ****************************
* Definitions
******************************/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <stddef.h> /* size_t */
+#endif
typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode;
Index: sys/contrib/zstd/lib/common/xxhash.c
===================================================================
--- sys/contrib/zstd/lib/common/xxhash.c
+++ sys/contrib/zstd/lib/common/xxhash.c
@@ -97,11 +97,17 @@
***************************************/
/* Modify the local functions below should you wish to use some other memory routines */
/* for malloc(), free() */
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <stdlib.h>
+#endif
static void* XXH_malloc(size_t s) { return malloc(s); }
static void XXH_free (void* p) { free(p); }
+#ifndef _KERNEL
/* for memcpy() */
#include <string.h>
+#endif
static void* XXH_memcpy(void* dest, const void* src, size_t size) { return memcpy(dest,src,size); }
#ifndef XXH_STATIC_LINKING_ONLY
@@ -141,7 +147,9 @@
#ifndef MEM_MODULE
# define MEM_MODULE
# if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) )
+#ifndef _KERNEL
# include <stdint.h>
+#endif
typedef uint8_t BYTE;
typedef uint16_t U16;
typedef uint32_t U32;
Index: sys/contrib/zstd/lib/common/zstd_common.c
===================================================================
--- sys/contrib/zstd/lib/common/zstd_common.c
+++ sys/contrib/zstd/lib/common/zstd_common.c
@@ -13,8 +13,12 @@
/*-*************************************
* Dependencies
***************************************/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <stdlib.h> /* malloc, calloc, free */
#include <string.h> /* memset */
+#endif
#include "error_private.h"
#include "zstd_internal.h"
Index: sys/contrib/zstd/lib/common/zstd_errors.h
===================================================================
--- sys/contrib/zstd/lib/common/zstd_errors.h
+++ sys/contrib/zstd/lib/common/zstd_errors.h
@@ -16,7 +16,11 @@
#endif
/*===== dependency =====*/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <stddef.h> /* size_t */
+#endif
/* ===== ZSTDERRORLIB_API : control library symbols visibility ===== */
Index: sys/contrib/zstd/lib/common/zstd_internal.h
===================================================================
--- sys/contrib/zstd/lib/common/zstd_internal.h
+++ sys/contrib/zstd/lib/common/zstd_internal.h
@@ -327,7 +327,7 @@
unsigned long r=0;
_BitScanReverse(&r, val);
return (unsigned)r;
-# elif defined(__GNUC__) && (__GNUC__ >= 3) /* GCC Intrinsic */
+# elif defined(__GNUC__) && (__GNUC__ >= 3) && __has_builtin(__builtin_clz) /* GCC Intrinsic */
return 31 - __builtin_clz(val);
# else /* Software version */
static const int DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 };
Index: sys/contrib/zstd/lib/common/zstd_kfreebsd.h
===================================================================
--- /dev/null
+++ sys/contrib/zstd/lib/common/zstd_kfreebsd.h
@@ -0,0 +1,55 @@
+/*-
+ * Copyright (c) 2014-2015 Allan Jude <allanjude@freebsd.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef ZSTD_KFREEBSD_H
+#define ZSTD_KFREEBSD_H
+
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
+#ifdef _KERNEL
+#include <sys/types.h> /* u_int (systm.h) */
+#include <sys/param.h> /* size_t */
+#include <sys/systm.h> /* memcpy, memset */
+#include <sys/stddef.h> /* ptrdiff_t */
+
+#include <sys/malloc.h>
+MALLOC_DECLARE(M_ZSTD);
+
+#define malloc(x) (malloc)((x), M_ZSTD, M_WAITOK)
+#define free(x) (free)((x), M_ZSTD)
+/* in zstd's use of calloc, a is always 1 */
+#define calloc(a,b) (malloc)((a)*(b), M_ZSTD, M_WAITOK | M_ZERO)
+#endif
+
+#if defined (__cplusplus)
+}
+#endif
+
+#endif /* ZSTD_KFREEBSD_H */
Index: sys/contrib/zstd/lib/common/zstd_kmalloc.c
===================================================================
--- /dev/null
+++ sys/contrib/zstd/lib/common/zstd_kmalloc.c
@@ -0,0 +1,33 @@
+/*-
+ * Copyright (c) 2016-2017 Allan Jude <allanjude@freebsd.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#include "zstd_freebsd.h"
+/* #i nclude <sys/kernel.h> */
+#include <sys/malloc.h>
+
+MALLOC_DEFINE(M_ZSTD, "zstd", "ZSTD Compressor");
Index: sys/contrib/zstd/lib/compress/fse_compress.c
===================================================================
--- sys/contrib/zstd/lib/compress/fse_compress.c
+++ sys/contrib/zstd/lib/compress/fse_compress.c
@@ -35,9 +35,13 @@
/* **************************************************************
* Includes
****************************************************************/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <stdlib.h> /* malloc, free, qsort */
#include <string.h> /* memcpy, memset */
#include <stdio.h> /* printf (debug) */
+#endif
#include "bitstream.h"
#include "compiler.h"
#define FSE_STATIC_LINKING_ONLY
Index: sys/contrib/zstd/lib/compress/huf_compress.c
===================================================================
--- sys/contrib/zstd/lib/compress/huf_compress.c
+++ sys/contrib/zstd/lib/compress/huf_compress.c
@@ -43,8 +43,12 @@
/* **************************************************************
* Includes
****************************************************************/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <string.h> /* memcpy, memset */
#include <stdio.h> /* printf (debug) */
+#endif
#include "bitstream.h"
#define FSE_STATIC_LINKING_ONLY /* FSE_optimalTableLog_internal */
#include "fse.h" /* header compression */
Index: sys/contrib/zstd/lib/compress/zstd_compress.h
===================================================================
--- sys/contrib/zstd/lib/compress/zstd_compress.h
+++ sys/contrib/zstd/lib/compress/zstd_compress.h
@@ -203,7 +203,7 @@
unsigned long r = 0;
_BitScanReverse64( &r, val );
return (unsigned)(r>>3);
-# elif defined(__GNUC__) && (__GNUC__ >= 4)
+# elif defined(__GNUC__) && (__GNUC__ >= 4) && __has_builtin(__builtin_clzll)
return (__builtin_clzll(val) >> 3);
# else
unsigned r;
@@ -218,7 +218,7 @@
unsigned long r = 0;
_BitScanReverse( &r, (unsigned long)val );
return (unsigned)(r>>3);
-# elif defined(__GNUC__) && (__GNUC__ >= 3)
+# elif defined(__GNUC__) && (__GNUC__ >= 3) && __has_builtin(__builtin_clz)
return (__builtin_clz((U32)val) >> 3);
# else
unsigned r;
Index: sys/contrib/zstd/lib/compress/zstd_compress.c
===================================================================
--- sys/contrib/zstd/lib/compress/zstd_compress.c
+++ sys/contrib/zstd/lib/compress/zstd_compress.c
@@ -20,7 +20,11 @@
/*-*************************************
* Dependencies
***************************************/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <string.h> /* memset */
+#endif
#include "mem.h"
#define FSE_STATIC_LINKING_ONLY /* FSE_encodeSymbol */
#include "fse.h"
Index: sys/contrib/zstd/lib/decompress/huf_decompress.c
===================================================================
--- sys/contrib/zstd/lib/decompress/huf_decompress.c
+++ sys/contrib/zstd/lib/decompress/huf_decompress.c
@@ -35,7 +35,11 @@
/* **************************************************************
* Dependencies
****************************************************************/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <string.h> /* memcpy, memset */
+#endif
#include "bitstream.h" /* BIT_* */
#include "compiler.h"
#include "fse.h" /* header compression */
Index: sys/contrib/zstd/lib/decompress/zstd_decompress.c
===================================================================
--- sys/contrib/zstd/lib/decompress/zstd_decompress.c
+++ sys/contrib/zstd/lib/decompress/zstd_decompress.c
@@ -42,7 +42,11 @@
/*-*******************************************************
* Dependencies
*********************************************************/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <string.h> /* memcpy, memmove, memset */
+#endif
#include "mem.h" /* low level memory routines */
#define FSE_STATIC_LINKING_ONLY
#include "fse.h"
Index: sys/contrib/zstd/lib/zstd.h
===================================================================
--- sys/contrib/zstd/lib/zstd.h
+++ sys/contrib/zstd/lib/zstd.h
@@ -15,7 +15,11 @@
#define ZSTD_H_235446
/* ====== Dependency ======*/
+#ifdef _KERNEL
+#include "zstd_kfreebsd.h"
+#else
#include <stddef.h> /* size_t */
+#endif
/* ===== ZSTDLIB_API : control library symbols visibility ===== */

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 19, 6:47 AM (12 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29952716
Default Alt Text
D10407.id36132.diff (17 KB)

Event Timeline