summaryrefslogtreecommitdiffstats
path: root/sbin/modunload/modunload.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1999-04-24 21:04:04 +0000
committerpeter <peter@FreeBSD.org>1999-04-24 21:04:04 +0000
commit552af2f2dc72bea78b269f6590489b03d4e92f30 (patch)
tree02a61588a371a11dc44a10edae8bfe819143011b /sbin/modunload/modunload.c
parent55287e726035b74a97ccf03a87c86b6dc10bf35c (diff)
downloadFreeBSD-src-552af2f2dc72bea78b269f6590489b03d4e92f30.zip
FreeBSD-src-552af2f2dc72bea78b269f6590489b03d4e92f30.tar.gz
The infrastructure to build these fellows has been replaced with kld.
Diffstat (limited to 'sbin/modunload/modunload.c')
-rw-r--r--sbin/modunload/modunload.c125
1 files changed, 0 insertions, 125 deletions
diff --git a/sbin/modunload/modunload.c b/sbin/modunload/modunload.c
deleted file mode 100644
index b09f8c9..0000000
--- a/sbin/modunload/modunload.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 1993 Terrence R. Lambert.
- * 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.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Terrence R. Lambert.
- * 4. The name Terrence R. Lambert may not be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY TERRENCE R. LAMBERT ``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 TERRENCE R. LAMBERT 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.
- */
-
-#ifndef lint
-static const char rcsid[] =
- "$Id$";
-#endif /* not lint */
-
-#include <err.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <sys/ioctl.h>
-#include <sys/lkm.h>
-#include <sys/file.h>
-#include <sys/errno.h>
-#include "pathnames.h"
-
-void
-usage()
-{
-
- fprintf(stderr, "usage: modunload [-i <module id>] [-n <module name>]\n");
- exit(1);
-}
-
-int devfd;
-
-void
-cleanup()
-{
-
- close(devfd);
-}
-
-int
-main(argc, argv)
- int argc;
- char *argv[];
-{
- int c;
- int modnum = -1;
- char *modname = NULL;
- struct lmc_unload ulbuf;
-
- while ((c = getopt(argc, argv, "i:n:")) != -1) {
- switch (c) {
- case 'i':
- modnum = atoi(optarg);
- break; /* number */
- case 'n':
- modname = optarg;
- break; /* name */
- case '?':
- usage();
- default:
- printf("default!\n");
- break;
- }
- }
- argc -= optind;
- argv += optind;
-
- if (argc != 0 || (modnum == -1 && modname == NULL))
- usage();
-
-
- /*
- * Open the virtual device device driver for exclusive use (needed
- * to ioctl() to retrieve the loaded module(s) status).
- */
- if ((devfd = open(_PATH_LKM, O_RDWR, 0)) == -1)
- err(2, _PATH_LKM);
-
- atexit(cleanup);
-
- /*
- * Unload the requested module.
- */
- ulbuf.name = modname;
- ulbuf.id = modnum;
-
- if (ioctl(devfd, LMUNLOAD, &ulbuf) == -1) {
- switch (errno) {
- case EINVAL: /* out of range */
- errx(3, "id out of range");
- case ENOENT: /* no such entry */
- errx(3, "no such module");
- default: /* other error (EFAULT, etc) */
- err(5, "LMUNLOAD");
- }
- }
-
- return 0;
-}
OpenPOWER on IntegriCloud