Deleted Added
sdiff udiff text old ( 148719 ) new ( 157740 )
full compact
1/*
2 * Copyright (c) 2003 Poul-Henning Kamp
3 * Copyright (c) 1995 Jason R. Thorpe.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 18 unchanged lines hidden (view full) ---

27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#include <sys/cdefs.h>
35__FBSDID("$FreeBSD: head/sbin/ccdconfig/ccdconfig.c 148719 2005-08-05 07:39:39Z stefanf $");
36
37#include <sys/param.h>
38#include <sys/linker.h>
39#include <sys/module.h>
40#include <ctype.h>
41#include <err.h>
42#include <errno.h>
43#include <limits.h>
44#include <paths.h>
45#include <stdio.h>
46#include <stdlib.h>
47#include <string.h>
48#include <unistd.h>
49#include <libgeom.h>
50
51#define CCDF_UNIFORM 0x02 /* use LCCD of sizes for uniform interleave */
52#define CCDF_MIRROR 0x04 /* use mirroring */
53
54#include "pathnames.h"
55
56static int lineno = 0;
57static int verbose = 0;
58static const char *ccdconf = _PATH_CCDCONF;
59
60struct flagval {
61 const char *fv_flag;
62 int fv_val;
63} flagvaltab[] = {
64 { "CCDF_UNIFORM", CCDF_UNIFORM },
65 { "uniform", CCDF_UNIFORM },
66 { "CCDF_MIRROR", CCDF_MIRROR },
67 { "mirror", CCDF_MIRROR },
68 { "none", 0 },
69 { NULL, 0 },
70};
71
72#define CCD_CONFIG 0 /* configure a device */
73#define CCD_CONFIGALL 1 /* configure all devices */
74#define CCD_UNCONFIG 2 /* unconfigure a device */
75#define CCD_UNCONFIGALL 3 /* unconfigure all devices */

--- 164 unchanged lines hidden (view full) ---

240 gctl_ro_param(grq, "verb", -1, "create geom");
241 gctl_ro_param(grq, "class", -1, "CCD");
242 gctl_ro_param(grq, "unit", sizeof(ccd), &ccd);
243 gctl_ro_param(grq, "ileave", sizeof(ileave), &ileave);
244 if (flags & CCDF_UNIFORM)
245 gctl_ro_param(grq, "uniform", -1, "");
246 if (flags & CCDF_MIRROR)
247 gctl_ro_param(grq, "mirror", -1, "");
248 gctl_ro_param(grq, "nprovider", sizeof(argc), &argc);
249 for (i = 0; i < argc; i++) {
250 sprintf(buf1, "provider%d", i);
251 cp = argv[i];
252 if (!strncmp(cp, _PATH_DEV, strlen(_PATH_DEV)))
253 cp += strlen(_PATH_DEV);
254 gctl_ro_param(grq, buf1, -1, cp);
255 }

--- 184 unchanged lines hidden ---