The branch main has been updated by asomers:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=fc3ba3e9fac03897d17c318b79b52d91cfb87b9e

commit fc3ba3e9fac03897d17c318b79b52d91cfb87b9e
Author:     Alan Somers <asom...@freebsd.org>
AuthorDate: 2021-05-24 14:47:44 +0000
Commit:     Alan Somers <asom...@freebsd.org>
CommitDate: 2021-05-24 14:48:47 +0000

    Delete obsolete Solaris compat files
    
    These files have been unused ever since the OpenSolaris import
    
    Sponsored by:   Axcient
    MFC after:      2 weeks
    Reviewed By:    freqlabs
    Differential Revision: https://reviews.freebsd.org/D30371
---
 cddl/compat/opensolaris/misc/deviceid.c         | 115 -------
 cddl/compat/opensolaris/misc/fsshare.c          | 262 ---------------
 cddl/compat/opensolaris/misc/mkdirp.c           | 215 ------------
 cddl/compat/opensolaris/misc/mnttab.c           | 216 ------------
 cddl/compat/opensolaris/misc/thread_pool.c      | 428 ------------------------
 cddl/compat/opensolaris/misc/thread_pool_impl.h |  99 ------
 cddl/compat/opensolaris/misc/zmount.c           | 106 ------
 cddl/compat/opensolaris/misc/zone.c             |  46 ---
 8 files changed, 1487 deletions(-)

diff --git a/cddl/compat/opensolaris/misc/deviceid.c 
b/cddl/compat/opensolaris/misc/deviceid.c
deleted file mode 100644
index 9f3ea8458b3b..000000000000
--- a/cddl/compat/opensolaris/misc/deviceid.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/*-
- * Copyright (c) 2007 Pawel Jakub Dawidek <p...@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 AUTHORS 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 AUTHORS 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/ioctl.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-#include <libgeom.h>
-#include <devid.h>
-
-int
-devid_str_decode(char *devidstr, ddi_devid_t *retdevid, char **retminor_name)
-{
-
-       if (strlcpy(retdevid->devid, devidstr, sizeof(retdevid->devid)) >=
-           sizeof(retdevid->devid)) {
-               return (EINVAL);
-       }
-       *retminor_name = strdup("");
-       if (*retminor_name == NULL)
-               return (ENOMEM);
-       return (0);
-}
-
-int
-devid_deviceid_to_nmlist(char *search_path, ddi_devid_t devid, char 
*minor_name,
-    devid_nmlist_t **retlist)
-{
-       char path[MAXPATHLEN];
-       char *dst;
-
-       if (g_get_name(devid.devid, path, sizeof(path)) == -1)
-               return (errno);
-       *retlist = malloc(sizeof(**retlist));
-       if (*retlist == NULL)
-               return (ENOMEM);
-       if (strlcpy((*retlist)[0].devname, path,
-           sizeof((*retlist)[0].devname)) >= sizeof((*retlist)[0].devname)) {
-               free(*retlist);
-               return (ENAMETOOLONG);
-       }
-       return (0);
-}
-
-void
-devid_str_free(char *str)
-{
-
-       free(str);
-}
-
-void
-devid_free(ddi_devid_t devid)
-{
-       /* Do nothing. */
-}
-
-void
-devid_free_nmlist(devid_nmlist_t *list)
-{
-
-       free(list);
-}
-
-int
-devid_get(int fd, ddi_devid_t *retdevid)
-{
-
-       return (ENOENT);
-}
-
-int
-devid_get_minor_name(int fd, char **retminor_name)
-{
-
-       *retminor_name = strdup("");
-       if (*retminor_name == NULL)
-               return (ENOMEM);
-       return (0);
-}
-
-char *
-devid_str_encode(ddi_devid_t devid, char *minor_name)
-{
-
-       return (strdup(devid.devid));
-}
diff --git a/cddl/compat/opensolaris/misc/fsshare.c 
b/cddl/compat/opensolaris/misc/fsshare.c
deleted file mode 100644
index 97f5e20f42f6..000000000000
--- a/cddl/compat/opensolaris/misc/fsshare.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/*-
- * Copyright (c) 2007 Pawel Jakub Dawidek <p...@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 AUTHORS 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 AUTHORS 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-
-#include <assert.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <fsshare.h>
-#include <libutil.h>
-#include <pathnames.h> /* _PATH_MOUNTDPID */
-#include <signal.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-#define        FILE_HEADER     "# !!! DO NOT EDIT THIS FILE MANUALLY !!!\n\n"
-#define        OPTSSIZE        1024
-#define        MAXLINESIZE     (PATH_MAX + OPTSSIZE)
-
-static void
-restart_mountd(void)
-{
-       struct pidfh *pfh;
-       pid_t mountdpid;
-
-       pfh = pidfile_open(_PATH_MOUNTDPID, 0600, &mountdpid);
-       if (pfh != NULL) {
-               /* Mountd is not running. */
-               pidfile_remove(pfh);
-               return;
-       }
-       if (errno != EEXIST) {
-               /* Cannot open pidfile for some reason. */
-               return;
-       }
-       /* We have mountd(8) PID in mountdpid varible. */
-       kill(mountdpid, SIGHUP);
-}
-
-/*
- * Read one line from a file. Skip comments, empty lines and a line with a
- * mountpoint specified in the 'skip' argument.
- */
-static char *
-zgetline(FILE *fd, const char *skip)
-{
-       static char line[MAXLINESIZE];
-       size_t len, skiplen;
-       char *s, last;
-
-       if (skip != NULL)
-               skiplen = strlen(skip);
-       for (;;) {
-               s = fgets(line, sizeof(line), fd);
-               if (s == NULL)
-                       return (NULL);
-               /* Skip empty lines and comments. */
-               if (line[0] == '\n' || line[0] == '#')
-                       continue;
-               len = strlen(line);
-               if (line[len - 1] == '\n')
-                       line[len - 1] = '\0';
-               last = line[skiplen];
-               /* Skip the given mountpoint. */
-               if (skip != NULL && strncmp(skip, line, skiplen) == 0 &&
-                   (last == '\t' || last == ' ' || last == '\0')) {
-                       continue;
-               }
-               break;
-       }
-       return (line);
-}
-
-/*
- * Function translate options to a format acceptable by exports(5), eg.
- *
- *     -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 
freefall.freebsd.org 69.147.83.54
- *
- * Accepted input formats:
- *
- *     ro,network=192.168.0.0,mask=255.255.255.0,maproot=0,freefall.freebsd.org
- *     ro network=192.168.0.0 mask=255.255.255.0 maproot=0 freefall.freebsd.org
- *     
-ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0,freefall.freebsd.org
- *     -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 
freefall.freebsd.org
- *
- * Recognized keywords:
- *
- *     ro, maproot, mapall, mask, network, sec, alldirs, public, webnfs, 
index, quiet
- *
- */
-static const char *known_opts[] = { "ro", "maproot", "mapall", "mask",
-    "network", "sec", "alldirs", "public", "webnfs", "index", "quiet", NULL };
-static char *
-translate_opts(const char *shareopts)
-{
-       static char newopts[OPTSSIZE];
-       char oldopts[OPTSSIZE];
-       char *o, *s = NULL;
-       unsigned int i;
-       size_t len;
-
-       strlcpy(oldopts, shareopts, sizeof(oldopts));
-       newopts[0] = '\0';
-       s = oldopts;
-       while ((o = strsep(&s, "-, ")) != NULL) {
-               if (o[0] == '\0')
-                       continue;
-               for (i = 0; known_opts[i] != NULL; i++) {
-                       len = strlen(known_opts[i]);
-                       if (strncmp(known_opts[i], o, len) == 0 &&
-                           (o[len] == '\0' || o[len] == '=')) {
-                               strlcat(newopts, "-", sizeof(newopts));
-                               break;
-                       }
-               }
-               strlcat(newopts, o, sizeof(newopts));
-               strlcat(newopts, " ", sizeof(newopts));
-       }
-       return (newopts);
-}
-
-static int
-fsshare_main(const char *file, const char *mountpoint, const char *shareopts,
-    int share)
-{
-       char tmpfile[PATH_MAX];
-       char *line;
-       FILE *newfd, *oldfd;
-       int fd, error;
-
-       newfd = oldfd = NULL;
-       error = 0;
-
-       /*
-        * Create temporary file in the same directory, so we can atomically
-        * rename it.
-        */
-       if (strlcpy(tmpfile, file, sizeof(tmpfile)) >= sizeof(tmpfile))
-               return (ENAMETOOLONG);
-       if (strlcat(tmpfile, ".XXXXXXXX", sizeof(tmpfile)) >= sizeof(tmpfile))
-               return (ENAMETOOLONG);
-       fd = mkstemp(tmpfile);
-       if (fd == -1)
-               return (errno);
-       /*
-        * File name is random, so we don't really need file lock now, but it
-        * will be needed after rename(2).
-        */
-       error = flock(fd, LOCK_EX);
-       assert(error == 0 || (error == -1 && errno == EOPNOTSUPP));
-       newfd = fdopen(fd, "r+");
-       assert(newfd != NULL);
-       /* Open old exports file. */
-       oldfd = fopen(file, "r");
-       if (oldfd == NULL) {
-               if (share) {
-                       if (errno != ENOENT) {
-                               error = errno;
-                               goto out;
-                       }
-               } else {
-                       /* If there is no exports file, ignore the error. */
-                       if (errno == ENOENT)
-                               errno = 0;
-                       error = errno;
-                       goto out;
-               }
-       } else {
-               error = flock(fileno(oldfd), LOCK_EX);
-               assert(error == 0 || (error == -1 && errno == EOPNOTSUPP));
-               error = 0;
-       }
-
-       /* Place big, fat warning at the begining of the file. */
-       fprintf(newfd, "%s", FILE_HEADER);
-       while (oldfd != NULL && (line = zgetline(oldfd, mountpoint)) != NULL)
-               fprintf(newfd, "%s\n", line);
-       if (oldfd != NULL && ferror(oldfd) != 0) {
-               error = ferror(oldfd);
-               goto out;
-       }
-       if (ferror(newfd) != 0) {
-               error = ferror(newfd);
-               goto out;
-       }
-       if (share) {
-               fprintf(newfd, "%s\t%s\n", mountpoint,
-                   translate_opts(shareopts));
-       }
-
-out:
-       if (error != 0)
-               unlink(tmpfile);
-       else {
-               if (rename(tmpfile, file) == -1) {
-                       error = errno;
-                       unlink(tmpfile);
-               } else {
-                       fflush(newfd);
-                       /*
-                        * Send SIGHUP to mountd, but unlock exports file later.
-                        */
-                       restart_mountd();
-               }
-       }
-       if (oldfd != NULL) {
-               flock(fileno(oldfd), LOCK_UN);
-               fclose(oldfd);
-       }
-       if (newfd != NULL) {
-               flock(fileno(newfd), LOCK_UN);
-               fclose(newfd);
-       }
-       return (error);
-}
-
-/*
- * Add the given mountpoint to the given exports file.
- */
-int
-fsshare(const char *file, const char *mountpoint, const char *shareopts)
-{
-
-       return (fsshare_main(file, mountpoint, shareopts, 1));
-}
-
-/*
- * Remove the given mountpoint from the given exports file.
- */
-int
-fsunshare(const char *file, const char *mountpoint)
-{
-
-       return (fsshare_main(file, mountpoint, NULL, 0));
-}
diff --git a/cddl/compat/opensolaris/misc/mkdirp.c 
b/cddl/compat/opensolaris/misc/mkdirp.c
deleted file mode 100644
index 76a90ad0ec30..000000000000
--- a/cddl/compat/opensolaris/misc/mkdirp.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (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
- *
- * $FreeBSD$
- */
-
-/*     Copyright (c) 1988 AT&T */
-/*       All Rights Reserved   */
-
-/*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident  "@(#)mkdirp.c   1.15    06/01/04 SMI"
-
-/*
- * Creates directory and it's parents if the parents do not
- * exist yet.
- *
- * Returns -1 if fails for reasons other than non-existing
- * parents.
- * Does NOT simplify pathnames with . or .. in them.
- */
-
-#include <sys/types.h>
-#include <libgen.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-#include <sys/stat.h>
-
-static char *simplify(const char *str);
-
-int
-mkdirp(const char *d, mode_t mode)
-{
-       char  *endptr, *ptr, *slash, *str;
-
-       str = simplify(d);
-
-       /* If space couldn't be allocated for the simplified names, return. */
-
-       if (str == NULL)
-               return (-1);
-
-               /* Try to make the directory */
-
-       if (mkdir(str, mode) == 0) {
-               free(str);
-               return (0);
-       }
-       if (errno != ENOENT) {
-               free(str);
-               return (-1);
-       }
-       endptr = strrchr(str, '\0');
-       slash = strrchr(str, '/');
-
-               /* Search upward for the non-existing parent */
-
-       while (slash != NULL) {
-
-               ptr = slash;
-               *ptr = '\0';
-
-                       /* If reached an existing parent, break */
-
-               if (access(str, F_OK) == 0)
-                       break;
-
-                       /* If non-existing parent */
-
-               else {
-                       slash = strrchr(str, '/');
-
-                               /* If under / or current directory, make it. */
-
-                       if (slash == NULL || slash == str) {
-                               if (mkdir(str, mode) != 0 && errno != EEXIST) {
-                                       free(str);
-                                       return (-1);
-                               }
-                               break;
-                       }
-               }
-       }
-
-       /* Create directories starting from upmost non-existing parent */
-
-       while ((ptr = strchr(str, '\0')) != endptr) {
-               *ptr = '/';
-               if (mkdir(str, mode) != 0 && errno != EEXIST) {
-                       /*
-                        *  If the mkdir fails because str already
-                        *  exists (EEXIST), then str has the form
-                        *  "existing-dir/..", and this is really
-                        *  ok. (Remember, this loop is creating the
-                        *  portion of the path that didn't exist)
-                        */
-                       free(str);
-                       return (-1);
-               }
-       }
-       free(str);
-       return (0);
-}
-
-/*
- *     simplify - given a pathname, simplify that path by removing
- *                duplicate contiguous slashes.
- *
- *                A simplified copy of the argument is returned to the
- *                caller, or NULL is returned on error.
- *
- *                The caller should handle error reporting based upon the
- *                returned vlaue, and should free the returned value,
- *                when appropriate.
- */
-
-static char *
-simplify(const char *str)
-{
-       int i;
-       size_t mbPathlen;       /* length of multi-byte path */
-       size_t wcPathlen;       /* length of wide-character path */
-       wchar_t *wptr;          /* scratch pointer */
-       wchar_t *wcPath;        /* wide-character version of the path */
-       char *mbPath;           /* The copy fo the path to be returned */
-
-       /*
-        *  bail out if there is nothing there.
-        */
-
-       if (!str)
-           return (NULL);
-
-       /*
-        *  Get a copy of the argument.
-        */
-
-       if ((mbPath = strdup(str)) == NULL) {
-               return (NULL);
-       }
-
-       /*
-        *  convert the multi-byte version of the path to a
-        *  wide-character rendering, for doing our figuring.
-        */
-
-       mbPathlen = strlen(mbPath);
-
-       if ((wcPath = calloc(sizeof (wchar_t), mbPathlen+1)) == NULL) {
-               free(mbPath);
-               return (NULL);
-       }
-
-       if ((wcPathlen = mbstowcs(wcPath, mbPath, mbPathlen)) == (size_t)-1) {
-               free(mbPath);
-               free(wcPath);
-               return (NULL);
-       }
-
-       /*
-        *  remove duplicate slashes first ("//../" -> "/")
-        */
-
-       for (wptr = wcPath, i = 0; i < wcPathlen; i++) {
-               *wptr++ = wcPath[i];
-
-               if (wcPath[i] == '/') {
-                       i++;
-
-                       while (wcPath[i] == '/') {
-                               i++;
-                       }
-
-                       i--;
-               }
-       }
-
-       *wptr = '\0';
-
-       /*
-        *  now convert back to the multi-byte format.
-        */
-
-       if (wcstombs(mbPath, wcPath, mbPathlen) == (size_t)-1) {
-               free(mbPath);
-               free(wcPath);
-               return (NULL);
-       }
-
-       free(wcPath);
-       return (mbPath);
-}
diff --git a/cddl/compat/opensolaris/misc/mnttab.c 
b/cddl/compat/opensolaris/misc/mnttab.c
deleted file mode 100644
index 8f56d90f6232..000000000000
--- a/cddl/compat/opensolaris/misc/mnttab.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/*-
- * Copyright (c) 2006 Pawel Jakub Dawidek <p...@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 AUTHORS 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 AUTHORS 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.
- */
-
-/*
- * This file implements Solaris compatible getmntany() and hasmntopt()
- * functions.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/mount.h>
-#include <sys/mntent.h>
-#include <sys/mnttab.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-static char *
-mntopt(char **p)
-{
-       char *cp = *p;
-       char *retstr;
-
-       while (*cp && isspace(*cp))
-               cp++;
-
-       retstr = cp;
-       while (*cp && *cp != ',')
-               cp++;
-
-       if (*cp) {
-               *cp = '\0';
-               cp++;
-       }
-
-       *p = cp;
-       return (retstr);
-}
-
-char *
-hasmntopt(struct mnttab *mnt, char *opt)
-{
-       char tmpopts[MNT_LINE_MAX];
-       char *f, *opts = tmpopts;
-
-       if (mnt->mnt_mntopts == NULL)
-               return (NULL);
-       (void) strcpy(opts, mnt->mnt_mntopts);
-       f = mntopt(&opts);
-       for (; *f; f = mntopt(&opts)) {
-               if (strncmp(opt, f, strlen(opt)) == 0)
-                       return (f - tmpopts + mnt->mnt_mntopts);
-       }
-       return (NULL);
-}
-
-static void
-optadd(char *mntopts, size_t size, const char *opt)
-{
-
-       if (mntopts[0] != '\0')
-               strlcat(mntopts, ",", size);
-       strlcat(mntopts, opt, size);
-}
-
-void
-statfs2mnttab(struct statfs *sfs, struct mnttab *mp)
-{
-       static char mntopts[MNTMAXSTR];
-       long flags;
-
-       mntopts[0] = '\0';
-
-       flags = sfs->f_flags;
-#define        OPTADD(opt)     optadd(mntopts, sizeof(mntopts), (opt))
-       if (flags & MNT_RDONLY)
-               OPTADD(MNTOPT_RO);
-       else
-               OPTADD(MNTOPT_RW);
-       if (flags & MNT_NOSUID)
-               OPTADD(MNTOPT_NOSUID);
-       else
-               OPTADD(MNTOPT_SETUID);
-       if (flags & MNT_UPDATE)
-               OPTADD(MNTOPT_REMOUNT);
-       if (flags & MNT_NOATIME)
-               OPTADD(MNTOPT_NOATIME);
-       else
-               OPTADD(MNTOPT_ATIME);
-       OPTADD(MNTOPT_NOXATTR);
-       if (flags & MNT_NOEXEC)
-               OPTADD(MNTOPT_NOEXEC);
-       else
-               OPTADD(MNTOPT_EXEC);
-#undef OPTADD
-       mp->mnt_special = sfs->f_mntfromname;
-       mp->mnt_mountp = sfs->f_mntonname;
-       mp->mnt_fstype = sfs->f_fstypename;
-       mp->mnt_mntopts = mntopts;
-}
-
-static struct statfs *gsfs = NULL;
-static int allfs = 0;
-
-static int
-statfs_init(void)
-{
-       struct statfs *sfs;
-       int error;
-
-       if (gsfs != NULL) {
-               free(gsfs);
-               gsfs = NULL;
-       }
-       allfs = getfsstat(NULL, 0, MNT_WAIT);
-       if (allfs == -1)
-               goto fail;
-       gsfs = malloc(sizeof(gsfs[0]) * allfs * 2);
-       if (gsfs == NULL)
-               goto fail;
-       allfs = getfsstat(gsfs, (long)(sizeof(gsfs[0]) * allfs * 2),
-           MNT_WAIT);
-       if (allfs == -1)
-               goto fail;
-       sfs = realloc(gsfs, allfs * sizeof(gsfs[0]));
-       if (sfs != NULL)
-               gsfs = sfs;
-       return (0);
-fail:
-       error = errno;
-       if (gsfs != NULL)
-               free(gsfs);
-       gsfs = NULL;
-       allfs = 0;
-       return (error);
-}
-
-int
-getmntany(FILE *fd __unused, struct mnttab *mgetp, struct mnttab *mrefp)
-{
-       struct statfs *sfs;
-       int i, error;
-
-       error = statfs_init();
-       if (error != 0)
-               return (error);
-
-       for (i = 0; i < allfs; i++) {
-               if (mrefp->mnt_special != NULL &&
-                   strcmp(mrefp->mnt_special, gsfs[i].f_mntfromname) != 0) {
-                       continue;
-               }
-               if (mrefp->mnt_mountp != NULL &&
-                   strcmp(mrefp->mnt_mountp, gsfs[i].f_mntonname) != 0) {
-                       continue;
-               }
-               if (mrefp->mnt_fstype != NULL &&
-                   strcmp(mrefp->mnt_fstype, gsfs[i].f_fstypename) != 0) {
-                       continue;
-               }
-               statfs2mnttab(&gsfs[i], mgetp);
-               return (0);
-       }
-       return (-1);
-}
-
-int
-getmntent(FILE *fp, struct mnttab *mp)
-{
-       struct statfs *sfs;
-       int error, nfs;
-
-       nfs = (int)lseek(fileno(fp), 0, SEEK_CUR);
-       if (nfs == -1)
-               return (errno);
-       /* If nfs is 0, we want to refresh out cache. */
-       if (nfs == 0 || gsfs == NULL) {
-               error = statfs_init();
-               if (error != 0)
-                       return (error);
-       }
-       if (nfs >= allfs)
-               return (-1);
-       statfs2mnttab(&gsfs[nfs], mp);
-       if (lseek(fileno(fp), 1, SEEK_CUR) == -1)
-               return (errno);
-       return (0);
-}
diff --git a/cddl/compat/opensolaris/misc/thread_pool.c 
b/cddl/compat/opensolaris/misc/thread_pool.c
deleted file mode 100644
index 6ae0055afceb..000000000000
--- a/cddl/compat/opensolaris/misc/thread_pool.c
+++ /dev/null
@@ -1,428 +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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#pragma ident  "%Z%%M% %I%     %E% SMI"
-
-#include <stdlib.h>
-#include <signal.h>
-#include <errno.h>
-#include "thread_pool_impl.h"
-
-typedef void (*_Voidfp)(void*); /* pointer to extern "C" function */
-
-static void
-delete_pool(tpool_t *tpool)
-{
-       tpool_job_t *job;
-
-       /*
-        * There should be no pending jobs, but just in case...
-        */
-       for (job = tpool->tp_head; job != NULL; job = tpool->tp_head) {
-               tpool->tp_head = job->tpj_next;
-               free(job);
-       }
-       (void) pthread_attr_destroy(&tpool->tp_attr);
-       free(tpool);
-}
-
-/*
- * Worker thread is terminating.
- */
-static void
-worker_cleanup(void *arg)
-{
-       tpool_t *tpool = arg;
-
-       if (--tpool->tp_current == 0 &&
-           (tpool->tp_flags & (TP_DESTROY | TP_ABANDON))) {
-               if (tpool->tp_flags & TP_ABANDON) {
-                       pthread_mutex_unlock(&tpool->tp_mutex);
-                       delete_pool(tpool);
-                       return;
-               }
-               if (tpool->tp_flags & TP_DESTROY)
-                       (void) pthread_cond_broadcast(&tpool->tp_busycv);
-       }
-       pthread_mutex_unlock(&tpool->tp_mutex);
-}
-
-static void
-notify_waiters(tpool_t *tpool)
-{
-       if (tpool->tp_head == NULL && tpool->tp_active == NULL) {
-               tpool->tp_flags &= ~TP_WAIT;
-               (void) pthread_cond_broadcast(&tpool->tp_waitcv);
-       }
-}
-
-/*
- * Called by a worker thread on return from a tpool_dispatch()d job.
- */
-static void
-job_cleanup(void *arg)
-{
-       tpool_t *tpool = arg;
-       pthread_t my_tid = pthread_self();
-       tpool_active_t *activep;
-       tpool_active_t **activepp;
-
-       pthread_mutex_lock(&tpool->tp_mutex);
-       /* CSTYLED */
-       for (activepp = &tpool->tp_active;; activepp = &activep->tpa_next) {
-               activep = *activepp;
-               if (activep->tpa_tid == my_tid) {
-                       *activepp = activep->tpa_next;
-                       break;
-               }
-       }
-       if (tpool->tp_flags & TP_WAIT)
-               notify_waiters(tpool);
-}
-
-static void *
-tpool_worker(void *arg)
-{
-       tpool_t *tpool = (tpool_t *)arg;
-       int elapsed;
-       tpool_job_t *job;
-       void (*func)(void *);
-       tpool_active_t active;
-       sigset_t maskset;
-
-       pthread_mutex_lock(&tpool->tp_mutex);
-       pthread_cleanup_push(worker_cleanup, tpool);
*** 577 LINES SKIPPED ***
_______________________________________________
dev-commits-src-main@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "dev-commits-src-main-unsubscr...@freebsd.org"

Reply via email to