Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148498482
D10407.id36132.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
17 KB
Referenced Files
None
Subscribers
None
D10407.id36132.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D10407: Modify zstd so it can be built into the kernel as well
Attached
Detach File
Event Timeline
Log In to Comment