xref: /freebsd-src/lib/geom/union/geom_union.c (revision 4d846d260e2b9a3d4d0a701462568268cbfe7a5b)
1c7996ddfSKirk McKusick /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
3c7996ddfSKirk McKusick  *
4c7996ddfSKirk McKusick  * Copyright (c) 2022 Marshall Kirk McKusick <mckusick@mckusick.com>
5c7996ddfSKirk McKusick  *
6c7996ddfSKirk McKusick  * Redistribution and use in source and binary forms, with or without
7c7996ddfSKirk McKusick  * modification, are permitted provided that the following conditions
8c7996ddfSKirk McKusick  * are met:
9c7996ddfSKirk McKusick  * 1. Redistributions of source code must retain the above copyright
10c7996ddfSKirk McKusick  *    notice, this list of conditions and the following disclaimer.
11c7996ddfSKirk McKusick  * 2. Redistributions in binary form must reproduce the above copyright
12c7996ddfSKirk McKusick  *    notice, this list of conditions and the following disclaimer in the
13c7996ddfSKirk McKusick  *    documentation and/or other materials provided with the distribution.
14c7996ddfSKirk McKusick  *
15c7996ddfSKirk McKusick  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
16c7996ddfSKirk McKusick  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17c7996ddfSKirk McKusick  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18c7996ddfSKirk McKusick  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
19c7996ddfSKirk McKusick  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20c7996ddfSKirk McKusick  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21c7996ddfSKirk McKusick  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22c7996ddfSKirk McKusick  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23c7996ddfSKirk McKusick  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24c7996ddfSKirk McKusick  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25c7996ddfSKirk McKusick  * SUCH DAMAGE.
26c7996ddfSKirk McKusick  */
27c7996ddfSKirk McKusick 
28c7996ddfSKirk McKusick #include <stdio.h>
29c7996ddfSKirk McKusick #include <stdint.h>
30c7996ddfSKirk McKusick #include <libgeom.h>
31c7996ddfSKirk McKusick #include <geom/union/g_union.h>
32c7996ddfSKirk McKusick 
33c7996ddfSKirk McKusick #include "core/geom.h"
34c7996ddfSKirk McKusick 
35c7996ddfSKirk McKusick uint32_t lib_version = G_LIB_VERSION;
36c7996ddfSKirk McKusick uint32_t version = G_UNION_VERSION;
37c7996ddfSKirk McKusick 
38c7996ddfSKirk McKusick struct g_command class_commands[] = {
39c7996ddfSKirk McKusick 	{ "create", G_FLAG_LOADKLD, NULL,
40c7996ddfSKirk McKusick 	    {
41c7996ddfSKirk McKusick 		{ 'o', "offset", "0", G_TYPE_NUMBER },
42c7996ddfSKirk McKusick 		{ 's', "size", "0", G_TYPE_NUMBER },
43c7996ddfSKirk McKusick 		{ 'S', "secsize", "0", G_TYPE_NUMBER },
44c7996ddfSKirk McKusick 		{ 'v', "verbose", NULL, G_TYPE_BOOL },
45c7996ddfSKirk McKusick 		{ 'Z', "gunionname", G_VAL_OPTIONAL, G_TYPE_STRING },
46c7996ddfSKirk McKusick 		G_OPT_SENTINEL
47c7996ddfSKirk McKusick 	    },
48c7996ddfSKirk McKusick 	    "[-v] [-o offset] [-s size] [-S secsize] [-Z gunionname] "
49c7996ddfSKirk McKusick 	    "upperdev lowerdev"
50c7996ddfSKirk McKusick 	},
51c7996ddfSKirk McKusick 	{ "destroy", 0, NULL,
52c7996ddfSKirk McKusick 	    {
53c7996ddfSKirk McKusick 		{ 'f', "force", NULL, G_TYPE_BOOL },
54c7996ddfSKirk McKusick 		{ 'v', "verbose", NULL, G_TYPE_BOOL },
55c7996ddfSKirk McKusick 		G_OPT_SENTINEL
56c7996ddfSKirk McKusick 	    },
57c7996ddfSKirk McKusick 	    "[-fv] prov ..."
58c7996ddfSKirk McKusick 	},
59c7996ddfSKirk McKusick 	{ "reset", 0, NULL,
60c7996ddfSKirk McKusick 	    {
61c7996ddfSKirk McKusick 		{ 'v', "verbose", NULL, G_TYPE_BOOL },
62c7996ddfSKirk McKusick 		G_OPT_SENTINEL
63c7996ddfSKirk McKusick 	    },
64c7996ddfSKirk McKusick 	    "[-v] prov ..."
65c7996ddfSKirk McKusick 	},
66c7996ddfSKirk McKusick 	{ "commit", 0, NULL,
67c7996ddfSKirk McKusick 	    {
68c7996ddfSKirk McKusick 		{ 'f', "force", NULL, G_TYPE_BOOL },
69c7996ddfSKirk McKusick 		{ 'r', "reboot", NULL, G_TYPE_BOOL },
70c7996ddfSKirk McKusick 		{ 'v', "verbose", NULL, G_TYPE_BOOL },
71c7996ddfSKirk McKusick 		G_OPT_SENTINEL
72c7996ddfSKirk McKusick 	    },
73c7996ddfSKirk McKusick 	    "[-frv] prov ..."
74c7996ddfSKirk McKusick 	},
75c7996ddfSKirk McKusick 	{ "revert", 0, NULL,
76c7996ddfSKirk McKusick 	    {
77c7996ddfSKirk McKusick 		{ 'v', "verbose", NULL, G_TYPE_BOOL },
78c7996ddfSKirk McKusick 		G_OPT_SENTINEL
79c7996ddfSKirk McKusick 	    },
80c7996ddfSKirk McKusick 	    "[-v] prov ..."
81c7996ddfSKirk McKusick 	},
82c7996ddfSKirk McKusick 	G_CMD_SENTINEL
83c7996ddfSKirk McKusick };
84