diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 1996-03-30 04:51:34 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 1996-03-30 04:51:34 +0000 |
commit | 68ccbd6e7495f854f379e4a83564c176749b9a37 (patch) | |
tree | 7d79afb924733d563410927e3c4a9ab399b4e828 /sys/ddb | |
parent | 959f19a627a30f12e0f6458e9fa1a5f3957c0acf (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.c | 6 | ||||
-rw-r--r-- | sys/ddb/db_sym.c | 4 | ||||
-rw-r--r-- | sys/ddb/db_usrreq.c | 69 | ||||
-rw-r--r-- | sys/ddb/db_var.h | 28 | ||||
-rw-r--r-- | sys/ddb/db_variables.c | 10 |
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 }, |