svn commit: r349151 - in head: lib/libufs stand/libsa sys/conf sys/dev/iscsi sys/dev/iscsi_initiator sys/dev/liquidio sys/dev/usb/net sys/fs/ext2fs sys/fs/nandfs sys/geom/part sys/geom/raid sys/ker...
Xin LI
delphij at FreeBSD.org
Mon Jun 17 19:49:16 UTC 2019
Author: delphij
Date: Mon Jun 17 19:49:08 2019
New Revision: 349151
URL: https://svnweb.freebsd.org/changeset/base/349151
Log:
Separate kernel crc32() implementation to its own header (gsb_crc32.h) and
rename the source to gsb_crc32.c.
This is a prerequisite of unifying kernel zlib instances.
PR: 229763
Submitted by: Yoshihiro Ota <ota at j.email.ne.jp>
Differential Revision: https://reviews.freebsd.org/D20193
Added:
head/sys/libkern/gsb_crc32.c
- copied, changed from r349150, head/sys/libkern/crc32.c
head/sys/sys/gsb_crc32.h (contents, props changed)
Deleted:
head/sys/libkern/crc32.c
Modified:
head/lib/libufs/Makefile
head/stand/libsa/crc32_libkern.c
head/sys/conf/files
head/sys/dev/iscsi/icl_soft.c
head/sys/dev/iscsi_initiator/isc_subr.c
head/sys/dev/liquidio/lio_bsd.h
head/sys/dev/usb/net/if_cdce.c
head/sys/fs/ext2fs/ext2_csum.c
head/sys/fs/nandfs/nandfs_segment.c
head/sys/fs/nandfs/nandfs_subr.c
head/sys/fs/nandfs/nandfs_vfsops.c
head/sys/geom/part/g_part_bsd64.c
head/sys/geom/part/g_part_gpt.c
head/sys/geom/raid/md_ddf.c
head/sys/kern/subr_compressor.c
head/sys/libkern/x86/crc32_sse42.c
head/sys/netinet/libalias/alias_sctp.c
head/sys/netinet/sctp_crc32.c
head/sys/netpfil/pf/pf.c
head/sys/sys/libkern.h
head/sys/sys/param.h
head/sys/ufs/ffs/ffs_alloc.c
head/sys/ufs/ffs/ffs_snapshot.c
head/sys/ufs/ffs/ffs_subr.c
head/sys/ufs/ffs/ffs_vfsops.c
head/tests/sys/kern/Makefile
head/tests/sys/kern/libkern_crc32.c
Modified: head/lib/libufs/Makefile
==============================================================================
--- head/lib/libufs/Makefile Mon Jun 17 17:35:55 2019 (r349150)
+++ head/lib/libufs/Makefile Mon Jun 17 19:49:08 2019 (r349151)
@@ -5,7 +5,8 @@ LIB= ufs
SHLIBDIR?= /lib
SHLIB_MAJOR= 7
-SRCS= block.c cgroup.c crc32.c inode.c sblock.c type.c ffs_subr.c ffs_tables.c
+SRCS= block.c cgroup.c gsb_crc32.c inode.c sblock.c type.c ffs_subr.c
+SRCS+= ffs_tables.c
INCS= libufs.h
MAN= bread.3 cgread.3 getinode.3 libufs.3 sbread.3 ufs_disk_close.3
Modified: head/stand/libsa/crc32_libkern.c
==============================================================================
--- head/stand/libsa/crc32_libkern.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/stand/libsa/crc32_libkern.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -1,3 +1,3 @@
/* $FreeBSD$ */
-#include "../../sys/libkern/crc32.c"
+#include "../../sys/libkern/gsb_crc32.c"
Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/conf/files Mon Jun 17 19:49:08 2019 (r349151)
@@ -3982,9 +3982,9 @@ crypto/chacha20/chacha.c standard
libkern/asprintf.c standard
libkern/bcd.c standard
libkern/bsearch.c standard
-libkern/crc32.c standard
libkern/explicit_bzero.c standard
libkern/fnmatch.c standard
+libkern/gsb_crc32.c standard
libkern/iconv.c optional libiconv
libkern/iconv_converter_if.m optional libiconv
libkern/iconv_ucs.c optional libiconv
Modified: head/sys/dev/iscsi/icl_soft.c
==============================================================================
--- head/sys/dev/iscsi/icl_soft.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/dev/iscsi/icl_soft.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$");
#include <sys/capsicum.h>
#include <sys/condvar.h>
#include <sys/conf.h>
+#include <sys/gsb_crc32.h>
#include <sys/file.h>
#include <sys/kernel.h>
#include <sys/kthread.h>
Modified: head/sys/dev/iscsi_initiator/isc_subr.c
==============================================================================
--- head/sys/dev/iscsi_initiator/isc_subr.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/dev/iscsi_initiator/isc_subr.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/conf.h>
+#include <sys/gsb_crc32.h>
#include <sys/systm.h>
#include <sys/malloc.h>
#include <sys/ctype.h>
Modified: head/sys/dev/liquidio/lio_bsd.h
==============================================================================
--- head/sys/dev/liquidio/lio_bsd.h Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/dev/liquidio/lio_bsd.h Mon Jun 17 19:49:08 2019 (r349151)
@@ -36,6 +36,7 @@
#define __LIO_BSD_H__
#include <sys/param.h>
+#include <sys/gsb_crc32.h>
#include <sys/eventhandler.h>
#include <sys/socket.h>
#include <sys/kernel.h>
Modified: head/sys/dev/usb/net/if_cdce.c
==============================================================================
--- head/sys/dev/usb/net/if_cdce.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/dev/usb/net/if_cdce.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -50,7 +50,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/param.h>
+#include <sys/gsb_crc32.h>
#include <sys/eventhandler.h>
#include <sys/stdint.h>
#include <sys/stddef.h>
Modified: head/sys/fs/ext2fs/ext2_csum.c
==============================================================================
--- head/sys/fs/ext2fs/ext2_csum.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/fs/ext2fs/ext2_csum.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -40,6 +40,7 @@
#include <sys/buf.h>
#include <sys/endian.h>
#include <sys/conf.h>
+#include <sys/gsb_crc32.h>
#include <sys/mount.h>
#include <fs/ext2fs/fs.h>
Modified: head/sys/fs/nandfs/nandfs_segment.c
==============================================================================
--- head/sys/fs/nandfs/nandfs_segment.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/fs/nandfs/nandfs_segment.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/conf.h>
+#include <sys/gsb_crc32.h>
#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/malloc.h>
Modified: head/sys/fs/nandfs/nandfs_subr.c
==============================================================================
--- head/sys/fs/nandfs/nandfs_subr.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/fs/nandfs/nandfs_subr.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/gsb_crc32.h>
#include <sys/namei.h>
#include <sys/resourcevar.h>
#include <sys/kernel.h>
Modified: head/sys/fs/nandfs/nandfs_vfsops.c
==============================================================================
--- head/sys/fs/nandfs/nandfs_vfsops.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/fs/nandfs/nandfs_vfsops.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/fcntl.h>
+#include <sys/gsb_crc32.h>
#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/malloc.h>
Modified: head/sys/geom/part/g_part_bsd64.c
==============================================================================
--- head/sys/geom/part/g_part_bsd64.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/geom/part/g_part_bsd64.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -29,6 +29,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/bio.h>
+#include <sys/gsb_crc32.h>
#include <sys/disklabel.h>
#include <sys/endian.h>
#include <sys/gpt.h>
Modified: head/sys/geom/part/g_part_gpt.c
==============================================================================
--- head/sys/geom/part/g_part_gpt.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/geom/part/g_part_gpt.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/bio.h>
#include <sys/diskmbr.h>
+#include <sys/gsb_crc32.h>
#include <sys/endian.h>
#include <sys/gpt.h>
#include <sys/kernel.h>
Modified: head/sys/geom/raid/md_ddf.c
==============================================================================
--- head/sys/geom/raid/md_ddf.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/geom/raid/md_ddf.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/bio.h>
+#include <sys/gsb_crc32.h>
#include <sys/endian.h>
#include <sys/kernel.h>
#include <sys/kobj.h>
Modified: head/sys/kern/subr_compressor.c
==============================================================================
--- head/sys/kern/subr_compressor.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/kern/subr_compressor.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -66,6 +66,7 @@ SET_DECLARE(compressors, struct compressor_methods);
#ifdef GZIO
+#include <sys/gsb_crc32.h>
#include <sys/zutil.h>
struct gz_stream {
Copied and modified: head/sys/libkern/gsb_crc32.c (from r349150, head/sys/libkern/crc32.c)
==============================================================================
--- head/sys/libkern/crc32.c Mon Jun 17 17:35:55 2019 (r349150, copy source)
+++ head/sys/libkern/gsb_crc32.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$");
#ifdef _KERNEL
#include <sys/libkern.h>
#include <sys/systm.h>
+#include <sys/gsb_crc32.h>
#if defined(__amd64__) || defined(__i386__)
#include <machine/md_var.h>
Modified: head/sys/libkern/x86/crc32_sse42.c
==============================================================================
--- head/sys/libkern/x86/crc32_sse42.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/libkern/x86/crc32_sse42.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -29,14 +29,14 @@ __FBSDID("$FreeBSD$");
/*
* This file is compiled in userspace in order to run ATF unit tests.
*/
-#ifdef USERSPACE_TESTING
+#ifndef _KERNEL
#include <stdint.h>
#include <stdlib.h>
#else
#include <sys/param.h>
-#include <sys/systm.h>
#include <sys/kernel.h>
#endif
+#include <sys/gsb_crc32.h>
static __inline uint32_t
_mm_crc32_u8(uint32_t x, uint8_t y)
@@ -199,7 +199,7 @@ crc32c_shift(uint32_t zeros[][256], uint32_t crc)
/* Initialize tables for shifting crcs. */
static void
-#ifdef USERSPACE_TESTING
+#ifndef _KERNEL
__attribute__((__constructor__))
#endif
crc32c_init_hw(void)
@@ -214,9 +214,6 @@ SYSINIT(crc32c_sse42, SI_SUB_LOCK, SI_ORDER_ANY, crc32
#endif
/* Compute CRC-32C using the Intel hardware instruction. */
-#ifdef USERSPACE_TESTING
-uint32_t sse42_crc32c(uint32_t, const unsigned char *, unsigned);
-#endif
uint32_t
sse42_crc32c(uint32_t crc, const unsigned char *buf, unsigned len)
{
Modified: head/sys/netinet/libalias/alias_sctp.c
==============================================================================
--- head/sys/netinet/libalias/alias_sctp.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/netinet/libalias/alias_sctp.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -75,6 +75,7 @@
#ifdef _KERNEL
#include <machine/stdarg.h>
#include <sys/param.h>
+#include <sys/gsb_crc32.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/module.h>
Modified: head/sys/netinet/sctp_crc32.c
==============================================================================
--- head/sys/netinet/sctp_crc32.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/netinet/sctp_crc32.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$");
#include "opt_sctp.h"
+#include <sys/gsb_crc32.h>
#ifdef SCTP
#include <netinet/sctp_os.h>
#include <netinet/sctp.h>
Modified: head/sys/netpfil/pf/pf.c
==============================================================================
--- head/sys/netpfil/pf/pf.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/netpfil/pf/pf.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/bus.h>
#include <sys/endian.h>
+#include <sys/gsb_crc32.h>
#include <sys/hash.h>
#include <sys/interrupt.h>
#include <sys/kernel.h>
Added: head/sys/sys/gsb_crc32.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sys/sys/gsb_crc32.h Mon Jun 17 19:49:08 2019 (r349151)
@@ -0,0 +1,47 @@
+/*-
+ * COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or
+ * code or tables extracted from it, as desired without restriction.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _SYS_GSB_CRC32_H_
+#define _SYS_GSB_CRC32_H_
+
+#include <sys/types.h>
+
+#ifdef _KERNEL
+
+extern const uint32_t crc32_tab[];
+
+static __inline uint32_t
+crc32_raw(const void *buf, size_t size, uint32_t crc)
+{
+ const uint8_t *p = (const uint8_t *)buf;
+
+ while (size--)
+ crc = crc32_tab[(crc ^ *p++) & 0xFF] ^ (crc >> 8);
+ return (crc);
+}
+
+static __inline uint32_t
+crc32(const void *buf, size_t size)
+{
+ uint32_t crc;
+
+ crc = crc32_raw(buf, size, ~0U);
+ return (crc ^ ~0U);
+}
+
+uint32_t calculate_crc32c(uint32_t crc32c, const unsigned char *buffer,
+ unsigned int length);
+#endif
+
+#if defined(__amd64__) || defined(__i386__)
+uint32_t sse42_crc32c(uint32_t, const unsigned char *, unsigned);
+#endif
+#if defined(__aarch64__)
+uint32_t armv8_crc32c(uint32_t, const unsigned char *, unsigned int);
+#endif
+
+#endif /* !_SYS_GSB_CRC32_H_ */
Modified: head/sys/sys/libkern.h
==============================================================================
--- head/sys/sys/libkern.h Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/sys/libkern.h Mon Jun 17 19:49:08 2019 (r349151)
@@ -190,39 +190,6 @@ size_t strspn(const char *, const char *);
char *strstr(const char *, const char *);
int strvalid(const char *, size_t);
-extern const uint32_t crc32_tab[];
-
-static __inline uint32_t
-crc32_raw(const void *buf, size_t size, uint32_t crc)
-{
- const uint8_t *p = (const uint8_t *)buf;
-
- while (size--)
- crc = crc32_tab[(crc ^ *p++) & 0xFF] ^ (crc >> 8);
- return (crc);
-}
-
-static __inline uint32_t
-crc32(const void *buf, size_t size)
-{
- uint32_t crc;
-
- crc = crc32_raw(buf, size, ~0U);
- return (crc ^ ~0U);
-}
-
-uint32_t
-calculate_crc32c(uint32_t crc32c, const unsigned char *buffer,
- unsigned int length);
-#ifdef _KERNEL
-#if defined(__amd64__) || defined(__i386__)
-uint32_t sse42_crc32c(uint32_t, const unsigned char *, unsigned);
-#endif
-#if defined(__aarch64__)
-uint32_t armv8_crc32c(uint32_t, const unsigned char *, unsigned int);
-#endif
-#endif
-
static __inline char *
index(const char *p, int ch)
{
Modified: head/sys/sys/param.h
==============================================================================
--- head/sys/sys/param.h Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/sys/param.h Mon Jun 17 19:49:08 2019 (r349151)
@@ -60,7 +60,7 @@
* in the range 5 to 9.
*/
#undef __FreeBSD_version
-#define __FreeBSD_version 1300031 /* Master, propagated to newvers */
+#define __FreeBSD_version 1300032 /* Master, propagated to newvers */
/*
* __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,
Modified: head/sys/ufs/ffs/ffs_alloc.c
==============================================================================
--- head/sys/ufs/ffs/ffs_alloc.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/ufs/ffs/ffs_alloc.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -68,6 +68,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/capsicum.h>
+#include <sys/gsb_crc32.h>
#include <sys/systm.h>
#include <sys/bio.h>
#include <sys/buf.h>
Modified: head/sys/ufs/ffs/ffs_snapshot.c
==============================================================================
--- head/sys/ufs/ffs/ffs_snapshot.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/ufs/ffs/ffs_snapshot.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h>
#include <sys/systm.h>
#include <sys/conf.h>
+#include <sys/gsb_crc32.h>
#include <sys/bio.h>
#include <sys/buf.h>
#include <sys/fcntl.h>
Modified: head/sys/ufs/ffs/ffs_subr.c
==============================================================================
--- head/sys/ufs/ffs/ffs_subr.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/ufs/ffs/ffs_subr.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -59,6 +59,7 @@ struct malloc_type;
#else /* _KERNEL */
#include <sys/systm.h>
+#include <sys/gsb_crc32.h>
#include <sys/lock.h>
#include <sys/malloc.h>
#include <sys/mount.h>
Modified: head/sys/ufs/ffs/ffs_vfsops.c
==============================================================================
--- head/sys/ufs/ffs/ffs_vfsops.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/sys/ufs/ffs/ffs_vfsops.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
#include "opt_ddb.h"
#include <sys/param.h>
+#include <sys/gsb_crc32.h>
#include <sys/systm.h>
#include <sys/namei.h>
#include <sys/priv.h>
Modified: head/tests/sys/kern/Makefile
==============================================================================
--- head/tests/sys/kern/Makefile Mon Jun 17 17:35:55 2019 (r349150)
+++ head/tests/sys/kern/Makefile Mon Jun 17 19:49:08 2019 (r349151)
@@ -46,7 +46,6 @@ LIBADD.mqueue_test+= rt
${MACHINE_ARCH} == "i386" || \
${MACHINE_ARCH} == "aarch64"
ATF_TESTS_C+= libkern_crc32
-CFLAGS.libkern_crc32+= -DUSERSPACE_TESTING
.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
LDADD.libkern_crc32+= ${SRCTOP}/sys/libkern/x86/crc32_sse42.c
.else
Modified: head/tests/sys/kern/libkern_crc32.c
==============================================================================
--- head/tests/sys/kern/libkern_crc32.c Mon Jun 17 17:35:55 2019 (r349150)
+++ head/tests/sys/kern/libkern_crc32.c Mon Jun 17 19:49:08 2019 (r349151)
@@ -27,16 +27,13 @@
*/
#include <sys/param.h>
+#include <sys/gsb_crc32.h>
#include <stdint.h>
#include <atf-c.h>
-#if defined(__amd64__) || defined(__i386__)
-extern uint32_t sse42_crc32c(uint32_t, const unsigned char *, unsigned);
-#elif defined(__aarch64__)
-extern uint32_t armv8_crc32c(uint32_t, const unsigned char *, unsigned);
-#else
+#if !defined(__amd64__) && !defined(__i386__) && !defined(__aarch64__)
#error These tests are not supported on this platform
#endif
More information about the svn-src-all
mailing list