diff options
author | phk <phk@FreeBSD.org> | 2002-10-28 22:43:54 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2002-10-28 22:43:54 +0000 |
commit | 36b357552e8bf68a082895a618ce8fc14d7b21a8 (patch) | |
tree | 8613cc57c380af3393265fdf5313b0a510ee0433 /sys/geom/geom_kern.c | |
parent | bddb286f465cd924b05f4d045c8154af4cd9238f (diff) | |
download | FreeBSD-src-36b357552e8bf68a082895a618ce8fc14d7b21a8.zip FreeBSD-src-36b357552e8bf68a082895a618ce8fc14d7b21a8.tar.gz |
Add the remaning part of the new libdisk interaction.
WARNING: This is not a published interface, it is a stopgap measure for
WARNING: libdisk so we can get 5.0-R out of the door.
Sponsored by: DARPA & NAI Labs
Diffstat (limited to 'sys/geom/geom_kern.c')
-rw-r--r-- | sys/geom/geom_kern.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/sys/geom/geom_kern.c b/sys/geom/geom_kern.c index 5901316..1031fd4 100644 --- a/sys/geom/geom_kern.c +++ b/sys/geom/geom_kern.c @@ -160,6 +160,23 @@ g_init(void) } static int +sysctl_kern_geom_conftxt(SYSCTL_HANDLER_ARGS) +{ + int error; + struct sbuf *sb; + + sb = sbuf_new(NULL, NULL, 0, SBUF_AUTOEXTEND); + sbuf_clear(sb); + g_call_me(g_conftxt, sb); + do { + tsleep(sb, PZERO, "g_dot", hz); + } while(!sbuf_done(sb)); + error = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1); + sbuf_delete(sb); + return error; +} + +static int sysctl_kern_geom_confdot(SYSCTL_HANDLER_ARGS) { int error; @@ -197,11 +214,15 @@ SYSCTL_NODE(_kern, OID_AUTO, geom, CTLFLAG_RW, 0, "GEOMetry management"); SYSCTL_PROC(_kern_geom, OID_AUTO, confxml, CTLTYPE_STRING|CTLFLAG_RD, 0, 0, sysctl_kern_geom_confxml, "A", - "Dump the GEOM config"); + "Dump the GEOM config in XML"); SYSCTL_PROC(_kern_geom, OID_AUTO, confdot, CTLTYPE_STRING|CTLFLAG_RD, 0, 0, sysctl_kern_geom_confdot, "A", - "Dump the GEOM config"); + "Dump the GEOM config in dot"); + +SYSCTL_PROC(_kern_geom, OID_AUTO, conftxt, CTLTYPE_STRING|CTLFLAG_RD, + 0, 0, sysctl_kern_geom_conftxt, "A", + "Dump the GEOM config in txt"); SYSCTL_INT(_kern_geom, OID_AUTO, debugflags, CTLFLAG_RW, &g_debugflags, 0, ""); |