summaryrefslogtreecommitdiff
path: root/sys/ddb
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>1996-03-30 04:51:34 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>1996-03-30 04:51:34 +0000
commit68ccbd6e7495f854f379e4a83564c176749b9a37 (patch)
tree7d79afb924733d563410927e3c4a9ab399b4e828 /sys/ddb
parent959f19a627a30f12e0f6458e9fa1a5f3957c0acf (diff)
Added: sysctl access to the ddb variables.
Fixed: "netbsd" strings in sym table handling routines. now it is usefull to change max_{width,line} according to your real console geometry, just w/ sysctl program.
Diffstat (limited to 'sys/ddb')
-rw-r--r--sys/ddb/db_aout.c6
-rw-r--r--sys/ddb/db_sym.c4
-rw-r--r--sys/ddb/db_usrreq.c69
-rw-r--r--sys/ddb/db_var.h28
-rw-r--r--sys/ddb/db_variables.c10
5 files changed, 103 insertions, 14 deletions
diff --git a/sys/ddb/db_aout.c b/sys/ddb/db_aout.c
index 165d69fe518..789b6974322 100644
--- a/sys/ddb/db_aout.c
+++ b/sys/ddb/db_aout.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: db_aout.c,v 1.4 1996/03/11 11:15:57 mickey Exp $ */
+/* $OpenBSD: db_aout.c,v 1.5 1996/03/30 04:51:28 mickey Exp $ */
/*
* Mach Operating System
@@ -343,10 +343,10 @@ ddb_init()
extern int end;
if (esym > (char *)&end) {
- X_db_sym_init((int *)&end, esym, "netbsd");
+ X_db_sym_init((int *)&end, esym, "bsd");
}
#else
- X_db_sym_init (db_symtab, 0, "netbsd");
+ X_db_sym_init (db_symtab, 0, "bsd");
#endif
}
diff --git a/sys/ddb/db_sym.c b/sys/ddb/db_sym.c
index b2abad54a7d..19dd9264ef1 100644
--- a/sys/ddb/db_sym.c
+++ b/sys/ddb/db_sym.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: db_sym.c,v 1.5 1996/03/11 11:16:23 mickey Exp $ */
+/* $OpenBSD: db_sym.c,v 1.6 1996/03/30 04:51:28 mickey Exp $ */
/*
* Mach Operating System
@@ -108,7 +108,7 @@ db_del_symbol_table(name)
}
/*
- * db_qualify("vm_map", "netbsd") returns "netbsd:vm_map".
+ * db_qualify("vm_map", "bsd") returns "bsd:vm_map".
*
* Note: return value points to static data whose content is
* overwritten by each call... but in practice this seems okay.
diff --git a/sys/ddb/db_usrreq.c b/sys/ddb/db_usrreq.c
new file mode 100644
index 00000000000..fdc7f41ef0d
--- /dev/null
+++ b/sys/ddb/db_usrreq.c
@@ -0,0 +1,69 @@
+/* $OpenBSD: db_usrreq.c,v 1.1 1996/03/30 04:51:31 mickey Exp $ */
+
+/*
+ * Copyright (c) 1996 Michael Shalayeff. 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 Michael Shalayeff.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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/param.h>
+#include <sys/types.h>
+#include <sys/kernel.h>
+#include <sys/proc.h>
+#include <vm/vm.h>
+#include <sys/sysctl.h>
+
+#include <ddb/db_var.h>
+
+int
+ddb_sysctl(name, namelen, oldp, oldlenp, newp, newlen, p)
+ int *name;
+ u_int namelen;
+ void *oldp;
+ size_t *oldlenp;
+ void *newp;
+ size_t newlen;
+ struct proc *p;
+{
+ /* All sysctl names at this level are terminal. */
+ if (namelen != 1)
+ return (ENOTDIR);
+
+ switch (name[0]) {
+
+ case DBCTL_RADIX:
+ return sysctl_int(oldp, oldlenp, newp, newlen, &db_radix);
+ case DBCTL_MAXWIDTH:
+ return sysctl_int(oldp, oldlenp, newp, newlen, &db_max_width);
+ case DBCTL_TABSTOP:
+ return sysctl_int(oldp, oldlenp, newp, newlen, &db_tab_stop_width);
+ case DBCTL_MAXLINE:
+ return sysctl_int(oldp, oldlenp, newp, newlen, &db_max_line);
+ default:
+ return (EOPNOTSUPP);
+ }
+ /* NOTREACHED */
+}
diff --git a/sys/ddb/db_var.h b/sys/ddb/db_var.h
index a51c7dff108..439cd0c15eb 100644
--- a/sys/ddb/db_var.h
+++ b/sys/ddb/db_var.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: db_var.h,v 1.1 1996/03/11 11:16:27 mickey Exp $ */
+/* $OpenBSD: db_var.h,v 1.2 1996/03/30 04:51:29 mickey Exp $ */
/*
* Copyright (c) 1996 Michael Shalayeff. All rights reserved.
@@ -40,4 +40,30 @@
#define DB_HISTORY_SIZE 4000
#endif
+#define DBCTL_RADIX 1
+#define DBCTL_MAXWIDTH 2
+#define DBCTL_MAXLINE 3
+#define DBCTL_TABSTOP 4
+#define DBCTL_MAXID 5
+
+#define CTL_DDB_NAMES { \
+ { NULL, 0 }, \
+ { "radix", CTLTYPE_INT }, \
+ { "max_width", CTLTYPE_INT }, \
+ { "max_line", CTLTYPE_INT }, \
+ { "tab_stop_width", CTLTYPE_INT },\
+}
+
+#ifdef _KERNEL
+extern u_int db_maxoff;
+extern int db_radix;
+extern int db_max_width;
+extern int db_tab_stop_width;
+extern int db_max_line;
+
+int ddb_sysctl __P((int *, u_int, void *, size_t *, void *, size_t,
+ struct proc *));
+#endif
+
#endif /* _DDB_DB_VAR_H_ */
+
diff --git a/sys/ddb/db_variables.c b/sys/ddb/db_variables.c
index c59af61c14f..ccb5c64b4da 100644
--- a/sys/ddb/db_variables.c
+++ b/sys/ddb/db_variables.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: db_variables.c,v 1.3 1996/03/11 11:16:28 mickey Exp $ */
+/* $OpenBSD: db_variables.c,v 1.4 1996/03/30 04:51:30 mickey Exp $ */
/*
* Mach Operating System
@@ -36,13 +36,7 @@
#include <ddb/db_command.h>
#include <ddb/db_sym.h>
#include <ddb/db_extern.h>
-
-extern unsigned int db_maxoff;
-
-extern int db_radix;
-extern int db_max_width;
-extern int db_tab_stop_width;
-extern int db_max_line;
+#include <ddb/db_var.h>
struct db_variable db_vars[] = {
{ "radix", &db_radix, FCN_NULL },