summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1999-01-20 11:53:20 +0000
committerjkh <jkh@FreeBSD.org>1999-01-20 11:53:20 +0000
commitd850ecb3deefeb418caa3e85530390aca0bd7027 (patch)
tree47d4af6bdd06598d3342b2c82bb9316759eb86c4 /sbin
parentebea5616f86306ba8c6d957625ad6fb60e5b90dc (diff)
downloadFreeBSD-src-d850ecb3deefeb418caa3e85530390aca0bd7027.zip
FreeBSD-src-d850ecb3deefeb418caa3e85530390aca0bd7027.tar.gz
nuke dset - it doesn't work in a post-ELF world and abial has something
better as a replacement (kget).
Diffstat (limited to 'sbin')
-rw-r--r--sbin/Makefile3
-rw-r--r--sbin/dset/Makefile7
-rw-r--r--sbin/dset/dset.878
-rw-r--r--sbin/dset/dset.c433
4 files changed, 1 insertions, 520 deletions
diff --git a/sbin/Makefile b/sbin/Makefile
index 58ad81c..6333722 100644
--- a/sbin/Makefile
+++ b/sbin/Makefile
@@ -1,5 +1,5 @@
# @(#)Makefile 8.5 (Berkeley) 3/31/94
-# $Id: Makefile,v 1.60 1998/12/27 19:43:28 sos Exp $
+# $Id: Makefile,v 1.61 1998/12/28 11:06:21 sos Exp $
# XXX MISSING: icheck ncheck
@@ -11,7 +11,6 @@ SUBDIR= adjkerntz \
clri \
disklabel \
dmesg \
- dset \
dump \
dumpfs \
dumpon \
diff --git a/sbin/dset/Makefile b/sbin/dset/Makefile
deleted file mode 100644
index ce15a61..0000000
--- a/sbin/dset/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-PROG= dset
-DPADD= ${LIBKVM}
-LDADD= -lkvm
-CFLAGS+=-I${.CURDIR}/../../sys/
-MAN8= dset.8
-
-.include <bsd.prog.mk>
diff --git a/sbin/dset/dset.8 b/sbin/dset/dset.8
deleted file mode 100644
index ed88d4e..0000000
--- a/sbin/dset/dset.8
+++ /dev/null
@@ -1,78 +0,0 @@
-.\"
-.\" Copyright (c) 1996 Joerg Wunsch
-.\"
-.\" 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 DEVELOPERS ``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 DEVELOPERS 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.
-.\"
-.\" $Id: dset.8,v 1.6 1997/02/22 14:32:15 peter Exp $
-.\" "
-.Dd May 2, 1996
-.Dt DSET 8
-.Os FreeBSD
-.Sh NAME
-.Nm dset
-.Nd "update the boot file to the current configuration"
-.Sh SYNOPSIS
-.Nm dset
-.Op Fl vqt
-.Sh DESCRIPTION
-.Nm Dset
-records the configuration changes for ISA devices that have been made
-from
-.Em UserConfig
-after booting with the
-.Fl c
-option. The changes (if any) are recorded to the file name returned by
-.Xr getbootfile 3 .
-.Nm Dset
-is typically called from within
-.Pa /etc/rc .
-.Pp
-.Nm Dset
-understands the following options:
-.Bl -tag -width indent -compact
-.It Fl v
-Verbose; tell what is being done.
-.It Fl q
-Quiet; don't print any error messages.
-.It Fl t
-Test only; don't actually record any changes to the boot file, print
-only what would have been done. This implies
-.Fl v .
-.El
-.Sh DIAGNOSTICS
-The
-.Nm
-utility exits with status 0 on success, or with status 1 if any
-problem occurred. Unless
-.Fl q
-has been specified, a short message hinting to the cause of the problem
-will be printed to standard error output.
-.Sh SEE ALSO
-.Xr getbootfile 3 ,
-.Xr boot_i386 8 ,
-.Xr rc 8
-.Sh HISTORY
-The
-.Nm
-command appeared in
-.Fx 2.0.5 .
diff --git a/sbin/dset/dset.c b/sbin/dset/dset.c
deleted file mode 100644
index 210e92a..0000000
--- a/sbin/dset/dset.c
+++ /dev/null
@@ -1,433 +0,0 @@
-/*
- * Copyright (c) 1995 Ugen J.S.Antsilevich
- *
- * Redistribution and use in source forms, with and without modification,
- * are permitted provided that this entire comment appears intact.
- *
- * Redistribution in binary form may occur without any restrictions.
- * Obviously, it would be nice if you gave credit where credit is due
- * but requiring it would be too onerous.
- *
- * This software is provided ``AS IS'' without any warranties of any kind.
- *
- * Device configuration to kernel image saving utility.
- */
-
-#ifndef lint
-static const char rcsid[] =
- "$Id: dset.c,v 1.13 1998/06/28 19:06:17 bde Exp $";
-#endif /* not lint */
-
-#include <err.h>
-#include <fcntl.h>
-#include <kvm.h>
-#include <a.out.h>
-#include <limits.h>
-#include <paths.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/param.h>
-#include "i386/isa/isa_device.h"
-
-#include "i386/isa/pnp.h"
-struct pnp_cinfo new_ov[MAX_PNP_LDN];
-struct pnp_cinfo old_ov[MAX_PNP_LDN];
-
-#define TRUE 1
-#define FALSE 0
-
-struct nlist nl[] = {
-#define N_TABTTY 0
- {"_isa_devtab_tty"},
-#define N_TABBIO 1
- {"_isa_devtab_bio"},
-#define N_TABNET 2
- {"_isa_devtab_net"},
-#define N_TABCAM 3
- {"_isa_devtab_cam"},
-#define N_TABNULL 4
- {"_isa_devtab_null"},
- {""},
-};
-#define N_TABLAST N_TABNULL
-
-struct nlist nlk[] = {
- {"_isa_devlist"},
- {""},
-};
-
-struct nlist nlaux[] = {
- {"_num_eisa_slots"},
- {""},
-};
-
-struct nlist nlpnp[] = {
- {"_pnp_ldn_overrides"},
- {""},
-};
-
-struct nlist nlconfig[] = {
- {"config.o"},
- {""},
-};
-
-int quiet = FALSE;
-
-void
-fatal(name, str)
- char *name, *str;
-{
- if (quiet)
- exit(1);
- if (str)
- errx(1, "%s: %s", name, str);
- else
- errx(1, "%s", name);
-}
-
-void
-error(name, str)
- char *name, *str;
-{
- if (quiet)
- return;
- if (str)
- warnx("%s: %s", name, str);
- else
- warnx("%s", name);
-}
-
-void
-usage()
-{
- fprintf(stderr, "usage: dset [-qtv]\n");
- exit(1);
-}
-
-int
-main(ac, av)
- int ac;
- char **av;
-{
- int f, res, s, i;
- int modified,dev_found;
- int sym;
- u_long pos, entry, pos1, pos_t;
- u_long flags;
- struct isa_device buf, buf1;
- struct isa_driver dbuf;
- char nbuf[5];
- struct stat fst;
- struct exec es;
- kvm_t *kd;
- static char errb[_POSIX2_LINE_MAX];
- const char *kernel = NULL;
-
- char ch;
- int testonly = FALSE;
- int verbose = FALSE;
-
- while ((ch = getopt(ac, av, "qtv")) != -1)
- switch (ch) {
- case 'q':
- quiet = TRUE;
- break;
- case 't':
- testonly = TRUE;
- /* In test mode we want to be verbose */
-
- case 'v':
- verbose = TRUE;
- break;
-
- case '?':
- default:
- usage();
- }
-
-
- kernel = getbootfile();
- if (verbose)
- printf("Boot image: %s\n", kernel);
-
- if (!(kd = kvm_open(NULL, NULL, NULL, O_RDONLY, errb)))
- fatal("kvm_open", NULL);
-
- if (kvm_nlist(kd, nlk) != 0)
- fatal("kvm_nlist", NULL);
-
- if (nlk[0].n_type == 0)
- fatal("kvm_nlist", "bad symbol type");
-
- if (nlist(kernel, nl) != 0)
- fatal("nlist", NULL);
-
- if (nl[0].n_type == 0)
- fatal("nlist", "bad symbol type");
-
- if (stat(kernel, &fst) < 0)
- fatal("stat", NULL);
-
- flags = fst.st_flags;
-
- if (chflags(kernel, (u_long) 0) < 0)
- fatal("chflags", NULL);
-
- if ((f = open(kernel, O_RDWR)) <= 0)
- fatal("open", NULL);
-
- if (read(f, &es, sizeof(struct exec)) <= 0)
- fatal("read header", NULL);
-
- entry = es.a_entry;
-
- for (sym = 0; sym <= N_TABLAST; sym++) {
- if (verbose)
- printf("\nTable: %s\n", nl[sym].n_name);
- pos = nl[sym].n_value + getpagesize() - entry;
-
- pos1 = nlk[0].n_value;
-
- if (lseek(f, pos, SEEK_SET) != pos)
- fatal("seek", NULL);
-
- if (verbose)
- printf("----------------------------------------------------\n");
-
- do {
- if ((res = read(f, (char *) &buf, sizeof(struct isa_device)))
- <= 0)
- fatal("read", NULL);
-
-
-
- if (kvm_read(kd, pos1, &pos_t, sizeof(u_long)) < 0)
- fatal("kvmread", NULL);
- dev_found = 0;
-
- while(pos_t!=0) {
- if (kvm_read(kd, pos_t, &buf1, sizeof(struct isa_device)) < 0)
- fatal("kvmread", NULL);
-
- if (buf1.id_id != buf.id_id) {
- pos_t = (u_long)(buf1.id_next);
- continue;
- } else
- dev_found=1;
-
- if (buf1.id_driver)
- if (kvm_read(kd, (u_long) buf1.id_driver,
- &dbuf, sizeof(struct isa_driver)) < 0) {
- error("kvm_read", "no driver");
- } else {
- if (kvm_read(kd, (u_long) dbuf.name,
- nbuf, sizeof(nbuf)) < 0) {
- error("kvm_read", NULL);
- } else {
- nbuf[sizeof(nbuf) - 1] = 0;
- if (verbose)
- printf("Device: %s%d\n", nbuf, buf1.id_unit);
- }
- }
- else
- error("kvm_read", "no driver");
- break;
-
- };
-
- if (!dev_found)
- continue;
-
- if (buf1.id_id != 0)
- if (verbose)
- printf(
- "kernel: id=%u io=%X irq=%d drq=%d maddr=%p msize=%d flags=%X enabled=%X \n",
- buf1.id_id, buf1.id_iobase, buf1.id_irq, buf1.id_drq,
- buf1.id_maddr, buf1.id_msize, buf1.id_flags, buf1.id_enabled);
-
- if (buf.id_id != 0)
- if (verbose)
- printf(
- "file: id=%u io=%X irq=%d drq=%d maddr=%p msize=%d flags=%X enabled=%X \n",
- buf.id_id, buf.id_iobase, buf.id_irq, buf.id_drq,
- buf.id_maddr, buf.id_msize, buf.id_flags, buf.id_enabled);
-
-
- /*
- * OK,now we'd compare values and set'em from kernel.
- */
- modified = FALSE;
-
- if (buf.id_iobase != -1 && buf.id_iobase !=
- buf1.id_iobase) {
- if (verbose)
- printf("Setting IO addr\n");
- buf.id_iobase = buf1.id_iobase;
- modified = TRUE;
- }
- if (buf.id_irq != (u_short)-1 && buf.id_irq != buf1.id_irq) {
- if (verbose)
- printf("Setting IRQ\n");
- buf.id_irq = buf1.id_irq;
- modified = TRUE;
- }
- if (buf.id_drq != -1 && buf.id_drq != buf1.id_drq) {
- if (verbose)
- printf("Setting DRQ\n");
- buf.id_drq = buf1.id_drq;
- modified = TRUE;
- }
- if (buf.id_maddr != (caddr_t)-1 && buf.id_maddr != buf1.id_maddr) {
- if (verbose)
- printf("Setting memory addres\n");
- buf.id_maddr = buf1.id_maddr;
- modified = TRUE;
- }
- if (buf.id_msize != buf1.id_msize) {
- if (verbose)
- printf("Setting msize\n");
- buf.id_msize = buf1.id_msize;
- modified = TRUE;
- }
- if (buf.id_flags != buf1.id_flags) {
- if (verbose)
- printf("Setting flags\n");
- buf.id_flags = buf1.id_flags;
- modified = TRUE;
- }
- if (buf.id_enabled != buf1.id_enabled) {
- if (verbose)
- printf("Setting device enable/disable\n");
- buf.id_enabled = buf1.id_enabled;
- modified = TRUE;
- }
- if (verbose)
- printf("----------------------------------------------------\n");
- if (modified && !testonly) {
-
- res = lseek(f, -(off_t) sizeof(struct isa_device),
- SEEK_CUR);
- if (write(f, &buf, sizeof(struct isa_device)) <= 0)
- fatal("write", NULL);
-
- }
- } while (buf.id_id != 0 && buf1.id_id != 0);
- }
-
- if (kvm_nlist(kd, nlaux) != 0) {
- /* num_eisa_conf need not exist, only handle it if found */
- if (verbose)
- printf("num_eisa_slots not found, ignoring.\n");
- } else {
- if (nlaux[0].n_type == 0)
- fatal("kvm_nlist", "bad symbol type");
- pos1 = nlaux[0].n_value;
- if (kvm_read(kd, pos1, &s, sizeof(int)) < 0)
- fatal("kvmread", NULL);
-
- if (nlist(kernel, nlaux) != 0)
- fatal("nlist", NULL);
- if (nlaux[0].n_type == 0)
- fatal("nlist", "bad symbol type");
- pos = nlaux[0].n_value + getpagesize() - entry;
- if (lseek(f, pos, SEEK_SET) != pos)
- fatal("seek", NULL);
- if ((res = read(f, (char *) &i, sizeof(int)))
- <= 0)
- fatal("read", NULL);
-
- if (i != s) {
- if (verbose)
- printf("\nChanging num_eisa_slots from %d to %d.\n",
- i, s);
- if (!testonly) {
- res = lseek(f, -(off_t) sizeof(int),
- SEEK_CUR);
- if (write(f, &s, sizeof(int)) <= 0)
- fatal("write", NULL);
- }
- }
- }
-
- if (kvm_nlist(kd, nlpnp) != 0) {
- /* pnp_ldn_overrides need not exist, only handle it if found */
- if (verbose)
- printf("pnp_ldn_overrides not found, ignoring.\n");
- } else {
- if (nlpnp[0].n_type == 0)
- fatal("kvm_nlist", "bad symbol type");
- /* must handle it, read and write... */
- pos1 = nlpnp[0].n_value ;
- if (kvm_read(kd, pos1, &new_ov, sizeof(new_ov) ) < 0 )
- fatal("kvmread", NULL);
- if (nlist(kernel, nlpnp) != 0)
- fatal("nlist", NULL);
- if (nlpnp[0].n_type == 0)
- fatal("nlist", "bad symbol type");
- pos = nlpnp[0].n_value + getpagesize() - entry;
- if (lseek(f, pos, SEEK_SET) != pos)
- fatal("seek", NULL);
- if ((res = read(f, (char *) &old_ov, sizeof(old_ov))) <= 0 )
- fatal("read", NULL);
- if (testonly || bcmp(&old_ov, &new_ov, sizeof(old_ov)) ) {
- if (verbose) {
- int i;
- printf("CSN LDN conf en irq drq vendor_id. ....\n");
- for (i=0; i < MAX_PNP_LDN ; i++) {
- if (new_ov[i].csn>0 && new_ov[i].csn<255) {
- int maxp, maxm;
- for (maxp=7; maxp>=0 ; maxp--)
- if (new_ov[i].port[maxp] !=0) break;
- for (maxm=3; maxm>=0 ; maxm--)
- if (new_ov[i].mem[maxm].base !=0) break;
- printf("%3d %3d %-4s %c ",
- new_ov[i].csn,
- new_ov[i].ldn,
- new_ov[i].override ? "OS":"BIOS",
- new_ov[i].enable ? 'y':'n');
- printf(new_ov[i].irq[0] == 0 ? " -":" %2d",
- new_ov[i].irq[0]);
- printf(new_ov[i].irq[1] == 0 ? " - ":"%-2d",
- new_ov[i].irq[1]);
- printf(new_ov[i].drq[0] == 4 ? " -":" %d",
- new_ov[i].drq[0]);
- printf(new_ov[i].drq[1] == 4 ? " -":" %d",
- new_ov[i].drq[1]);
- if (new_ov[i].vendor_id > 0)
- printf(" 0x%08x", new_ov[i].vendor_id);
- if (new_ov[i].flags > 0)
- printf(" flags 0x%08lx", new_ov[i].flags);
- if (maxp >=0) {
- int j;
- printf(" port 0x%x", new_ov[i].port[0]);
- for(j=1;j<=maxp;j++)
- printf(" 0x%x", new_ov[i].port[j]);
- }
- if (maxm >=0) {
- int j;
- printf(" mem 0x%lx", new_ov[i].mem[0].base);
- for(j=1;j<=maxm;j++)
- printf(" 0x%lx", new_ov[i].mem[j].base);
- }
- printf("\n");
- }
- }
- }
- if (!testonly) {
- res = lseek(f, -(off_t) sizeof(new_ov),
- SEEK_CUR);
- if (write(f,&new_ov, sizeof(new_ov)) <= 0)
- fatal("write", NULL);
- }
- }
- }
- if (chflags(kernel, flags) < 0)
- fatal("chflags restore", NULL);
-
- kvm_close(kd);
- close(f);
- return(0);
-}
OpenPOWER on IntegriCloud