diff --git a/lib/Makefile.am b/lib/Makefile.am index e5607a4bbc..df55aacdc5 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1 +1 @@ -SUBDIRS = libavl libnvpair libuutil libzcommon libzpool libzfs +SUBDIRS = libspl libavl libnvpair libuutil libzcommon libzpool libzfs diff --git a/lib/libspl/Makefile.am b/lib/libspl/Makefile.am new file mode 100644 index 0000000000..451995830f --- /dev/null +++ b/lib/libspl/Makefile.am @@ -0,0 +1,14 @@ +include $(top_srcdir)/config/Rules.am + +DEFAULT_INCLUDES = -I${libdir}/libspl/include + +lib_LTLIBRARIES = libspl.la + +libspl_la_SOURCES = list.c \ + mkdirp.c \ + strlcat.c \ + strlcpy.c \ + strnlen.c \ + u8_textprep.c \ + include/sys/list.h \ + include/sys/list_impl.h diff --git a/lib/libspl/strlcat.c b/lib/libspl/strlcat.c deleted file mode 100644 index 4b3113cae0..0000000000 --- a/lib/libspl/strlcat.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#pragma ident "%Z%%M% %I% %E% SMI" - -#include - -/* - * Appends src to the dstsize buffer at dst. The append will never - * overflow the destination buffer and the buffer will always be null - * terminated. Never reference beyond &dst[dstsize-1] when computing - * the length of the pre-existing string. - */ - -size_t -strlcat(char *dst, const char *src, size_t dstsize) -{ - char *df = dst; - size_t left = dstsize; - size_t l1; - size_t l2 = strlen(src); - size_t copied; - - while (left-- != 0 && *df != '\0') - df++; - l1 = df - dst; - if (dstsize == l1) - return (l1 + l2); - - copied = l1 + l2 >= dstsize ? dstsize - l1 - 1 : l2; - (void) memcpy(dst + l1, src, copied); - dst[l1+copied] = '\0'; - return (l1 + l2); -} diff --git a/lib/libspl/strlcpy.c b/lib/libspl/strlcpy.c deleted file mode 100644 index 737c5d6926..0000000000 --- a/lib/libspl/strlcpy.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#pragma ident "%Z%%M% %I% %E% SMI" - -#include - -/* - * Copies src to the dstsize buffer at dst. The copy will never - * overflow the destination buffer and the buffer will always be null - * terminated. - */ - -size_t -strlcpy(char *dst, const char *src, size_t len) -{ - size_t slen = strlen(src); - size_t copied; - - if (len == 0) - return (slen); - - if (slen >= len) - copied = len - 1; - else - copied = slen; - (void) memcpy(dst, src, copied); - dst[copied] = '\0'; - return (slen); -} diff --git a/lib/libspl/strnlen.c b/lib/libspl/strnlen.c deleted file mode 100644 index 61962cb31a..0000000000 --- a/lib/libspl/strnlen.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright 2008 Sun Microsystems, Inc. - * All rights reserved. Use is subject to license terms. - */ - -#pragma ident "%Z%%M% %I% %E% SMI" - -#include - -/* - * Returns the number of non-NULL bytes in string argument, - * but not more than maxlen. Does not look past str + maxlen. - */ -size_t -strnlen(const char *str, size_t maxlen) -{ - const char *ptr; - - ptr = memchr(str, 0, maxlen); - if (ptr == NULL) - return (maxlen); - - return (ptr - str); -} diff --git a/lib/libzpool/kernel.c b/lib/libzpool/kernel.c index 9d2a79a4e9..028765d8ed 100644 --- a/lib/libzpool/kernel.c +++ b/lib/libzpool/kernel.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include diff --git a/scripts/update-zfs.sh b/scripts/update-zfs.sh index d3ff519794..b4a758520c 100755 --- a/scripts/update-zfs.sh +++ b/scripts/update-zfs.sh @@ -85,17 +85,6 @@ cp ${SRC_ZLIB}/sys/*.h ${DST_MOD}/zfs/include/sys/ rm ${DST_MOD}/zfs/vdev_disk.c rm ${DST_MOD}/zfs/include/sys/vdev_disk.h -echo "* lib/libspl" -mkdir -p ${DST_LIB}/libspl/include/sys/ -cp ${SRC_LIB}/libc/port/gen/strlcat.c ${DST_LIB}/libspl/ -cp ${SRC_LIB}/libc/port/gen/strlcpy.c ${DST_LIB}/libspl/ -cp ${SRC_LIB}/libc/port/gen/strnlen.c ${DST_LIB}/libspl/ -cp ${SRC_LIB}/libgen/common/mkdirp.c ${DST_LIB}/libspl/ -cp ${SRC_CM}/unicode/u8_textprep.c ${DST_LIB}/libspl/ -cp ${SRC_UCM}/os/list.c ${DST_LIB}/libspl/ -cp ${SRC_UCM}/sys/list.h ${DST_LIB}/libspl/include/sys/ -cp ${SRC_UCM}/sys/list_impl.h ${DST_LIB}/libspl/include/sys/ - echo "* lib/libavl" # Full source available in 'module/avl'