From ca0770e1ddedaca276738c1db0298cc9a6fc9403 Mon Sep 17 00:00:00 2001 From: phk Date: Mon, 2 Jun 2003 20:50:59 +0000 Subject: Use GEOM OAM api to retrive list of configured ccd devices. Link against libgeom. --- sbin/ccdconfig/ccdconfig.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'sbin/ccdconfig/ccdconfig.c') diff --git a/sbin/ccdconfig/ccdconfig.c b/sbin/ccdconfig/ccdconfig.c index 19f5f1a..4c877ff 100644 --- a/sbin/ccdconfig/ccdconfig.c +++ b/sbin/ccdconfig/ccdconfig.c @@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -426,9 +427,27 @@ static int dump_ccd(int argc, char **argv) { char *cp; + char const *errstr; int i, error, numccd, numconfiged = 0; struct ccdconf conf; int ccd; + struct gctl_req *grq; + + grq = gctl_get_handle(); + gctl_ro_param(grq, "verb", -1, "list"); + gctl_ro_param(grq, "class", -1, "CCD"); + cp = malloc(65536); + gctl_rw_param(grq, "output", 65536, cp); + if (verbose) + gctl_ro_param(grq, "verbose", -1, "yes"); + errstr = gctl_issue(grq); + if (errstr == NULL) { + printf("%s", cp); + return (0); + } else { + warnx("%s\nor possibly kernel and ccdconfig out of sync", + errstr); + } /* * Read the ccd configuration data from the kernel and dump -- cgit v1.1