aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_mib.c
diff options
context:
space:
mode:
authorWojciech A. Koszek <wkoszek@FreeBSD.org>2007-05-12 19:38:18 +0000
committerWojciech A. Koszek <wkoszek@FreeBSD.org>2007-05-12 19:38:18 +0000
commit744b947ef84848227ce1a826167ada052973c82a (patch)
tree7df0bae947c0e7aa57e02e7373440d236848d9d0 /sys/kern/kern_mib.c
parentfbe4fc2ec0af84e67e9b0ade975d2d2603962ee3 (diff)
downloadsrc-744b947ef84848227ce1a826167ada052973c82a.tar.gz
src-744b947ef84848227ce1a826167ada052973c82a.zip
Notes
Diffstat (limited to 'sys/kern/kern_mib.c')
-rw-r--r--sys/kern/kern_mib.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/sys/kern/kern_mib.c b/sys/kern/kern_mib.c
index 0a5220df3535..2ccb207c5933 100644
--- a/sys/kern/kern_mib.c
+++ b/sys/kern/kern_mib.c
@@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/kernel.h>
+#include <sys/sbuf.h>
#include <sys/systm.h>
#include <sys/sysctl.h>
#include <sys/proc.h>
@@ -295,6 +296,38 @@ SYSCTL_PROC(_kern, KERN_SECURELVL, securelevel,
CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_PRISON, 0, 0, sysctl_kern_securelvl,
"I", "Current secure level");
+/* Actual kernel configuration options. */
+extern char kernconfstring[];
+
+static int
+sysctl_kern_config(SYSCTL_HANDLER_ARGS)
+{
+ struct sbuf *sb;
+ int error;
+ char *p;
+
+ sb = sbuf_new(NULL, NULL, 2048, SBUF_AUTOEXTEND);
+ if (sb == NULL)
+ return (ENOMEM);
+ sbuf_clear(sb);
+ p = kernconfstring;
+ if (p == NULL || *p == '\0') {
+ sbuf_printf(sb, "No kernel configuration\n");
+ } else {
+ sbuf_printf(sb, "%s", p);
+ }
+ sbuf_trim(sb);
+ sbuf_putc(sb, '\n');
+ sbuf_finish(sb);
+ error = sysctl_handle_string(oidp, sbuf_data(sb), sbuf_len(sb), req);
+ if (error)
+ return (error);
+ sbuf_delete(sb);
+ return (error);
+}
+SYSCTL_PROC(_kern, OID_AUTO, conftxt, CTLTYPE_STRING|CTLFLAG_RW,
+ 0, 0, sysctl_kern_config, "", "Kernel configuration file");
+
char domainname[MAXHOSTNAMELEN];
SYSCTL_STRING(_kern, KERN_NISDOMAINNAME, domainname, CTLFLAG_RW,
&domainname, sizeof(domainname), "Name of the current YP/NIS domain");