summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2016-08-12 15:52:18 -0500
committerDavid Teigland <teigland@redhat.com>2016-09-09 16:09:55 -0500
commit20017482edb15c533c9dd727697e92844e6999c9 (patch)
tree4d361fa4f6989a0d5673d91e60a0b91405393c4c
parent8c71fc1cc21272c8b9e8828b0c6962fd06ec3949 (diff)
downloadlvm2-dev-dct-cmd-defs5.tar.gz
commands: new method for defining commandsdev-dct-cmd-defs5
-rw-r--r--lib/commands/toolcontext.h4
-rw-r--r--scripts/command-lines.in809
-rw-r--r--scripts/create-commands.c1614
-rw-r--r--tools/args.h4
-rw-r--r--tools/command-lines-count.h3
-rw-r--r--tools/command-lines.h7571
-rw-r--r--tools/command.h166
-rw-r--r--tools/commands.h1428
-rw-r--r--tools/lvm.c32
-rw-r--r--tools/lvm2cmdline.h9
-rw-r--r--tools/lvmcmdlib.c2
-rw-r--r--tools/lvmcmdline.c665
-rw-r--r--tools/toollib.c2
-rw-r--r--tools/tools.h28
14 files changed, 10774 insertions, 1563 deletions
diff --git a/lib/commands/toolcontext.h b/lib/commands/toolcontext.h
index c6d938d8b..18eddfc46 100644
--- a/lib/commands/toolcontext.h
+++ b/lib/commands/toolcontext.h
@@ -89,8 +89,8 @@ struct cmd_context {
*/
const char *cmd_line;
struct command *command;
- char **argv;
- struct arg_values *arg_values;
+ char **pos_arg_values;
+ struct arg_values *opt_arg_values;
struct dm_list arg_value_groups;
/*
diff --git a/scripts/command-lines.in b/scripts/command-lines.in
new file mode 100644
index 000000000..d03874207
--- /dev/null
+++ b/scripts/command-lines.in
@@ -0,0 +1,809 @@
+#
+# When this file is changed, tools/command-lines.h
+# and tools/command-lines-count.h must be regenerated
+# with:
+#
+# scripts/create-commands --output count scripts/command-lines.in > tools/command-lines-count.h
+# scripts/create-commands --output struct scripts/command-lines.in > tools/command-lines.h
+#
+
+#
+# A new command has a unique combination of:
+# command name, required option args and required
+# positional args.
+#
+# To define a new command, begin a single line with a
+# command name, followed by required options/args,
+# (e.g. --foo, or --foo val), followed by required
+# positional args, (e.g. VG)
+#
+# After the single line of required elements are lines
+# of optional elements:
+# . optional options/args are on new line that begins OO:
+# . optional positional args are on a new line that begins OP:
+#
+# command_name required_opt_arg ... required_pos_arg ...
+# OO: optional_opt_arg, ...
+# OP: optional_pos_arg ...
+#
+# required_opt_arg/optional_opt_arg must begin with the
+# long form option name, e.g. --foo. If the option name
+# takes a value, then the type of value is specified,
+# e.g. --foo String.
+#
+# Possible option names are listed in args.h
+#
+# Use --foo_long to specify that only the long form of
+# --foo is accepted by the command. (This is uncommon.)
+#
+# Possible option arg types that can follow --opt are:
+# Bool, Number, String, PV, VG, LV, Tag.
+#
+# Option args outside the list of types are treated as literal
+# (non-variable) strings or numbers.
+#
+# required_pos_arg/optional_pos_arg can be one of the following:
+# PV, VG, LV, Tag, Select.
+#
+# required_pos_arg/optional_pos_arg can be multiple types
+# separated by |, e.g. VG|LV|Tag
+#
+# If the required_pos_arg/optional_pos_arg is repeatable,
+# it is followed by ..., e.g. VG|LV|Tag ...
+#
+# LV can have a suffix indicating the LV type, e.g. LV_linear, LV_thinpool.
+# LV_raid represents any raidN.
+#
+# VG, LV can have the suffix _new, indicating the named VG or LV
+# does not yet exist.
+#
+# If Select is included in pos_arg, it means that the pos_arg
+# may be empty if the --select option is used.
+#
+# To define a common set of options:
+# OO_NAME: --foo, --bar String
+#
+# To use this set of options, include it on the OO: line, e.g.
+# OO: --example, OO_NAME
+#
+# which is expaneded to
+# OO: --example, --foo, --bar String
+#
+# Including OO_NAME after a command name on the required line
+# means that any one of the options is required and the rest
+# are optional. The usage syntax for this case is printed as:
+# command (--foo A, --bar B)
+#
+
+#
+# OO_ALL is included in every command automatically.
+# FIXME: add --force and --test to OO_ALL so that all commands will
+# accept them even if they are not used?
+#
+OO_ALL: --commandprofile String, --config String, --debug,
+--driverloaded Bool, --help, --profile String, --quiet,
+--verbose, --version, --yes
+
+#
+# pvs, lvs, vgs, fullreport
+#
+OO_REPORT: --aligned, --all, --binary, --configreport String, --foreign,
+--ignorelockingfailure, --ignoreskippedcluster, --logonly,
+--nameprefixes, --noheadings, --nolocking, --nosuffix,
+--options String, --partial, --readonly, --reportformat String, --rows,
+--select String, --separator String, --shared, --sort String,
+--trustcache, --unbuffered, --units String, --unquoted
+
+#
+# config, dumpconfig, lvmconfig
+#
+OO_CONFIG: --atversion String, --configtype String, --file String, --ignoreadvanced,
+--ignoreunsupported, --ignorelocal, --list, --mergedconfig, --metadataprofile String,
+--sinceversion String, --showdeprecated, --showunsupported, --validate, --withsummary,
+--withcomments, --withspaces, --unconfigured, --withversions
+
+
+config
+OO: OO_CONFIG
+OP: String ...
+
+devtypes
+OO: --aligned, --binary, --nameprefixes, --noheadings,
+--nosuffix, --options String, --reportformat String, --rows,
+--select String, --separator String, --sort String, --unbuffered, --unquoted
+
+dumpconfig
+OO: OO_CONFIG
+OP: String ...
+
+formats
+
+help
+
+fullreport
+OO: OO_REPORT
+OP: VG ...
+
+lastlog
+OO: --reportformat String, --select String
+
+
+#
+# None of these can function as a required option for lvchange.
+#
+OO_LVCHANGE: --autobackup Bool, --force, --ignorelockingfailure,
+--ignoremonitoring, --ignoreskippedcluster, --noudevsync,
+--reportformat String, --sysinit, --test, --select String
+
+#
+# Any of these can function as a required option for lvchange.
+# profile is also part of OO_ALL, but is repeated in OO_LVCHANGE_META
+# because it can function as a required opt.
+#
+OO_LVCHANGE_META: --addtag Tag, --deltag Tag,
+--alloc String, --contiguous Bool,
+--detachprofile, --metadataprofile String, --profile String,
+--permission, --readahead Number|String, --setactivationskip Bool,
+--errorwhenfull Bool, --discards String, --zero Bool,
+--cachemode String, --cachepolicy String, --cachesettings String,
+--minrecoveryrate Number, --maxrecoveryrate Number,
+--writebehind Number, --writemostly PV
+
+lvchange OO_LVCHANGE_META VG|LV|Tag|Select ...
+OO: OO_LVCHANGE
+
+lvchange --resync VG|LV|Tag|Select ...
+OO: OO_LVCHANGE_META, OO_LVCHANGE
+
+lvchange --syncaction String VG|LV|Tag|Select ...
+OO: OO_LVCHANGE_META, OO_LVCHANGE
+
+lvchange --rebuild PV VG|LV|Tag|Select ...
+OO: OO_LVCHANGE_META, OO_LVCHANGE
+
+lvchange --activate String VG|LV|Tag|Select ...
+OO: --activationmode String, --partial, --ignoreactivationskip, OO_LVCHANGE_META, OO_LVCHANGE
+
+lvchange --refresh VG|LV|Tag|Select ...
+OO: OO_LVCHANGE_META, OO_LVCHANGE
+
+lvchange --monitor Bool VG|LV|Tag|Select ...
+OO: --poll Bool, OO_LVCHANGE_META, OO_LVCHANGE
+
+lvchange --poll Bool VG|LV|Tag|Select ...
+OO: --monitor Bool, OO_LVCHANGE_META, OO_LVCHANGE
+
+lvchange --persistent Bool VG|LV|Tag|Select ...
+OO: --minor Number, --major Number, OO_LVCHANGE_META, OO_LVCHANGE
+
+
+OO_LVCONVERT_RAID: --mirrors Number, --stripes_long Number,
+--stripesize Number, --regionsize Number
+
+OO_LVCONVERT_POOL: --poolmetadata LV, --poolmetadatasize Number,
+--poolmetadataspare Bool, --readahead Number|String, --chunksize Number
+
+OO_LVCONVERT: --alloc String, --background, --force, --noudevsync,
+--test, --usepolicies
+
+# FIXME: use different option names for different operations
+lvconvert --merge LV_linear|LV_striped|LV_raid|LV_thin|LV_snapshot|VG|Tag ...
+OO: --background, --interval Number
+DESC: Merge LV that was previously split from a mirror.
+DESC: Merge thin LV into its origin LV.
+DESC: Merge COW snapshot LV into its origin.
+
+lvconvert --type snapshot LV_linear|LV_striped|LV_raid LV_snapshot
+OO: --chunksize Number, --zero Bool, OO_LVCONVERT
+DESC: Combine LV with a previously split snapshot LV.
+
+lvconvert --type thin --thinpool LV LV_linear|LV_striped|LV_raid
+OO: --originname LV_new, OO_LVCONVERT_POOL, OO_LVCONVERT
+DESC: Convert LV to type thin with an external origin.
+
+# alternate form of lvconvert --type thin
+lvconvert --thin --thinpool LV LV_linear|LV_striped|LV_raid
+OO: --type thin, --originname LV_new, OO_LVCONVERT_POOL, OO_LVCONVERT
+DESC: Convert LV to type thin with an external origin (infers --type thin).
+
+lvconvert --type cache --cachepool LV LV_linear|LV_striped|LV_raid|LV_thinpool
+OO: --cachepolicy String, --cachesettings String, OO_LVCONVERT_POOL, OO_LVCONVERT
+DESC: Convert LV to type cache.
+
+# alternate form of lvconvert --type cache
+lvconvert --cache --cachepool LV LV_linear|LV_striped|LV_raid|LV_thinpool
+OO: --type cache, --cachepolicy String, --cachesettings String, OO_LVCONVERT_POOL, OO_LVCONVERT
+DESC: Convert LV to type cache (infers --type cache).
+
+lvconvert --type thin-pool LV_linear|LV_striped|LV_raid|LV_cache
+OO: --discards String, --zero Bool, OO_LVCONVERT_POOL, OO_LVCONVERT
+DESC: Convert LV to type thin-pool.
+
+lvconvert --type cache-pool LV_linear|LV_striped|LV_raid
+OO: OO_LVCONVERT_POOL, OO_LVCONVERT
+DESC: Convert LV to type cache-pool.
+
+lvconvert --type mirror LV_linear|LV_striped|LV_raid
+OO: OO_LVCONVERT_RAID, OO_LVCONVERT
+OP: PV ...
+DESC: Convert LV to type mirror.
+
+lvconvert --type raid LV_linear|LV_striped|LV_mirror|LV_raid
+OO: OO_LVCONVERT_RAID, OO_LVCONVERT
+OP: PV ...
+DESC: Convert LV to type raid.
+DESC: Change LV raid type.
+
+lvconvert --mirrors Number LV_raid|LV_mirror
+OO: OO_LVCONVERT
+OP: PV ...
+DESC: Change the number of mirror images in the LV.
+
+lvconvert --mirrors Number LV_linear|LV_striped
+OO: OO_LVCONVERT_RAID, OO_LVCONVERT
+OP: PV ...
+DESC: Alternate form to convert LV to type raid1 or mirror (use --type raid1|mirror).
+
+lvconvert --splitmirrors Number --name LV_new LV_raid|LV_mirror|LV_cache
+OO: OO_LVCONVERT
+DESC: Split images from a raid1 or mirror LV and use them to create a new LV.
+
+lvconvert --splitmirrors Number --trackchanges LV_raid|LV_cache
+OO: OO_LVCONVERT
+DESC: Split images from a raid1 LV and use them to create a new LV.
+
+lvconvert --repair LV_raid|LV_mirror|LV_thinpool
+OO: OO_LVCONVERT
+DESC: Replace failed PVs in a mirror or raid LV.
+DESC: Repair a thin pool.
+
+lvconvert --replace PV LV_raid
+OO: OO_LVCONVERT
+OP: PV ...
+DESC: Replace specific PV(s) in a raid* LV with another PV.
+
+lvconvert --type striped LV_raid
+OO: OO_LVCONVERT_RAID, OO_LVCONVERT
+OP: PV ...
+DESC: Convert LV to type striped.
+
+lvconvert --type linear LV_raid|LV_mirror
+OO: OO_LVCONVERT
+DESC: Convert LV to type linear.
+
+lvconvert --mirrorlog String LV_mirror
+OO: OO_LVCONVERT
+DESC: Change the type of log used by LV.
+
+lvconvert --splitcache LV_cachepool|LV_cache|LV_thinpool
+OO: OO_LVCONVERT
+DESC: Separate and preserve a cache pool from a cache LV.
+
+lvconvert --uncache LV_cache|LV_thinpool
+OO: OO_LVCONVERT
+DESC: Separate and remove a cache pool from a cache LV.
+
+lvconvert --splitsnapshot LV_snapshot
+OO: OO_LVCONVERT
+DESC: Separate a COW snapshot from its origin LV.
+
+# deprecated because of non-standard syntax
+lvconvert --thinpool LV
+OO: OO_LVCONVERT_POOL, OO_LVCONVERT
+DESC: Alternate form to convert LV to type thin-pool (use --type thin-pool).
+
+# deprecated because of non-standard syntax
+lvconvert --cachepool LV
+OO: OO_LVCONVERT_POOL, OO_LVCONVERT
+DESC: Alternate form to convert LV to type cache-pool (use --type cache-pool).
+
+# FIXME: add a new option defining this operation, e.g. --poll-mirror
+# The function of this command is not entirely clear.
+lvconvert LV_mirror
+DESC: Poll LV to collapse resync layers.
+
+# FIXME: add a new option defining this operation, e.g. --swapmetadata
+lvconvert --poolmetadata LV LV_thinpool|LV_cachepool
+DESC: Swap metadata LV in a thin pool or cache pool (temporary command).
+
+
+# --extents or --size are interchangable
+
+OO_LVCREATE: --addtag Tag, --alloc String, --autobackup Bool, --activate String,
+--contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number,
+--metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync,
+--noudevsync, --permission, --persistent Bool, --readahead Number|String,
+--reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool,
+--zero Bool
+
+OO_LVCREATE_CACHE: --cachemode String, --cachepolicy String, --cachesettings String
+
+OO_LVCREATE_POOL: --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number
+
+OO_LVCREATE_THIN: --discards String, --errorwhenfull Bool
+
+OO_LVCREATE_RAID: --mirrors Number, --stripes Number, --stripesize Number,
+--regionsize Number, --minrecoveryrate Number, --maxrecoveryrate Number
+
+lvcreate --type error --size Number VG
+OO: OO_LVCREATE
+DESC: Create an LV that returns errors when used.
+
+lvcreate --type zero --size Number VG
+OO: OO_LVCREATE
+DESC: Create an LV that returns zeros when read.
+
+lvcreate --type linear --size Number VG
+OO: OO_LVCREATE
+OP: PV ...
+DESC: Create a linear LV.
+
+lvcreate --type striped --size Number VG
+OO: --stripes Number, --stripesize Number, OO_LVCREATE
+OP: PV ...
+DESC: Create a striped LV.
+
+lvcreate --type mirror --size Number VG
+OO: --mirrors Number, --mirrorlog String, --corelog, --regionsize Number, OO_LVCREATE
+OP: PV ...
+DESC: Create a mirror LV.
+
+lvcreate --type raid --size Number VG
+OO: OO_LVCREATE_RAID, OO_LVCREATE
+OP: PV ...
+DESC: Create a raid LV (a specific raid level must be used, e.g. raid1).
+
+lvcreate --type snapshot --size Number LV
+OO: OO_LVCREATE
+OP: PV ...
+DESC: Create a COW snapshot from an origin LV.
+
+lvcreate --type snapshot --size Number --virtualsize Number VG
+OO: --virtualoriginsize Number, OO_LVCREATE
+OP: PV ...
+DESC: Create a sparse COW snapshot LV of a virtual origin LV.
+
+lvcreate --type thin-pool --size Number VG
+OO: OO_LVCREATE_POOL, OO_LVCREATE_THIN, OO_LVCREATE
+OP: PV ...
+DESC: Create a thin pool.
+
+lvcreate --type cache-pool --size Number VG
+OO: OO_LVCREATE_POOL, OO_LVCREATE_CACHE, OO_LVCREATE
+OP: PV ...
+DESC: Create a cache pool.
+
+lvcreate --type thin --virtualsize Number --thinpool LV_thinpool
+OO: OO_LVCREATE_POOL, OO_LVCREATE_THIN, OO_LVCREATE
+DESC: Create a thin LV in a thin pool.
+
+lvcreate --type thin --snapshot LV_thin
+OO: OO_LVCREATE_POOL, OO_LVCREATE_THIN, OO_LVCREATE
+DESC: Create a thin LV that is a snapshot of an existing thin LV.
+
+lvcreate --type thin --snapshot --thinpool LV_thinpool LV
+OO: OO_LVCREATE_POOL, OO_LVCREATE_THIN, OO_LVCREATE
+DESC: Create a thin LV that is a snapshot of an external origin LV named in arg pos 1.
+
+lvcreate --type thin --virtualsize Number --size Number --thinpool LV_new
+OO: OO_LVCREATE_POOL, OO_LVCREATE_THIN, OO_LVCREATE
+OP: PV ...
+DESC: Create a thin LV, first creating a thin pool for it, where the new thin pool is named by the --thinpool arg.
+
+lvcreate --type thin --virtualsize Number --size Number LV_new
+OO: OO_LVCREATE_POOL, OO_LVCREATE_THIN, OO_LVCREATE
+OP: PV ...
+DESC: Create a thin LV, first creating a thin pool for it, where the new thin pool is named in arg pos 1.
+
+lvcreate --type thin --virtualsize Number --size Number VG
+OO: OO_LVCREATE_POOL, OO_LVCREATE_THIN, OO_LVCREATE
+OP: PV ...
+DESC: Create a thin LV, first creating a thin pool for it.
+
+# FIXME: this should be done by lvconvert, and this command deprecated
+lvcreate --type cache --size Number LV
+OO: OO_LVCREATE_POOL, OO_LVCREATE_CACHE, OO_LVCREATE
+OP: PV ...
+DESC: Convert the specified LV to type cache after creating a new cache pool LV to use.
+
+lvcreate --type cache --size Number --cachepool LV_cachepool
+OO: OO_LVCREATE_POOL, OO_LVCREATE_CACHE, OO_LVCREATE
+OP: PV ...
+DESC: Create a cache LV, first creating a new origin LV, then combining it with the existing cache pool in arg pos 1.
+
+lvcreate --size Number VG
+OO: --type linear, OO_LVCREATE
+OP: PV ...
+DESC: Create a linear LV. (default --type linear)
+
+lvcreate --stripes Number --size Number VG
+OO: --type striped, --stripesize Number, OO_LVCREATE
+OP: PV ...
+DESC: Create a striped LV. (infers --type striped)
+
+lvcreate --mirrors Number --size Number VG
+OO: --type raid1|mirror, --mirrorlog String, --corelog, OO_LVCREATE_RAID, OO_LVCREATE
+OP: PV ...
+DESC: Create a raid1 or mirror LV. (infers --type raid1|mirror)
+
+lvcreate --snapshot --size Number LV
+OO: --type snapshot, OO_LVCREATE
+OP: PV ...
+DESC: Create a COW snapshot LV of the origin LV in arg pos 1. (infers --type snapshot)
+
+lvcreate --thin --size Number VG
+OO: --type thin-pool, OO_LVCREATE_POOL, OO_LVCREATE_THIN, OO_LVCREATE
+OP: PV ...
+DESC: Create a thin pool. (infers --type thin-pool)
+
+lvcreate --cache --size Number VG
+OO: --type cache-pool, OO_LVCREATE_POOL, OO_LVCREATE_CACHE, OO_LVCREATE
+OP: PV ...
+DESC: Create a cache pool. (infers --type cache-pool)
+
+lvcreate --snapshot LV_thin
+OO: --type thin, OO_LVCREATE_THIN, OO_LVCREATE
+DESC: Create a thin LV that is a snapshot of an existing thin LV. (infers --type thin)
+
+lvcreate --snapshot --thinpool LV_thinpool LV
+OO: --type thin, OO_LVCREATE_THIN, OO_LVCREATE
+DESC: Create a thin LV that is a snapshot of an external origin LV. (infers --type thin)
+
+lvcreate --virtualsize Number --thinpool LV_thinpool
+OO: --type thin, OO_LVCREATE_THIN, OO_LVCREATE
+DESC: Create a thin LV in a thin pool. (infers --type thin)
+
+lvcreate --size Number --cachepool LV_cachepool
+OO: --type cache, OO_LVCREATE_CACHE, OO_LVCREATE
+OP: PV ...
+DESC: Create a new origin LV, combining it with an existing cache pool to create a new cache LV. (infers --type cache)
+
+lvcreate --thin --virtualsize Number --size Number --thinpool LV_new
+OO: --type thin, OO_LVCREATE_POOL, OO_LVCREATE_THIN, OO_LVCREATE
+OP: PV ...
+DESC: Create a thin LV, first creating a thin pool for it, where the new thin pool is named by the --thinpool arg. (infers --type thin)
+
+lvcreate --thin --virtualsize Number --size Number LV_new
+OO: --type thin, OO_LVCREATE_POOL, OO_LVCREATE_THIN, OO_LVCREATE
+OP: PV ...
+DESC: Create a thin LV, first creating a thin pool for it, where the new thin pool is named in arg pos 1. (infers --type thin)
+
+lvcreate --size Number --virtualsize Number VG
+OO: --type thin, --type snapshot, --thin, --snapshot,
+--virtualoriginsize Number, OO_LVCREATE_POOL, OO_LVCREATE_THIN, OO_LVCREATE
+OP: PV ...
+DESC: Create a thin LV, first creating a thin pool for it. (infers --type thin)
+DESC: Create a sparse snapshot of a virtual origin LV. (infers --type snapshot)
+DESC: (infers --type thin or --type snapshot according to sparse_segtype_default)
+
+lvdisplay
+OO: --aligned, --all, --binary, --colon, --columns,
+--configreport String, --foreign, --history, --ignorelockingfailure,
+--ignoreskippedcluster, --logonly, --maps, --noheadings,
+--nosuffix, --options String, --sort String, --partial, --readonly,
+--reportformat String, --segments, --select String, --separator String,
+--shared, --unbuffered, --units String
+OP: VG|LV|Tag ...
+
+# --extents or --size are interchangable
+lvextend --size Number LV
+OO: --alloc String, --autobackup Bool, --force, --mirrors Number,
+--nofsck, --nosync, --noudevsync, --reportformat String, --resizefs,
+--stripes Number, --stripesize Number, --test, --poolmetadatasize Number
+OP: PV ...
+
+lvextend LV PV ...
+OO: --alloc String, --autobackup Bool, --force, --mirrors Number,
+--nofsck, --nosync, --noudevsync,
+--reportformat String, --resizefs, --stripes Number, --stripesize Number,
+--test
+
+lvextend --poolmetadatasize Number LV_thinpool
+OO: --alloc String, --autobackup Bool, --force, --mirrors Number,
+--nofsck, --nosync, --noudevsync,
+--reportformat String, --stripes Number, --stripesize Number,
+--test
+OP: PV ...
+
+lvextend --usepolicies LV_thinpool|LV_snapshot
+OO: --alloc String, --autobackup Bool, --force, --mirrors Number,
+--nofsck, --nosync, --noudevsync,
+--reportformat String, --resizefs,
+--test
+
+lvmchange
+
+lvmconfig
+OO: OO_CONFIG
+
+lvmdiskscan
+OO: --lvmpartition, --readonly
+
+lvmsadc
+
+lvmsar
+OO: --full, --stdin
+
+# --extents or --size are interchangable
+lvreduce --size Number LV
+OO: --autobackup Bool, --force, --nofsck, --noudevsync,
+--reportformat String, --resizefs, --test
+
+lvremove VG|LV|Tag|Select ...
+OO: --autobackup Bool, --force, --nohistory, --noudevsync,
+--reportformat String, --select String, --test
+
+lvrename VG LV LV_new
+OO: --autobackup Bool, --noudevsync, --reportformat String, --test
+
+lvrename LV LV_new
+OO: --autobackup Bool, --noudevsync, --reportformat String, --test
+
+# --extents or --size are interchangable
+lvresize --size Number LV
+OO: --alloc String, --autobackup Bool, --force,
+--nofsck, --nosync, --noudevsync, --reportformat String, --resizefs,
+--stripes Number, --stripesize Number, --test, --poolmetadatasize Number
+OP: PV ...
+
+lvresize LV PV ...
+OO: --alloc String, --autobackup Bool, --force,
+--nofsck, --nosync, --noudevsync,
+--reportformat String, --resizefs, --stripes Number, --stripesize Number,
+--test
+
+lvresize --poolmetadatasize Number LV_thinpool
+OO: --alloc String, --autobackup Bool, --force,
+--nofsck, --nosync, --noudevsync,
+--reportformat String, --stripes Number, --stripesize Number,
+--test
+OP: PV ...
+
+lvs
+OO: --history, --segments, OO_REPORT
+OP: VG|LV|Tag ...
+
+lvscan
+OO: --all, --blockdevice, --ignorelockingfailure, --partial,
+--readonly, --reportformat String, --cache_long
+
+
+#
+# None of these can function as a required option for pvchange.
+#
+OO_PVCHANGE: --autobackup Bool, --force, --ignoreskippedcluster,
+--reportformat String, --test, --uuid
+
+#
+# Any of these can function as a required option for pvchange.
+#
+OO_PVCHANGE_META: --allocatable Bool, --addtag Tag, --deltag Tag,
+--uuid, --metadataignore Bool
+
+pvchange OO_PVCHANGE_META --all
+OO: OO_PVCHANGE
+
+pvchange OO_PVCHANGE_META PV|Select ...
+OO: --select String, OO_PVCHANGE
+
+pvresize PV ...
+OO: --setphysicalvolumesize Number, --reportformat String, --test
+
+pvck PV ...
+OO: --labelsector Number
+
+#
+# Use --uuidstr here which will be converted to uuidstr_ARG
+# which is actually --uuid string on the command line.
+#
+pvcreate PV ...
+OO: --dataalignment Number, --dataalignmentoffset Number, --bootloaderareasize Number,
+--force, --test, --labelsector Number, --metadatatype String,
+--pvmetadatacopies Number, --metadatasize Number, --metadataignore Bool,
+--norestorefile, --setphysicalvolumesize Number,
+--reportformat String, --restorefile String, --uuidstr String, --zero Bool
+
+pvdata
+
+pvdisplay
+OO: --aligned, --all, --binary, --colon, --columns, --configreport String,
+--foreign, --ignorelockingfailure, --ignoreskippedcluster,
+--logonly, --maps, --noheadings, --nosuffix, --options String,
+--readonly, --reportformat String, --select String, --separator String, --shared,
+--short, --sort String, --unbuffered, --units String
+OP: PV|Tag ...
+
+pvmove PV
+OO: --abort, --alloc String, --atomic, --autobackup Bool, --background,
+--interval Number, --name LV, --noudevsync, --reportformat String, --test
+OP: PV ...
+
+pvmove
+OO: --abort, --background, --test
+
+lvpoll --polloperation String LV ...
+OO: --abort, --autobackup Bool, --handlemissingpvs, --interval Number, --test
+
+pvremove PV ...
+OO: --force, --reportformat String, --test
+
+pvs
+OO: --segments, OO_REPORT
+OP: PV|Tag ...
+
+pvscan
+OO: --ignorelockingfailure, --reportformat String, --exported, --novolumegroup,
+--short, --uuid
+
+pvscan --cache
+OO: --ignorelockingfailure, --reportformat String, --background,
+--activate String, --major Number, --minor Number,
+OP: PV|String ...
+
+segtypes
+
+systemid
+
+tags
+
+vgcfgbackup
+OO: --file String, --foreign, --ignorelockingfailure, --partial, --readonly,
+--reportformat String
+
+vgcfgrestore VG
+OO: --file String, --force_long, --list, --metadatatype String, --test
+
+vgcfgrestore --list --file String
+
+#
+# None of these can function as a required option for vgchange.
+#
+OO_VGCHANGE: --autobackup Bool, --ignoremonitoring, --ignoreskippedcluster,
+--noudevsync, --reportformat String, --select String, --test, --force
+
+#
+# Any of these can function as a required option for vgchange.
+# profile is also part of OO_ALL, but is repeated in OO_VGCHANGE_META
+# because it can function as a required opt.
+#
+OO_VGCHANGE_META: --addtag Tag, --deltag Tag,
+--logicalvolume Number, --maxphysicalvolumes Number, --alloc String, --uuid,
+--clustered Bool, --metadatacopies Number, --vgmetadatacopies Number|String,
+--physicalextentsize Number, --resizeable Bool, --systemid String, --locktype String,
+--profile String, --detachprofile, --metadataprofile String,
+
+vgchange OO_VGCHANGE_META
+OO: OO_VGCHANGE
+OP: VG|Tag ...
+
+vgchange --monitor Bool
+OO: --sysinit, --ignorelockingfailure, --poll Bool, OO_VGCHANGE_META, OO_VGCHANGE
+OP: VG|Tag ...
+
+vgchange --poll Bool
+OO: --ignorelockingfailure, OO_VGCHANGE_META, OO_VGCHANGE
+OP: VG|Tag ...
+
+vgchange --activate String
+OO: --activationmode String, --ignoreactivationskip, --partial, --sysinit,
+--ignorelockingfailure, --monitor Bool, --poll Bool, OO_VGCHANGE_META, OO_VGCHANGE
+OP: VG|Tag ...
+
+vgchange --refresh
+OO: --sysinit, --ignorelockingfailure, --monitor Bool, --poll Bool, OO_VGCHANGE_META, OO_VGCHANGE
+OP: VG|Tag ...
+
+vgchange --lockstart
+OO: --lockopt String, OO_VGCHANGE_META, OO_VGCHANGE
+OP: VG|Tag ...
+
+vgchange --lockstop
+OO: --lockopt String, OO_VGCHANGE_META, OO_VGCHANGE
+OP: VG|Tag ...
+
+vgck
+OO: --reportformat String
+OP: VG|Tag ...
+
+vgconvert VG ...
+OO: --force, --test, --labelsector Number, --bootloaderareasize Number,
+--metadatatype String, --pvmetadatacopies Number,
+--metadatasize Number, --reportformat String
+
+vgcreate VG_new PV ...
+OO: --addtag Tag, --alloc String, --autobackup Bool, --clustered Bool, --maxlogicalvolumes Number,
+--maxphysicalvolumes Number, --metadataprofile String, --metadatatype String,
+--physicalextentsize Number, --test, --force, --zero Bool, --labelsector Number,
+--metadatasize Number, --pvmetadatacopies Number, --reportformat String, --metadatacopies Number,
+--vgmetadatacopies Number|String, --dataalignment Number, --dataalignmentoffset Number,
+--shared, --systemid String, --locktype String, --lockopt String
+
+vgdisplay
+OO: --activevolumegroups, --aligned, --binary, --colon, --columns,
+--configreport String, --foreign, --ignorelockingfailure,
+--ignoreskippedcluster, --logonly, --noheadings, --nosuffix,
+--options String, --partial, --readonly, --reportformat String, --select String,
+--shared, --short, --separator String, --sort String, --unbuffered, --units String
+OP: VG|Tag ...
+
+OO_VGEXPORT: --reportformat String, --test
+
+vgexport VG|Tag|Select ...
+OO: --select String, OO_VGEXPORT
+
+vgexport --all
+OO: OO_VGEXPORT
+
+vgextend VG PV ...
+OO: --autobackup Bool, --test,
+--force, --zero Bool, --labelsector Number, --metadatatype String,
+--metadatasize Number, --pvmetadatacopies Number,
+--metadataignore Bool, --dataalignment Number, --dataalignmentoffset Number,
+--reportformat String, --restoremissing
+
+OO_VGIMPORT: --force, --reportformat String, --test
+
+vgimport VG|Tag|Select ...
+OO: --select String, OO_VGIMPORT
+
+vgimport --all
+OO: OO_VGIMPORT
+
+vgimportclone PV ...
+OO: --basevgname VG, --test, --import
+
+vgmerge VG VG
+OO: --autobackup Bool, --list, --test
+
+vgmknodes
+OO: --ignorelockingfailure, --refresh, --reportformat String
+OP: VG|LV|Tag ...
+
+OO_VGREDUCE: --autobackup Bool, --force, --reportformat String, --test
+
+vgreduce VG PV ...
+OO: OO_VGREDUCE
+
+vgreduce --all VG
+OO: OO_VGREDUCE
+
+vgreduce --removemissing VG
+OO: --mirrorsonly, OO_VGREDUCE
+
+vgremove VG|Tag|Select ...
+OO: --force, --noudevsync, --reportformat String, --select String, --test
+
+vgrename VG VG_new
+OO: --autobackup Bool, --force, --reportformat String, --test
+
+vgrename String VG_new
+OO: --autobackup Bool, --force, --reportformat String, --test
+
+vgs
+OO: OO_REPORT
+OP: VG|Tag ...
+
+vgscan
+OO: --cache_long, --ignorelockingfailure, --mknodes, --notifydbus,
+--partial, --reportformat String
+
+OO_VGSPLIT: --autobackup Bool, --test
+
+OO_VGSPLIT_NEW: --alloc String, --clustered Bool,
+--maxlogicalvolumes Number, --maxphysicalvolumes Number,
+--metadatatype String, --vgmetadatacopies Number|String
+
+vgsplit VG VG PV ...
+OO: OO_VGSPLIT
+
+vgsplit --name LV VG VG
+OO: OO_VGSPLIT
+
+vgsplit VG VG_new PV ...
+OO: OO_VGSPLIT, OO_VGSPLIT_NEW
+
+vgsplit --name LV VG VG_new
+OO: OO_VGSPLIT, OO_VGSPLIT_NEW
+
+version
+
diff --git a/scripts/create-commands.c b/scripts/create-commands.c
new file mode 100644
index 000000000..b781f3d54
--- /dev/null
+++ b/scripts/create-commands.c
@@ -0,0 +1,1614 @@
+#include <asm/types.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/wait.h>
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdarg.h>
+#include <limits.h>
+#include <unistd.h>
+#include <syslog.h>
+#include <sched.h>
+#include <dirent.h>
+#include <ctype.h>
+#include <getopt.h>
+
+
+/* needed to include args.h */
+#define ARG_COUNTABLE 0x00000001
+#define ARG_GROUPABLE 0x00000002
+struct cmd_context;
+struct arg_values;
+int yes_no_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int activation_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int cachemode_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int discards_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int mirrorlog_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int size_kb_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int size_mb_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int size_mb_arg_with_percent(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int int_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int int_arg_with_sign(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int int_arg_with_sign_and_percent(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int major_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int minor_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int string_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int tag_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int permission_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int metadatatype_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int units_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int segtype_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int alloc_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int locktype_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int readahead_arg(struct cmd_context *cmd, struct arg_values *av) { return 0; }
+int metadatacopies_arg(struct cmd_context *cmd __attribute__((unused)), struct arg_values *av) { return 0; }
+
+struct opt_name {
+ const char *enum_name;
+ int enum_val;
+ const char short_opt;
+ char _padding[7];
+ const char *long_opt;
+
+ /* NULL if option takes no arg */
+ int (*fn) (struct cmd_context *cmd, struct arg_values *av);
+
+ uint32_t unused1;
+ uint32_t unused2;
+};
+
+/* enum for opt names */
+enum {
+#define arg(a, b, c, d, e, f) a ,
+#include "args.h"
+#undef arg
+};
+
+static struct opt_name opt_names[ARG_COUNT + 1] = {
+#define arg(a, b, c, d, e, f) { # a, a, b, "", "--" c, d, e, f},
+#include "args.h"
+#undef arg
+};
+
+#include "command.h"
+
+#define ARG_DEF_TYPES 16
+struct arg_def_type {
+ const char *name;
+ int flag;
+};
+
+/* The names used for arg_def types in command-lines.in */
+static struct arg_def_type arg_def_types[ARG_DEF_TYPES] = {
+ { "None", ARG_DEF_TYPE_NONE},
+ { "Bool", ARG_DEF_TYPE_BOOL},
+ { "Number", ARG_DEF_TYPE_NUM_ANY},
+ { "String", ARG_DEF_TYPE_STR_ANY},
+ { "Name", ARG_DEF_TYPE_NAME_ANY},
+ { "PV", ARG_DEF_TYPE_NAME_PV},
+ { "VG", ARG_DEF_TYPE_NAME_VG},
+ { "LV", ARG_DEF_TYPE_NAME_LV},
+ { "Tag", ARG_DEF_TYPE_TAG},
+ { "Select", ARG_DEF_TYPE_SELECT},
+};
+
+#define ARG_DEF_LVS 64
+struct arg_def_lv {
+ const char *name;
+ int flag;
+};
+
+/* The names used for arg_def lv_types in command-lines.in */
+static struct arg_def_lv arg_def_lvs[ARG_DEF_LVS] = {
+ { "LV", ARG_DEF_LV_ANY},
+ { "LV_linear", ARG_DEF_LV_LINEAR},
+ { "LV_striped", ARG_DEF_LV_STRIPED},
+ { "LV_snapshot", ARG_DEF_LV_SNAPSHOT},
+ { "LV_mirror", ARG_DEF_LV_MIRROR},
+ { "LV_raid", ARG_DEF_LV_RAID},
+ { "LV_raid0", ARG_DEF_LV_RAID0},
+ { "LV_raid1", ARG_DEF_LV_RAID1},
+ { "LV_raid4", ARG_DEF_LV_RAID4},
+ { "LV_raid5", ARG_DEF_LV_RAID5},
+ { "LV_raid6", ARG_DEF_LV_RAID6},
+ { "LV_raid10", ARG_DEF_LV_RAID10},
+ { "LV_thin", ARG_DEF_LV_THIN},
+ { "LV_thinpool", ARG_DEF_LV_THINPOOL},
+ { "LV_cache", ARG_DEF_LV_CACHE},
+ { "LV_cachepool", ARG_DEF_LV_CACHEPOOL},
+};
+
+#define MAX_CMD_NAMES 128
+struct cmd_name {
+ const char *name;
+};
+
+static struct cmd_name cmd_names[MAX_CMD_NAMES] = {
+#define xx(a, b...) { # a } ,
+#include "commands.h"
+#undef xx
+};
+
+#define MAX_LINE 1024
+#define MAX_LINE_ARGC 256
+
+#define REQUIRED 1
+#define OPTIONAL 0
+
+struct oo_line {
+ char *name;
+ char *line;
+};
+
+#define MAX_CMDS 256
+int cmd_count;
+struct command cmd_array[MAX_CMDS];
+
+#define MAX_OO_LINES 256
+int oo_line_count;
+struct oo_line oo_lines[MAX_OO_LINES];
+
+
+static void add_optional_opt_line(struct command *cmd, int argc, char *argv[]);
+
+
+static int opt_str_to_num(char *str)
+{
+ char long_name[32];
+ char *p;
+ int i;
+
+ /*
+ * --foo_long means there are two args entries
+ * for --foo, one with a short option and one
+ * without, and we want the one without the
+ * short option.
+ */
+ if (strstr(str, "_long")) {
+ strcpy(long_name, str);
+ p = strstr(long_name, "_long");
+ *p = '\0';
+
+ for (i = 0; i < ARG_COUNT; i++) {
+ if (!opt_names[i].long_opt)
+ continue;
+ /* skip anything with a short opt */
+ if (opt_names[i].short_opt)
+ continue;
+ if (!strcmp(opt_names[i].long_opt, long_name))
+ return opt_names[i].enum_val;
+ }
+
+ printf("Unknown opt str: %s %s\n", str, long_name);
+ exit(1);
+ }
+
+ for (i = 0; i < ARG_COUNT; i++) {
+ if (!opt_names[i].long_opt)
+ continue;
+ /* These are only selected using --foo_long */
+ if (strstr(opt_names[i].enum_name, "_long_ARG"))
+ continue;
+ if (!strcmp(opt_names[i].long_opt, str))
+ return opt_names[i].enum_val;
+ }
+
+ printf("Unknown opt str: \"%s\"\n", str);
+ exit(1);
+}
+
+static int lv_str_to_num(char *str)
+{
+ char name[32] = { 0 };
+ char *new;
+ int i;
+
+ /* compare the lv name before the _new suffix */
+
+ strncpy(name, str, 31);
+ if ((new = strstr(name, "_new")))
+ *new = '\0';
+
+ if (!strcmp(name, "LV"))
+ return 0;
+
+ for (i = 1; i < ARG_DEF_LVS; i++) {
+ if (!arg_def_lvs[i].name)
+ break;
+
+ if (!strcmp(name, arg_def_lvs[i].name))
+ return arg_def_lvs[i].flag;
+ }
+
+ printf("Unknown LV type: \"%s\" \"%s\"\n", name, str);
+ exit(1);
+}
+
+static int type_str_to_num(char *str)
+{
+ char name[32] = { 0 };
+ char *new;
+ int i;
+
+ /* compare the name before the _new suffix */
+
+ strncpy(name, str, 31);
+ if ((new = strstr(name, "_new")))
+ *new = '\0';
+
+ for (i = 0; i < ARG_DEF_TYPES; i++) {
+ if (!arg_def_types[i].name)
+ break;
+ if (!strncmp(name, arg_def_types[i].name, strlen(arg_def_types[i].name)))
+ return arg_def_types[i].flag;
+ }
+
+ return 0;
+}
+
+/*
+ * modifies buf, replacing the sep characters with \0
+ * argv pointers point to positions in buf
+ */
+
+static char *split_line(char *buf, int *argc, char **argv, char sep)
+{
+ char *p = buf, *rp = NULL;
+ int i;
+
+ argv[0] = p;
+
+ for (i = 1; i < MAX_LINE_ARGC; i++) {
+ p = strchr(buf, sep);
+ if (!p)
+ break;
+ *p = '\0';
+
+ argv[i] = p + 1;
+ buf = p + 1;
+ }
+ *argc = i;
+
+ /* we ended by hitting \0, return the point following that */
+ if (!rp)
+ rp = strchr(buf, '\0') + 1;
+
+ return rp;
+}
+
+static const char *is_command_name(char *str)
+{
+ int i;
+
+ for (i = 0; i < MAX_CMD_NAMES; i++) {
+ if (!cmd_names[i].name)
+ break;
+ if (!strcmp(cmd_names[i].name, str))
+ return cmd_names[i].name;
+ }
+ return NULL;
+}
+
+static int is_opt_name(char *str)
+{
+ if (!strncmp(str, "--", 2))
+ return 1;
+
+ if ((str[0] == '-') && (str[1] != '-')) {
+ printf("Options must be specified in long form: %s\n", str);
+ exit(1);
+ }
+
+ return 0;
+}
+
+/*
+ * "Select" as a pos name means that the position
+ * can be empty if the --select option is used.
+ */
+
+static int is_pos_name(char *str)
+{
+ if (!strncmp(str, "VG", 2))
+ return 1;
+ if (!strncmp(str, "LV", 2))
+ return 1;
+ if (!strncmp(str, "PV", 2))
+ return 1;
+ if (!strncmp(str, "Tag", 3))
+ return 1;
+ if (!strncmp(str, "String", 6))
+ return 1;
+ if (!strncmp(str, "Select", 6))
+ return 1;
+ return 0;
+}
+
+static int is_oo_definition(char *str)
+{
+ if (!strncmp(str, "OO_", 3))
+ return 1;
+ return 0;
+}
+
+static int is_oo_line(char *str)
+{
+ if (!strncmp(str, "OO:", 3))
+ return 1;
+ return 0;
+}
+
+static int is_op_line(char *str)
+{
+ if (!strncmp(str, "OP:", 3))
+ return 1;
+ return 0;
+}
+
+static int is_desc_line(char *str)
+{
+ if (!strncmp(str, "DESC:", 5))
+ return 1;
+ return 0;
+}
+
+/*
+ * parse str for anything that can appear in a position,
+ * like VG, VG|LV, VG|LV_linear|LV_striped, etc
+ */
+
+static void set_pos_def(struct command *cmd, char *str, struct arg_def *def)
+{
+ char *argv[MAX_LINE_ARGC];
+ int argc;
+ char *name;
+ int type_num;
+ int i;
+
+ split_line(str, &argc, argv, '|');
+
+ for (i = 0; i < argc; i++) {
+ name = argv[i];
+
+ type_num = type_str_to_num(name);
+
+ if (!type_num) {
+ printf("Unknown pos arg: %s\n", name);
+ exit(1);
+ }
+
+ def->types |= type_num;
+
+ if ((type_num == ARG_DEF_TYPE_NAME_LV) && strstr(name, "_"))
+ def->lv_types |= lv_str_to_num(name);
+
+ if (strstr(name, "_new"))
+ def->flags |= ARG_DEF_FLAG_NEW;
+ }
+}
+
+/*
+ * parse str for anything that can follow --option
+ */
+
+static void set_opt_def(struct command *cmd, char *str, struct arg_def *def)
+{
+ char *argv[MAX_LINE_ARGC];
+ int argc;
+ char *name;
+ int type_num;
+ int i, j;
+
+ split_line(str, &argc, argv, '|');
+
+ for (i = 0; i < argc; i++) {
+ name = argv[i];
+
+ type_num = type_str_to_num(name);
+
+ if (!type_num) {
+ /* a literal number or string */
+
+ if (isdigit(name[0]))
+ type_num = ARG_DEF_TYPE_NUM_CONST;
+
+ else if (isalpha(name[0]))
+ type_num = ARG_DEF_TYPE_STR_CONST;
+
+ else {
+ printf("Unknown opt arg: %s\n", name);
+ exit(0);
+ }
+ }
+
+
+ switch (type_num) {
+ case ARG_DEF_TYPE_NONE:
+ break;
+
+ case ARG_DEF_TYPE_BOOL:
+ case ARG_DEF_TYPE_NUM_ANY:
+ case ARG_DEF_TYPE_STR_ANY:
+ case ARG_DEF_TYPE_NAME_ANY:
+ case ARG_DEF_TYPE_NAME_PV:
+ case ARG_DEF_TYPE_NAME_VG:
+ case ARG_DEF_TYPE_TAG:
+ def->types |= type_num;
+ break;
+
+ case ARG_DEF_TYPE_NUM_CONST:
+ def->types |= type_num;
+ def->num = (uint64_t)atoi(name);
+ break;
+
+ case ARG_DEF_TYPE_STR_CONST:
+ if (def->types & ARG_DEF_TYPE_STR_CONST) {
+ def->types &= ~ARG_DEF_TYPE_STR_CONST;
+ def->types |= ARG_DEF_TYPE_STR_SET;
+ def->str_set[0] = def->str;
+ def->str = NULL;
+ }
+
+ if (def->types & ARG_DEF_TYPE_STR_SET) {
+ for (j = 0; j < MAX_STR_SET; j++) {
+ if (def->str_set[j])
+ continue;
+ def->str_set[j] = strdup(name);
+ break;
+ }
+ } else {
+ def->types |= type_num;
+ def->str = strdup(name);
+ }
+ break;
+
+ case ARG_DEF_TYPE_NAME_LV:
+ def->types |= type_num;
+ if (strstr(name, "_"))
+ def->lv_types |= lv_str_to_num(name);
+ break;
+ }
+
+ if ((type_num == ARG_DEF_TYPE_NAME_VG) ||
+ (type_num == ARG_DEF_TYPE_NAME_LV) ||
+ (type_num == ARG_DEF_TYPE_NAME_PV)) {
+ if (strstr(name, "_new"))
+ def->flags |= ARG_DEF_FLAG_NEW;
+ }
+ }
+}
+
+
+/*
+ * OO_FOO: --opt1 ...
+ *
+ * oo->name = "OO_FOO";
+ * oo->line = "--opt1 ...";
+ */
+
+static void add_oo_definition_line(const char *name, const char *line)
+{
+ struct oo_line *oo;
+ char *colon;
+ char *start;
+
+ oo = &oo_lines[oo_line_count++];
+ oo->name = strdup(name);
+
+ if ((colon = strstr(oo->name, ":")))
+ *colon = '\0';
+ else {
+ printf("invalid OO definition\n");
+ exit(1);
+ }
+
+ start = strstr(line, ":") + 2;
+ oo->line = strdup(start);
+}
+
+/* when OO_FOO: continues on multiple lines */
+
+static void append_oo_definition_line(const char *new_line)
+{
+ struct oo_line *oo;
+ char *old_line;
+ char *line;
+ int len;
+
+ oo = &oo_lines[oo_line_count-1];
+
+ old_line = oo->line;
+
+ /* +2 = 1 space between old and new + 1 terminating \0 */
+ len = strlen(old_line) + strlen(new_line) + 2;
+ line = malloc(len);
+ memset(line, 0, len);
+
+ strcat(line, old_line);
+ strcat(line, " ");
+ strcat(line, new_line);
+
+ free(oo->line);
+ oo->line = line;
+}
+
+char *get_oo_line(char *str)
+{
+ char *name;
+ char *end;
+ char str2[64];
+ int i;
+
+ strcpy(str2, str);
+ if ((end = strstr(str2, ":")))
+ *end = '\0';
+ if ((end = strstr(str2, ",")))
+ *end = '\0';
+
+ for (i = 0; i < oo_line_count; i++) {
+ name = oo_lines[i].name;
+ if (!strcmp(name, str2))
+ return oo_lines[i].line;
+ }
+ return NULL;
+}
+
+/* add optional_opt_args entries when OO_FOO appears on OO: line */
+
+static void include_optional_opt_args(struct command *cmd, char *str)
+{
+ char *oo_line;
+ char *line;
+ char *line_argv[MAX_LINE_ARGC];
+ int line_argc;
+
+ if (!(oo_line = get_oo_line(str))) {
+ printf("No OO line found for %s\n", str);
+ exit(1);
+ }
+
+ if (!(line = strdup(oo_line)))
+ exit(1);
+
+ split_line(line, &line_argc, line_argv, ' ');
+ add_optional_opt_line(cmd, line_argc, line_argv);
+ free(line);
+}
+
+static void add_opt_arg(struct command *cmd, char *str, int *takes_arg, int required)
+{
+ char *comma;
+ int opt;
+
+ /* opt_arg.opt set here */
+ /* opt_arg.def will be set in update_prev_opt_arg() if needed */
+
+ if ((comma = strstr(str, ",")))
+ *comma = '\0';
+
+ /*
+ * Work around nasty hack where --uuid is used for both uuid_ARG
+ * and uuidstr_ARG. The input uses --uuidstr, where an actual
+ * command uses --uuid string.
+ */
+ if (!strcmp(str, "--uuidstr")) {
+ opt = uuidstr_ARG;
+ goto skip;
+ }
+
+ opt = opt_str_to_num(str);
+skip:
+ if (required)
+ cmd->required_opt_args[cmd->ro_count++].opt = opt;
+ else
+ cmd->optional_opt_args[cmd->oo_count++].opt = opt;
+
+ *takes_arg = opt_names[opt].fn ? 1 : 0;
+}
+
+static void update_prev_opt_arg(struct command *cmd, char *str, int required)
+{
+ struct arg_def def = { 0 };
+ char *comma;
+
+ if (str[0] == '-') {
+ printf("Option %s must be followed by an arg.\n", str);
+ exit(1);
+ }
+
+ /* opt_arg.def set here */
+ /* opt_arg.opt was previously set in add_opt_arg() when --foo was read */
+
+ if ((comma = strstr(str, ",")))
+ *comma = '\0';
+
+ set_opt_def(cmd, str, &def);
+
+ if (required)
+ cmd->required_opt_args[cmd->ro_count-1].def = def;
+ else
+ cmd->optional_opt_args[cmd->oo_count-1].def = def;
+}
+
+static void add_pos_arg(struct command *cmd, char *str, int required)
+{
+ struct arg_def def = { 0 };
+
+ /* pos_arg.pos and pos_arg.def are set here */
+
+ set_pos_def(cmd, str, &def);
+
+ if (required) {
+ cmd->required_pos_args[cmd->rp_count].pos = cmd->pos_count++;
+ cmd->required_pos_args[cmd->rp_count].def = def;
+ cmd->rp_count++;
+ } else {
+ cmd->optional_pos_args[cmd->op_count].pos = cmd->pos_count++;;
+ cmd->optional_pos_args[cmd->op_count].def = def;
+ cmd->op_count++;
+ }
+}
+
+/* process something that follows a pos arg, which is not a new pos arg */
+
+static void update_prev_pos_arg(struct command *cmd, char *str, int required)
+{
+ struct arg_def *def;
+
+ /* a previous pos_arg.def is modified here */
+
+ if (required)
+ def = &cmd->required_pos_args[cmd->rp_count-1].def;
+ else
+ def = &cmd->optional_pos_args[cmd->op_count-1].def;
+
+ if (!strcmp(str, "..."))
+ def->flags |= ARG_DEF_FLAG_MAY_REPEAT;
+ else {
+ printf("Unknown pos arg: %s\n", str);
+ exit(1);
+ }
+}
+
+/* process what follows OO:, which are optional opt args */
+
+static void add_optional_opt_line(struct command *cmd, int argc, char *argv[])
+{
+ int takes_arg;
+ int i;
+
+ for (i = 0; i < argc; i++) {
+ if (!i && !strncmp(argv[i], "OO:", 3))
+ continue;
+ if (is_opt_name(argv[i]))
+ add_opt_arg(cmd, argv[i], &takes_arg, OPTIONAL);
+ else if (!strncmp(argv[i], "OO_", 3))
+ include_optional_opt_args(cmd, argv[i]);
+ else if (takes_arg)
+ update_prev_opt_arg(cmd, argv[i], OPTIONAL);
+ else
+ printf("Can't parse argc %d argv %s prev %s\n",
+ i, argv[i], argv[i-1]);
+ }
+}
+
+/* process what follows OP:, which are optional pos args */
+
+static void add_optional_pos_line(struct command *cmd, int argc, char *argv[])
+{
+ int i;
+
+ for (i = 0; i < argc; i++) {
+ if (!i && !strncmp(argv[i], "OP:", 3))
+ continue;
+ if (is_pos_name(argv[i]))
+ add_pos_arg(cmd, argv[i], OPTIONAL);
+ else
+ update_prev_pos_arg(cmd, argv[i], OPTIONAL);
+ }
+}
+
+/* add required opt args from OO_FOO definition */
+
+static void add_required_opt_line(struct command *cmd, int argc, char *argv[])
+{
+ int takes_arg;
+ int i;
+
+ for (i = 0; i < argc; i++) {
+ if (is_opt_name(argv[i]))
+ add_opt_arg(cmd, argv[i], &takes_arg, REQUIRED);
+ else if (takes_arg)
+ update_prev_opt_arg(cmd, argv[i], REQUIRED);
+ else
+ printf("Can't parse argc %d argv %s prev %s\n",
+ i, argv[i], argv[i-1]);
+ }
+}
+
+/* add to required_opt_args when OO_FOO appears on required line */
+
+static void include_required_opt_args(struct command *cmd, char *str)
+{
+ char *oo_line;
+ char *line;
+ char *line_argv[MAX_LINE_ARGC];
+ int line_argc;
+
+ if (!(oo_line = get_oo_line(str))) {
+ printf("No OO line found for %s\n", str);
+ exit(1);
+ }
+
+ if (!(line = strdup(oo_line)))
+ exit(1);
+
+ split_line(line, &line_argc, line_argv, ' ');
+ add_required_opt_line(cmd, line_argc, line_argv);
+ free(line);
+}
+
+/* process what follows command_name, which are required opt/pos args */
+
+static void add_required_line(struct command *cmd, int argc, char *argv[])
+{
+ int i;
+ int takes_arg;
+ int prev_was_opt = 0, prev_was_pos = 0;
+
+ /* argv[0] is command name */
+
+ for (i = 1; i < argc; i++) {
+ if (is_opt_name(argv[i])) {
+ add_opt_arg(cmd, argv[i], &takes_arg, REQUIRED);
+ prev_was_opt = 1;
+ prev_was_pos = 0;
+ } else if (prev_was_opt && takes_arg) {
+ update_prev_opt_arg(cmd, argv[i], REQUIRED);
+ prev_was_opt = 0;
+ prev_was_pos = 0;
+ } else if (is_pos_name(argv[i])) {
+ add_pos_arg(cmd, argv[i], REQUIRED);
+ prev_was_opt = 0;
+ prev_was_pos = 1;
+ } else if (!strncmp(argv[i], "OO_", 3)) {
+ cmd->cmd_flags |= CMD_FLAG_ONE_REQUIRED_OPT;
+ include_required_opt_args(cmd, argv[i]);
+ } else if (prev_was_pos) {
+ update_prev_pos_arg(cmd, argv[i], REQUIRED);
+ } else
+ printf("Can't parse argc %d argv %s prev %s\n",
+ i, argv[i], argv[i-1]);
+
+ }
+}
+
+static void print_def(struct arg_def *def)
+{
+ int sep = 0;
+ int i;
+
+ if (def->types & ARG_DEF_TYPE_BOOL) {
+ if (sep) printf("|");
+ printf("Bool");
+ sep = 1;
+ }
+
+ if (def->types & ARG_DEF_TYPE_NUM_ANY) {
+ if (sep) printf("|");
+ printf("Number");
+ sep = 1;
+ }
+
+ if (def->types & ARG_DEF_TYPE_STR_ANY) {
+ if (sep) printf("|");
+ printf("String");
+ sep = 1;
+ }
+
+ if (def->types & ARG_DEF_TYPE_NAME_ANY) {
+ if (sep) printf("|");
+ printf("Name");
+ sep = 1;
+ }
+
+ if (def->types & ARG_DEF_TYPE_NAME_PV) {
+ if (sep) printf("|");
+ printf("PV");
+ if (def->flags & ARG_DEF_FLAG_NEW)
+ printf("_new");
+ sep = 1;
+ }
+
+ if (def->types & ARG_DEF_TYPE_NAME_VG) {
+ if (sep) printf("|");
+ printf("VG");
+ if (def->flags & ARG_DEF_FLAG_NEW)
+ printf("_new");
+ sep = 1;
+ }
+
+ if (def->types & ARG_DEF_TYPE_NAME_LV) {
+ if (!def->lv_types) {
+ if (sep) printf("|");
+ printf("LV");
+ sep = 1;
+ } else {
+ for (i = 0; i < ARG_DEF_LVS; i++) {
+ if (def->lv_types & arg_def_lvs[i].flag) {
+ if (sep) printf("|");
+ printf("%s", arg_def_lvs[i].name);
+ sep = 1;
+ }
+ }
+ }
+ if (def->flags & ARG_DEF_FLAG_NEW)
+ printf("_new");
+ }
+
+ if (def->types & ARG_DEF_TYPE_TAG) {
+ if (sep) printf("|");
+ printf("Tag");
+ sep = 1;
+ }
+
+ if (def->types & ARG_DEF_TYPE_SELECT) {
+ if (sep) printf("|");
+ printf("Select");
+ sep = 1;
+ }
+
+ if (def->types & ARG_DEF_TYPE_STR_CONST) {
+ if (sep) printf("|");
+ printf("%s", def->str);
+ sep = 1;
+ }
+
+ if (def->types & ARG_DEF_TYPE_NUM_CONST) {
+ if (sep) printf("|");
+ printf("%llu", def->num);
+ sep = 1;
+ }
+
+ if (def->types & ARG_DEF_TYPE_STR_SET) {
+ for (i = 0; i < MAX_STR_SET; i++) {
+ if (def->str_set[i]) {
+ if (sep) printf("|");
+ printf("%s", def->str_set[i]);
+ sep = 1;
+ }
+ }
+ }
+
+ if (def->flags & ARG_DEF_FLAG_MAY_REPEAT)
+ printf(" ...");
+}
+
+void print_expanded(void)
+{
+ struct command *cmd;
+ int onereq;
+ int i, ro, rp, oo, op;
+
+ for (i = 0; i < cmd_count; i++) {
+ cmd = &cmd_array[i];
+ printf("%s", cmd->name);
+
+ onereq = (cmd->cmd_flags & CMD_FLAG_ONE_REQUIRED_OPT) ? 1 : 0;
+
+ if (cmd->ro_count) {
+ if (onereq)
+ printf(" (");
+
+ for (ro = 0; ro < cmd->ro_count; ro++) {
+ if (ro && onereq)
+ printf(",");
+ printf(" %s", opt_names[cmd->required_opt_args[ro].opt].long_opt);
+ if (cmd->required_opt_args[ro].def.types) {
+ printf(" ");
+ print_def(&cmd->required_opt_args[ro].def);
+ }
+ }
+ if (onereq)
+ printf(" )");
+ }
+
+ if (cmd->rp_count) {
+ for (rp = 0; rp < cmd->rp_count; rp++) {
+ if (cmd->required_pos_args[rp].def.types) {
+ printf(" ");
+ print_def(&cmd->required_pos_args[rp].def);
+ }
+ }
+ }
+
+ if (cmd->oo_count) {
+ printf("\n");
+ printf("OO:");
+ for (oo = 0; oo < cmd->oo_count; oo++) {
+ if (oo)
+ printf(",");
+ printf(" %s", opt_names[cmd->optional_opt_args[oo].opt].long_opt);
+ if (cmd->optional_opt_args[oo].def.types) {
+ printf(" ");
+ print_def(&cmd->optional_opt_args[oo].def);
+ }
+ }
+ }
+
+ if (cmd->op_count) {
+ printf("\n");
+ printf("OP:");
+ for (op = 0; op < cmd->op_count; op++) {
+ if (cmd->optional_pos_args[op].def.types) {
+ printf(" ");
+ print_def(&cmd->optional_pos_args[op].def);
+ }
+ }
+ }
+
+ printf("\n\n");
+ }
+}
+
+static const char *opt_to_enum_str(int opt)
+{
+ return opt_names[opt].enum_name;
+}
+
+static char *type_num_to_flags(int types)
+{
+ static char buf[128];
+ int or = 0;
+
+ memset(buf, 0, sizeof(buf));
+
+ if (types & ARG_DEF_TYPE_BOOL) {
+ strcat(buf, "ARG_DEF_TYPE_BOOL");
+ or = 1;
+ }
+
+ if (types & ARG_DEF_TYPE_NUM_ANY) {
+ if (or) strcat(buf, "|");
+ strcat(buf, "ARG_DEF_TYPE_NUM_ANY");
+ or = 1;
+ }
+
+ if (types & ARG_DEF_TYPE_STR_ANY) {
+ if (or) strcat(buf, "|");
+ strcat(buf, "ARG_DEF_TYPE_STR_ANY");
+ or = 1;
+ }
+
+ if (types & ARG_DEF_TYPE_NUM_CONST) {
+ if (or) strcat(buf, "|");
+ strcat(buf, "ARG_DEF_TYPE_NUM_CONST");
+ or = 1;
+ }
+
+ if (types & ARG_DEF_TYPE_STR_CONST) {
+ if (or) strcat(buf, "|");
+ strcat(buf, "ARG_DEF_TYPE_STR_CONST");
+ or = 1;
+ }
+
+ if (types & ARG_DEF_TYPE_STR_SET) {
+ if (or) strcat(buf, "|");
+ strcat(buf, "ARG_DEF_TYPE_STR_SET");
+ or = 1;
+ }
+
+ if (types & ARG_DEF_TYPE_NAME_ANY) {
+ if (or) strcat(buf, "|");
+ strcat(buf, "ARG_DEF_TYPE_NAME_ANY");
+ or = 1;
+ }
+
+ if (types & ARG_DEF_TYPE_NAME_PV) {
+ if (or) strcat(buf, "|");
+ strcat(buf, "ARG_DEF_TYPE_NAME_PV");
+ or = 1;
+ }
+
+ if (types & ARG_DEF_TYPE_NAME_VG) {
+ if (or) strcat(buf, "|");
+ strcat(buf, "ARG_DEF_TYPE_NAME_VG");
+ or = 1;
+ }
+
+ if (types & ARG_DEF_TYPE_NAME_LV) {
+ if (or) strcat(buf, "|");
+ strcat(buf, "ARG_DEF_TYPE_NAME_LV");
+ or = 1;
+ }
+
+ if (types & ARG_DEF_TYPE_TAG) {
+ if (or) strcat(buf, "|");
+ strcat(buf, "ARG_DEF_TYPE_TAG");
+ or = 1;
+ }
+
+ if (types & ARG_DEF_TYPE_SELECT) {
+ if (or) strcat(buf, "|");
+ strcat(buf, "ARG_DEF_TYPE_SELECT");
+ or = 1;
+ }
+
+ return buf;
+}
+
+static char *lv_num_to_flags(int lv_types)
+{
+ static char buf_lv_types[128];
+ int or = 0;
+
+ memset(buf_lv_types, 0, sizeof(buf_lv_types));
+
+ if (lv_types & ARG_DEF_LV_LINEAR) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_LINEAR");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_STRIPED) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_STRIPED");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_SNAPSHOT) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_SNAPSHOT");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_MIRROR) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_MIRROR");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_RAID) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_RAID");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_RAID0) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_RAID0");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_RAID1) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_RAID1");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_RAID4) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_RAID4");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_RAID5) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_RAID5");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_RAID6) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_RAID6");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_RAID10) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_RAID10");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_THIN) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_THIN");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_THINPOOL) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_THINPOOL");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_CACHE) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_CACHE");
+ or = 1;
+ }
+
+ if (lv_types & ARG_DEF_LV_CACHEPOOL) {
+ if (or) strcat(buf_lv_types, "|");
+ strcat(buf_lv_types, "ARG_DEF_LV_CACHEPOOL");
+ or = 1;
+ }
+
+ return buf_lv_types;
+}
+
+static char *flags_to_str(int flags)
+{
+ static char buf_flags[32];
+
+ memset(buf_flags, 0, sizeof(buf_flags));
+
+ if (flags & ARG_DEF_FLAG_MAY_REPEAT)
+ strcat(buf_flags, "ARG_DEF_FLAG_MAY_REPEAT");
+ if (flags & ARG_DEF_FLAG_NEW)
+ strcat(buf_flags, "ARG_DEF_FLAG_NEW");
+
+ return buf_flags;
+}
+
+void print_define_command_count(void)
+{
+ printf("/* Do not edit. This file is generated by scripts/create-commands */\n");
+ printf("/* using command definitions from scripts/command-lines.in */\n");
+ printf("#define COMMAND_COUNT %d\n", cmd_count);
+}
+
+void print_usage(struct command *cmd)
+{
+ int onereq = (cmd->cmd_flags & CMD_FLAG_ONE_REQUIRED_OPT) ? 1 : 0;
+ int i, ro, rp, oo, op;
+
+ printf("\"%s", cmd->name);
+
+ if (cmd->ro_count) {
+ if (onereq)
+ printf(" (");
+ for (ro = 0; ro < cmd->ro_count; ro++) {
+ if (ro && onereq)
+ printf(",");
+ printf(" %s", opt_names[cmd->required_opt_args[ro].opt].long_opt);
+
+ if (cmd->required_opt_args[ro].def.types) {
+ printf(" ");
+ print_def(&cmd->required_opt_args[ro].def);
+ }
+ }
+ if (onereq)
+ printf(" )");
+ }
+
+ if (cmd->rp_count) {
+ for (rp = 0; rp < cmd->rp_count; rp++) {
+ if (cmd->required_pos_args[rp].def.types) {
+ printf(" ");
+ print_def(&cmd->required_pos_args[rp].def);
+ }
+ }
+ }
+
+ printf("\"");
+
+ if (!cmd->oo_count)
+ goto op_count;
+
+ printf("\n");
+ printf("\" [");
+
+ if (cmd->oo_count) {
+ for (oo = 0; oo < cmd->oo_count; oo++) {
+ if (oo)
+ printf(",");
+ printf(" %s", opt_names[cmd->optional_opt_args[oo].opt].long_opt);
+ if (cmd->optional_opt_args[oo].def.types) {
+ printf(" ");
+ print_def(&cmd->optional_opt_args[oo].def);
+ }
+ }
+ }
+
+ printf(" ]\"");
+
+ op_count:
+ if (!cmd->op_count)
+ goto done;
+
+ printf("\n");
+ printf("\" [");
+
+ if (cmd->op_count) {
+ for (op = 0; op < cmd->op_count; op++) {
+ if (cmd->optional_pos_args[op].def.types) {
+ printf(" ");
+ print_def(&cmd->optional_pos_args[op].def);
+ }
+ }
+ }
+
+ printf(" ]\"");
+
+ done:
+ printf(";\n");
+}
+
+void print_command_struct(int only_usage)
+{
+ struct command *cmd;
+ int i, j, ro, rp, oo, op;
+
+ printf("/* Do not edit. This file is generated by scripts/create-commands */\n");
+ printf("/* using command definitions from scripts/command-lines.in */\n");
+
+ for (i = 0; i < cmd_count; i++) {
+ cmd = &cmd_array[i];
+
+ if (only_usage) {
+ print_usage(cmd);
+ printf("\n");
+ continue;
+ }
+
+ printf("commands[%d].name = \"%s\";\n", i, cmd->name);
+ printf("commands[%d].fn = %s;\n", i, cmd->name);
+ printf("commands[%d].ro_count = %d;\n", i, cmd->ro_count);
+ printf("commands[%d].rp_count = %d;\n", i, cmd->rp_count);
+ printf("commands[%d].oo_count = %d;\n", i, cmd->oo_count);
+ printf("commands[%d].op_count = %d;\n", i, cmd->op_count);
+
+ if (cmd->cmd_flags & CMD_FLAG_ONE_REQUIRED_OPT)
+ printf("commands[%d].cmd_flags = CMD_FLAG_ONE_REQUIRED_OPT;\n", i);
+
+ printf("commands[%d].desc = \"%s\";\n", i, cmd->desc ?: "");
+ printf("commands[%d].usage = ", i);
+ print_usage(cmd);
+
+ if (cmd->ro_count) {
+ for (ro = 0; ro < cmd->ro_count; ro++) {
+ printf("commands[%d].required_opt_args[%d].opt = %s;\n",
+ i, ro, opt_to_enum_str(cmd->required_opt_args[ro].opt));
+
+ if (!cmd->required_opt_args[ro].def.types)
+ continue;
+
+ printf("commands[%d].required_opt_args[%d].def.types = %s;\n",
+ i, ro, type_num_to_flags(cmd->required_opt_args[ro].def.types));
+
+ if (cmd->required_opt_args[ro].def.lv_types)
+ printf("commands[%d].required_opt_args[%d].def.lv_types = %s;\n",
+ i, ro, lv_num_to_flags(cmd->required_opt_args[ro].def.lv_types));
+ if (cmd->required_opt_args[ro].def.types & ARG_DEF_TYPE_NUM_CONST)
+ printf("commands[%d].required_opt_args[%d].def.num = %d;\n",
+ i, ro, cmd->required_opt_args[ro].def.num);
+ if (cmd->required_opt_args[ro].def.flags)
+ printf("commands[%d].required_opt_args[%d].def.flags = %s;\n",
+ i, ro, flags_to_str(cmd->required_opt_args[ro].def.flags));
+ if (cmd->required_opt_args[ro].def.types & ARG_DEF_TYPE_STR_CONST)
+ printf("commands[%d].required_opt_args[%d].def.str = \"%s\";\n",
+ i, ro, cmd->required_opt_args[ro].def.str ?: "NULL");
+ if (cmd->required_opt_args[ro].def.types & ARG_DEF_TYPE_STR_SET) {
+ for (j = 0; j < MAX_STR_SET; j++) {
+ if (cmd->required_opt_args[ro].def.str_set[j])
+ printf("commands[%d].required_opt_args[%d].def.str_set[%d] = %s;\n",
+ i, ro, j, cmd->required_opt_args[ro].def.str_set[j] ?: "NULL");
+ }
+ }
+ }
+ }
+
+ if (cmd->rp_count) {
+ for (rp = 0; rp < cmd->rp_count; rp++) {
+ printf("commands[%d].required_pos_args[%d].pos = %d;\n",
+ i, rp, cmd->required_pos_args[rp].pos);
+
+ if (!cmd->required_pos_args[rp].def.types)
+ continue;
+
+ printf("commands[%d].required_pos_args[%d].def.types = %s;\n",
+ i, rp, type_num_to_flags(cmd->required_pos_args[rp].def.types));
+
+ if (cmd->required_pos_args[rp].def.lv_types)
+ printf("commands[%d].required_pos_args[%d].def.lv_types = %s;\n",
+ i, rp, lv_num_to_flags(cmd->required_pos_args[rp].def.lv_types));
+ if (cmd->required_pos_args[rp].def.types & ARG_DEF_TYPE_NUM_CONST)
+ printf("commands[%d].required_pos_args[%d].def.num = %d;\n",
+ i, rp, cmd->required_pos_args[rp].def.num);
+ if (cmd->required_pos_args[rp].def.flags)
+ printf("commands[%d].required_pos_args[%d].def.flags = %s;\n",
+ i, rp, flags_to_str(cmd->required_pos_args[rp].def.flags));
+ if (cmd->required_pos_args[rp].def.types & ARG_DEF_TYPE_STR_CONST)
+ printf("commands[%d].required_pos_args[%d].def.str = \"%s\";\n",
+ i, rp, cmd->required_pos_args[rp].def.str ?: "NULL");
+ if (cmd->required_pos_args[rp].def.types & ARG_DEF_TYPE_STR_SET) {
+ for (j = 0; j < MAX_STR_SET; j++) {
+ if (cmd->required_pos_args[rp].def.str_set[j])
+ printf("commands[%d].required_pos_args[%d].def.str_set[%d] = \"%s\";\n",
+ i, rp, j, cmd->required_pos_args[rp].def.str_set[j] ?: "NULL");
+ }
+ }
+ }
+ }
+
+ if (cmd->oo_count) {
+ for (oo = 0; oo < cmd->oo_count; oo++) {
+ printf("commands[%d].optional_opt_args[%d].opt = %s;\n",
+ i, oo, opt_to_enum_str(cmd->optional_opt_args[oo].opt));
+
+ if (!cmd->optional_opt_args[oo].def.types)
+ continue;
+
+ printf("commands[%d].optional_opt_args[%d].def.types = %s;\n",
+ i, oo, type_num_to_flags(cmd->optional_opt_args[oo].def.types));
+
+ if (cmd->optional_opt_args[oo].def.lv_types)
+ printf("commands[%d].optional_opt_args[%d].def.lv_types = %s;\n",
+ i, oo, lv_num_to_flags(cmd->optional_opt_args[oo].def.lv_types));
+ if (cmd->optional_opt_args[oo].def.types & ARG_DEF_TYPE_NUM_CONST)
+ printf("commands[%d].optional_opt_args[%d].def.num = %d;\n",
+ i, oo, cmd->optional_opt_args[oo].def.num);
+ if (cmd->optional_opt_args[oo].def.flags)
+ printf("commands[%d].optional_opt_args[%d].def.flags = %s;\n",
+ i, oo, flags_to_str(cmd->optional_opt_args[oo].def.flags));
+ if (cmd->optional_opt_args[oo].def.types & ARG_DEF_TYPE_STR_CONST)
+ printf("commands[%d].optional_opt_args[%d].def.str = \"%s\";\n",
+ i, oo, cmd->optional_opt_args[oo].def.str ?: "NULL");
+ if (cmd->optional_opt_args[oo].def.types & ARG_DEF_TYPE_STR_SET) {
+ for (j = 0; j < MAX_STR_SET; j++) {
+ if (cmd->optional_opt_args[oo].def.str_set[j])
+ printf("commands[%d].optional_opt_args[%d].def.str_set[%d] = \"%s\";\n",
+ i, oo, j, cmd->optional_opt_args[oo].def.str_set[j] ?: "NULL");
+ }
+ }
+ }
+ }
+
+ if (cmd->op_count) {
+ for (op = 0; op < cmd->op_count; op++) {
+ printf("commands[%d].optional_pos_args[%d].pos = %d;\n",
+ i, op, cmd->optional_pos_args[op].pos);
+
+ if (!cmd->optional_pos_args[op].def.types)
+ continue;
+
+ printf("commands[%d].optional_pos_args[%d].def.types = %s;\n",
+ i, op, type_num_to_flags(cmd->optional_pos_args[op].def.types));
+
+ if (cmd->optional_pos_args[op].def.lv_types)
+ printf("commands[%d].optional_pos_args[%d].def.lv_types = %s;\n",
+ i, op, lv_num_to_flags(cmd->optional_pos_args[op].def.lv_types));
+ if (cmd->optional_pos_args[op].def.types & ARG_DEF_TYPE_NUM_CONST)
+ printf("commands[%d].optional_pos_args[%d].def.num = %d;\n",
+ i, op, cmd->optional_pos_args[op].def.num);
+ if (cmd->optional_pos_args[op].def.flags)
+ printf("commands[%d].optional_pos_args[%d].def.flags = %s;\n",
+ i, op, flags_to_str(cmd->optional_pos_args[op].def.flags));
+ if (cmd->optional_pos_args[op].def.types & ARG_DEF_TYPE_STR_CONST)
+ printf("commands[%d].optional_pos_args[%d].def.str = \"%s\";\n",
+ i, op, cmd->optional_pos_args[op].def.str ?: "NULL");
+ if (cmd->optional_pos_args[op].def.types & ARG_DEF_TYPE_STR_SET) {
+ for (j = 0; j < MAX_STR_SET; j++) {
+ if (cmd->optional_pos_args[op].def.str_set[j])
+ printf("commands[%d].optional_pos_args[%d].def.str_set[%d] = \"%s\";\n",
+ i, op, j, cmd->optional_pos_args[op].def.str_set[j] ?: "NULL");
+ }
+ }
+ }
+ }
+
+ printf("\n");
+ }
+}
+
+void print_command_list(void)
+{
+ int i;
+
+ for (i = 0; i < MAX_CMD_NAMES; i++) {
+ if (!cmd_names[i].name) {
+ printf("found %d command names\n", i);
+ break;
+ }
+ printf("%s\n", cmd_names[i].name);
+ }
+}
+
+void print_option_list(void)
+{
+ int i;
+
+ for (i = 0; i < ARG_COUNT; i++)
+ printf("%d %s %s %c (%d)\n",
+ opt_names[i].enum_val, opt_names[i].enum_name,
+ opt_names[i].long_opt, opt_names[i].short_opt ?: ' ',
+ opt_names[i].short_opt ? opt_names[i].short_opt : 0);
+}
+
+static void print_help(int argc, char *argv[])
+{
+ printf("%s --output struct|count|usage|expanded <filename>\n", argv[0]);
+ printf("\n");
+ printf("struct: print C structures.\n");
+ printf("usage: print usage format.\n");
+ printf("expanded: print expanded input format.\n");
+ printf("count: print #define COMMAND_COUNT <Number>\n");
+}
+
+int main(int argc, char *argv[])
+{
+ char *outputformat = NULL;
+ char *inputfile = NULL;
+ FILE *file;
+ struct command *cmd;
+ char line[MAX_LINE];
+ char line_orig[MAX_LINE];
+ const char *name;
+ char *line_argv[MAX_LINE_ARGC];
+ char *n;
+ int line_argc;
+ int prev_was_oo_def = 0;
+ int prev_was_oo = 0;
+ int prev_was_op = 0;
+
+ if (argc < 2) {
+ print_help(argc, argv);
+ exit(EXIT_FAILURE);
+ }
+
+ if (!strcmp(argv[1], "debug")) {
+ print_command_list();
+ print_option_list();
+ return 0;
+ }
+
+ static struct option long_options[] = {
+ {"help", no_argument, 0, 'h' },
+ {"output", required_argument, 0, 'o' },
+ {0, 0, 0, 0 }
+ };
+
+ while (1) {
+ int c;
+ int option_index = 0;
+
+ c = getopt_long(argc, argv, "ho:",
+ long_options, &option_index);
+ if (c == -1)
+ break;
+
+ switch (c) {
+ case '0':
+ break;
+ case 'h':
+ print_help(argc, argv);
+ exit(EXIT_SUCCESS);
+ case 'o':
+ outputformat = strdup(optarg);
+ break;
+ }
+ }
+
+ if (optind < argc)
+ inputfile = argv[optind];
+ else {
+ printf("Missing filename.\n");
+ return 0;
+ }
+
+ if (!(file = fopen(inputfile, "r"))) {
+ printf("Cannot open %s\n", argv[1]);
+ return -1;
+ }
+
+ while (fgets(line, MAX_LINE, file)) {
+ if (line[0] == '#')
+ continue;
+ if (line[0] == '\n')
+ continue;
+
+ if ((n = strchr(line, '\n')))
+ *n = '\0';
+
+ memcpy(line_orig, line, sizeof(line));
+ split_line(line, &line_argc, line_argv, ' ');
+
+ if (!line_argc)
+ continue;
+
+ /* command ... */
+ if ((name = is_command_name(line_argv[0]))) {
+ if (cmd_count >= MAX_CMDS) {
+ printf("MAX_CMDS too small\n");
+ return -1;
+ }
+ cmd = &cmd_array[cmd_count++];
+ cmd->name = name;
+ cmd->pos_count = 1;
+ add_required_line(cmd, line_argc, line_argv);
+
+ /* Every cmd gets the OO_ALL options */
+ include_optional_opt_args(cmd, "OO_ALL:");
+ continue;
+ }
+
+ if (is_desc_line(line_argv[0])) {
+ char *desc = strdup(strstr(line_orig, ":") + 2);
+ if (cmd->desc) {
+ cmd->desc = realloc((char *)cmd->desc, strlen(cmd->desc) + strlen(desc) + 2);
+ strcat((char *)cmd->desc, " ");
+ strcat((char *)cmd->desc, desc);
+ free(desc);
+ } else
+ cmd->desc = desc;
+ continue;
+ }
+
+ /* OO_FOO: ... */
+ if (is_oo_definition(line_argv[0])) {
+ add_oo_definition_line(line_argv[0], line_orig);
+ prev_was_oo_def = 1;
+ prev_was_oo = 0;
+ prev_was_op = 0;
+ continue;
+ }
+
+ /* OO: ... */
+ if (is_oo_line(line_argv[0])) {
+ add_optional_opt_line(cmd, line_argc, line_argv);
+ prev_was_oo_def = 0;
+ prev_was_oo = 1;
+ prev_was_op = 0;
+ continue;
+ }
+
+ /* OP: ... */
+ if (is_op_line(line_argv[0])) {
+ add_optional_pos_line(cmd, line_argc, line_argv);
+ prev_was_oo_def = 0;
+ prev_was_oo = 0;
+ prev_was_op = 1;
+ continue;
+ }
+
+ /* handle OO_FOO:, OO:, OP: continuing on multiple lines */
+
+ if (prev_was_oo_def) {
+ append_oo_definition_line(line_orig);
+ continue;
+ }
+
+ if (prev_was_oo) {
+ add_optional_opt_line(cmd, line_argc, line_argv);
+ continue;
+ }
+
+ if (prev_was_op) {
+ add_optional_pos_line(cmd, line_argc, line_argv);
+ continue;
+ }
+ }
+
+ fclose(file);
+
+ if (!outputformat)
+ print_command_struct(1);
+ else if (!strcmp(outputformat, "struct"))
+ print_command_struct(0);
+ else if (!strcmp(outputformat, "count"))
+ print_define_command_count();
+ else if (!strcmp(outputformat, "usage"))
+ print_command_struct(1);
+ else if (!strcmp(outputformat, "expanded"))
+ print_expanded();
+ else
+ print_help(argc, argv);
+}
+
diff --git a/tools/args.h b/tools/args.h
index a04d81d5e..f98ec7d6a 100644
--- a/tools/args.h
+++ b/tools/args.h
@@ -32,7 +32,7 @@ arg(cachepool_ARG, '\0', "cachepool", string_arg, 0, 0)
arg(commandprofile_ARG, '\0', "commandprofile", string_arg, 0, 0)
arg(config_ARG, '\0', "config", string_arg, 0, 0)
arg(configreport_ARG, '\0', "configreport", string_arg, ARG_GROUPABLE, 1)
-arg(configtype_ARG, '\0', "type", string_arg, 0, 0)
+arg(configtype_ARG, '\0', "configtype", string_arg, 0, 0)
arg(corelog_ARG, '\0', "corelog", NULL, 0, 0)
arg(dataalignment_ARG, '\0', "dataalignment", size_kb_arg, 0, 0)
arg(dataalignmentoffset_ARG, '\0', "dataalignmentoffset", size_kb_arg, 0, 0)
@@ -169,7 +169,7 @@ arg(physicalextent_ARG, 'E', "physicalextent", NULL, 0, 0)
arg(file_ARG, 'f', "file", string_arg, 0, 0)
arg(force_ARG, 'f', "force", NULL, ARG_COUNTABLE, 0)
arg(full_ARG, 'f', "full", NULL, 0, 0)
-arg(help_ARG, 'h', "help", NULL, 0, 0)
+arg(help_ARG, 'h', "help", NULL, ARG_COUNTABLE, 0)
arg(cache_ARG, 'H', "cache", NULL, 0, 0)
arg(history_ARG, 'H', "history", NULL, 0, 0)
arg(help2_ARG, '?', "", NULL, 0, 0)
diff --git a/tools/command-lines-count.h b/tools/command-lines-count.h
new file mode 100644
index 000000000..1f8e66892
--- /dev/null
+++ b/tools/command-lines-count.h
@@ -0,0 +1,3 @@
+/* Do not edit. This file is generated by scripts/create-commands */
+/* using command definitions from scripts/command-lines.in */
+#define COMMAND_COUNT 144
diff --git a/tools/command-lines.h b/tools/command-lines.h
new file mode 100644
index 000000000..9d3f1282c
--- /dev/null
+++ b/tools/command-lines.h
@@ -0,0 +1,7571 @@
+/* Do not edit. This file is generated by scripts/create-commands */
+/* using command definitions from scripts/command-lines.in */
+commands[0].name = "config";
+commands[0].fn = config;
+commands[0].ro_count = 0;
+commands[0].rp_count = 0;
+commands[0].oo_count = 28;
+commands[0].op_count = 1;
+commands[0].desc = "";
+commands[0].usage = "config"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --atversion String, --configtype String, --file String, --ignoreadvanced, --ignoreunsupported, --ignorelocal, --list, --mergedconfig, --metadataprofile String, --sinceversion String, --showdeprecated, --showunsupported, --validate, --withsummary, --withcomments, --withspaces, --unconfigured, --withversions ]"
+" [ String ... ]";
+commands[0].optional_opt_args[0].opt = commandprofile_ARG;
+commands[0].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[0].optional_opt_args[1].opt = config_ARG;
+commands[0].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[0].optional_opt_args[2].opt = debug_ARG;
+commands[0].optional_opt_args[3].opt = driverloaded_ARG;
+commands[0].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[0].optional_opt_args[4].opt = help_ARG;
+commands[0].optional_opt_args[5].opt = profile_ARG;
+commands[0].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[0].optional_opt_args[6].opt = quiet_ARG;
+commands[0].optional_opt_args[7].opt = verbose_ARG;
+commands[0].optional_opt_args[8].opt = version_ARG;
+commands[0].optional_opt_args[9].opt = yes_ARG;
+commands[0].optional_opt_args[10].opt = atversion_ARG;
+commands[0].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[0].optional_opt_args[11].opt = configtype_ARG;
+commands[0].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[0].optional_opt_args[12].opt = file_ARG;
+commands[0].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[0].optional_opt_args[13].opt = ignoreadvanced_ARG;
+commands[0].optional_opt_args[14].opt = ignoreunsupported_ARG;
+commands[0].optional_opt_args[15].opt = ignorelocal_ARG;
+commands[0].optional_opt_args[16].opt = list_ARG;
+commands[0].optional_opt_args[17].opt = mergedconfig_ARG;
+commands[0].optional_opt_args[18].opt = metadataprofile_ARG;
+commands[0].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[0].optional_opt_args[19].opt = sinceversion_ARG;
+commands[0].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[0].optional_opt_args[20].opt = showdeprecated_ARG;
+commands[0].optional_opt_args[21].opt = showunsupported_ARG;
+commands[0].optional_opt_args[22].opt = validate_ARG;
+commands[0].optional_opt_args[23].opt = withsummary_ARG;
+commands[0].optional_opt_args[24].opt = withcomments_ARG;
+commands[0].optional_opt_args[25].opt = withspaces_ARG;
+commands[0].optional_opt_args[26].opt = unconfigured_ARG;
+commands[0].optional_opt_args[27].opt = withversions_ARG;
+commands[0].optional_pos_args[0].pos = 1;
+commands[0].optional_pos_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[0].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[1].name = "devtypes";
+commands[1].fn = devtypes;
+commands[1].ro_count = 0;
+commands[1].rp_count = 0;
+commands[1].oo_count = 23;
+commands[1].op_count = 0;
+commands[1].desc = "";
+commands[1].usage = "devtypes"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --aligned, --binary, --nameprefixes, --noheadings, --nosuffix, --options String, --reportformat String, --rows, --select String, --separator String, --sort String, --unbuffered, --unquoted ]";
+commands[1].optional_opt_args[0].opt = commandprofile_ARG;
+commands[1].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[1].optional_opt_args[1].opt = config_ARG;
+commands[1].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[1].optional_opt_args[2].opt = debug_ARG;
+commands[1].optional_opt_args[3].opt = driverloaded_ARG;
+commands[1].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[1].optional_opt_args[4].opt = help_ARG;
+commands[1].optional_opt_args[5].opt = profile_ARG;
+commands[1].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[1].optional_opt_args[6].opt = quiet_ARG;
+commands[1].optional_opt_args[7].opt = verbose_ARG;
+commands[1].optional_opt_args[8].opt = version_ARG;
+commands[1].optional_opt_args[9].opt = yes_ARG;
+commands[1].optional_opt_args[10].opt = aligned_ARG;
+commands[1].optional_opt_args[11].opt = binary_ARG;
+commands[1].optional_opt_args[12].opt = nameprefixes_ARG;
+commands[1].optional_opt_args[13].opt = noheadings_ARG;
+commands[1].optional_opt_args[14].opt = nosuffix_ARG;
+commands[1].optional_opt_args[15].opt = options_ARG;
+commands[1].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[1].optional_opt_args[16].opt = reportformat_ARG;
+commands[1].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[1].optional_opt_args[17].opt = rows_ARG;
+commands[1].optional_opt_args[18].opt = select_ARG;
+commands[1].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[1].optional_opt_args[19].opt = separator_ARG;
+commands[1].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[1].optional_opt_args[20].opt = sort_ARG;
+commands[1].optional_opt_args[20].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[1].optional_opt_args[21].opt = unbuffered_ARG;
+commands[1].optional_opt_args[22].opt = unquoted_ARG;
+
+commands[2].name = "dumpconfig";
+commands[2].fn = dumpconfig;
+commands[2].ro_count = 0;
+commands[2].rp_count = 0;
+commands[2].oo_count = 28;
+commands[2].op_count = 1;
+commands[2].desc = "";
+commands[2].usage = "dumpconfig"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --atversion String, --configtype String, --file String, --ignoreadvanced, --ignoreunsupported, --ignorelocal, --list, --mergedconfig, --metadataprofile String, --sinceversion String, --showdeprecated, --showunsupported, --validate, --withsummary, --withcomments, --withspaces, --unconfigured, --withversions ]"
+" [ String ... ]";
+commands[2].optional_opt_args[0].opt = commandprofile_ARG;
+commands[2].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[2].optional_opt_args[1].opt = config_ARG;
+commands[2].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[2].optional_opt_args[2].opt = debug_ARG;
+commands[2].optional_opt_args[3].opt = driverloaded_ARG;
+commands[2].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[2].optional_opt_args[4].opt = help_ARG;
+commands[2].optional_opt_args[5].opt = profile_ARG;
+commands[2].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[2].optional_opt_args[6].opt = quiet_ARG;
+commands[2].optional_opt_args[7].opt = verbose_ARG;
+commands[2].optional_opt_args[8].opt = version_ARG;
+commands[2].optional_opt_args[9].opt = yes_ARG;
+commands[2].optional_opt_args[10].opt = atversion_ARG;
+commands[2].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[2].optional_opt_args[11].opt = configtype_ARG;
+commands[2].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[2].optional_opt_args[12].opt = file_ARG;
+commands[2].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[2].optional_opt_args[13].opt = ignoreadvanced_ARG;
+commands[2].optional_opt_args[14].opt = ignoreunsupported_ARG;
+commands[2].optional_opt_args[15].opt = ignorelocal_ARG;
+commands[2].optional_opt_args[16].opt = list_ARG;
+commands[2].optional_opt_args[17].opt = mergedconfig_ARG;
+commands[2].optional_opt_args[18].opt = metadataprofile_ARG;
+commands[2].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[2].optional_opt_args[19].opt = sinceversion_ARG;
+commands[2].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[2].optional_opt_args[20].opt = showdeprecated_ARG;
+commands[2].optional_opt_args[21].opt = showunsupported_ARG;
+commands[2].optional_opt_args[22].opt = validate_ARG;
+commands[2].optional_opt_args[23].opt = withsummary_ARG;
+commands[2].optional_opt_args[24].opt = withcomments_ARG;
+commands[2].optional_opt_args[25].opt = withspaces_ARG;
+commands[2].optional_opt_args[26].opt = unconfigured_ARG;
+commands[2].optional_opt_args[27].opt = withversions_ARG;
+commands[2].optional_pos_args[0].pos = 1;
+commands[2].optional_pos_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[2].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[3].name = "formats";
+commands[3].fn = formats;
+commands[3].ro_count = 0;
+commands[3].rp_count = 0;
+commands[3].oo_count = 10;
+commands[3].op_count = 0;
+commands[3].desc = "";
+commands[3].usage = "formats"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes ]";
+commands[3].optional_opt_args[0].opt = commandprofile_ARG;
+commands[3].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[3].optional_opt_args[1].opt = config_ARG;
+commands[3].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[3].optional_opt_args[2].opt = debug_ARG;
+commands[3].optional_opt_args[3].opt = driverloaded_ARG;
+commands[3].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[3].optional_opt_args[4].opt = help_ARG;
+commands[3].optional_opt_args[5].opt = profile_ARG;
+commands[3].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[3].optional_opt_args[6].opt = quiet_ARG;
+commands[3].optional_opt_args[7].opt = verbose_ARG;
+commands[3].optional_opt_args[8].opt = version_ARG;
+commands[3].optional_opt_args[9].opt = yes_ARG;
+
+commands[4].name = "help";
+commands[4].fn = help;
+commands[4].ro_count = 0;
+commands[4].rp_count = 0;
+commands[4].oo_count = 10;
+commands[4].op_count = 0;
+commands[4].desc = "";
+commands[4].usage = "help"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes ]";
+commands[4].optional_opt_args[0].opt = commandprofile_ARG;
+commands[4].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[4].optional_opt_args[1].opt = config_ARG;
+commands[4].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[4].optional_opt_args[2].opt = debug_ARG;
+commands[4].optional_opt_args[3].opt = driverloaded_ARG;
+commands[4].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[4].optional_opt_args[4].opt = help_ARG;
+commands[4].optional_opt_args[5].opt = profile_ARG;
+commands[4].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[4].optional_opt_args[6].opt = quiet_ARG;
+commands[4].optional_opt_args[7].opt = verbose_ARG;
+commands[4].optional_opt_args[8].opt = version_ARG;
+commands[4].optional_opt_args[9].opt = yes_ARG;
+
+commands[5].name = "fullreport";
+commands[5].fn = fullreport;
+commands[5].ro_count = 0;
+commands[5].rp_count = 0;
+commands[5].oo_count = 35;
+commands[5].op_count = 1;
+commands[5].desc = "";
+commands[5].usage = "fullreport"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --aligned, --all, --binary, --configreport String, --foreign, --ignorelockingfailure, --ignoreskippedcluster, --logonly, --nameprefixes, --noheadings, --nolocking, --nosuffix, --options String, --partial, --readonly, --reportformat String, --rows, --select String, --separator String, --shared, --sort String, --trustcache, --unbuffered, --units String, --unquoted ]"
+" [ VG ... ]";
+commands[5].optional_opt_args[0].opt = commandprofile_ARG;
+commands[5].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[5].optional_opt_args[1].opt = config_ARG;
+commands[5].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[5].optional_opt_args[2].opt = debug_ARG;
+commands[5].optional_opt_args[3].opt = driverloaded_ARG;
+commands[5].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[5].optional_opt_args[4].opt = help_ARG;
+commands[5].optional_opt_args[5].opt = profile_ARG;
+commands[5].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[5].optional_opt_args[6].opt = quiet_ARG;
+commands[5].optional_opt_args[7].opt = verbose_ARG;
+commands[5].optional_opt_args[8].opt = version_ARG;
+commands[5].optional_opt_args[9].opt = yes_ARG;
+commands[5].optional_opt_args[10].opt = aligned_ARG;
+commands[5].optional_opt_args[11].opt = all_ARG;
+commands[5].optional_opt_args[12].opt = binary_ARG;
+commands[5].optional_opt_args[13].opt = configreport_ARG;
+commands[5].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[5].optional_opt_args[14].opt = foreign_ARG;
+commands[5].optional_opt_args[15].opt = ignorelockingfailure_ARG;
+commands[5].optional_opt_args[16].opt = ignoreskippedcluster_ARG;
+commands[5].optional_opt_args[17].opt = logonly_ARG;
+commands[5].optional_opt_args[18].opt = nameprefixes_ARG;
+commands[5].optional_opt_args[19].opt = noheadings_ARG;
+commands[5].optional_opt_args[20].opt = nolocking_ARG;
+commands[5].optional_opt_args[21].opt = nosuffix_ARG;
+commands[5].optional_opt_args[22].opt = options_ARG;
+commands[5].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[5].optional_opt_args[23].opt = partial_ARG;
+commands[5].optional_opt_args[24].opt = readonly_ARG;
+commands[5].optional_opt_args[25].opt = reportformat_ARG;
+commands[5].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[5].optional_opt_args[26].opt = rows_ARG;
+commands[5].optional_opt_args[27].opt = select_ARG;
+commands[5].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[5].optional_opt_args[28].opt = separator_ARG;
+commands[5].optional_opt_args[28].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[5].optional_opt_args[29].opt = shared_ARG;
+commands[5].optional_opt_args[30].opt = sort_ARG;
+commands[5].optional_opt_args[30].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[5].optional_opt_args[31].opt = trustcache_ARG;
+commands[5].optional_opt_args[32].opt = unbuffered_ARG;
+commands[5].optional_opt_args[33].opt = units_ARG;
+commands[5].optional_opt_args[33].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[5].optional_opt_args[34].opt = unquoted_ARG;
+commands[5].optional_pos_args[0].pos = 1;
+commands[5].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[5].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[6].name = "lastlog";
+commands[6].fn = lastlog;
+commands[6].ro_count = 0;
+commands[6].rp_count = 0;
+commands[6].oo_count = 12;
+commands[6].op_count = 0;
+commands[6].desc = "";
+commands[6].usage = "lastlog"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --reportformat String, --select String ]";
+commands[6].optional_opt_args[0].opt = commandprofile_ARG;
+commands[6].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[6].optional_opt_args[1].opt = config_ARG;
+commands[6].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[6].optional_opt_args[2].opt = debug_ARG;
+commands[6].optional_opt_args[3].opt = driverloaded_ARG;
+commands[6].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[6].optional_opt_args[4].opt = help_ARG;
+commands[6].optional_opt_args[5].opt = profile_ARG;
+commands[6].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[6].optional_opt_args[6].opt = quiet_ARG;
+commands[6].optional_opt_args[7].opt = verbose_ARG;
+commands[6].optional_opt_args[8].opt = version_ARG;
+commands[6].optional_opt_args[9].opt = yes_ARG;
+commands[6].optional_opt_args[10].opt = reportformat_ARG;
+commands[6].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[6].optional_opt_args[11].opt = select_ARG;
+commands[6].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[7].name = "lvchange";
+commands[7].fn = lvchange;
+commands[7].ro_count = 20;
+commands[7].rp_count = 1;
+commands[7].oo_count = 20;
+commands[7].op_count = 0;
+commands[7].cmd_flags = CMD_FLAG_ONE_REQUIRED_OPT;
+commands[7].desc = "";
+commands[7].usage = "lvchange ( --addtag Tag, --deltag Tag, --alloc String, --contiguous Bool, --detachprofile, --metadataprofile String, --profile String, --permission, --readahead Number|String, --setactivationskip Bool, --errorwhenfull Bool, --discards String, --zero Bool, --cachemode String, --cachepolicy String, --cachesettings String, --minrecoveryrate Number, --maxrecoveryrate Number, --writebehind Number, --writemostly PV ) VG|LV|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --force, --ignorelockingfailure, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --sysinit, --test, --select String ]";
+commands[7].required_opt_args[0].opt = addtag_ARG;
+commands[7].required_opt_args[0].def.types = ARG_DEF_TYPE_TAG;
+commands[7].required_opt_args[1].opt = deltag_ARG;
+commands[7].required_opt_args[1].def.types = ARG_DEF_TYPE_TAG;
+commands[7].required_opt_args[2].opt = alloc_ARG;
+commands[7].required_opt_args[2].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[7].required_opt_args[3].opt = contiguous_ARG;
+commands[7].required_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[7].required_opt_args[4].opt = detachprofile_ARG;
+commands[7].required_opt_args[5].opt = metadataprofile_ARG;
+commands[7].required_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[7].required_opt_args[6].opt = profile_ARG;
+commands[7].required_opt_args[6].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[7].required_opt_args[7].opt = permission_ARG;
+commands[7].required_opt_args[8].opt = readahead_ARG;
+commands[7].required_opt_args[8].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[7].required_opt_args[9].opt = setactivationskip_ARG;
+commands[7].required_opt_args[9].def.types = ARG_DEF_TYPE_BOOL;
+commands[7].required_opt_args[10].opt = errorwhenfull_ARG;
+commands[7].required_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[7].required_opt_args[11].opt = discards_ARG;
+commands[7].required_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[7].required_opt_args[12].opt = zero_ARG;
+commands[7].required_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[7].required_opt_args[13].opt = cachemode_ARG;
+commands[7].required_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[7].required_opt_args[14].opt = cachepolicy_ARG;
+commands[7].required_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[7].required_opt_args[15].opt = cachesettings_ARG;
+commands[7].required_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[7].required_opt_args[16].opt = minrecoveryrate_ARG;
+commands[7].required_opt_args[16].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[7].required_opt_args[17].opt = maxrecoveryrate_ARG;
+commands[7].required_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[7].required_opt_args[18].opt = writebehind_ARG;
+commands[7].required_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[7].required_opt_args[19].opt = writemostly_ARG;
+commands[7].required_opt_args[19].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[7].required_pos_args[0].pos = 1;
+commands[7].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[7].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[7].optional_opt_args[0].opt = commandprofile_ARG;
+commands[7].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[7].optional_opt_args[1].opt = config_ARG;
+commands[7].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[7].optional_opt_args[2].opt = debug_ARG;
+commands[7].optional_opt_args[3].opt = driverloaded_ARG;
+commands[7].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[7].optional_opt_args[4].opt = help_ARG;
+commands[7].optional_opt_args[5].opt = profile_ARG;
+commands[7].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[7].optional_opt_args[6].opt = quiet_ARG;
+commands[7].optional_opt_args[7].opt = verbose_ARG;
+commands[7].optional_opt_args[8].opt = version_ARG;
+commands[7].optional_opt_args[9].opt = yes_ARG;
+commands[7].optional_opt_args[10].opt = autobackup_ARG;
+commands[7].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[7].optional_opt_args[11].opt = force_ARG;
+commands[7].optional_opt_args[12].opt = ignorelockingfailure_ARG;
+commands[7].optional_opt_args[13].opt = ignoremonitoring_ARG;
+commands[7].optional_opt_args[14].opt = ignoreskippedcluster_ARG;
+commands[7].optional_opt_args[15].opt = noudevsync_ARG;
+commands[7].optional_opt_args[16].opt = reportformat_ARG;
+commands[7].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[7].optional_opt_args[17].opt = sysinit_ARG;
+commands[7].optional_opt_args[18].opt = test_ARG;
+commands[7].optional_opt_args[19].opt = select_ARG;
+commands[7].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[8].name = "lvchange";
+commands[8].fn = lvchange;
+commands[8].ro_count = 1;
+commands[8].rp_count = 1;
+commands[8].oo_count = 40;
+commands[8].op_count = 0;
+commands[8].desc = "";
+commands[8].usage = "lvchange --resync VG|LV|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --addtag Tag, --deltag Tag, --alloc String, --contiguous Bool, --detachprofile, --metadataprofile String, --profile String, --permission, --readahead Number|String, --setactivationskip Bool, --errorwhenfull Bool, --discards String, --zero Bool, --cachemode String, --cachepolicy String, --cachesettings String, --minrecoveryrate Number, --maxrecoveryrate Number, --writebehind Number, --writemostly PV, --autobackup Bool, --force, --ignorelockingfailure, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --sysinit, --test, --select String ]";
+commands[8].required_opt_args[0].opt = resync_ARG;
+commands[8].required_pos_args[0].pos = 1;
+commands[8].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[8].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[8].optional_opt_args[0].opt = commandprofile_ARG;
+commands[8].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[8].optional_opt_args[1].opt = config_ARG;
+commands[8].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[8].optional_opt_args[2].opt = debug_ARG;
+commands[8].optional_opt_args[3].opt = driverloaded_ARG;
+commands[8].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[8].optional_opt_args[4].opt = help_ARG;
+commands[8].optional_opt_args[5].opt = profile_ARG;
+commands[8].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[8].optional_opt_args[6].opt = quiet_ARG;
+commands[8].optional_opt_args[7].opt = verbose_ARG;
+commands[8].optional_opt_args[8].opt = version_ARG;
+commands[8].optional_opt_args[9].opt = yes_ARG;
+commands[8].optional_opt_args[10].opt = addtag_ARG;
+commands[8].optional_opt_args[10].def.types = ARG_DEF_TYPE_TAG;
+commands[8].optional_opt_args[11].opt = deltag_ARG;
+commands[8].optional_opt_args[11].def.types = ARG_DEF_TYPE_TAG;
+commands[8].optional_opt_args[12].opt = alloc_ARG;
+commands[8].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[8].optional_opt_args[13].opt = contiguous_ARG;
+commands[8].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[8].optional_opt_args[14].opt = detachprofile_ARG;
+commands[8].optional_opt_args[15].opt = metadataprofile_ARG;
+commands[8].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[8].optional_opt_args[16].opt = profile_ARG;
+commands[8].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[8].optional_opt_args[17].opt = permission_ARG;
+commands[8].optional_opt_args[18].opt = readahead_ARG;
+commands[8].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[8].optional_opt_args[19].opt = setactivationskip_ARG;
+commands[8].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[8].optional_opt_args[20].opt = errorwhenfull_ARG;
+commands[8].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[8].optional_opt_args[21].opt = discards_ARG;
+commands[8].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[8].optional_opt_args[22].opt = zero_ARG;
+commands[8].optional_opt_args[22].def.types = ARG_DEF_TYPE_BOOL;
+commands[8].optional_opt_args[23].opt = cachemode_ARG;
+commands[8].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[8].optional_opt_args[24].opt = cachepolicy_ARG;
+commands[8].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[8].optional_opt_args[25].opt = cachesettings_ARG;
+commands[8].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[8].optional_opt_args[26].opt = minrecoveryrate_ARG;
+commands[8].optional_opt_args[26].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[8].optional_opt_args[27].opt = maxrecoveryrate_ARG;
+commands[8].optional_opt_args[27].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[8].optional_opt_args[28].opt = writebehind_ARG;
+commands[8].optional_opt_args[28].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[8].optional_opt_args[29].opt = writemostly_ARG;
+commands[8].optional_opt_args[29].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[8].optional_opt_args[30].opt = autobackup_ARG;
+commands[8].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[8].optional_opt_args[31].opt = force_ARG;
+commands[8].optional_opt_args[32].opt = ignorelockingfailure_ARG;
+commands[8].optional_opt_args[33].opt = ignoremonitoring_ARG;
+commands[8].optional_opt_args[34].opt = ignoreskippedcluster_ARG;
+commands[8].optional_opt_args[35].opt = noudevsync_ARG;
+commands[8].optional_opt_args[36].opt = reportformat_ARG;
+commands[8].optional_opt_args[36].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[8].optional_opt_args[37].opt = sysinit_ARG;
+commands[8].optional_opt_args[38].opt = test_ARG;
+commands[8].optional_opt_args[39].opt = select_ARG;
+commands[8].optional_opt_args[39].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[9].name = "lvchange";
+commands[9].fn = lvchange;
+commands[9].ro_count = 1;
+commands[9].rp_count = 1;
+commands[9].oo_count = 40;
+commands[9].op_count = 0;
+commands[9].desc = "";
+commands[9].usage = "lvchange --syncaction String VG|LV|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --addtag Tag, --deltag Tag, --alloc String, --contiguous Bool, --detachprofile, --metadataprofile String, --profile String, --permission, --readahead Number|String, --setactivationskip Bool, --errorwhenfull Bool, --discards String, --zero Bool, --cachemode String, --cachepolicy String, --cachesettings String, --minrecoveryrate Number, --maxrecoveryrate Number, --writebehind Number, --writemostly PV, --autobackup Bool, --force, --ignorelockingfailure, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --sysinit, --test, --select String ]";
+commands[9].required_opt_args[0].opt = syncaction_ARG;
+commands[9].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[9].required_pos_args[0].pos = 1;
+commands[9].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[9].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[9].optional_opt_args[0].opt = commandprofile_ARG;
+commands[9].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[9].optional_opt_args[1].opt = config_ARG;
+commands[9].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[9].optional_opt_args[2].opt = debug_ARG;
+commands[9].optional_opt_args[3].opt = driverloaded_ARG;
+commands[9].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[9].optional_opt_args[4].opt = help_ARG;
+commands[9].optional_opt_args[5].opt = profile_ARG;
+commands[9].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[9].optional_opt_args[6].opt = quiet_ARG;
+commands[9].optional_opt_args[7].opt = verbose_ARG;
+commands[9].optional_opt_args[8].opt = version_ARG;
+commands[9].optional_opt_args[9].opt = yes_ARG;
+commands[9].optional_opt_args[10].opt = addtag_ARG;
+commands[9].optional_opt_args[10].def.types = ARG_DEF_TYPE_TAG;
+commands[9].optional_opt_args[11].opt = deltag_ARG;
+commands[9].optional_opt_args[11].def.types = ARG_DEF_TYPE_TAG;
+commands[9].optional_opt_args[12].opt = alloc_ARG;
+commands[9].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[9].optional_opt_args[13].opt = contiguous_ARG;
+commands[9].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[9].optional_opt_args[14].opt = detachprofile_ARG;
+commands[9].optional_opt_args[15].opt = metadataprofile_ARG;
+commands[9].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[9].optional_opt_args[16].opt = profile_ARG;
+commands[9].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[9].optional_opt_args[17].opt = permission_ARG;
+commands[9].optional_opt_args[18].opt = readahead_ARG;
+commands[9].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[9].optional_opt_args[19].opt = setactivationskip_ARG;
+commands[9].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[9].optional_opt_args[20].opt = errorwhenfull_ARG;
+commands[9].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[9].optional_opt_args[21].opt = discards_ARG;
+commands[9].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[9].optional_opt_args[22].opt = zero_ARG;
+commands[9].optional_opt_args[22].def.types = ARG_DEF_TYPE_BOOL;
+commands[9].optional_opt_args[23].opt = cachemode_ARG;
+commands[9].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[9].optional_opt_args[24].opt = cachepolicy_ARG;
+commands[9].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[9].optional_opt_args[25].opt = cachesettings_ARG;
+commands[9].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[9].optional_opt_args[26].opt = minrecoveryrate_ARG;
+commands[9].optional_opt_args[26].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[9].optional_opt_args[27].opt = maxrecoveryrate_ARG;
+commands[9].optional_opt_args[27].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[9].optional_opt_args[28].opt = writebehind_ARG;
+commands[9].optional_opt_args[28].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[9].optional_opt_args[29].opt = writemostly_ARG;
+commands[9].optional_opt_args[29].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[9].optional_opt_args[30].opt = autobackup_ARG;
+commands[9].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[9].optional_opt_args[31].opt = force_ARG;
+commands[9].optional_opt_args[32].opt = ignorelockingfailure_ARG;
+commands[9].optional_opt_args[33].opt = ignoremonitoring_ARG;
+commands[9].optional_opt_args[34].opt = ignoreskippedcluster_ARG;
+commands[9].optional_opt_args[35].opt = noudevsync_ARG;
+commands[9].optional_opt_args[36].opt = reportformat_ARG;
+commands[9].optional_opt_args[36].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[9].optional_opt_args[37].opt = sysinit_ARG;
+commands[9].optional_opt_args[38].opt = test_ARG;
+commands[9].optional_opt_args[39].opt = select_ARG;
+commands[9].optional_opt_args[39].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[10].name = "lvchange";
+commands[10].fn = lvchange;
+commands[10].ro_count = 1;
+commands[10].rp_count = 1;
+commands[10].oo_count = 40;
+commands[10].op_count = 0;
+commands[10].desc = "";
+commands[10].usage = "lvchange --rebuild PV VG|LV|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --addtag Tag, --deltag Tag, --alloc String, --contiguous Bool, --detachprofile, --metadataprofile String, --profile String, --permission, --readahead Number|String, --setactivationskip Bool, --errorwhenfull Bool, --discards String, --zero Bool, --cachemode String, --cachepolicy String, --cachesettings String, --minrecoveryrate Number, --maxrecoveryrate Number, --writebehind Number, --writemostly PV, --autobackup Bool, --force, --ignorelockingfailure, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --sysinit, --test, --select String ]";
+commands[10].required_opt_args[0].opt = rebuild_ARG;
+commands[10].required_opt_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[10].required_pos_args[0].pos = 1;
+commands[10].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[10].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[10].optional_opt_args[0].opt = commandprofile_ARG;
+commands[10].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[10].optional_opt_args[1].opt = config_ARG;
+commands[10].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[10].optional_opt_args[2].opt = debug_ARG;
+commands[10].optional_opt_args[3].opt = driverloaded_ARG;
+commands[10].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[10].optional_opt_args[4].opt = help_ARG;
+commands[10].optional_opt_args[5].opt = profile_ARG;
+commands[10].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[10].optional_opt_args[6].opt = quiet_ARG;
+commands[10].optional_opt_args[7].opt = verbose_ARG;
+commands[10].optional_opt_args[8].opt = version_ARG;
+commands[10].optional_opt_args[9].opt = yes_ARG;
+commands[10].optional_opt_args[10].opt = addtag_ARG;
+commands[10].optional_opt_args[10].def.types = ARG_DEF_TYPE_TAG;
+commands[10].optional_opt_args[11].opt = deltag_ARG;
+commands[10].optional_opt_args[11].def.types = ARG_DEF_TYPE_TAG;
+commands[10].optional_opt_args[12].opt = alloc_ARG;
+commands[10].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[10].optional_opt_args[13].opt = contiguous_ARG;
+commands[10].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[10].optional_opt_args[14].opt = detachprofile_ARG;
+commands[10].optional_opt_args[15].opt = metadataprofile_ARG;
+commands[10].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[10].optional_opt_args[16].opt = profile_ARG;
+commands[10].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[10].optional_opt_args[17].opt = permission_ARG;
+commands[10].optional_opt_args[18].opt = readahead_ARG;
+commands[10].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[10].optional_opt_args[19].opt = setactivationskip_ARG;
+commands[10].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[10].optional_opt_args[20].opt = errorwhenfull_ARG;
+commands[10].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[10].optional_opt_args[21].opt = discards_ARG;
+commands[10].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[10].optional_opt_args[22].opt = zero_ARG;
+commands[10].optional_opt_args[22].def.types = ARG_DEF_TYPE_BOOL;
+commands[10].optional_opt_args[23].opt = cachemode_ARG;
+commands[10].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[10].optional_opt_args[24].opt = cachepolicy_ARG;
+commands[10].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[10].optional_opt_args[25].opt = cachesettings_ARG;
+commands[10].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[10].optional_opt_args[26].opt = minrecoveryrate_ARG;
+commands[10].optional_opt_args[26].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[10].optional_opt_args[27].opt = maxrecoveryrate_ARG;
+commands[10].optional_opt_args[27].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[10].optional_opt_args[28].opt = writebehind_ARG;
+commands[10].optional_opt_args[28].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[10].optional_opt_args[29].opt = writemostly_ARG;
+commands[10].optional_opt_args[29].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[10].optional_opt_args[30].opt = autobackup_ARG;
+commands[10].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[10].optional_opt_args[31].opt = force_ARG;
+commands[10].optional_opt_args[32].opt = ignorelockingfailure_ARG;
+commands[10].optional_opt_args[33].opt = ignoremonitoring_ARG;
+commands[10].optional_opt_args[34].opt = ignoreskippedcluster_ARG;
+commands[10].optional_opt_args[35].opt = noudevsync_ARG;
+commands[10].optional_opt_args[36].opt = reportformat_ARG;
+commands[10].optional_opt_args[36].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[10].optional_opt_args[37].opt = sysinit_ARG;
+commands[10].optional_opt_args[38].opt = test_ARG;
+commands[10].optional_opt_args[39].opt = select_ARG;
+commands[10].optional_opt_args[39].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[11].name = "lvchange";
+commands[11].fn = lvchange;
+commands[11].ro_count = 1;
+commands[11].rp_count = 1;
+commands[11].oo_count = 43;
+commands[11].op_count = 0;
+commands[11].desc = "";
+commands[11].usage = "lvchange --activate String VG|LV|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --activationmode String, --partial, --ignoreactivationskip, --addtag Tag, --deltag Tag, --alloc String, --contiguous Bool, --detachprofile, --metadataprofile String, --profile String, --permission, --readahead Number|String, --setactivationskip Bool, --errorwhenfull Bool, --discards String, --zero Bool, --cachemode String, --cachepolicy String, --cachesettings String, --minrecoveryrate Number, --maxrecoveryrate Number, --writebehind Number, --writemostly PV, --autobackup Bool, --force, --ignorelockingfailure, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --sysinit, --test, --select String ]";
+commands[11].required_opt_args[0].opt = activate_ARG;
+commands[11].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].required_pos_args[0].pos = 1;
+commands[11].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[11].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[11].optional_opt_args[0].opt = commandprofile_ARG;
+commands[11].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[1].opt = config_ARG;
+commands[11].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[2].opt = debug_ARG;
+commands[11].optional_opt_args[3].opt = driverloaded_ARG;
+commands[11].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[11].optional_opt_args[4].opt = help_ARG;
+commands[11].optional_opt_args[5].opt = profile_ARG;
+commands[11].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[6].opt = quiet_ARG;
+commands[11].optional_opt_args[7].opt = verbose_ARG;
+commands[11].optional_opt_args[8].opt = version_ARG;
+commands[11].optional_opt_args[9].opt = yes_ARG;
+commands[11].optional_opt_args[10].opt = activationmode_ARG;
+commands[11].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[11].opt = partial_ARG;
+commands[11].optional_opt_args[12].opt = ignoreactivationskip_ARG;
+commands[11].optional_opt_args[13].opt = addtag_ARG;
+commands[11].optional_opt_args[13].def.types = ARG_DEF_TYPE_TAG;
+commands[11].optional_opt_args[14].opt = deltag_ARG;
+commands[11].optional_opt_args[14].def.types = ARG_DEF_TYPE_TAG;
+commands[11].optional_opt_args[15].opt = alloc_ARG;
+commands[11].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[16].opt = contiguous_ARG;
+commands[11].optional_opt_args[16].def.types = ARG_DEF_TYPE_BOOL;
+commands[11].optional_opt_args[17].opt = detachprofile_ARG;
+commands[11].optional_opt_args[18].opt = metadataprofile_ARG;
+commands[11].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[19].opt = profile_ARG;
+commands[11].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[20].opt = permission_ARG;
+commands[11].optional_opt_args[21].opt = readahead_ARG;
+commands[11].optional_opt_args[21].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[22].opt = setactivationskip_ARG;
+commands[11].optional_opt_args[22].def.types = ARG_DEF_TYPE_BOOL;
+commands[11].optional_opt_args[23].opt = errorwhenfull_ARG;
+commands[11].optional_opt_args[23].def.types = ARG_DEF_TYPE_BOOL;
+commands[11].optional_opt_args[24].opt = discards_ARG;
+commands[11].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[25].opt = zero_ARG;
+commands[11].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+commands[11].optional_opt_args[26].opt = cachemode_ARG;
+commands[11].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[27].opt = cachepolicy_ARG;
+commands[11].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[28].opt = cachesettings_ARG;
+commands[11].optional_opt_args[28].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[29].opt = minrecoveryrate_ARG;
+commands[11].optional_opt_args[29].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[11].optional_opt_args[30].opt = maxrecoveryrate_ARG;
+commands[11].optional_opt_args[30].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[11].optional_opt_args[31].opt = writebehind_ARG;
+commands[11].optional_opt_args[31].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[11].optional_opt_args[32].opt = writemostly_ARG;
+commands[11].optional_opt_args[32].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[11].optional_opt_args[33].opt = autobackup_ARG;
+commands[11].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[11].optional_opt_args[34].opt = force_ARG;
+commands[11].optional_opt_args[35].opt = ignorelockingfailure_ARG;
+commands[11].optional_opt_args[36].opt = ignoremonitoring_ARG;
+commands[11].optional_opt_args[37].opt = ignoreskippedcluster_ARG;
+commands[11].optional_opt_args[38].opt = noudevsync_ARG;
+commands[11].optional_opt_args[39].opt = reportformat_ARG;
+commands[11].optional_opt_args[39].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[11].optional_opt_args[40].opt = sysinit_ARG;
+commands[11].optional_opt_args[41].opt = test_ARG;
+commands[11].optional_opt_args[42].opt = select_ARG;
+commands[11].optional_opt_args[42].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[12].name = "lvchange";
+commands[12].fn = lvchange;
+commands[12].ro_count = 1;
+commands[12].rp_count = 1;
+commands[12].oo_count = 40;
+commands[12].op_count = 0;
+commands[12].desc = "";
+commands[12].usage = "lvchange --refresh VG|LV|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --addtag Tag, --deltag Tag, --alloc String, --contiguous Bool, --detachprofile, --metadataprofile String, --profile String, --permission, --readahead Number|String, --setactivationskip Bool, --errorwhenfull Bool, --discards String, --zero Bool, --cachemode String, --cachepolicy String, --cachesettings String, --minrecoveryrate Number, --maxrecoveryrate Number, --writebehind Number, --writemostly PV, --autobackup Bool, --force, --ignorelockingfailure, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --sysinit, --test, --select String ]";
+commands[12].required_opt_args[0].opt = refresh_ARG;
+commands[12].required_pos_args[0].pos = 1;
+commands[12].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[12].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[12].optional_opt_args[0].opt = commandprofile_ARG;
+commands[12].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[12].optional_opt_args[1].opt = config_ARG;
+commands[12].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[12].optional_opt_args[2].opt = debug_ARG;
+commands[12].optional_opt_args[3].opt = driverloaded_ARG;
+commands[12].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[12].optional_opt_args[4].opt = help_ARG;
+commands[12].optional_opt_args[5].opt = profile_ARG;
+commands[12].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[12].optional_opt_args[6].opt = quiet_ARG;
+commands[12].optional_opt_args[7].opt = verbose_ARG;
+commands[12].optional_opt_args[8].opt = version_ARG;
+commands[12].optional_opt_args[9].opt = yes_ARG;
+commands[12].optional_opt_args[10].opt = addtag_ARG;
+commands[12].optional_opt_args[10].def.types = ARG_DEF_TYPE_TAG;
+commands[12].optional_opt_args[11].opt = deltag_ARG;
+commands[12].optional_opt_args[11].def.types = ARG_DEF_TYPE_TAG;
+commands[12].optional_opt_args[12].opt = alloc_ARG;
+commands[12].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[12].optional_opt_args[13].opt = contiguous_ARG;
+commands[12].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[12].optional_opt_args[14].opt = detachprofile_ARG;
+commands[12].optional_opt_args[15].opt = metadataprofile_ARG;
+commands[12].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[12].optional_opt_args[16].opt = profile_ARG;
+commands[12].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[12].optional_opt_args[17].opt = permission_ARG;
+commands[12].optional_opt_args[18].opt = readahead_ARG;
+commands[12].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[12].optional_opt_args[19].opt = setactivationskip_ARG;
+commands[12].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[12].optional_opt_args[20].opt = errorwhenfull_ARG;
+commands[12].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[12].optional_opt_args[21].opt = discards_ARG;
+commands[12].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[12].optional_opt_args[22].opt = zero_ARG;
+commands[12].optional_opt_args[22].def.types = ARG_DEF_TYPE_BOOL;
+commands[12].optional_opt_args[23].opt = cachemode_ARG;
+commands[12].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[12].optional_opt_args[24].opt = cachepolicy_ARG;
+commands[12].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[12].optional_opt_args[25].opt = cachesettings_ARG;
+commands[12].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[12].optional_opt_args[26].opt = minrecoveryrate_ARG;
+commands[12].optional_opt_args[26].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[12].optional_opt_args[27].opt = maxrecoveryrate_ARG;
+commands[12].optional_opt_args[27].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[12].optional_opt_args[28].opt = writebehind_ARG;
+commands[12].optional_opt_args[28].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[12].optional_opt_args[29].opt = writemostly_ARG;
+commands[12].optional_opt_args[29].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[12].optional_opt_args[30].opt = autobackup_ARG;
+commands[12].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[12].optional_opt_args[31].opt = force_ARG;
+commands[12].optional_opt_args[32].opt = ignorelockingfailure_ARG;
+commands[12].optional_opt_args[33].opt = ignoremonitoring_ARG;
+commands[12].optional_opt_args[34].opt = ignoreskippedcluster_ARG;
+commands[12].optional_opt_args[35].opt = noudevsync_ARG;
+commands[12].optional_opt_args[36].opt = reportformat_ARG;
+commands[12].optional_opt_args[36].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[12].optional_opt_args[37].opt = sysinit_ARG;
+commands[12].optional_opt_args[38].opt = test_ARG;
+commands[12].optional_opt_args[39].opt = select_ARG;
+commands[12].optional_opt_args[39].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[13].name = "lvchange";
+commands[13].fn = lvchange;
+commands[13].ro_count = 1;
+commands[13].rp_count = 1;
+commands[13].oo_count = 41;
+commands[13].op_count = 0;
+commands[13].desc = "";
+commands[13].usage = "lvchange --monitor Bool VG|LV|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poll Bool, --addtag Tag, --deltag Tag, --alloc String, --contiguous Bool, --detachprofile, --metadataprofile String, --profile String, --permission, --readahead Number|String, --setactivationskip Bool, --errorwhenfull Bool, --discards String, --zero Bool, --cachemode String, --cachepolicy String, --cachesettings String, --minrecoveryrate Number, --maxrecoveryrate Number, --writebehind Number, --writemostly PV, --autobackup Bool, --force, --ignorelockingfailure, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --sysinit, --test, --select String ]";
+commands[13].required_opt_args[0].opt = monitor_ARG;
+commands[13].required_opt_args[0].def.types = ARG_DEF_TYPE_BOOL;
+commands[13].required_pos_args[0].pos = 1;
+commands[13].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[13].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[13].optional_opt_args[0].opt = commandprofile_ARG;
+commands[13].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[13].optional_opt_args[1].opt = config_ARG;
+commands[13].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[13].optional_opt_args[2].opt = debug_ARG;
+commands[13].optional_opt_args[3].opt = driverloaded_ARG;
+commands[13].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[13].optional_opt_args[4].opt = help_ARG;
+commands[13].optional_opt_args[5].opt = profile_ARG;
+commands[13].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[13].optional_opt_args[6].opt = quiet_ARG;
+commands[13].optional_opt_args[7].opt = verbose_ARG;
+commands[13].optional_opt_args[8].opt = version_ARG;
+commands[13].optional_opt_args[9].opt = yes_ARG;
+commands[13].optional_opt_args[10].opt = poll_ARG;
+commands[13].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[13].optional_opt_args[11].opt = addtag_ARG;
+commands[13].optional_opt_args[11].def.types = ARG_DEF_TYPE_TAG;
+commands[13].optional_opt_args[12].opt = deltag_ARG;
+commands[13].optional_opt_args[12].def.types = ARG_DEF_TYPE_TAG;
+commands[13].optional_opt_args[13].opt = alloc_ARG;
+commands[13].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[13].optional_opt_args[14].opt = contiguous_ARG;
+commands[13].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[13].optional_opt_args[15].opt = detachprofile_ARG;
+commands[13].optional_opt_args[16].opt = metadataprofile_ARG;
+commands[13].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[13].optional_opt_args[17].opt = profile_ARG;
+commands[13].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[13].optional_opt_args[18].opt = permission_ARG;
+commands[13].optional_opt_args[19].opt = readahead_ARG;
+commands[13].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[13].optional_opt_args[20].opt = setactivationskip_ARG;
+commands[13].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[13].optional_opt_args[21].opt = errorwhenfull_ARG;
+commands[13].optional_opt_args[21].def.types = ARG_DEF_TYPE_BOOL;
+commands[13].optional_opt_args[22].opt = discards_ARG;
+commands[13].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[13].optional_opt_args[23].opt = zero_ARG;
+commands[13].optional_opt_args[23].def.types = ARG_DEF_TYPE_BOOL;
+commands[13].optional_opt_args[24].opt = cachemode_ARG;
+commands[13].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[13].optional_opt_args[25].opt = cachepolicy_ARG;
+commands[13].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[13].optional_opt_args[26].opt = cachesettings_ARG;
+commands[13].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[13].optional_opt_args[27].opt = minrecoveryrate_ARG;
+commands[13].optional_opt_args[27].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[13].optional_opt_args[28].opt = maxrecoveryrate_ARG;
+commands[13].optional_opt_args[28].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[13].optional_opt_args[29].opt = writebehind_ARG;
+commands[13].optional_opt_args[29].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[13].optional_opt_args[30].opt = writemostly_ARG;
+commands[13].optional_opt_args[30].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[13].optional_opt_args[31].opt = autobackup_ARG;
+commands[13].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[13].optional_opt_args[32].opt = force_ARG;
+commands[13].optional_opt_args[33].opt = ignorelockingfailure_ARG;
+commands[13].optional_opt_args[34].opt = ignoremonitoring_ARG;
+commands[13].optional_opt_args[35].opt = ignoreskippedcluster_ARG;
+commands[13].optional_opt_args[36].opt = noudevsync_ARG;
+commands[13].optional_opt_args[37].opt = reportformat_ARG;
+commands[13].optional_opt_args[37].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[13].optional_opt_args[38].opt = sysinit_ARG;
+commands[13].optional_opt_args[39].opt = test_ARG;
+commands[13].optional_opt_args[40].opt = select_ARG;
+commands[13].optional_opt_args[40].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[14].name = "lvchange";
+commands[14].fn = lvchange;
+commands[14].ro_count = 1;
+commands[14].rp_count = 1;
+commands[14].oo_count = 41;
+commands[14].op_count = 0;
+commands[14].desc = "";
+commands[14].usage = "lvchange --poll Bool VG|LV|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --monitor Bool, --addtag Tag, --deltag Tag, --alloc String, --contiguous Bool, --detachprofile, --metadataprofile String, --profile String, --permission, --readahead Number|String, --setactivationskip Bool, --errorwhenfull Bool, --discards String, --zero Bool, --cachemode String, --cachepolicy String, --cachesettings String, --minrecoveryrate Number, --maxrecoveryrate Number, --writebehind Number, --writemostly PV, --autobackup Bool, --force, --ignorelockingfailure, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --sysinit, --test, --select String ]";
+commands[14].required_opt_args[0].opt = poll_ARG;
+commands[14].required_opt_args[0].def.types = ARG_DEF_TYPE_BOOL;
+commands[14].required_pos_args[0].pos = 1;
+commands[14].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[14].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[14].optional_opt_args[0].opt = commandprofile_ARG;
+commands[14].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[14].optional_opt_args[1].opt = config_ARG;
+commands[14].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[14].optional_opt_args[2].opt = debug_ARG;
+commands[14].optional_opt_args[3].opt = driverloaded_ARG;
+commands[14].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[14].optional_opt_args[4].opt = help_ARG;
+commands[14].optional_opt_args[5].opt = profile_ARG;
+commands[14].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[14].optional_opt_args[6].opt = quiet_ARG;
+commands[14].optional_opt_args[7].opt = verbose_ARG;
+commands[14].optional_opt_args[8].opt = version_ARG;
+commands[14].optional_opt_args[9].opt = yes_ARG;
+commands[14].optional_opt_args[10].opt = monitor_ARG;
+commands[14].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[14].optional_opt_args[11].opt = addtag_ARG;
+commands[14].optional_opt_args[11].def.types = ARG_DEF_TYPE_TAG;
+commands[14].optional_opt_args[12].opt = deltag_ARG;
+commands[14].optional_opt_args[12].def.types = ARG_DEF_TYPE_TAG;
+commands[14].optional_opt_args[13].opt = alloc_ARG;
+commands[14].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[14].optional_opt_args[14].opt = contiguous_ARG;
+commands[14].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[14].optional_opt_args[15].opt = detachprofile_ARG;
+commands[14].optional_opt_args[16].opt = metadataprofile_ARG;
+commands[14].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[14].optional_opt_args[17].opt = profile_ARG;
+commands[14].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[14].optional_opt_args[18].opt = permission_ARG;
+commands[14].optional_opt_args[19].opt = readahead_ARG;
+commands[14].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[14].optional_opt_args[20].opt = setactivationskip_ARG;
+commands[14].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[14].optional_opt_args[21].opt = errorwhenfull_ARG;
+commands[14].optional_opt_args[21].def.types = ARG_DEF_TYPE_BOOL;
+commands[14].optional_opt_args[22].opt = discards_ARG;
+commands[14].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[14].optional_opt_args[23].opt = zero_ARG;
+commands[14].optional_opt_args[23].def.types = ARG_DEF_TYPE_BOOL;
+commands[14].optional_opt_args[24].opt = cachemode_ARG;
+commands[14].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[14].optional_opt_args[25].opt = cachepolicy_ARG;
+commands[14].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[14].optional_opt_args[26].opt = cachesettings_ARG;
+commands[14].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[14].optional_opt_args[27].opt = minrecoveryrate_ARG;
+commands[14].optional_opt_args[27].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[14].optional_opt_args[28].opt = maxrecoveryrate_ARG;
+commands[14].optional_opt_args[28].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[14].optional_opt_args[29].opt = writebehind_ARG;
+commands[14].optional_opt_args[29].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[14].optional_opt_args[30].opt = writemostly_ARG;
+commands[14].optional_opt_args[30].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[14].optional_opt_args[31].opt = autobackup_ARG;
+commands[14].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[14].optional_opt_args[32].opt = force_ARG;
+commands[14].optional_opt_args[33].opt = ignorelockingfailure_ARG;
+commands[14].optional_opt_args[34].opt = ignoremonitoring_ARG;
+commands[14].optional_opt_args[35].opt = ignoreskippedcluster_ARG;
+commands[14].optional_opt_args[36].opt = noudevsync_ARG;
+commands[14].optional_opt_args[37].opt = reportformat_ARG;
+commands[14].optional_opt_args[37].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[14].optional_opt_args[38].opt = sysinit_ARG;
+commands[14].optional_opt_args[39].opt = test_ARG;
+commands[14].optional_opt_args[40].opt = select_ARG;
+commands[14].optional_opt_args[40].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[15].name = "lvchange";
+commands[15].fn = lvchange;
+commands[15].ro_count = 1;
+commands[15].rp_count = 1;
+commands[15].oo_count = 42;
+commands[15].op_count = 0;
+commands[15].desc = "";
+commands[15].usage = "lvchange --persistent Bool VG|LV|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --minor Number, --major Number, --addtag Tag, --deltag Tag, --alloc String, --contiguous Bool, --detachprofile, --metadataprofile String, --profile String, --permission, --readahead Number|String, --setactivationskip Bool, --errorwhenfull Bool, --discards String, --zero Bool, --cachemode String, --cachepolicy String, --cachesettings String, --minrecoveryrate Number, --maxrecoveryrate Number, --writebehind Number, --writemostly PV, --autobackup Bool, --force, --ignorelockingfailure, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --sysinit, --test, --select String ]";
+commands[15].required_opt_args[0].opt = persistent_ARG;
+commands[15].required_opt_args[0].def.types = ARG_DEF_TYPE_BOOL;
+commands[15].required_pos_args[0].pos = 1;
+commands[15].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[15].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[15].optional_opt_args[0].opt = commandprofile_ARG;
+commands[15].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[15].optional_opt_args[1].opt = config_ARG;
+commands[15].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[15].optional_opt_args[2].opt = debug_ARG;
+commands[15].optional_opt_args[3].opt = driverloaded_ARG;
+commands[15].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[15].optional_opt_args[4].opt = help_ARG;
+commands[15].optional_opt_args[5].opt = profile_ARG;
+commands[15].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[15].optional_opt_args[6].opt = quiet_ARG;
+commands[15].optional_opt_args[7].opt = verbose_ARG;
+commands[15].optional_opt_args[8].opt = version_ARG;
+commands[15].optional_opt_args[9].opt = yes_ARG;
+commands[15].optional_opt_args[10].opt = minor_ARG;
+commands[15].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[15].optional_opt_args[11].opt = major_ARG;
+commands[15].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[15].optional_opt_args[12].opt = addtag_ARG;
+commands[15].optional_opt_args[12].def.types = ARG_DEF_TYPE_TAG;
+commands[15].optional_opt_args[13].opt = deltag_ARG;
+commands[15].optional_opt_args[13].def.types = ARG_DEF_TYPE_TAG;
+commands[15].optional_opt_args[14].opt = alloc_ARG;
+commands[15].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[15].optional_opt_args[15].opt = contiguous_ARG;
+commands[15].optional_opt_args[15].def.types = ARG_DEF_TYPE_BOOL;
+commands[15].optional_opt_args[16].opt = detachprofile_ARG;
+commands[15].optional_opt_args[17].opt = metadataprofile_ARG;
+commands[15].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[15].optional_opt_args[18].opt = profile_ARG;
+commands[15].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[15].optional_opt_args[19].opt = permission_ARG;
+commands[15].optional_opt_args[20].opt = readahead_ARG;
+commands[15].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[15].optional_opt_args[21].opt = setactivationskip_ARG;
+commands[15].optional_opt_args[21].def.types = ARG_DEF_TYPE_BOOL;
+commands[15].optional_opt_args[22].opt = errorwhenfull_ARG;
+commands[15].optional_opt_args[22].def.types = ARG_DEF_TYPE_BOOL;
+commands[15].optional_opt_args[23].opt = discards_ARG;
+commands[15].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[15].optional_opt_args[24].opt = zero_ARG;
+commands[15].optional_opt_args[24].def.types = ARG_DEF_TYPE_BOOL;
+commands[15].optional_opt_args[25].opt = cachemode_ARG;
+commands[15].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[15].optional_opt_args[26].opt = cachepolicy_ARG;
+commands[15].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[15].optional_opt_args[27].opt = cachesettings_ARG;
+commands[15].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[15].optional_opt_args[28].opt = minrecoveryrate_ARG;
+commands[15].optional_opt_args[28].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[15].optional_opt_args[29].opt = maxrecoveryrate_ARG;
+commands[15].optional_opt_args[29].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[15].optional_opt_args[30].opt = writebehind_ARG;
+commands[15].optional_opt_args[30].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[15].optional_opt_args[31].opt = writemostly_ARG;
+commands[15].optional_opt_args[31].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[15].optional_opt_args[32].opt = autobackup_ARG;
+commands[15].optional_opt_args[32].def.types = ARG_DEF_TYPE_BOOL;
+commands[15].optional_opt_args[33].opt = force_ARG;
+commands[15].optional_opt_args[34].opt = ignorelockingfailure_ARG;
+commands[15].optional_opt_args[35].opt = ignoremonitoring_ARG;
+commands[15].optional_opt_args[36].opt = ignoreskippedcluster_ARG;
+commands[15].optional_opt_args[37].opt = noudevsync_ARG;
+commands[15].optional_opt_args[38].opt = reportformat_ARG;
+commands[15].optional_opt_args[38].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[15].optional_opt_args[39].opt = sysinit_ARG;
+commands[15].optional_opt_args[40].opt = test_ARG;
+commands[15].optional_opt_args[41].opt = select_ARG;
+commands[15].optional_opt_args[41].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[16].name = "lvconvert";
+commands[16].fn = lvconvert;
+commands[16].ro_count = 1;
+commands[16].rp_count = 1;
+commands[16].oo_count = 12;
+commands[16].op_count = 0;
+commands[16].desc = "Merge LV that was previously split from a mirror. Merge thin LV into its origin LV. Merge COW snapshot LV into its origin.";
+commands[16].usage = "lvconvert --merge VG|LV_linear|LV_striped|LV_snapshot|LV_raid|LV_thin|Tag ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --background, --interval Number ]";
+commands[16].required_opt_args[0].opt = merge_ARG;
+commands[16].required_pos_args[0].pos = 1;
+commands[16].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG;
+commands[16].required_pos_args[0].def.lv_types = ARG_DEF_LV_LINEAR|ARG_DEF_LV_STRIPED|ARG_DEF_LV_SNAPSHOT|ARG_DEF_LV_RAID|ARG_DEF_LV_THIN;
+commands[16].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[16].optional_opt_args[0].opt = commandprofile_ARG;
+commands[16].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[16].optional_opt_args[1].opt = config_ARG;
+commands[16].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[16].optional_opt_args[2].opt = debug_ARG;
+commands[16].optional_opt_args[3].opt = driverloaded_ARG;
+commands[16].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[16].optional_opt_args[4].opt = help_ARG;
+commands[16].optional_opt_args[5].opt = profile_ARG;
+commands[16].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[16].optional_opt_args[6].opt = quiet_ARG;
+commands[16].optional_opt_args[7].opt = verbose_ARG;
+commands[16].optional_opt_args[8].opt = version_ARG;
+commands[16].optional_opt_args[9].opt = yes_ARG;
+commands[16].optional_opt_args[10].opt = background_ARG;
+commands[16].optional_opt_args[11].opt = interval_ARG;
+commands[16].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+
+commands[17].name = "lvconvert";
+commands[17].fn = lvconvert;
+commands[17].ro_count = 1;
+commands[17].rp_count = 2;
+commands[17].oo_count = 18;
+commands[17].op_count = 0;
+commands[17].desc = "Combine LV with a previously split snapshot LV.";
+commands[17].usage = "lvconvert --type snapshot LV_linear|LV_striped|LV_raid LV_snapshot"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --chunksize Number, --zero Bool, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[17].required_opt_args[0].opt = type_ARG;
+commands[17].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[17].required_opt_args[0].def.str = "snapshot";
+commands[17].required_pos_args[0].pos = 1;
+commands[17].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[17].required_pos_args[0].def.lv_types = ARG_DEF_LV_LINEAR|ARG_DEF_LV_STRIPED|ARG_DEF_LV_RAID;
+commands[17].required_pos_args[1].pos = 2;
+commands[17].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[17].required_pos_args[1].def.lv_types = ARG_DEF_LV_SNAPSHOT;
+commands[17].optional_opt_args[0].opt = commandprofile_ARG;
+commands[17].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[17].optional_opt_args[1].opt = config_ARG;
+commands[17].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[17].optional_opt_args[2].opt = debug_ARG;
+commands[17].optional_opt_args[3].opt = driverloaded_ARG;
+commands[17].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[17].optional_opt_args[4].opt = help_ARG;
+commands[17].optional_opt_args[5].opt = profile_ARG;
+commands[17].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[17].optional_opt_args[6].opt = quiet_ARG;
+commands[17].optional_opt_args[7].opt = verbose_ARG;
+commands[17].optional_opt_args[8].opt = version_ARG;
+commands[17].optional_opt_args[9].opt = yes_ARG;
+commands[17].optional_opt_args[10].opt = chunksize_ARG;
+commands[17].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[17].optional_opt_args[11].opt = zero_ARG;
+commands[17].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[17].optional_opt_args[12].opt = alloc_ARG;
+commands[17].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[17].optional_opt_args[13].opt = background_ARG;
+commands[17].optional_opt_args[14].opt = force_ARG;
+commands[17].optional_opt_args[15].opt = noudevsync_ARG;
+commands[17].optional_opt_args[16].opt = test_ARG;
+commands[17].optional_opt_args[17].opt = usepolicies_ARG;
+
+commands[18].name = "lvconvert";
+commands[18].fn = lvconvert;
+commands[18].ro_count = 2;
+commands[18].rp_count = 1;
+commands[18].oo_count = 22;
+commands[18].op_count = 0;
+commands[18].desc = "Convert LV to type thin with an external origin.";
+commands[18].usage = "lvconvert --type thin --thinpool LV LV_linear|LV_striped|LV_raid"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --originname LV_new, --poolmetadata LV, --poolmetadatasize Number, --poolmetadataspare Bool, --readahead Number|String, --chunksize Number, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[18].required_opt_args[0].opt = type_ARG;
+commands[18].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[18].required_opt_args[0].def.str = "thin";
+commands[18].required_opt_args[1].opt = thinpool_ARG;
+commands[18].required_opt_args[1].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[18].required_pos_args[0].pos = 1;
+commands[18].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[18].required_pos_args[0].def.lv_types = ARG_DEF_LV_LINEAR|ARG_DEF_LV_STRIPED|ARG_DEF_LV_RAID;
+commands[18].optional_opt_args[0].opt = commandprofile_ARG;
+commands[18].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[18].optional_opt_args[1].opt = config_ARG;
+commands[18].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[18].optional_opt_args[2].opt = debug_ARG;
+commands[18].optional_opt_args[3].opt = driverloaded_ARG;
+commands[18].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[18].optional_opt_args[4].opt = help_ARG;
+commands[18].optional_opt_args[5].opt = profile_ARG;
+commands[18].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[18].optional_opt_args[6].opt = quiet_ARG;
+commands[18].optional_opt_args[7].opt = verbose_ARG;
+commands[18].optional_opt_args[8].opt = version_ARG;
+commands[18].optional_opt_args[9].opt = yes_ARG;
+commands[18].optional_opt_args[10].opt = originname_ARG;
+commands[18].optional_opt_args[10].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[18].optional_opt_args[10].def.flags = ARG_DEF_FLAG_NEW;
+commands[18].optional_opt_args[11].opt = poolmetadata_ARG;
+commands[18].optional_opt_args[11].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[18].optional_opt_args[12].opt = poolmetadatasize_ARG;
+commands[18].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[18].optional_opt_args[13].opt = poolmetadataspare_ARG;
+commands[18].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[18].optional_opt_args[14].opt = readahead_ARG;
+commands[18].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[18].optional_opt_args[15].opt = chunksize_ARG;
+commands[18].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[18].optional_opt_args[16].opt = alloc_ARG;
+commands[18].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[18].optional_opt_args[17].opt = background_ARG;
+commands[18].optional_opt_args[18].opt = force_ARG;
+commands[18].optional_opt_args[19].opt = noudevsync_ARG;
+commands[18].optional_opt_args[20].opt = test_ARG;
+commands[18].optional_opt_args[21].opt = usepolicies_ARG;
+
+commands[19].name = "lvconvert";
+commands[19].fn = lvconvert;
+commands[19].ro_count = 2;
+commands[19].rp_count = 1;
+commands[19].oo_count = 23;
+commands[19].op_count = 0;
+commands[19].desc = "Convert LV to type thin with an external origin (infers --type thin).";
+commands[19].usage = "lvconvert --thin --thinpool LV LV_linear|LV_striped|LV_raid"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type thin, --originname LV_new, --poolmetadata LV, --poolmetadatasize Number, --poolmetadataspare Bool, --readahead Number|String, --chunksize Number, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[19].required_opt_args[0].opt = thin_ARG;
+commands[19].required_opt_args[1].opt = thinpool_ARG;
+commands[19].required_opt_args[1].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[19].required_pos_args[0].pos = 1;
+commands[19].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[19].required_pos_args[0].def.lv_types = ARG_DEF_LV_LINEAR|ARG_DEF_LV_STRIPED|ARG_DEF_LV_RAID;
+commands[19].optional_opt_args[0].opt = commandprofile_ARG;
+commands[19].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[19].optional_opt_args[1].opt = config_ARG;
+commands[19].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[19].optional_opt_args[2].opt = debug_ARG;
+commands[19].optional_opt_args[3].opt = driverloaded_ARG;
+commands[19].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[19].optional_opt_args[4].opt = help_ARG;
+commands[19].optional_opt_args[5].opt = profile_ARG;
+commands[19].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[19].optional_opt_args[6].opt = quiet_ARG;
+commands[19].optional_opt_args[7].opt = verbose_ARG;
+commands[19].optional_opt_args[8].opt = version_ARG;
+commands[19].optional_opt_args[9].opt = yes_ARG;
+commands[19].optional_opt_args[10].opt = type_ARG;
+commands[19].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[19].optional_opt_args[10].def.str = "thin";
+commands[19].optional_opt_args[11].opt = originname_ARG;
+commands[19].optional_opt_args[11].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[19].optional_opt_args[11].def.flags = ARG_DEF_FLAG_NEW;
+commands[19].optional_opt_args[12].opt = poolmetadata_ARG;
+commands[19].optional_opt_args[12].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[19].optional_opt_args[13].opt = poolmetadatasize_ARG;
+commands[19].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[19].optional_opt_args[14].opt = poolmetadataspare_ARG;
+commands[19].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[19].optional_opt_args[15].opt = readahead_ARG;
+commands[19].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[19].optional_opt_args[16].opt = chunksize_ARG;
+commands[19].optional_opt_args[16].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[19].optional_opt_args[17].opt = alloc_ARG;
+commands[19].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[19].optional_opt_args[18].opt = background_ARG;
+commands[19].optional_opt_args[19].opt = force_ARG;
+commands[19].optional_opt_args[20].opt = noudevsync_ARG;
+commands[19].optional_opt_args[21].opt = test_ARG;
+commands[19].optional_opt_args[22].opt = usepolicies_ARG;
+
+commands[20].name = "lvconvert";
+commands[20].fn = lvconvert;
+commands[20].ro_count = 2;
+commands[20].rp_count = 1;
+commands[20].oo_count = 23;
+commands[20].op_count = 0;
+commands[20].desc = "Convert LV to type cache.";
+commands[20].usage = "lvconvert --type cache --cachepool LV LV_linear|LV_striped|LV_raid|LV_thinpool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --cachepolicy String, --cachesettings String, --poolmetadata LV, --poolmetadatasize Number, --poolmetadataspare Bool, --readahead Number|String, --chunksize Number, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[20].required_opt_args[0].opt = type_ARG;
+commands[20].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[20].required_opt_args[0].def.str = "cache";
+commands[20].required_opt_args[1].opt = cachepool_ARG;
+commands[20].required_opt_args[1].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[20].required_pos_args[0].pos = 1;
+commands[20].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[20].required_pos_args[0].def.lv_types = ARG_DEF_LV_LINEAR|ARG_DEF_LV_STRIPED|ARG_DEF_LV_RAID|ARG_DEF_LV_THINPOOL;
+commands[20].optional_opt_args[0].opt = commandprofile_ARG;
+commands[20].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[20].optional_opt_args[1].opt = config_ARG;
+commands[20].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[20].optional_opt_args[2].opt = debug_ARG;
+commands[20].optional_opt_args[3].opt = driverloaded_ARG;
+commands[20].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[20].optional_opt_args[4].opt = help_ARG;
+commands[20].optional_opt_args[5].opt = profile_ARG;
+commands[20].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[20].optional_opt_args[6].opt = quiet_ARG;
+commands[20].optional_opt_args[7].opt = verbose_ARG;
+commands[20].optional_opt_args[8].opt = version_ARG;
+commands[20].optional_opt_args[9].opt = yes_ARG;
+commands[20].optional_opt_args[10].opt = cachepolicy_ARG;
+commands[20].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[20].optional_opt_args[11].opt = cachesettings_ARG;
+commands[20].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[20].optional_opt_args[12].opt = poolmetadata_ARG;
+commands[20].optional_opt_args[12].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[20].optional_opt_args[13].opt = poolmetadatasize_ARG;
+commands[20].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[20].optional_opt_args[14].opt = poolmetadataspare_ARG;
+commands[20].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[20].optional_opt_args[15].opt = readahead_ARG;
+commands[20].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[20].optional_opt_args[16].opt = chunksize_ARG;
+commands[20].optional_opt_args[16].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[20].optional_opt_args[17].opt = alloc_ARG;
+commands[20].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[20].optional_opt_args[18].opt = background_ARG;
+commands[20].optional_opt_args[19].opt = force_ARG;
+commands[20].optional_opt_args[20].opt = noudevsync_ARG;
+commands[20].optional_opt_args[21].opt = test_ARG;
+commands[20].optional_opt_args[22].opt = usepolicies_ARG;
+
+commands[21].name = "lvconvert";
+commands[21].fn = lvconvert;
+commands[21].ro_count = 2;
+commands[21].rp_count = 1;
+commands[21].oo_count = 24;
+commands[21].op_count = 0;
+commands[21].desc = "Convert LV to type cache (infers --type cache).";
+commands[21].usage = "lvconvert --cache --cachepool LV LV_linear|LV_striped|LV_raid|LV_thinpool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type cache, --cachepolicy String, --cachesettings String, --poolmetadata LV, --poolmetadatasize Number, --poolmetadataspare Bool, --readahead Number|String, --chunksize Number, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[21].required_opt_args[0].opt = cache_ARG;
+commands[21].required_opt_args[1].opt = cachepool_ARG;
+commands[21].required_opt_args[1].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[21].required_pos_args[0].pos = 1;
+commands[21].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[21].required_pos_args[0].def.lv_types = ARG_DEF_LV_LINEAR|ARG_DEF_LV_STRIPED|ARG_DEF_LV_RAID|ARG_DEF_LV_THINPOOL;
+commands[21].optional_opt_args[0].opt = commandprofile_ARG;
+commands[21].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[21].optional_opt_args[1].opt = config_ARG;
+commands[21].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[21].optional_opt_args[2].opt = debug_ARG;
+commands[21].optional_opt_args[3].opt = driverloaded_ARG;
+commands[21].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[21].optional_opt_args[4].opt = help_ARG;
+commands[21].optional_opt_args[5].opt = profile_ARG;
+commands[21].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[21].optional_opt_args[6].opt = quiet_ARG;
+commands[21].optional_opt_args[7].opt = verbose_ARG;
+commands[21].optional_opt_args[8].opt = version_ARG;
+commands[21].optional_opt_args[9].opt = yes_ARG;
+commands[21].optional_opt_args[10].opt = type_ARG;
+commands[21].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[21].optional_opt_args[10].def.str = "cache";
+commands[21].optional_opt_args[11].opt = cachepolicy_ARG;
+commands[21].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[21].optional_opt_args[12].opt = cachesettings_ARG;
+commands[21].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[21].optional_opt_args[13].opt = poolmetadata_ARG;
+commands[21].optional_opt_args[13].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[21].optional_opt_args[14].opt = poolmetadatasize_ARG;
+commands[21].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[21].optional_opt_args[15].opt = poolmetadataspare_ARG;
+commands[21].optional_opt_args[15].def.types = ARG_DEF_TYPE_BOOL;
+commands[21].optional_opt_args[16].opt = readahead_ARG;
+commands[21].optional_opt_args[16].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[21].optional_opt_args[17].opt = chunksize_ARG;
+commands[21].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[21].optional_opt_args[18].opt = alloc_ARG;
+commands[21].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[21].optional_opt_args[19].opt = background_ARG;
+commands[21].optional_opt_args[20].opt = force_ARG;
+commands[21].optional_opt_args[21].opt = noudevsync_ARG;
+commands[21].optional_opt_args[22].opt = test_ARG;
+commands[21].optional_opt_args[23].opt = usepolicies_ARG;
+
+commands[22].name = "lvconvert";
+commands[22].fn = lvconvert;
+commands[22].ro_count = 1;
+commands[22].rp_count = 1;
+commands[22].oo_count = 23;
+commands[22].op_count = 0;
+commands[22].desc = "Convert LV to type thin-pool.";
+commands[22].usage = "lvconvert --type thin-pool LV_linear|LV_striped|LV_raid|LV_cache"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --discards String, --zero Bool, --poolmetadata LV, --poolmetadatasize Number, --poolmetadataspare Bool, --readahead Number|String, --chunksize Number, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[22].required_opt_args[0].opt = type_ARG;
+commands[22].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[22].required_opt_args[0].def.str = "thin-pool";
+commands[22].required_pos_args[0].pos = 1;
+commands[22].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[22].required_pos_args[0].def.lv_types = ARG_DEF_LV_LINEAR|ARG_DEF_LV_STRIPED|ARG_DEF_LV_RAID|ARG_DEF_LV_CACHE;
+commands[22].optional_opt_args[0].opt = commandprofile_ARG;
+commands[22].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[22].optional_opt_args[1].opt = config_ARG;
+commands[22].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[22].optional_opt_args[2].opt = debug_ARG;
+commands[22].optional_opt_args[3].opt = driverloaded_ARG;
+commands[22].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[22].optional_opt_args[4].opt = help_ARG;
+commands[22].optional_opt_args[5].opt = profile_ARG;
+commands[22].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[22].optional_opt_args[6].opt = quiet_ARG;
+commands[22].optional_opt_args[7].opt = verbose_ARG;
+commands[22].optional_opt_args[8].opt = version_ARG;
+commands[22].optional_opt_args[9].opt = yes_ARG;
+commands[22].optional_opt_args[10].opt = discards_ARG;
+commands[22].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[22].optional_opt_args[11].opt = zero_ARG;
+commands[22].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[22].optional_opt_args[12].opt = poolmetadata_ARG;
+commands[22].optional_opt_args[12].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[22].optional_opt_args[13].opt = poolmetadatasize_ARG;
+commands[22].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[22].optional_opt_args[14].opt = poolmetadataspare_ARG;
+commands[22].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[22].optional_opt_args[15].opt = readahead_ARG;
+commands[22].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[22].optional_opt_args[16].opt = chunksize_ARG;
+commands[22].optional_opt_args[16].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[22].optional_opt_args[17].opt = alloc_ARG;
+commands[22].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[22].optional_opt_args[18].opt = background_ARG;
+commands[22].optional_opt_args[19].opt = force_ARG;
+commands[22].optional_opt_args[20].opt = noudevsync_ARG;
+commands[22].optional_opt_args[21].opt = test_ARG;
+commands[22].optional_opt_args[22].opt = usepolicies_ARG;
+
+commands[23].name = "lvconvert";
+commands[23].fn = lvconvert;
+commands[23].ro_count = 1;
+commands[23].rp_count = 1;
+commands[23].oo_count = 21;
+commands[23].op_count = 0;
+commands[23].desc = "Convert LV to type cache-pool.";
+commands[23].usage = "lvconvert --type cache-pool LV_linear|LV_striped|LV_raid"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadata LV, --poolmetadatasize Number, --poolmetadataspare Bool, --readahead Number|String, --chunksize Number, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[23].required_opt_args[0].opt = type_ARG;
+commands[23].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[23].required_opt_args[0].def.str = "cache-pool";
+commands[23].required_pos_args[0].pos = 1;
+commands[23].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[23].required_pos_args[0].def.lv_types = ARG_DEF_LV_LINEAR|ARG_DEF_LV_STRIPED|ARG_DEF_LV_RAID;
+commands[23].optional_opt_args[0].opt = commandprofile_ARG;
+commands[23].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[23].optional_opt_args[1].opt = config_ARG;
+commands[23].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[23].optional_opt_args[2].opt = debug_ARG;
+commands[23].optional_opt_args[3].opt = driverloaded_ARG;
+commands[23].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[23].optional_opt_args[4].opt = help_ARG;
+commands[23].optional_opt_args[5].opt = profile_ARG;
+commands[23].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[23].optional_opt_args[6].opt = quiet_ARG;
+commands[23].optional_opt_args[7].opt = verbose_ARG;
+commands[23].optional_opt_args[8].opt = version_ARG;
+commands[23].optional_opt_args[9].opt = yes_ARG;
+commands[23].optional_opt_args[10].opt = poolmetadata_ARG;
+commands[23].optional_opt_args[10].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[23].optional_opt_args[11].opt = poolmetadatasize_ARG;
+commands[23].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[23].optional_opt_args[12].opt = poolmetadataspare_ARG;
+commands[23].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[23].optional_opt_args[13].opt = readahead_ARG;
+commands[23].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[23].optional_opt_args[14].opt = chunksize_ARG;
+commands[23].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[23].optional_opt_args[15].opt = alloc_ARG;
+commands[23].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[23].optional_opt_args[16].opt = background_ARG;
+commands[23].optional_opt_args[17].opt = force_ARG;
+commands[23].optional_opt_args[18].opt = noudevsync_ARG;
+commands[23].optional_opt_args[19].opt = test_ARG;
+commands[23].optional_opt_args[20].opt = usepolicies_ARG;
+
+commands[24].name = "lvconvert";
+commands[24].fn = lvconvert;
+commands[24].ro_count = 1;
+commands[24].rp_count = 1;
+commands[24].oo_count = 20;
+commands[24].op_count = 1;
+commands[24].desc = "Convert LV to type mirror.";
+commands[24].usage = "lvconvert --type mirror LV_linear|LV_striped|LV_raid"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --mirrors Number, --stripes Number, --stripesize Number, --regionsize Number, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]"
+" [ PV ... ]";
+commands[24].required_opt_args[0].opt = type_ARG;
+commands[24].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[24].required_opt_args[0].def.str = "mirror";
+commands[24].required_pos_args[0].pos = 1;
+commands[24].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[24].required_pos_args[0].def.lv_types = ARG_DEF_LV_LINEAR|ARG_DEF_LV_STRIPED|ARG_DEF_LV_RAID;
+commands[24].optional_opt_args[0].opt = commandprofile_ARG;
+commands[24].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[24].optional_opt_args[1].opt = config_ARG;
+commands[24].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[24].optional_opt_args[2].opt = debug_ARG;
+commands[24].optional_opt_args[3].opt = driverloaded_ARG;
+commands[24].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[24].optional_opt_args[4].opt = help_ARG;
+commands[24].optional_opt_args[5].opt = profile_ARG;
+commands[24].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[24].optional_opt_args[6].opt = quiet_ARG;
+commands[24].optional_opt_args[7].opt = verbose_ARG;
+commands[24].optional_opt_args[8].opt = version_ARG;
+commands[24].optional_opt_args[9].opt = yes_ARG;
+commands[24].optional_opt_args[10].opt = mirrors_ARG;
+commands[24].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[24].optional_opt_args[11].opt = stripes_long_ARG;
+commands[24].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[24].optional_opt_args[12].opt = stripesize_ARG;
+commands[24].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[24].optional_opt_args[13].opt = regionsize_ARG;
+commands[24].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[24].optional_opt_args[14].opt = alloc_ARG;
+commands[24].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[24].optional_opt_args[15].opt = background_ARG;
+commands[24].optional_opt_args[16].opt = force_ARG;
+commands[24].optional_opt_args[17].opt = noudevsync_ARG;
+commands[24].optional_opt_args[18].opt = test_ARG;
+commands[24].optional_opt_args[19].opt = usepolicies_ARG;
+commands[24].optional_pos_args[0].pos = 2;
+commands[24].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[24].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[25].name = "lvconvert";
+commands[25].fn = lvconvert;
+commands[25].ro_count = 1;
+commands[25].rp_count = 1;
+commands[25].oo_count = 20;
+commands[25].op_count = 1;
+commands[25].desc = "Convert LV to type raid. Change LV raid type.";
+commands[25].usage = "lvconvert --type raid LV_linear|LV_striped|LV_mirror|LV_raid"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --mirrors Number, --stripes Number, --stripesize Number, --regionsize Number, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]"
+" [ PV ... ]";
+commands[25].required_opt_args[0].opt = type_ARG;
+commands[25].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[25].required_opt_args[0].def.str = "raid";
+commands[25].required_pos_args[0].pos = 1;
+commands[25].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[25].required_pos_args[0].def.lv_types = ARG_DEF_LV_LINEAR|ARG_DEF_LV_STRIPED|ARG_DEF_LV_MIRROR|ARG_DEF_LV_RAID;
+commands[25].optional_opt_args[0].opt = commandprofile_ARG;
+commands[25].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[25].optional_opt_args[1].opt = config_ARG;
+commands[25].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[25].optional_opt_args[2].opt = debug_ARG;
+commands[25].optional_opt_args[3].opt = driverloaded_ARG;
+commands[25].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[25].optional_opt_args[4].opt = help_ARG;
+commands[25].optional_opt_args[5].opt = profile_ARG;
+commands[25].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[25].optional_opt_args[6].opt = quiet_ARG;
+commands[25].optional_opt_args[7].opt = verbose_ARG;
+commands[25].optional_opt_args[8].opt = version_ARG;
+commands[25].optional_opt_args[9].opt = yes_ARG;
+commands[25].optional_opt_args[10].opt = mirrors_ARG;
+commands[25].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[25].optional_opt_args[11].opt = stripes_long_ARG;
+commands[25].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[25].optional_opt_args[12].opt = stripesize_ARG;
+commands[25].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[25].optional_opt_args[13].opt = regionsize_ARG;
+commands[25].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[25].optional_opt_args[14].opt = alloc_ARG;
+commands[25].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[25].optional_opt_args[15].opt = background_ARG;
+commands[25].optional_opt_args[16].opt = force_ARG;
+commands[25].optional_opt_args[17].opt = noudevsync_ARG;
+commands[25].optional_opt_args[18].opt = test_ARG;
+commands[25].optional_opt_args[19].opt = usepolicies_ARG;
+commands[25].optional_pos_args[0].pos = 2;
+commands[25].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[25].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[26].name = "lvconvert";
+commands[26].fn = lvconvert;
+commands[26].ro_count = 1;
+commands[26].rp_count = 1;
+commands[26].oo_count = 16;
+commands[26].op_count = 1;
+commands[26].desc = "Change the number of mirror images in the LV.";
+commands[26].usage = "lvconvert --mirrors Number LV_mirror|LV_raid"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]"
+" [ PV ... ]";
+commands[26].required_opt_args[0].opt = mirrors_ARG;
+commands[26].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[26].required_pos_args[0].pos = 1;
+commands[26].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[26].required_pos_args[0].def.lv_types = ARG_DEF_LV_MIRROR|ARG_DEF_LV_RAID;
+commands[26].optional_opt_args[0].opt = commandprofile_ARG;
+commands[26].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[26].optional_opt_args[1].opt = config_ARG;
+commands[26].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[26].optional_opt_args[2].opt = debug_ARG;
+commands[26].optional_opt_args[3].opt = driverloaded_ARG;
+commands[26].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[26].optional_opt_args[4].opt = help_ARG;
+commands[26].optional_opt_args[5].opt = profile_ARG;
+commands[26].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[26].optional_opt_args[6].opt = quiet_ARG;
+commands[26].optional_opt_args[7].opt = verbose_ARG;
+commands[26].optional_opt_args[8].opt = version_ARG;
+commands[26].optional_opt_args[9].opt = yes_ARG;
+commands[26].optional_opt_args[10].opt = alloc_ARG;
+commands[26].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[26].optional_opt_args[11].opt = background_ARG;
+commands[26].optional_opt_args[12].opt = force_ARG;
+commands[26].optional_opt_args[13].opt = noudevsync_ARG;
+commands[26].optional_opt_args[14].opt = test_ARG;
+commands[26].optional_opt_args[15].opt = usepolicies_ARG;
+commands[26].optional_pos_args[0].pos = 2;
+commands[26].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[26].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[27].name = "lvconvert";
+commands[27].fn = lvconvert;
+commands[27].ro_count = 1;
+commands[27].rp_count = 1;
+commands[27].oo_count = 20;
+commands[27].op_count = 1;
+commands[27].desc = "Alternate form to convert LV to type raid1 or mirror (use --type raid1|mirror).";
+commands[27].usage = "lvconvert --mirrors Number LV_linear|LV_striped"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --mirrors Number, --stripes Number, --stripesize Number, --regionsize Number, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]"
+" [ PV ... ]";
+commands[27].required_opt_args[0].opt = mirrors_ARG;
+commands[27].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[27].required_pos_args[0].pos = 1;
+commands[27].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[27].required_pos_args[0].def.lv_types = ARG_DEF_LV_LINEAR|ARG_DEF_LV_STRIPED;
+commands[27].optional_opt_args[0].opt = commandprofile_ARG;
+commands[27].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[27].optional_opt_args[1].opt = config_ARG;
+commands[27].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[27].optional_opt_args[2].opt = debug_ARG;
+commands[27].optional_opt_args[3].opt = driverloaded_ARG;
+commands[27].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[27].optional_opt_args[4].opt = help_ARG;
+commands[27].optional_opt_args[5].opt = profile_ARG;
+commands[27].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[27].optional_opt_args[6].opt = quiet_ARG;
+commands[27].optional_opt_args[7].opt = verbose_ARG;
+commands[27].optional_opt_args[8].opt = version_ARG;
+commands[27].optional_opt_args[9].opt = yes_ARG;
+commands[27].optional_opt_args[10].opt = mirrors_ARG;
+commands[27].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[27].optional_opt_args[11].opt = stripes_long_ARG;
+commands[27].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[27].optional_opt_args[12].opt = stripesize_ARG;
+commands[27].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[27].optional_opt_args[13].opt = regionsize_ARG;
+commands[27].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[27].optional_opt_args[14].opt = alloc_ARG;
+commands[27].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[27].optional_opt_args[15].opt = background_ARG;
+commands[27].optional_opt_args[16].opt = force_ARG;
+commands[27].optional_opt_args[17].opt = noudevsync_ARG;
+commands[27].optional_opt_args[18].opt = test_ARG;
+commands[27].optional_opt_args[19].opt = usepolicies_ARG;
+commands[27].optional_pos_args[0].pos = 2;
+commands[27].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[27].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[28].name = "lvconvert";
+commands[28].fn = lvconvert;
+commands[28].ro_count = 2;
+commands[28].rp_count = 1;
+commands[28].oo_count = 16;
+commands[28].op_count = 0;
+commands[28].desc = "Split images from a raid1 or mirror LV and use them to create a new LV.";
+commands[28].usage = "lvconvert --splitmirrors Number --name LV_new LV_mirror|LV_raid|LV_cache"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[28].required_opt_args[0].opt = splitmirrors_ARG;
+commands[28].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[28].required_opt_args[1].opt = name_ARG;
+commands[28].required_opt_args[1].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[28].required_opt_args[1].def.flags = ARG_DEF_FLAG_NEW;
+commands[28].required_pos_args[0].pos = 1;
+commands[28].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[28].required_pos_args[0].def.lv_types = ARG_DEF_LV_MIRROR|ARG_DEF_LV_RAID|ARG_DEF_LV_CACHE;
+commands[28].optional_opt_args[0].opt = commandprofile_ARG;
+commands[28].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[28].optional_opt_args[1].opt = config_ARG;
+commands[28].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[28].optional_opt_args[2].opt = debug_ARG;
+commands[28].optional_opt_args[3].opt = driverloaded_ARG;
+commands[28].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[28].optional_opt_args[4].opt = help_ARG;
+commands[28].optional_opt_args[5].opt = profile_ARG;
+commands[28].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[28].optional_opt_args[6].opt = quiet_ARG;
+commands[28].optional_opt_args[7].opt = verbose_ARG;
+commands[28].optional_opt_args[8].opt = version_ARG;
+commands[28].optional_opt_args[9].opt = yes_ARG;
+commands[28].optional_opt_args[10].opt = alloc_ARG;
+commands[28].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[28].optional_opt_args[11].opt = background_ARG;
+commands[28].optional_opt_args[12].opt = force_ARG;
+commands[28].optional_opt_args[13].opt = noudevsync_ARG;
+commands[28].optional_opt_args[14].opt = test_ARG;
+commands[28].optional_opt_args[15].opt = usepolicies_ARG;
+
+commands[29].name = "lvconvert";
+commands[29].fn = lvconvert;
+commands[29].ro_count = 2;
+commands[29].rp_count = 1;
+commands[29].oo_count = 16;
+commands[29].op_count = 0;
+commands[29].desc = "Split images from a raid1 LV and use them to create a new LV.";
+commands[29].usage = "lvconvert --splitmirrors Number --trackchanges LV_raid|LV_cache"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[29].required_opt_args[0].opt = splitmirrors_ARG;
+commands[29].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[29].required_opt_args[1].opt = trackchanges_ARG;
+commands[29].required_pos_args[0].pos = 1;
+commands[29].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[29].required_pos_args[0].def.lv_types = ARG_DEF_LV_RAID|ARG_DEF_LV_CACHE;
+commands[29].optional_opt_args[0].opt = commandprofile_ARG;
+commands[29].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[29].optional_opt_args[1].opt = config_ARG;
+commands[29].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[29].optional_opt_args[2].opt = debug_ARG;
+commands[29].optional_opt_args[3].opt = driverloaded_ARG;
+commands[29].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[29].optional_opt_args[4].opt = help_ARG;
+commands[29].optional_opt_args[5].opt = profile_ARG;
+commands[29].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[29].optional_opt_args[6].opt = quiet_ARG;
+commands[29].optional_opt_args[7].opt = verbose_ARG;
+commands[29].optional_opt_args[8].opt = version_ARG;
+commands[29].optional_opt_args[9].opt = yes_ARG;
+commands[29].optional_opt_args[10].opt = alloc_ARG;
+commands[29].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[29].optional_opt_args[11].opt = background_ARG;
+commands[29].optional_opt_args[12].opt = force_ARG;
+commands[29].optional_opt_args[13].opt = noudevsync_ARG;
+commands[29].optional_opt_args[14].opt = test_ARG;
+commands[29].optional_opt_args[15].opt = usepolicies_ARG;
+
+commands[30].name = "lvconvert";
+commands[30].fn = lvconvert;
+commands[30].ro_count = 1;
+commands[30].rp_count = 1;
+commands[30].oo_count = 16;
+commands[30].op_count = 0;
+commands[30].desc = "Replace failed PVs in a mirror or raid LV. Repair a thin pool.";
+commands[30].usage = "lvconvert --repair LV_mirror|LV_raid|LV_thinpool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[30].required_opt_args[0].opt = repair_ARG;
+commands[30].required_pos_args[0].pos = 1;
+commands[30].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[30].required_pos_args[0].def.lv_types = ARG_DEF_LV_MIRROR|ARG_DEF_LV_RAID|ARG_DEF_LV_THINPOOL;
+commands[30].optional_opt_args[0].opt = commandprofile_ARG;
+commands[30].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[30].optional_opt_args[1].opt = config_ARG;
+commands[30].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[30].optional_opt_args[2].opt = debug_ARG;
+commands[30].optional_opt_args[3].opt = driverloaded_ARG;
+commands[30].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[30].optional_opt_args[4].opt = help_ARG;
+commands[30].optional_opt_args[5].opt = profile_ARG;
+commands[30].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[30].optional_opt_args[6].opt = quiet_ARG;
+commands[30].optional_opt_args[7].opt = verbose_ARG;
+commands[30].optional_opt_args[8].opt = version_ARG;
+commands[30].optional_opt_args[9].opt = yes_ARG;
+commands[30].optional_opt_args[10].opt = alloc_ARG;
+commands[30].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[30].optional_opt_args[11].opt = background_ARG;
+commands[30].optional_opt_args[12].opt = force_ARG;
+commands[30].optional_opt_args[13].opt = noudevsync_ARG;
+commands[30].optional_opt_args[14].opt = test_ARG;
+commands[30].optional_opt_args[15].opt = usepolicies_ARG;
+
+commands[31].name = "lvconvert";
+commands[31].fn = lvconvert;
+commands[31].ro_count = 1;
+commands[31].rp_count = 1;
+commands[31].oo_count = 16;
+commands[31].op_count = 1;
+commands[31].desc = "Replace specific PV(s) in a raid* LV with another PV.";
+commands[31].usage = "lvconvert --replace PV LV_raid"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]"
+" [ PV ... ]";
+commands[31].required_opt_args[0].opt = replace_ARG;
+commands[31].required_opt_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[31].required_pos_args[0].pos = 1;
+commands[31].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[31].required_pos_args[0].def.lv_types = ARG_DEF_LV_RAID;
+commands[31].optional_opt_args[0].opt = commandprofile_ARG;
+commands[31].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[31].optional_opt_args[1].opt = config_ARG;
+commands[31].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[31].optional_opt_args[2].opt = debug_ARG;
+commands[31].optional_opt_args[3].opt = driverloaded_ARG;
+commands[31].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[31].optional_opt_args[4].opt = help_ARG;
+commands[31].optional_opt_args[5].opt = profile_ARG;
+commands[31].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[31].optional_opt_args[6].opt = quiet_ARG;
+commands[31].optional_opt_args[7].opt = verbose_ARG;
+commands[31].optional_opt_args[8].opt = version_ARG;
+commands[31].optional_opt_args[9].opt = yes_ARG;
+commands[31].optional_opt_args[10].opt = alloc_ARG;
+commands[31].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[31].optional_opt_args[11].opt = background_ARG;
+commands[31].optional_opt_args[12].opt = force_ARG;
+commands[31].optional_opt_args[13].opt = noudevsync_ARG;
+commands[31].optional_opt_args[14].opt = test_ARG;
+commands[31].optional_opt_args[15].opt = usepolicies_ARG;
+commands[31].optional_pos_args[0].pos = 2;
+commands[31].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[31].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[32].name = "lvconvert";
+commands[32].fn = lvconvert;
+commands[32].ro_count = 1;
+commands[32].rp_count = 1;
+commands[32].oo_count = 20;
+commands[32].op_count = 1;
+commands[32].desc = "Convert LV to type striped.";
+commands[32].usage = "lvconvert --type striped LV_raid"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --mirrors Number, --stripes Number, --stripesize Number, --regionsize Number, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]"
+" [ PV ... ]";
+commands[32].required_opt_args[0].opt = type_ARG;
+commands[32].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[32].required_opt_args[0].def.str = "striped";
+commands[32].required_pos_args[0].pos = 1;
+commands[32].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[32].required_pos_args[0].def.lv_types = ARG_DEF_LV_RAID;
+commands[32].optional_opt_args[0].opt = commandprofile_ARG;
+commands[32].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[32].optional_opt_args[1].opt = config_ARG;
+commands[32].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[32].optional_opt_args[2].opt = debug_ARG;
+commands[32].optional_opt_args[3].opt = driverloaded_ARG;
+commands[32].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[32].optional_opt_args[4].opt = help_ARG;
+commands[32].optional_opt_args[5].opt = profile_ARG;
+commands[32].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[32].optional_opt_args[6].opt = quiet_ARG;
+commands[32].optional_opt_args[7].opt = verbose_ARG;
+commands[32].optional_opt_args[8].opt = version_ARG;
+commands[32].optional_opt_args[9].opt = yes_ARG;
+commands[32].optional_opt_args[10].opt = mirrors_ARG;
+commands[32].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[32].optional_opt_args[11].opt = stripes_long_ARG;
+commands[32].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[32].optional_opt_args[12].opt = stripesize_ARG;
+commands[32].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[32].optional_opt_args[13].opt = regionsize_ARG;
+commands[32].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[32].optional_opt_args[14].opt = alloc_ARG;
+commands[32].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[32].optional_opt_args[15].opt = background_ARG;
+commands[32].optional_opt_args[16].opt = force_ARG;
+commands[32].optional_opt_args[17].opt = noudevsync_ARG;
+commands[32].optional_opt_args[18].opt = test_ARG;
+commands[32].optional_opt_args[19].opt = usepolicies_ARG;
+commands[32].optional_pos_args[0].pos = 2;
+commands[32].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[32].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[33].name = "lvconvert";
+commands[33].fn = lvconvert;
+commands[33].ro_count = 1;
+commands[33].rp_count = 1;
+commands[33].oo_count = 16;
+commands[33].op_count = 0;
+commands[33].desc = "Convert LV to type linear.";
+commands[33].usage = "lvconvert --type linear LV_mirror|LV_raid"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[33].required_opt_args[0].opt = type_ARG;
+commands[33].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[33].required_opt_args[0].def.str = "linear";
+commands[33].required_pos_args[0].pos = 1;
+commands[33].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[33].required_pos_args[0].def.lv_types = ARG_DEF_LV_MIRROR|ARG_DEF_LV_RAID;
+commands[33].optional_opt_args[0].opt = commandprofile_ARG;
+commands[33].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[33].optional_opt_args[1].opt = config_ARG;
+commands[33].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[33].optional_opt_args[2].opt = debug_ARG;
+commands[33].optional_opt_args[3].opt = driverloaded_ARG;
+commands[33].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[33].optional_opt_args[4].opt = help_ARG;
+commands[33].optional_opt_args[5].opt = profile_ARG;
+commands[33].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[33].optional_opt_args[6].opt = quiet_ARG;
+commands[33].optional_opt_args[7].opt = verbose_ARG;
+commands[33].optional_opt_args[8].opt = version_ARG;
+commands[33].optional_opt_args[9].opt = yes_ARG;
+commands[33].optional_opt_args[10].opt = alloc_ARG;
+commands[33].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[33].optional_opt_args[11].opt = background_ARG;
+commands[33].optional_opt_args[12].opt = force_ARG;
+commands[33].optional_opt_args[13].opt = noudevsync_ARG;
+commands[33].optional_opt_args[14].opt = test_ARG;
+commands[33].optional_opt_args[15].opt = usepolicies_ARG;
+
+commands[34].name = "lvconvert";
+commands[34].fn = lvconvert;
+commands[34].ro_count = 1;
+commands[34].rp_count = 1;
+commands[34].oo_count = 16;
+commands[34].op_count = 0;
+commands[34].desc = "Change the type of log used by LV.";
+commands[34].usage = "lvconvert --mirrorlog String LV_mirror"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[34].required_opt_args[0].opt = mirrorlog_ARG;
+commands[34].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[34].required_pos_args[0].pos = 1;
+commands[34].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[34].required_pos_args[0].def.lv_types = ARG_DEF_LV_MIRROR;
+commands[34].optional_opt_args[0].opt = commandprofile_ARG;
+commands[34].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[34].optional_opt_args[1].opt = config_ARG;
+commands[34].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[34].optional_opt_args[2].opt = debug_ARG;
+commands[34].optional_opt_args[3].opt = driverloaded_ARG;
+commands[34].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[34].optional_opt_args[4].opt = help_ARG;
+commands[34].optional_opt_args[5].opt = profile_ARG;
+commands[34].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[34].optional_opt_args[6].opt = quiet_ARG;
+commands[34].optional_opt_args[7].opt = verbose_ARG;
+commands[34].optional_opt_args[8].opt = version_ARG;
+commands[34].optional_opt_args[9].opt = yes_ARG;
+commands[34].optional_opt_args[10].opt = alloc_ARG;
+commands[34].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[34].optional_opt_args[11].opt = background_ARG;
+commands[34].optional_opt_args[12].opt = force_ARG;
+commands[34].optional_opt_args[13].opt = noudevsync_ARG;
+commands[34].optional_opt_args[14].opt = test_ARG;
+commands[34].optional_opt_args[15].opt = usepolicies_ARG;
+
+commands[35].name = "lvconvert";
+commands[35].fn = lvconvert;
+commands[35].ro_count = 1;
+commands[35].rp_count = 1;
+commands[35].oo_count = 16;
+commands[35].op_count = 0;
+commands[35].desc = "Separate and preserve a cache pool from a cache LV.";
+commands[35].usage = "lvconvert --splitcache LV_thinpool|LV_cache|LV_cachepool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[35].required_opt_args[0].opt = splitcache_ARG;
+commands[35].required_pos_args[0].pos = 1;
+commands[35].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[35].required_pos_args[0].def.lv_types = ARG_DEF_LV_THINPOOL|ARG_DEF_LV_CACHE|ARG_DEF_LV_CACHEPOOL;
+commands[35].optional_opt_args[0].opt = commandprofile_ARG;
+commands[35].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[35].optional_opt_args[1].opt = config_ARG;
+commands[35].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[35].optional_opt_args[2].opt = debug_ARG;
+commands[35].optional_opt_args[3].opt = driverloaded_ARG;
+commands[35].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[35].optional_opt_args[4].opt = help_ARG;
+commands[35].optional_opt_args[5].opt = profile_ARG;
+commands[35].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[35].optional_opt_args[6].opt = quiet_ARG;
+commands[35].optional_opt_args[7].opt = verbose_ARG;
+commands[35].optional_opt_args[8].opt = version_ARG;
+commands[35].optional_opt_args[9].opt = yes_ARG;
+commands[35].optional_opt_args[10].opt = alloc_ARG;
+commands[35].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[35].optional_opt_args[11].opt = background_ARG;
+commands[35].optional_opt_args[12].opt = force_ARG;
+commands[35].optional_opt_args[13].opt = noudevsync_ARG;
+commands[35].optional_opt_args[14].opt = test_ARG;
+commands[35].optional_opt_args[15].opt = usepolicies_ARG;
+
+commands[36].name = "lvconvert";
+commands[36].fn = lvconvert;
+commands[36].ro_count = 1;
+commands[36].rp_count = 1;
+commands[36].oo_count = 16;
+commands[36].op_count = 0;
+commands[36].desc = "Separate and remove a cache pool from a cache LV.";
+commands[36].usage = "lvconvert --uncache LV_thinpool|LV_cache"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[36].required_opt_args[0].opt = uncache_ARG;
+commands[36].required_pos_args[0].pos = 1;
+commands[36].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[36].required_pos_args[0].def.lv_types = ARG_DEF_LV_THINPOOL|ARG_DEF_LV_CACHE;
+commands[36].optional_opt_args[0].opt = commandprofile_ARG;
+commands[36].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[36].optional_opt_args[1].opt = config_ARG;
+commands[36].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[36].optional_opt_args[2].opt = debug_ARG;
+commands[36].optional_opt_args[3].opt = driverloaded_ARG;
+commands[36].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[36].optional_opt_args[4].opt = help_ARG;
+commands[36].optional_opt_args[5].opt = profile_ARG;
+commands[36].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[36].optional_opt_args[6].opt = quiet_ARG;
+commands[36].optional_opt_args[7].opt = verbose_ARG;
+commands[36].optional_opt_args[8].opt = version_ARG;
+commands[36].optional_opt_args[9].opt = yes_ARG;
+commands[36].optional_opt_args[10].opt = alloc_ARG;
+commands[36].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[36].optional_opt_args[11].opt = background_ARG;
+commands[36].optional_opt_args[12].opt = force_ARG;
+commands[36].optional_opt_args[13].opt = noudevsync_ARG;
+commands[36].optional_opt_args[14].opt = test_ARG;
+commands[36].optional_opt_args[15].opt = usepolicies_ARG;
+
+commands[37].name = "lvconvert";
+commands[37].fn = lvconvert;
+commands[37].ro_count = 1;
+commands[37].rp_count = 1;
+commands[37].oo_count = 16;
+commands[37].op_count = 0;
+commands[37].desc = "Separate a COW snapshot from its origin LV.";
+commands[37].usage = "lvconvert --splitsnapshot LV_snapshot"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[37].required_opt_args[0].opt = splitsnapshot_ARG;
+commands[37].required_pos_args[0].pos = 1;
+commands[37].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[37].required_pos_args[0].def.lv_types = ARG_DEF_LV_SNAPSHOT;
+commands[37].optional_opt_args[0].opt = commandprofile_ARG;
+commands[37].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[37].optional_opt_args[1].opt = config_ARG;
+commands[37].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[37].optional_opt_args[2].opt = debug_ARG;
+commands[37].optional_opt_args[3].opt = driverloaded_ARG;
+commands[37].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[37].optional_opt_args[4].opt = help_ARG;
+commands[37].optional_opt_args[5].opt = profile_ARG;
+commands[37].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[37].optional_opt_args[6].opt = quiet_ARG;
+commands[37].optional_opt_args[7].opt = verbose_ARG;
+commands[37].optional_opt_args[8].opt = version_ARG;
+commands[37].optional_opt_args[9].opt = yes_ARG;
+commands[37].optional_opt_args[10].opt = alloc_ARG;
+commands[37].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[37].optional_opt_args[11].opt = background_ARG;
+commands[37].optional_opt_args[12].opt = force_ARG;
+commands[37].optional_opt_args[13].opt = noudevsync_ARG;
+commands[37].optional_opt_args[14].opt = test_ARG;
+commands[37].optional_opt_args[15].opt = usepolicies_ARG;
+
+commands[38].name = "lvconvert";
+commands[38].fn = lvconvert;
+commands[38].ro_count = 1;
+commands[38].rp_count = 0;
+commands[38].oo_count = 21;
+commands[38].op_count = 0;
+commands[38].desc = "Alternate form to convert LV to type thin-pool (use --type thin-pool).";
+commands[38].usage = "lvconvert --thinpool LV"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadata LV, --poolmetadatasize Number, --poolmetadataspare Bool, --readahead Number|String, --chunksize Number, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[38].required_opt_args[0].opt = thinpool_ARG;
+commands[38].required_opt_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[38].optional_opt_args[0].opt = commandprofile_ARG;
+commands[38].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[38].optional_opt_args[1].opt = config_ARG;
+commands[38].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[38].optional_opt_args[2].opt = debug_ARG;
+commands[38].optional_opt_args[3].opt = driverloaded_ARG;
+commands[38].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[38].optional_opt_args[4].opt = help_ARG;
+commands[38].optional_opt_args[5].opt = profile_ARG;
+commands[38].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[38].optional_opt_args[6].opt = quiet_ARG;
+commands[38].optional_opt_args[7].opt = verbose_ARG;
+commands[38].optional_opt_args[8].opt = version_ARG;
+commands[38].optional_opt_args[9].opt = yes_ARG;
+commands[38].optional_opt_args[10].opt = poolmetadata_ARG;
+commands[38].optional_opt_args[10].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[38].optional_opt_args[11].opt = poolmetadatasize_ARG;
+commands[38].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[38].optional_opt_args[12].opt = poolmetadataspare_ARG;
+commands[38].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[38].optional_opt_args[13].opt = readahead_ARG;
+commands[38].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[38].optional_opt_args[14].opt = chunksize_ARG;
+commands[38].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[38].optional_opt_args[15].opt = alloc_ARG;
+commands[38].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[38].optional_opt_args[16].opt = background_ARG;
+commands[38].optional_opt_args[17].opt = force_ARG;
+commands[38].optional_opt_args[18].opt = noudevsync_ARG;
+commands[38].optional_opt_args[19].opt = test_ARG;
+commands[38].optional_opt_args[20].opt = usepolicies_ARG;
+
+commands[39].name = "lvconvert";
+commands[39].fn = lvconvert;
+commands[39].ro_count = 1;
+commands[39].rp_count = 0;
+commands[39].oo_count = 21;
+commands[39].op_count = 0;
+commands[39].desc = "Alternate form to convert LV to type cache-pool (use --type cache-pool).";
+commands[39].usage = "lvconvert --cachepool LV"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadata LV, --poolmetadatasize Number, --poolmetadataspare Bool, --readahead Number|String, --chunksize Number, --alloc String, --background, --force, --noudevsync, --test, --usepolicies ]";
+commands[39].required_opt_args[0].opt = cachepool_ARG;
+commands[39].required_opt_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[39].optional_opt_args[0].opt = commandprofile_ARG;
+commands[39].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[39].optional_opt_args[1].opt = config_ARG;
+commands[39].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[39].optional_opt_args[2].opt = debug_ARG;
+commands[39].optional_opt_args[3].opt = driverloaded_ARG;
+commands[39].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[39].optional_opt_args[4].opt = help_ARG;
+commands[39].optional_opt_args[5].opt = profile_ARG;
+commands[39].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[39].optional_opt_args[6].opt = quiet_ARG;
+commands[39].optional_opt_args[7].opt = verbose_ARG;
+commands[39].optional_opt_args[8].opt = version_ARG;
+commands[39].optional_opt_args[9].opt = yes_ARG;
+commands[39].optional_opt_args[10].opt = poolmetadata_ARG;
+commands[39].optional_opt_args[10].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[39].optional_opt_args[11].opt = poolmetadatasize_ARG;
+commands[39].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[39].optional_opt_args[12].opt = poolmetadataspare_ARG;
+commands[39].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[39].optional_opt_args[13].opt = readahead_ARG;
+commands[39].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[39].optional_opt_args[14].opt = chunksize_ARG;
+commands[39].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[39].optional_opt_args[15].opt = alloc_ARG;
+commands[39].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[39].optional_opt_args[16].opt = background_ARG;
+commands[39].optional_opt_args[17].opt = force_ARG;
+commands[39].optional_opt_args[18].opt = noudevsync_ARG;
+commands[39].optional_opt_args[19].opt = test_ARG;
+commands[39].optional_opt_args[20].opt = usepolicies_ARG;
+
+commands[40].name = "lvconvert";
+commands[40].fn = lvconvert;
+commands[40].ro_count = 0;
+commands[40].rp_count = 1;
+commands[40].oo_count = 10;
+commands[40].op_count = 0;
+commands[40].desc = "Poll LV to collapse resync layers.";
+commands[40].usage = "lvconvert LV_mirror"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes ]";
+commands[40].required_pos_args[0].pos = 1;
+commands[40].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[40].required_pos_args[0].def.lv_types = ARG_DEF_LV_MIRROR;
+commands[40].optional_opt_args[0].opt = commandprofile_ARG;
+commands[40].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[40].optional_opt_args[1].opt = config_ARG;
+commands[40].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[40].optional_opt_args[2].opt = debug_ARG;
+commands[40].optional_opt_args[3].opt = driverloaded_ARG;
+commands[40].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[40].optional_opt_args[4].opt = help_ARG;
+commands[40].optional_opt_args[5].opt = profile_ARG;
+commands[40].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[40].optional_opt_args[6].opt = quiet_ARG;
+commands[40].optional_opt_args[7].opt = verbose_ARG;
+commands[40].optional_opt_args[8].opt = version_ARG;
+commands[40].optional_opt_args[9].opt = yes_ARG;
+
+commands[41].name = "lvconvert";
+commands[41].fn = lvconvert;
+commands[41].ro_count = 1;
+commands[41].rp_count = 1;
+commands[41].oo_count = 10;
+commands[41].op_count = 0;
+commands[41].desc = "Swap metadata LV in a thin pool or cache pool (temporary command).";
+commands[41].usage = "lvconvert --poolmetadata LV LV_thinpool|LV_cachepool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes ]";
+commands[41].required_opt_args[0].opt = poolmetadata_ARG;
+commands[41].required_opt_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[41].required_pos_args[0].pos = 1;
+commands[41].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[41].required_pos_args[0].def.lv_types = ARG_DEF_LV_THINPOOL|ARG_DEF_LV_CACHEPOOL;
+commands[41].optional_opt_args[0].opt = commandprofile_ARG;
+commands[41].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[41].optional_opt_args[1].opt = config_ARG;
+commands[41].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[41].optional_opt_args[2].opt = debug_ARG;
+commands[41].optional_opt_args[3].opt = driverloaded_ARG;
+commands[41].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[41].optional_opt_args[4].opt = help_ARG;
+commands[41].optional_opt_args[5].opt = profile_ARG;
+commands[41].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[41].optional_opt_args[6].opt = quiet_ARG;
+commands[41].optional_opt_args[7].opt = verbose_ARG;
+commands[41].optional_opt_args[8].opt = version_ARG;
+commands[41].optional_opt_args[9].opt = yes_ARG;
+
+commands[42].name = "lvcreate";
+commands[42].fn = lvcreate;
+commands[42].ro_count = 2;
+commands[42].rp_count = 1;
+commands[42].oo_count = 32;
+commands[42].op_count = 0;
+commands[42].desc = "Create an LV that returns errors when used.";
+commands[42].usage = "lvcreate --type error --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]";
+commands[42].required_opt_args[0].opt = type_ARG;
+commands[42].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[42].required_opt_args[0].def.str = "error";
+commands[42].required_opt_args[1].opt = size_ARG;
+commands[42].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[42].required_pos_args[0].pos = 1;
+commands[42].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[42].optional_opt_args[0].opt = commandprofile_ARG;
+commands[42].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[42].optional_opt_args[1].opt = config_ARG;
+commands[42].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[42].optional_opt_args[2].opt = debug_ARG;
+commands[42].optional_opt_args[3].opt = driverloaded_ARG;
+commands[42].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[42].optional_opt_args[4].opt = help_ARG;
+commands[42].optional_opt_args[5].opt = profile_ARG;
+commands[42].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[42].optional_opt_args[6].opt = quiet_ARG;
+commands[42].optional_opt_args[7].opt = verbose_ARG;
+commands[42].optional_opt_args[8].opt = version_ARG;
+commands[42].optional_opt_args[9].opt = yes_ARG;
+commands[42].optional_opt_args[10].opt = addtag_ARG;
+commands[42].optional_opt_args[10].def.types = ARG_DEF_TYPE_TAG;
+commands[42].optional_opt_args[11].opt = alloc_ARG;
+commands[42].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[42].optional_opt_args[12].opt = autobackup_ARG;
+commands[42].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[42].optional_opt_args[13].opt = activate_ARG;
+commands[42].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[42].optional_opt_args[14].opt = contiguous_ARG;
+commands[42].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[42].optional_opt_args[15].opt = ignoreactivationskip_ARG;
+commands[42].optional_opt_args[16].opt = ignoremonitoring_ARG;
+commands[42].optional_opt_args[17].opt = major_ARG;
+commands[42].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[42].optional_opt_args[18].opt = metadataprofile_ARG;
+commands[42].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[42].optional_opt_args[19].opt = minor_ARG;
+commands[42].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[42].optional_opt_args[20].opt = monitor_ARG;
+commands[42].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[42].optional_opt_args[21].opt = name_ARG;
+commands[42].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[42].optional_opt_args[22].opt = nosync_ARG;
+commands[42].optional_opt_args[23].opt = noudevsync_ARG;
+commands[42].optional_opt_args[24].opt = permission_ARG;
+commands[42].optional_opt_args[25].opt = persistent_ARG;
+commands[42].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+commands[42].optional_opt_args[26].opt = readahead_ARG;
+commands[42].optional_opt_args[26].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[42].optional_opt_args[27].opt = reportformat_ARG;
+commands[42].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[42].optional_opt_args[28].opt = setactivationskip_ARG;
+commands[42].optional_opt_args[28].def.types = ARG_DEF_TYPE_BOOL;
+commands[42].optional_opt_args[29].opt = test_ARG;
+commands[42].optional_opt_args[30].opt = wipesignatures_ARG;
+commands[42].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[42].optional_opt_args[31].opt = zero_ARG;
+commands[42].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+
+commands[43].name = "lvcreate";
+commands[43].fn = lvcreate;
+commands[43].ro_count = 2;
+commands[43].rp_count = 1;
+commands[43].oo_count = 32;
+commands[43].op_count = 0;
+commands[43].desc = "Create an LV that returns zeros when read.";
+commands[43].usage = "lvcreate --type zero --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]";
+commands[43].required_opt_args[0].opt = type_ARG;
+commands[43].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[43].required_opt_args[0].def.str = "zero";
+commands[43].required_opt_args[1].opt = size_ARG;
+commands[43].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[43].required_pos_args[0].pos = 1;
+commands[43].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[43].optional_opt_args[0].opt = commandprofile_ARG;
+commands[43].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[43].optional_opt_args[1].opt = config_ARG;
+commands[43].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[43].optional_opt_args[2].opt = debug_ARG;
+commands[43].optional_opt_args[3].opt = driverloaded_ARG;
+commands[43].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[43].optional_opt_args[4].opt = help_ARG;
+commands[43].optional_opt_args[5].opt = profile_ARG;
+commands[43].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[43].optional_opt_args[6].opt = quiet_ARG;
+commands[43].optional_opt_args[7].opt = verbose_ARG;
+commands[43].optional_opt_args[8].opt = version_ARG;
+commands[43].optional_opt_args[9].opt = yes_ARG;
+commands[43].optional_opt_args[10].opt = addtag_ARG;
+commands[43].optional_opt_args[10].def.types = ARG_DEF_TYPE_TAG;
+commands[43].optional_opt_args[11].opt = alloc_ARG;
+commands[43].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[43].optional_opt_args[12].opt = autobackup_ARG;
+commands[43].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[43].optional_opt_args[13].opt = activate_ARG;
+commands[43].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[43].optional_opt_args[14].opt = contiguous_ARG;
+commands[43].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[43].optional_opt_args[15].opt = ignoreactivationskip_ARG;
+commands[43].optional_opt_args[16].opt = ignoremonitoring_ARG;
+commands[43].optional_opt_args[17].opt = major_ARG;
+commands[43].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[43].optional_opt_args[18].opt = metadataprofile_ARG;
+commands[43].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[43].optional_opt_args[19].opt = minor_ARG;
+commands[43].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[43].optional_opt_args[20].opt = monitor_ARG;
+commands[43].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[43].optional_opt_args[21].opt = name_ARG;
+commands[43].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[43].optional_opt_args[22].opt = nosync_ARG;
+commands[43].optional_opt_args[23].opt = noudevsync_ARG;
+commands[43].optional_opt_args[24].opt = permission_ARG;
+commands[43].optional_opt_args[25].opt = persistent_ARG;
+commands[43].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+commands[43].optional_opt_args[26].opt = readahead_ARG;
+commands[43].optional_opt_args[26].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[43].optional_opt_args[27].opt = reportformat_ARG;
+commands[43].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[43].optional_opt_args[28].opt = setactivationskip_ARG;
+commands[43].optional_opt_args[28].def.types = ARG_DEF_TYPE_BOOL;
+commands[43].optional_opt_args[29].opt = test_ARG;
+commands[43].optional_opt_args[30].opt = wipesignatures_ARG;
+commands[43].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[43].optional_opt_args[31].opt = zero_ARG;
+commands[43].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+
+commands[44].name = "lvcreate";
+commands[44].fn = lvcreate;
+commands[44].ro_count = 2;
+commands[44].rp_count = 1;
+commands[44].oo_count = 32;
+commands[44].op_count = 1;
+commands[44].desc = "Create a linear LV.";
+commands[44].usage = "lvcreate --type linear --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[44].required_opt_args[0].opt = type_ARG;
+commands[44].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[44].required_opt_args[0].def.str = "linear";
+commands[44].required_opt_args[1].opt = size_ARG;
+commands[44].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[44].required_pos_args[0].pos = 1;
+commands[44].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[44].optional_opt_args[0].opt = commandprofile_ARG;
+commands[44].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[44].optional_opt_args[1].opt = config_ARG;
+commands[44].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[44].optional_opt_args[2].opt = debug_ARG;
+commands[44].optional_opt_args[3].opt = driverloaded_ARG;
+commands[44].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[44].optional_opt_args[4].opt = help_ARG;
+commands[44].optional_opt_args[5].opt = profile_ARG;
+commands[44].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[44].optional_opt_args[6].opt = quiet_ARG;
+commands[44].optional_opt_args[7].opt = verbose_ARG;
+commands[44].optional_opt_args[8].opt = version_ARG;
+commands[44].optional_opt_args[9].opt = yes_ARG;
+commands[44].optional_opt_args[10].opt = addtag_ARG;
+commands[44].optional_opt_args[10].def.types = ARG_DEF_TYPE_TAG;
+commands[44].optional_opt_args[11].opt = alloc_ARG;
+commands[44].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[44].optional_opt_args[12].opt = autobackup_ARG;
+commands[44].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[44].optional_opt_args[13].opt = activate_ARG;
+commands[44].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[44].optional_opt_args[14].opt = contiguous_ARG;
+commands[44].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[44].optional_opt_args[15].opt = ignoreactivationskip_ARG;
+commands[44].optional_opt_args[16].opt = ignoremonitoring_ARG;
+commands[44].optional_opt_args[17].opt = major_ARG;
+commands[44].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[44].optional_opt_args[18].opt = metadataprofile_ARG;
+commands[44].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[44].optional_opt_args[19].opt = minor_ARG;
+commands[44].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[44].optional_opt_args[20].opt = monitor_ARG;
+commands[44].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[44].optional_opt_args[21].opt = name_ARG;
+commands[44].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[44].optional_opt_args[22].opt = nosync_ARG;
+commands[44].optional_opt_args[23].opt = noudevsync_ARG;
+commands[44].optional_opt_args[24].opt = permission_ARG;
+commands[44].optional_opt_args[25].opt = persistent_ARG;
+commands[44].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+commands[44].optional_opt_args[26].opt = readahead_ARG;
+commands[44].optional_opt_args[26].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[44].optional_opt_args[27].opt = reportformat_ARG;
+commands[44].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[44].optional_opt_args[28].opt = setactivationskip_ARG;
+commands[44].optional_opt_args[28].def.types = ARG_DEF_TYPE_BOOL;
+commands[44].optional_opt_args[29].opt = test_ARG;
+commands[44].optional_opt_args[30].opt = wipesignatures_ARG;
+commands[44].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[44].optional_opt_args[31].opt = zero_ARG;
+commands[44].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[44].optional_pos_args[0].pos = 2;
+commands[44].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[44].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[45].name = "lvcreate";
+commands[45].fn = lvcreate;
+commands[45].ro_count = 2;
+commands[45].rp_count = 1;
+commands[45].oo_count = 34;
+commands[45].op_count = 1;
+commands[45].desc = "Create a striped LV.";
+commands[45].usage = "lvcreate --type striped --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --stripes Number, --stripesize Number, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[45].required_opt_args[0].opt = type_ARG;
+commands[45].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[45].required_opt_args[0].def.str = "striped";
+commands[45].required_opt_args[1].opt = size_ARG;
+commands[45].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[45].required_pos_args[0].pos = 1;
+commands[45].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[45].optional_opt_args[0].opt = commandprofile_ARG;
+commands[45].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[45].optional_opt_args[1].opt = config_ARG;
+commands[45].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[45].optional_opt_args[2].opt = debug_ARG;
+commands[45].optional_opt_args[3].opt = driverloaded_ARG;
+commands[45].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[45].optional_opt_args[4].opt = help_ARG;
+commands[45].optional_opt_args[5].opt = profile_ARG;
+commands[45].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[45].optional_opt_args[6].opt = quiet_ARG;
+commands[45].optional_opt_args[7].opt = verbose_ARG;
+commands[45].optional_opt_args[8].opt = version_ARG;
+commands[45].optional_opt_args[9].opt = yes_ARG;
+commands[45].optional_opt_args[10].opt = stripes_ARG;
+commands[45].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[45].optional_opt_args[11].opt = stripesize_ARG;
+commands[45].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[45].optional_opt_args[12].opt = addtag_ARG;
+commands[45].optional_opt_args[12].def.types = ARG_DEF_TYPE_TAG;
+commands[45].optional_opt_args[13].opt = alloc_ARG;
+commands[45].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[45].optional_opt_args[14].opt = autobackup_ARG;
+commands[45].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[45].optional_opt_args[15].opt = activate_ARG;
+commands[45].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[45].optional_opt_args[16].opt = contiguous_ARG;
+commands[45].optional_opt_args[16].def.types = ARG_DEF_TYPE_BOOL;
+commands[45].optional_opt_args[17].opt = ignoreactivationskip_ARG;
+commands[45].optional_opt_args[18].opt = ignoremonitoring_ARG;
+commands[45].optional_opt_args[19].opt = major_ARG;
+commands[45].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[45].optional_opt_args[20].opt = metadataprofile_ARG;
+commands[45].optional_opt_args[20].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[45].optional_opt_args[21].opt = minor_ARG;
+commands[45].optional_opt_args[21].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[45].optional_opt_args[22].opt = monitor_ARG;
+commands[45].optional_opt_args[22].def.types = ARG_DEF_TYPE_BOOL;
+commands[45].optional_opt_args[23].opt = name_ARG;
+commands[45].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[45].optional_opt_args[24].opt = nosync_ARG;
+commands[45].optional_opt_args[25].opt = noudevsync_ARG;
+commands[45].optional_opt_args[26].opt = permission_ARG;
+commands[45].optional_opt_args[27].opt = persistent_ARG;
+commands[45].optional_opt_args[27].def.types = ARG_DEF_TYPE_BOOL;
+commands[45].optional_opt_args[28].opt = readahead_ARG;
+commands[45].optional_opt_args[28].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[45].optional_opt_args[29].opt = reportformat_ARG;
+commands[45].optional_opt_args[29].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[45].optional_opt_args[30].opt = setactivationskip_ARG;
+commands[45].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[45].optional_opt_args[31].opt = test_ARG;
+commands[45].optional_opt_args[32].opt = wipesignatures_ARG;
+commands[45].optional_opt_args[32].def.types = ARG_DEF_TYPE_BOOL;
+commands[45].optional_opt_args[33].opt = zero_ARG;
+commands[45].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[45].optional_pos_args[0].pos = 2;
+commands[45].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[45].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[46].name = "lvcreate";
+commands[46].fn = lvcreate;
+commands[46].ro_count = 2;
+commands[46].rp_count = 1;
+commands[46].oo_count = 36;
+commands[46].op_count = 1;
+commands[46].desc = "Create a mirror LV.";
+commands[46].usage = "lvcreate --type mirror --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --mirrors Number, --mirrorlog String, --corelog, --regionsize Number, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[46].required_opt_args[0].opt = type_ARG;
+commands[46].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[46].required_opt_args[0].def.str = "mirror";
+commands[46].required_opt_args[1].opt = size_ARG;
+commands[46].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[46].required_pos_args[0].pos = 1;
+commands[46].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[46].optional_opt_args[0].opt = commandprofile_ARG;
+commands[46].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[46].optional_opt_args[1].opt = config_ARG;
+commands[46].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[46].optional_opt_args[2].opt = debug_ARG;
+commands[46].optional_opt_args[3].opt = driverloaded_ARG;
+commands[46].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[46].optional_opt_args[4].opt = help_ARG;
+commands[46].optional_opt_args[5].opt = profile_ARG;
+commands[46].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[46].optional_opt_args[6].opt = quiet_ARG;
+commands[46].optional_opt_args[7].opt = verbose_ARG;
+commands[46].optional_opt_args[8].opt = version_ARG;
+commands[46].optional_opt_args[9].opt = yes_ARG;
+commands[46].optional_opt_args[10].opt = mirrors_ARG;
+commands[46].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[46].optional_opt_args[11].opt = mirrorlog_ARG;
+commands[46].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[46].optional_opt_args[12].opt = corelog_ARG;
+commands[46].optional_opt_args[13].opt = regionsize_ARG;
+commands[46].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[46].optional_opt_args[14].opt = addtag_ARG;
+commands[46].optional_opt_args[14].def.types = ARG_DEF_TYPE_TAG;
+commands[46].optional_opt_args[15].opt = alloc_ARG;
+commands[46].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[46].optional_opt_args[16].opt = autobackup_ARG;
+commands[46].optional_opt_args[16].def.types = ARG_DEF_TYPE_BOOL;
+commands[46].optional_opt_args[17].opt = activate_ARG;
+commands[46].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[46].optional_opt_args[18].opt = contiguous_ARG;
+commands[46].optional_opt_args[18].def.types = ARG_DEF_TYPE_BOOL;
+commands[46].optional_opt_args[19].opt = ignoreactivationskip_ARG;
+commands[46].optional_opt_args[20].opt = ignoremonitoring_ARG;
+commands[46].optional_opt_args[21].opt = major_ARG;
+commands[46].optional_opt_args[21].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[46].optional_opt_args[22].opt = metadataprofile_ARG;
+commands[46].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[46].optional_opt_args[23].opt = minor_ARG;
+commands[46].optional_opt_args[23].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[46].optional_opt_args[24].opt = monitor_ARG;
+commands[46].optional_opt_args[24].def.types = ARG_DEF_TYPE_BOOL;
+commands[46].optional_opt_args[25].opt = name_ARG;
+commands[46].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[46].optional_opt_args[26].opt = nosync_ARG;
+commands[46].optional_opt_args[27].opt = noudevsync_ARG;
+commands[46].optional_opt_args[28].opt = permission_ARG;
+commands[46].optional_opt_args[29].opt = persistent_ARG;
+commands[46].optional_opt_args[29].def.types = ARG_DEF_TYPE_BOOL;
+commands[46].optional_opt_args[30].opt = readahead_ARG;
+commands[46].optional_opt_args[30].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[46].optional_opt_args[31].opt = reportformat_ARG;
+commands[46].optional_opt_args[31].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[46].optional_opt_args[32].opt = setactivationskip_ARG;
+commands[46].optional_opt_args[32].def.types = ARG_DEF_TYPE_BOOL;
+commands[46].optional_opt_args[33].opt = test_ARG;
+commands[46].optional_opt_args[34].opt = wipesignatures_ARG;
+commands[46].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+commands[46].optional_opt_args[35].opt = zero_ARG;
+commands[46].optional_opt_args[35].def.types = ARG_DEF_TYPE_BOOL;
+commands[46].optional_pos_args[0].pos = 2;
+commands[46].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[46].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[47].name = "lvcreate";
+commands[47].fn = lvcreate;
+commands[47].ro_count = 2;
+commands[47].rp_count = 1;
+commands[47].oo_count = 38;
+commands[47].op_count = 1;
+commands[47].desc = "Create a raid LV (a specific raid level must be used, e.g. raid1).";
+commands[47].usage = "lvcreate --type raid --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --mirrors Number, --stripes Number, --stripesize Number, --regionsize Number, --minrecoveryrate Number, --maxrecoveryrate Number, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[47].required_opt_args[0].opt = type_ARG;
+commands[47].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[47].required_opt_args[0].def.str = "raid";
+commands[47].required_opt_args[1].opt = size_ARG;
+commands[47].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[47].required_pos_args[0].pos = 1;
+commands[47].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[47].optional_opt_args[0].opt = commandprofile_ARG;
+commands[47].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[47].optional_opt_args[1].opt = config_ARG;
+commands[47].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[47].optional_opt_args[2].opt = debug_ARG;
+commands[47].optional_opt_args[3].opt = driverloaded_ARG;
+commands[47].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[47].optional_opt_args[4].opt = help_ARG;
+commands[47].optional_opt_args[5].opt = profile_ARG;
+commands[47].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[47].optional_opt_args[6].opt = quiet_ARG;
+commands[47].optional_opt_args[7].opt = verbose_ARG;
+commands[47].optional_opt_args[8].opt = version_ARG;
+commands[47].optional_opt_args[9].opt = yes_ARG;
+commands[47].optional_opt_args[10].opt = mirrors_ARG;
+commands[47].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[47].optional_opt_args[11].opt = stripes_ARG;
+commands[47].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[47].optional_opt_args[12].opt = stripesize_ARG;
+commands[47].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[47].optional_opt_args[13].opt = regionsize_ARG;
+commands[47].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[47].optional_opt_args[14].opt = minrecoveryrate_ARG;
+commands[47].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[47].optional_opt_args[15].opt = maxrecoveryrate_ARG;
+commands[47].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[47].optional_opt_args[16].opt = addtag_ARG;
+commands[47].optional_opt_args[16].def.types = ARG_DEF_TYPE_TAG;
+commands[47].optional_opt_args[17].opt = alloc_ARG;
+commands[47].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[47].optional_opt_args[18].opt = autobackup_ARG;
+commands[47].optional_opt_args[18].def.types = ARG_DEF_TYPE_BOOL;
+commands[47].optional_opt_args[19].opt = activate_ARG;
+commands[47].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[47].optional_opt_args[20].opt = contiguous_ARG;
+commands[47].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[47].optional_opt_args[21].opt = ignoreactivationskip_ARG;
+commands[47].optional_opt_args[22].opt = ignoremonitoring_ARG;
+commands[47].optional_opt_args[23].opt = major_ARG;
+commands[47].optional_opt_args[23].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[47].optional_opt_args[24].opt = metadataprofile_ARG;
+commands[47].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[47].optional_opt_args[25].opt = minor_ARG;
+commands[47].optional_opt_args[25].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[47].optional_opt_args[26].opt = monitor_ARG;
+commands[47].optional_opt_args[26].def.types = ARG_DEF_TYPE_BOOL;
+commands[47].optional_opt_args[27].opt = name_ARG;
+commands[47].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[47].optional_opt_args[28].opt = nosync_ARG;
+commands[47].optional_opt_args[29].opt = noudevsync_ARG;
+commands[47].optional_opt_args[30].opt = permission_ARG;
+commands[47].optional_opt_args[31].opt = persistent_ARG;
+commands[47].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[47].optional_opt_args[32].opt = readahead_ARG;
+commands[47].optional_opt_args[32].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[47].optional_opt_args[33].opt = reportformat_ARG;
+commands[47].optional_opt_args[33].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[47].optional_opt_args[34].opt = setactivationskip_ARG;
+commands[47].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+commands[47].optional_opt_args[35].opt = test_ARG;
+commands[47].optional_opt_args[36].opt = wipesignatures_ARG;
+commands[47].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+commands[47].optional_opt_args[37].opt = zero_ARG;
+commands[47].optional_opt_args[37].def.types = ARG_DEF_TYPE_BOOL;
+commands[47].optional_pos_args[0].pos = 2;
+commands[47].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[47].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[48].name = "lvcreate";
+commands[48].fn = lvcreate;
+commands[48].ro_count = 2;
+commands[48].rp_count = 1;
+commands[48].oo_count = 32;
+commands[48].op_count = 1;
+commands[48].desc = "Create a COW snapshot from an origin LV.";
+commands[48].usage = "lvcreate --type snapshot --size Number LV"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[48].required_opt_args[0].opt = type_ARG;
+commands[48].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[48].required_opt_args[0].def.str = "snapshot";
+commands[48].required_opt_args[1].opt = size_ARG;
+commands[48].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[48].required_pos_args[0].pos = 1;
+commands[48].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[48].optional_opt_args[0].opt = commandprofile_ARG;
+commands[48].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[48].optional_opt_args[1].opt = config_ARG;
+commands[48].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[48].optional_opt_args[2].opt = debug_ARG;
+commands[48].optional_opt_args[3].opt = driverloaded_ARG;
+commands[48].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[48].optional_opt_args[4].opt = help_ARG;
+commands[48].optional_opt_args[5].opt = profile_ARG;
+commands[48].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[48].optional_opt_args[6].opt = quiet_ARG;
+commands[48].optional_opt_args[7].opt = verbose_ARG;
+commands[48].optional_opt_args[8].opt = version_ARG;
+commands[48].optional_opt_args[9].opt = yes_ARG;
+commands[48].optional_opt_args[10].opt = addtag_ARG;
+commands[48].optional_opt_args[10].def.types = ARG_DEF_TYPE_TAG;
+commands[48].optional_opt_args[11].opt = alloc_ARG;
+commands[48].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[48].optional_opt_args[12].opt = autobackup_ARG;
+commands[48].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[48].optional_opt_args[13].opt = activate_ARG;
+commands[48].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[48].optional_opt_args[14].opt = contiguous_ARG;
+commands[48].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[48].optional_opt_args[15].opt = ignoreactivationskip_ARG;
+commands[48].optional_opt_args[16].opt = ignoremonitoring_ARG;
+commands[48].optional_opt_args[17].opt = major_ARG;
+commands[48].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[48].optional_opt_args[18].opt = metadataprofile_ARG;
+commands[48].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[48].optional_opt_args[19].opt = minor_ARG;
+commands[48].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[48].optional_opt_args[20].opt = monitor_ARG;
+commands[48].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[48].optional_opt_args[21].opt = name_ARG;
+commands[48].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[48].optional_opt_args[22].opt = nosync_ARG;
+commands[48].optional_opt_args[23].opt = noudevsync_ARG;
+commands[48].optional_opt_args[24].opt = permission_ARG;
+commands[48].optional_opt_args[25].opt = persistent_ARG;
+commands[48].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+commands[48].optional_opt_args[26].opt = readahead_ARG;
+commands[48].optional_opt_args[26].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[48].optional_opt_args[27].opt = reportformat_ARG;
+commands[48].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[48].optional_opt_args[28].opt = setactivationskip_ARG;
+commands[48].optional_opt_args[28].def.types = ARG_DEF_TYPE_BOOL;
+commands[48].optional_opt_args[29].opt = test_ARG;
+commands[48].optional_opt_args[30].opt = wipesignatures_ARG;
+commands[48].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[48].optional_opt_args[31].opt = zero_ARG;
+commands[48].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[48].optional_pos_args[0].pos = 2;
+commands[48].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[48].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[49].name = "lvcreate";
+commands[49].fn = lvcreate;
+commands[49].ro_count = 3;
+commands[49].rp_count = 1;
+commands[49].oo_count = 33;
+commands[49].op_count = 1;
+commands[49].desc = "Create a sparse COW snapshot LV of a virtual origin LV.";
+commands[49].usage = "lvcreate --type snapshot --size Number --virtualsize Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --virtualoriginsize Number, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[49].required_opt_args[0].opt = type_ARG;
+commands[49].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[49].required_opt_args[0].def.str = "snapshot";
+commands[49].required_opt_args[1].opt = size_ARG;
+commands[49].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[49].required_opt_args[2].opt = virtualsize_ARG;
+commands[49].required_opt_args[2].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[49].required_pos_args[0].pos = 1;
+commands[49].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[49].optional_opt_args[0].opt = commandprofile_ARG;
+commands[49].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[49].optional_opt_args[1].opt = config_ARG;
+commands[49].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[49].optional_opt_args[2].opt = debug_ARG;
+commands[49].optional_opt_args[3].opt = driverloaded_ARG;
+commands[49].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[49].optional_opt_args[4].opt = help_ARG;
+commands[49].optional_opt_args[5].opt = profile_ARG;
+commands[49].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[49].optional_opt_args[6].opt = quiet_ARG;
+commands[49].optional_opt_args[7].opt = verbose_ARG;
+commands[49].optional_opt_args[8].opt = version_ARG;
+commands[49].optional_opt_args[9].opt = yes_ARG;
+commands[49].optional_opt_args[10].opt = virtualoriginsize_ARG;
+commands[49].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[49].optional_opt_args[11].opt = addtag_ARG;
+commands[49].optional_opt_args[11].def.types = ARG_DEF_TYPE_TAG;
+commands[49].optional_opt_args[12].opt = alloc_ARG;
+commands[49].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[49].optional_opt_args[13].opt = autobackup_ARG;
+commands[49].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[49].optional_opt_args[14].opt = activate_ARG;
+commands[49].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[49].optional_opt_args[15].opt = contiguous_ARG;
+commands[49].optional_opt_args[15].def.types = ARG_DEF_TYPE_BOOL;
+commands[49].optional_opt_args[16].opt = ignoreactivationskip_ARG;
+commands[49].optional_opt_args[17].opt = ignoremonitoring_ARG;
+commands[49].optional_opt_args[18].opt = major_ARG;
+commands[49].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[49].optional_opt_args[19].opt = metadataprofile_ARG;
+commands[49].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[49].optional_opt_args[20].opt = minor_ARG;
+commands[49].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[49].optional_opt_args[21].opt = monitor_ARG;
+commands[49].optional_opt_args[21].def.types = ARG_DEF_TYPE_BOOL;
+commands[49].optional_opt_args[22].opt = name_ARG;
+commands[49].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[49].optional_opt_args[23].opt = nosync_ARG;
+commands[49].optional_opt_args[24].opt = noudevsync_ARG;
+commands[49].optional_opt_args[25].opt = permission_ARG;
+commands[49].optional_opt_args[26].opt = persistent_ARG;
+commands[49].optional_opt_args[26].def.types = ARG_DEF_TYPE_BOOL;
+commands[49].optional_opt_args[27].opt = readahead_ARG;
+commands[49].optional_opt_args[27].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[49].optional_opt_args[28].opt = reportformat_ARG;
+commands[49].optional_opt_args[28].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[49].optional_opt_args[29].opt = setactivationskip_ARG;
+commands[49].optional_opt_args[29].def.types = ARG_DEF_TYPE_BOOL;
+commands[49].optional_opt_args[30].opt = test_ARG;
+commands[49].optional_opt_args[31].opt = wipesignatures_ARG;
+commands[49].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[49].optional_opt_args[32].opt = zero_ARG;
+commands[49].optional_opt_args[32].def.types = ARG_DEF_TYPE_BOOL;
+commands[49].optional_pos_args[0].pos = 2;
+commands[49].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[49].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[50].name = "lvcreate";
+commands[50].fn = lvcreate;
+commands[50].ro_count = 2;
+commands[50].rp_count = 1;
+commands[50].oo_count = 37;
+commands[50].op_count = 1;
+commands[50].desc = "Create a thin pool.";
+commands[50].usage = "lvcreate --type thin-pool --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[50].required_opt_args[0].opt = type_ARG;
+commands[50].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[50].required_opt_args[0].def.str = "thin-pool";
+commands[50].required_opt_args[1].opt = size_ARG;
+commands[50].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[50].required_pos_args[0].pos = 1;
+commands[50].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[50].optional_opt_args[0].opt = commandprofile_ARG;
+commands[50].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[50].optional_opt_args[1].opt = config_ARG;
+commands[50].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[50].optional_opt_args[2].opt = debug_ARG;
+commands[50].optional_opt_args[3].opt = driverloaded_ARG;
+commands[50].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[50].optional_opt_args[4].opt = help_ARG;
+commands[50].optional_opt_args[5].opt = profile_ARG;
+commands[50].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[50].optional_opt_args[6].opt = quiet_ARG;
+commands[50].optional_opt_args[7].opt = verbose_ARG;
+commands[50].optional_opt_args[8].opt = version_ARG;
+commands[50].optional_opt_args[9].opt = yes_ARG;
+commands[50].optional_opt_args[10].opt = poolmetadatasize_ARG;
+commands[50].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[50].optional_opt_args[11].opt = poolmetadataspare_ARG;
+commands[50].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[50].optional_opt_args[12].opt = chunksize_ARG;
+commands[50].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[50].optional_opt_args[13].opt = discards_ARG;
+commands[50].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[50].optional_opt_args[14].opt = errorwhenfull_ARG;
+commands[50].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[50].optional_opt_args[15].opt = addtag_ARG;
+commands[50].optional_opt_args[15].def.types = ARG_DEF_TYPE_TAG;
+commands[50].optional_opt_args[16].opt = alloc_ARG;
+commands[50].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[50].optional_opt_args[17].opt = autobackup_ARG;
+commands[50].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[50].optional_opt_args[18].opt = activate_ARG;
+commands[50].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[50].optional_opt_args[19].opt = contiguous_ARG;
+commands[50].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[50].optional_opt_args[20].opt = ignoreactivationskip_ARG;
+commands[50].optional_opt_args[21].opt = ignoremonitoring_ARG;
+commands[50].optional_opt_args[22].opt = major_ARG;
+commands[50].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[50].optional_opt_args[23].opt = metadataprofile_ARG;
+commands[50].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[50].optional_opt_args[24].opt = minor_ARG;
+commands[50].optional_opt_args[24].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[50].optional_opt_args[25].opt = monitor_ARG;
+commands[50].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+commands[50].optional_opt_args[26].opt = name_ARG;
+commands[50].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[50].optional_opt_args[27].opt = nosync_ARG;
+commands[50].optional_opt_args[28].opt = noudevsync_ARG;
+commands[50].optional_opt_args[29].opt = permission_ARG;
+commands[50].optional_opt_args[30].opt = persistent_ARG;
+commands[50].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[50].optional_opt_args[31].opt = readahead_ARG;
+commands[50].optional_opt_args[31].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[50].optional_opt_args[32].opt = reportformat_ARG;
+commands[50].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[50].optional_opt_args[33].opt = setactivationskip_ARG;
+commands[50].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[50].optional_opt_args[34].opt = test_ARG;
+commands[50].optional_opt_args[35].opt = wipesignatures_ARG;
+commands[50].optional_opt_args[35].def.types = ARG_DEF_TYPE_BOOL;
+commands[50].optional_opt_args[36].opt = zero_ARG;
+commands[50].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+commands[50].optional_pos_args[0].pos = 2;
+commands[50].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[50].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[51].name = "lvcreate";
+commands[51].fn = lvcreate;
+commands[51].ro_count = 2;
+commands[51].rp_count = 1;
+commands[51].oo_count = 38;
+commands[51].op_count = 1;
+commands[51].desc = "Create a cache pool.";
+commands[51].usage = "lvcreate --type cache-pool --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --cachemode String, --cachepolicy String, --cachesettings String, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[51].required_opt_args[0].opt = type_ARG;
+commands[51].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[51].required_opt_args[0].def.str = "cache-pool";
+commands[51].required_opt_args[1].opt = size_ARG;
+commands[51].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[51].required_pos_args[0].pos = 1;
+commands[51].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[51].optional_opt_args[0].opt = commandprofile_ARG;
+commands[51].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[51].optional_opt_args[1].opt = config_ARG;
+commands[51].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[51].optional_opt_args[2].opt = debug_ARG;
+commands[51].optional_opt_args[3].opt = driverloaded_ARG;
+commands[51].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[51].optional_opt_args[4].opt = help_ARG;
+commands[51].optional_opt_args[5].opt = profile_ARG;
+commands[51].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[51].optional_opt_args[6].opt = quiet_ARG;
+commands[51].optional_opt_args[7].opt = verbose_ARG;
+commands[51].optional_opt_args[8].opt = version_ARG;
+commands[51].optional_opt_args[9].opt = yes_ARG;
+commands[51].optional_opt_args[10].opt = poolmetadatasize_ARG;
+commands[51].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[51].optional_opt_args[11].opt = poolmetadataspare_ARG;
+commands[51].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[51].optional_opt_args[12].opt = chunksize_ARG;
+commands[51].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[51].optional_opt_args[13].opt = cachemode_ARG;
+commands[51].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[51].optional_opt_args[14].opt = cachepolicy_ARG;
+commands[51].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[51].optional_opt_args[15].opt = cachesettings_ARG;
+commands[51].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[51].optional_opt_args[16].opt = addtag_ARG;
+commands[51].optional_opt_args[16].def.types = ARG_DEF_TYPE_TAG;
+commands[51].optional_opt_args[17].opt = alloc_ARG;
+commands[51].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[51].optional_opt_args[18].opt = autobackup_ARG;
+commands[51].optional_opt_args[18].def.types = ARG_DEF_TYPE_BOOL;
+commands[51].optional_opt_args[19].opt = activate_ARG;
+commands[51].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[51].optional_opt_args[20].opt = contiguous_ARG;
+commands[51].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[51].optional_opt_args[21].opt = ignoreactivationskip_ARG;
+commands[51].optional_opt_args[22].opt = ignoremonitoring_ARG;
+commands[51].optional_opt_args[23].opt = major_ARG;
+commands[51].optional_opt_args[23].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[51].optional_opt_args[24].opt = metadataprofile_ARG;
+commands[51].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[51].optional_opt_args[25].opt = minor_ARG;
+commands[51].optional_opt_args[25].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[51].optional_opt_args[26].opt = monitor_ARG;
+commands[51].optional_opt_args[26].def.types = ARG_DEF_TYPE_BOOL;
+commands[51].optional_opt_args[27].opt = name_ARG;
+commands[51].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[51].optional_opt_args[28].opt = nosync_ARG;
+commands[51].optional_opt_args[29].opt = noudevsync_ARG;
+commands[51].optional_opt_args[30].opt = permission_ARG;
+commands[51].optional_opt_args[31].opt = persistent_ARG;
+commands[51].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[51].optional_opt_args[32].opt = readahead_ARG;
+commands[51].optional_opt_args[32].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[51].optional_opt_args[33].opt = reportformat_ARG;
+commands[51].optional_opt_args[33].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[51].optional_opt_args[34].opt = setactivationskip_ARG;
+commands[51].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+commands[51].optional_opt_args[35].opt = test_ARG;
+commands[51].optional_opt_args[36].opt = wipesignatures_ARG;
+commands[51].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+commands[51].optional_opt_args[37].opt = zero_ARG;
+commands[51].optional_opt_args[37].def.types = ARG_DEF_TYPE_BOOL;
+commands[51].optional_pos_args[0].pos = 2;
+commands[51].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[51].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[52].name = "lvcreate";
+commands[52].fn = lvcreate;
+commands[52].ro_count = 3;
+commands[52].rp_count = 0;
+commands[52].oo_count = 37;
+commands[52].op_count = 0;
+commands[52].desc = "Create a thin LV in a thin pool.";
+commands[52].usage = "lvcreate --type thin --virtualsize Number --thinpool LV_thinpool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]";
+commands[52].required_opt_args[0].opt = type_ARG;
+commands[52].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[52].required_opt_args[0].def.str = "thin";
+commands[52].required_opt_args[1].opt = virtualsize_ARG;
+commands[52].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[52].required_opt_args[2].opt = thinpool_ARG;
+commands[52].required_opt_args[2].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[52].required_opt_args[2].def.lv_types = ARG_DEF_LV_THINPOOL;
+commands[52].optional_opt_args[0].opt = commandprofile_ARG;
+commands[52].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[52].optional_opt_args[1].opt = config_ARG;
+commands[52].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[52].optional_opt_args[2].opt = debug_ARG;
+commands[52].optional_opt_args[3].opt = driverloaded_ARG;
+commands[52].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[52].optional_opt_args[4].opt = help_ARG;
+commands[52].optional_opt_args[5].opt = profile_ARG;
+commands[52].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[52].optional_opt_args[6].opt = quiet_ARG;
+commands[52].optional_opt_args[7].opt = verbose_ARG;
+commands[52].optional_opt_args[8].opt = version_ARG;
+commands[52].optional_opt_args[9].opt = yes_ARG;
+commands[52].optional_opt_args[10].opt = poolmetadatasize_ARG;
+commands[52].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[52].optional_opt_args[11].opt = poolmetadataspare_ARG;
+commands[52].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[52].optional_opt_args[12].opt = chunksize_ARG;
+commands[52].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[52].optional_opt_args[13].opt = discards_ARG;
+commands[52].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[52].optional_opt_args[14].opt = errorwhenfull_ARG;
+commands[52].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[52].optional_opt_args[15].opt = addtag_ARG;
+commands[52].optional_opt_args[15].def.types = ARG_DEF_TYPE_TAG;
+commands[52].optional_opt_args[16].opt = alloc_ARG;
+commands[52].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[52].optional_opt_args[17].opt = autobackup_ARG;
+commands[52].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[52].optional_opt_args[18].opt = activate_ARG;
+commands[52].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[52].optional_opt_args[19].opt = contiguous_ARG;
+commands[52].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[52].optional_opt_args[20].opt = ignoreactivationskip_ARG;
+commands[52].optional_opt_args[21].opt = ignoremonitoring_ARG;
+commands[52].optional_opt_args[22].opt = major_ARG;
+commands[52].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[52].optional_opt_args[23].opt = metadataprofile_ARG;
+commands[52].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[52].optional_opt_args[24].opt = minor_ARG;
+commands[52].optional_opt_args[24].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[52].optional_opt_args[25].opt = monitor_ARG;
+commands[52].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+commands[52].optional_opt_args[26].opt = name_ARG;
+commands[52].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[52].optional_opt_args[27].opt = nosync_ARG;
+commands[52].optional_opt_args[28].opt = noudevsync_ARG;
+commands[52].optional_opt_args[29].opt = permission_ARG;
+commands[52].optional_opt_args[30].opt = persistent_ARG;
+commands[52].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[52].optional_opt_args[31].opt = readahead_ARG;
+commands[52].optional_opt_args[31].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[52].optional_opt_args[32].opt = reportformat_ARG;
+commands[52].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[52].optional_opt_args[33].opt = setactivationskip_ARG;
+commands[52].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[52].optional_opt_args[34].opt = test_ARG;
+commands[52].optional_opt_args[35].opt = wipesignatures_ARG;
+commands[52].optional_opt_args[35].def.types = ARG_DEF_TYPE_BOOL;
+commands[52].optional_opt_args[36].opt = zero_ARG;
+commands[52].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+
+commands[53].name = "lvcreate";
+commands[53].fn = lvcreate;
+commands[53].ro_count = 2;
+commands[53].rp_count = 1;
+commands[53].oo_count = 37;
+commands[53].op_count = 0;
+commands[53].desc = "Create a thin LV that is a snapshot of an existing thin LV.";
+commands[53].usage = "lvcreate --type thin --snapshot LV_thin"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]";
+commands[53].required_opt_args[0].opt = type_ARG;
+commands[53].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[53].required_opt_args[0].def.str = "thin";
+commands[53].required_opt_args[1].opt = snapshot_ARG;
+commands[53].required_pos_args[0].pos = 1;
+commands[53].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[53].required_pos_args[0].def.lv_types = ARG_DEF_LV_THIN;
+commands[53].optional_opt_args[0].opt = commandprofile_ARG;
+commands[53].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[53].optional_opt_args[1].opt = config_ARG;
+commands[53].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[53].optional_opt_args[2].opt = debug_ARG;
+commands[53].optional_opt_args[3].opt = driverloaded_ARG;
+commands[53].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[53].optional_opt_args[4].opt = help_ARG;
+commands[53].optional_opt_args[5].opt = profile_ARG;
+commands[53].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[53].optional_opt_args[6].opt = quiet_ARG;
+commands[53].optional_opt_args[7].opt = verbose_ARG;
+commands[53].optional_opt_args[8].opt = version_ARG;
+commands[53].optional_opt_args[9].opt = yes_ARG;
+commands[53].optional_opt_args[10].opt = poolmetadatasize_ARG;
+commands[53].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[53].optional_opt_args[11].opt = poolmetadataspare_ARG;
+commands[53].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[53].optional_opt_args[12].opt = chunksize_ARG;
+commands[53].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[53].optional_opt_args[13].opt = discards_ARG;
+commands[53].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[53].optional_opt_args[14].opt = errorwhenfull_ARG;
+commands[53].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[53].optional_opt_args[15].opt = addtag_ARG;
+commands[53].optional_opt_args[15].def.types = ARG_DEF_TYPE_TAG;
+commands[53].optional_opt_args[16].opt = alloc_ARG;
+commands[53].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[53].optional_opt_args[17].opt = autobackup_ARG;
+commands[53].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[53].optional_opt_args[18].opt = activate_ARG;
+commands[53].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[53].optional_opt_args[19].opt = contiguous_ARG;
+commands[53].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[53].optional_opt_args[20].opt = ignoreactivationskip_ARG;
+commands[53].optional_opt_args[21].opt = ignoremonitoring_ARG;
+commands[53].optional_opt_args[22].opt = major_ARG;
+commands[53].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[53].optional_opt_args[23].opt = metadataprofile_ARG;
+commands[53].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[53].optional_opt_args[24].opt = minor_ARG;
+commands[53].optional_opt_args[24].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[53].optional_opt_args[25].opt = monitor_ARG;
+commands[53].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+commands[53].optional_opt_args[26].opt = name_ARG;
+commands[53].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[53].optional_opt_args[27].opt = nosync_ARG;
+commands[53].optional_opt_args[28].opt = noudevsync_ARG;
+commands[53].optional_opt_args[29].opt = permission_ARG;
+commands[53].optional_opt_args[30].opt = persistent_ARG;
+commands[53].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[53].optional_opt_args[31].opt = readahead_ARG;
+commands[53].optional_opt_args[31].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[53].optional_opt_args[32].opt = reportformat_ARG;
+commands[53].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[53].optional_opt_args[33].opt = setactivationskip_ARG;
+commands[53].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[53].optional_opt_args[34].opt = test_ARG;
+commands[53].optional_opt_args[35].opt = wipesignatures_ARG;
+commands[53].optional_opt_args[35].def.types = ARG_DEF_TYPE_BOOL;
+commands[53].optional_opt_args[36].opt = zero_ARG;
+commands[53].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+
+commands[54].name = "lvcreate";
+commands[54].fn = lvcreate;
+commands[54].ro_count = 3;
+commands[54].rp_count = 1;
+commands[54].oo_count = 37;
+commands[54].op_count = 0;
+commands[54].desc = "Create a thin LV that is a snapshot of an external origin LV named in arg pos 1.";
+commands[54].usage = "lvcreate --type thin --snapshot --thinpool LV_thinpool LV"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]";
+commands[54].required_opt_args[0].opt = type_ARG;
+commands[54].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[54].required_opt_args[0].def.str = "thin";
+commands[54].required_opt_args[1].opt = snapshot_ARG;
+commands[54].required_opt_args[2].opt = thinpool_ARG;
+commands[54].required_opt_args[2].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[54].required_opt_args[2].def.lv_types = ARG_DEF_LV_THINPOOL;
+commands[54].required_pos_args[0].pos = 1;
+commands[54].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[54].optional_opt_args[0].opt = commandprofile_ARG;
+commands[54].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[54].optional_opt_args[1].opt = config_ARG;
+commands[54].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[54].optional_opt_args[2].opt = debug_ARG;
+commands[54].optional_opt_args[3].opt = driverloaded_ARG;
+commands[54].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[54].optional_opt_args[4].opt = help_ARG;
+commands[54].optional_opt_args[5].opt = profile_ARG;
+commands[54].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[54].optional_opt_args[6].opt = quiet_ARG;
+commands[54].optional_opt_args[7].opt = verbose_ARG;
+commands[54].optional_opt_args[8].opt = version_ARG;
+commands[54].optional_opt_args[9].opt = yes_ARG;
+commands[54].optional_opt_args[10].opt = poolmetadatasize_ARG;
+commands[54].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[54].optional_opt_args[11].opt = poolmetadataspare_ARG;
+commands[54].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[54].optional_opt_args[12].opt = chunksize_ARG;
+commands[54].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[54].optional_opt_args[13].opt = discards_ARG;
+commands[54].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[54].optional_opt_args[14].opt = errorwhenfull_ARG;
+commands[54].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[54].optional_opt_args[15].opt = addtag_ARG;
+commands[54].optional_opt_args[15].def.types = ARG_DEF_TYPE_TAG;
+commands[54].optional_opt_args[16].opt = alloc_ARG;
+commands[54].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[54].optional_opt_args[17].opt = autobackup_ARG;
+commands[54].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[54].optional_opt_args[18].opt = activate_ARG;
+commands[54].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[54].optional_opt_args[19].opt = contiguous_ARG;
+commands[54].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[54].optional_opt_args[20].opt = ignoreactivationskip_ARG;
+commands[54].optional_opt_args[21].opt = ignoremonitoring_ARG;
+commands[54].optional_opt_args[22].opt = major_ARG;
+commands[54].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[54].optional_opt_args[23].opt = metadataprofile_ARG;
+commands[54].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[54].optional_opt_args[24].opt = minor_ARG;
+commands[54].optional_opt_args[24].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[54].optional_opt_args[25].opt = monitor_ARG;
+commands[54].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+commands[54].optional_opt_args[26].opt = name_ARG;
+commands[54].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[54].optional_opt_args[27].opt = nosync_ARG;
+commands[54].optional_opt_args[28].opt = noudevsync_ARG;
+commands[54].optional_opt_args[29].opt = permission_ARG;
+commands[54].optional_opt_args[30].opt = persistent_ARG;
+commands[54].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[54].optional_opt_args[31].opt = readahead_ARG;
+commands[54].optional_opt_args[31].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[54].optional_opt_args[32].opt = reportformat_ARG;
+commands[54].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[54].optional_opt_args[33].opt = setactivationskip_ARG;
+commands[54].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[54].optional_opt_args[34].opt = test_ARG;
+commands[54].optional_opt_args[35].opt = wipesignatures_ARG;
+commands[54].optional_opt_args[35].def.types = ARG_DEF_TYPE_BOOL;
+commands[54].optional_opt_args[36].opt = zero_ARG;
+commands[54].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+
+commands[55].name = "lvcreate";
+commands[55].fn = lvcreate;
+commands[55].ro_count = 4;
+commands[55].rp_count = 0;
+commands[55].oo_count = 37;
+commands[55].op_count = 1;
+commands[55].desc = "Create a thin LV, first creating a thin pool for it, where the new thin pool is named by the --thinpool arg.";
+commands[55].usage = "lvcreate --type thin --virtualsize Number --size Number --thinpool LV_new"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[55].required_opt_args[0].opt = type_ARG;
+commands[55].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[55].required_opt_args[0].def.str = "thin";
+commands[55].required_opt_args[1].opt = virtualsize_ARG;
+commands[55].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[55].required_opt_args[2].opt = size_ARG;
+commands[55].required_opt_args[2].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[55].required_opt_args[3].opt = thinpool_ARG;
+commands[55].required_opt_args[3].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[55].required_opt_args[3].def.flags = ARG_DEF_FLAG_NEW;
+commands[55].optional_opt_args[0].opt = commandprofile_ARG;
+commands[55].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[55].optional_opt_args[1].opt = config_ARG;
+commands[55].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[55].optional_opt_args[2].opt = debug_ARG;
+commands[55].optional_opt_args[3].opt = driverloaded_ARG;
+commands[55].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[55].optional_opt_args[4].opt = help_ARG;
+commands[55].optional_opt_args[5].opt = profile_ARG;
+commands[55].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[55].optional_opt_args[6].opt = quiet_ARG;
+commands[55].optional_opt_args[7].opt = verbose_ARG;
+commands[55].optional_opt_args[8].opt = version_ARG;
+commands[55].optional_opt_args[9].opt = yes_ARG;
+commands[55].optional_opt_args[10].opt = poolmetadatasize_ARG;
+commands[55].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[55].optional_opt_args[11].opt = poolmetadataspare_ARG;
+commands[55].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[55].optional_opt_args[12].opt = chunksize_ARG;
+commands[55].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[55].optional_opt_args[13].opt = discards_ARG;
+commands[55].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[55].optional_opt_args[14].opt = errorwhenfull_ARG;
+commands[55].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[55].optional_opt_args[15].opt = addtag_ARG;
+commands[55].optional_opt_args[15].def.types = ARG_DEF_TYPE_TAG;
+commands[55].optional_opt_args[16].opt = alloc_ARG;
+commands[55].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[55].optional_opt_args[17].opt = autobackup_ARG;
+commands[55].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[55].optional_opt_args[18].opt = activate_ARG;
+commands[55].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[55].optional_opt_args[19].opt = contiguous_ARG;
+commands[55].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[55].optional_opt_args[20].opt = ignoreactivationskip_ARG;
+commands[55].optional_opt_args[21].opt = ignoremonitoring_ARG;
+commands[55].optional_opt_args[22].opt = major_ARG;
+commands[55].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[55].optional_opt_args[23].opt = metadataprofile_ARG;
+commands[55].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[55].optional_opt_args[24].opt = minor_ARG;
+commands[55].optional_opt_args[24].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[55].optional_opt_args[25].opt = monitor_ARG;
+commands[55].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+commands[55].optional_opt_args[26].opt = name_ARG;
+commands[55].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[55].optional_opt_args[27].opt = nosync_ARG;
+commands[55].optional_opt_args[28].opt = noudevsync_ARG;
+commands[55].optional_opt_args[29].opt = permission_ARG;
+commands[55].optional_opt_args[30].opt = persistent_ARG;
+commands[55].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[55].optional_opt_args[31].opt = readahead_ARG;
+commands[55].optional_opt_args[31].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[55].optional_opt_args[32].opt = reportformat_ARG;
+commands[55].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[55].optional_opt_args[33].opt = setactivationskip_ARG;
+commands[55].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[55].optional_opt_args[34].opt = test_ARG;
+commands[55].optional_opt_args[35].opt = wipesignatures_ARG;
+commands[55].optional_opt_args[35].def.types = ARG_DEF_TYPE_BOOL;
+commands[55].optional_opt_args[36].opt = zero_ARG;
+commands[55].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+commands[55].optional_pos_args[0].pos = 1;
+commands[55].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[55].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[56].name = "lvcreate";
+commands[56].fn = lvcreate;
+commands[56].ro_count = 3;
+commands[56].rp_count = 1;
+commands[56].oo_count = 37;
+commands[56].op_count = 1;
+commands[56].desc = "Create a thin LV, first creating a thin pool for it, where the new thin pool is named in arg pos 1.";
+commands[56].usage = "lvcreate --type thin --virtualsize Number --size Number LV_new"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[56].required_opt_args[0].opt = type_ARG;
+commands[56].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[56].required_opt_args[0].def.str = "thin";
+commands[56].required_opt_args[1].opt = virtualsize_ARG;
+commands[56].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[56].required_opt_args[2].opt = size_ARG;
+commands[56].required_opt_args[2].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[56].required_pos_args[0].pos = 1;
+commands[56].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[56].required_pos_args[0].def.flags = ARG_DEF_FLAG_NEW;
+commands[56].optional_opt_args[0].opt = commandprofile_ARG;
+commands[56].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[56].optional_opt_args[1].opt = config_ARG;
+commands[56].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[56].optional_opt_args[2].opt = debug_ARG;
+commands[56].optional_opt_args[3].opt = driverloaded_ARG;
+commands[56].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[56].optional_opt_args[4].opt = help_ARG;
+commands[56].optional_opt_args[5].opt = profile_ARG;
+commands[56].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[56].optional_opt_args[6].opt = quiet_ARG;
+commands[56].optional_opt_args[7].opt = verbose_ARG;
+commands[56].optional_opt_args[8].opt = version_ARG;
+commands[56].optional_opt_args[9].opt = yes_ARG;
+commands[56].optional_opt_args[10].opt = poolmetadatasize_ARG;
+commands[56].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[56].optional_opt_args[11].opt = poolmetadataspare_ARG;
+commands[56].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[56].optional_opt_args[12].opt = chunksize_ARG;
+commands[56].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[56].optional_opt_args[13].opt = discards_ARG;
+commands[56].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[56].optional_opt_args[14].opt = errorwhenfull_ARG;
+commands[56].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[56].optional_opt_args[15].opt = addtag_ARG;
+commands[56].optional_opt_args[15].def.types = ARG_DEF_TYPE_TAG;
+commands[56].optional_opt_args[16].opt = alloc_ARG;
+commands[56].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[56].optional_opt_args[17].opt = autobackup_ARG;
+commands[56].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[56].optional_opt_args[18].opt = activate_ARG;
+commands[56].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[56].optional_opt_args[19].opt = contiguous_ARG;
+commands[56].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[56].optional_opt_args[20].opt = ignoreactivationskip_ARG;
+commands[56].optional_opt_args[21].opt = ignoremonitoring_ARG;
+commands[56].optional_opt_args[22].opt = major_ARG;
+commands[56].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[56].optional_opt_args[23].opt = metadataprofile_ARG;
+commands[56].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[56].optional_opt_args[24].opt = minor_ARG;
+commands[56].optional_opt_args[24].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[56].optional_opt_args[25].opt = monitor_ARG;
+commands[56].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+commands[56].optional_opt_args[26].opt = name_ARG;
+commands[56].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[56].optional_opt_args[27].opt = nosync_ARG;
+commands[56].optional_opt_args[28].opt = noudevsync_ARG;
+commands[56].optional_opt_args[29].opt = permission_ARG;
+commands[56].optional_opt_args[30].opt = persistent_ARG;
+commands[56].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[56].optional_opt_args[31].opt = readahead_ARG;
+commands[56].optional_opt_args[31].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[56].optional_opt_args[32].opt = reportformat_ARG;
+commands[56].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[56].optional_opt_args[33].opt = setactivationskip_ARG;
+commands[56].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[56].optional_opt_args[34].opt = test_ARG;
+commands[56].optional_opt_args[35].opt = wipesignatures_ARG;
+commands[56].optional_opt_args[35].def.types = ARG_DEF_TYPE_BOOL;
+commands[56].optional_opt_args[36].opt = zero_ARG;
+commands[56].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+commands[56].optional_pos_args[0].pos = 2;
+commands[56].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[56].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[57].name = "lvcreate";
+commands[57].fn = lvcreate;
+commands[57].ro_count = 3;
+commands[57].rp_count = 1;
+commands[57].oo_count = 37;
+commands[57].op_count = 1;
+commands[57].desc = "Create a thin LV, first creating a thin pool for it.";
+commands[57].usage = "lvcreate --type thin --virtualsize Number --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[57].required_opt_args[0].opt = type_ARG;
+commands[57].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[57].required_opt_args[0].def.str = "thin";
+commands[57].required_opt_args[1].opt = virtualsize_ARG;
+commands[57].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[57].required_opt_args[2].opt = size_ARG;
+commands[57].required_opt_args[2].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[57].required_pos_args[0].pos = 1;
+commands[57].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[57].optional_opt_args[0].opt = commandprofile_ARG;
+commands[57].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[57].optional_opt_args[1].opt = config_ARG;
+commands[57].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[57].optional_opt_args[2].opt = debug_ARG;
+commands[57].optional_opt_args[3].opt = driverloaded_ARG;
+commands[57].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[57].optional_opt_args[4].opt = help_ARG;
+commands[57].optional_opt_args[5].opt = profile_ARG;
+commands[57].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[57].optional_opt_args[6].opt = quiet_ARG;
+commands[57].optional_opt_args[7].opt = verbose_ARG;
+commands[57].optional_opt_args[8].opt = version_ARG;
+commands[57].optional_opt_args[9].opt = yes_ARG;
+commands[57].optional_opt_args[10].opt = poolmetadatasize_ARG;
+commands[57].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[57].optional_opt_args[11].opt = poolmetadataspare_ARG;
+commands[57].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[57].optional_opt_args[12].opt = chunksize_ARG;
+commands[57].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[57].optional_opt_args[13].opt = discards_ARG;
+commands[57].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[57].optional_opt_args[14].opt = errorwhenfull_ARG;
+commands[57].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[57].optional_opt_args[15].opt = addtag_ARG;
+commands[57].optional_opt_args[15].def.types = ARG_DEF_TYPE_TAG;
+commands[57].optional_opt_args[16].opt = alloc_ARG;
+commands[57].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[57].optional_opt_args[17].opt = autobackup_ARG;
+commands[57].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[57].optional_opt_args[18].opt = activate_ARG;
+commands[57].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[57].optional_opt_args[19].opt = contiguous_ARG;
+commands[57].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[57].optional_opt_args[20].opt = ignoreactivationskip_ARG;
+commands[57].optional_opt_args[21].opt = ignoremonitoring_ARG;
+commands[57].optional_opt_args[22].opt = major_ARG;
+commands[57].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[57].optional_opt_args[23].opt = metadataprofile_ARG;
+commands[57].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[57].optional_opt_args[24].opt = minor_ARG;
+commands[57].optional_opt_args[24].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[57].optional_opt_args[25].opt = monitor_ARG;
+commands[57].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+commands[57].optional_opt_args[26].opt = name_ARG;
+commands[57].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[57].optional_opt_args[27].opt = nosync_ARG;
+commands[57].optional_opt_args[28].opt = noudevsync_ARG;
+commands[57].optional_opt_args[29].opt = permission_ARG;
+commands[57].optional_opt_args[30].opt = persistent_ARG;
+commands[57].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[57].optional_opt_args[31].opt = readahead_ARG;
+commands[57].optional_opt_args[31].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[57].optional_opt_args[32].opt = reportformat_ARG;
+commands[57].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[57].optional_opt_args[33].opt = setactivationskip_ARG;
+commands[57].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[57].optional_opt_args[34].opt = test_ARG;
+commands[57].optional_opt_args[35].opt = wipesignatures_ARG;
+commands[57].optional_opt_args[35].def.types = ARG_DEF_TYPE_BOOL;
+commands[57].optional_opt_args[36].opt = zero_ARG;
+commands[57].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+commands[57].optional_pos_args[0].pos = 2;
+commands[57].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[57].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[58].name = "lvcreate";
+commands[58].fn = lvcreate;
+commands[58].ro_count = 2;
+commands[58].rp_count = 1;
+commands[58].oo_count = 38;
+commands[58].op_count = 1;
+commands[58].desc = "Convert the specified LV to type cache after creating a new cache pool LV to use.";
+commands[58].usage = "lvcreate --type cache --size Number LV"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --cachemode String, --cachepolicy String, --cachesettings String, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[58].required_opt_args[0].opt = type_ARG;
+commands[58].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[58].required_opt_args[0].def.str = "cache";
+commands[58].required_opt_args[1].opt = size_ARG;
+commands[58].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[58].required_pos_args[0].pos = 1;
+commands[58].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[58].optional_opt_args[0].opt = commandprofile_ARG;
+commands[58].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[58].optional_opt_args[1].opt = config_ARG;
+commands[58].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[58].optional_opt_args[2].opt = debug_ARG;
+commands[58].optional_opt_args[3].opt = driverloaded_ARG;
+commands[58].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[58].optional_opt_args[4].opt = help_ARG;
+commands[58].optional_opt_args[5].opt = profile_ARG;
+commands[58].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[58].optional_opt_args[6].opt = quiet_ARG;
+commands[58].optional_opt_args[7].opt = verbose_ARG;
+commands[58].optional_opt_args[8].opt = version_ARG;
+commands[58].optional_opt_args[9].opt = yes_ARG;
+commands[58].optional_opt_args[10].opt = poolmetadatasize_ARG;
+commands[58].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[58].optional_opt_args[11].opt = poolmetadataspare_ARG;
+commands[58].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[58].optional_opt_args[12].opt = chunksize_ARG;
+commands[58].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[58].optional_opt_args[13].opt = cachemode_ARG;
+commands[58].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[58].optional_opt_args[14].opt = cachepolicy_ARG;
+commands[58].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[58].optional_opt_args[15].opt = cachesettings_ARG;
+commands[58].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[58].optional_opt_args[16].opt = addtag_ARG;
+commands[58].optional_opt_args[16].def.types = ARG_DEF_TYPE_TAG;
+commands[58].optional_opt_args[17].opt = alloc_ARG;
+commands[58].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[58].optional_opt_args[18].opt = autobackup_ARG;
+commands[58].optional_opt_args[18].def.types = ARG_DEF_TYPE_BOOL;
+commands[58].optional_opt_args[19].opt = activate_ARG;
+commands[58].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[58].optional_opt_args[20].opt = contiguous_ARG;
+commands[58].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[58].optional_opt_args[21].opt = ignoreactivationskip_ARG;
+commands[58].optional_opt_args[22].opt = ignoremonitoring_ARG;
+commands[58].optional_opt_args[23].opt = major_ARG;
+commands[58].optional_opt_args[23].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[58].optional_opt_args[24].opt = metadataprofile_ARG;
+commands[58].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[58].optional_opt_args[25].opt = minor_ARG;
+commands[58].optional_opt_args[25].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[58].optional_opt_args[26].opt = monitor_ARG;
+commands[58].optional_opt_args[26].def.types = ARG_DEF_TYPE_BOOL;
+commands[58].optional_opt_args[27].opt = name_ARG;
+commands[58].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[58].optional_opt_args[28].opt = nosync_ARG;
+commands[58].optional_opt_args[29].opt = noudevsync_ARG;
+commands[58].optional_opt_args[30].opt = permission_ARG;
+commands[58].optional_opt_args[31].opt = persistent_ARG;
+commands[58].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[58].optional_opt_args[32].opt = readahead_ARG;
+commands[58].optional_opt_args[32].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[58].optional_opt_args[33].opt = reportformat_ARG;
+commands[58].optional_opt_args[33].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[58].optional_opt_args[34].opt = setactivationskip_ARG;
+commands[58].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+commands[58].optional_opt_args[35].opt = test_ARG;
+commands[58].optional_opt_args[36].opt = wipesignatures_ARG;
+commands[58].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+commands[58].optional_opt_args[37].opt = zero_ARG;
+commands[58].optional_opt_args[37].def.types = ARG_DEF_TYPE_BOOL;
+commands[58].optional_pos_args[0].pos = 2;
+commands[58].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[58].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[59].name = "lvcreate";
+commands[59].fn = lvcreate;
+commands[59].ro_count = 3;
+commands[59].rp_count = 0;
+commands[59].oo_count = 38;
+commands[59].op_count = 1;
+commands[59].desc = "Create a cache LV, first creating a new origin LV, then combining it with the existing cache pool in arg pos 1.";
+commands[59].usage = "lvcreate --type cache --size Number --cachepool LV_cachepool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --cachemode String, --cachepolicy String, --cachesettings String, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[59].required_opt_args[0].opt = type_ARG;
+commands[59].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[59].required_opt_args[0].def.str = "cache";
+commands[59].required_opt_args[1].opt = size_ARG;
+commands[59].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[59].required_opt_args[2].opt = cachepool_ARG;
+commands[59].required_opt_args[2].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[59].required_opt_args[2].def.lv_types = ARG_DEF_LV_CACHEPOOL;
+commands[59].optional_opt_args[0].opt = commandprofile_ARG;
+commands[59].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[59].optional_opt_args[1].opt = config_ARG;
+commands[59].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[59].optional_opt_args[2].opt = debug_ARG;
+commands[59].optional_opt_args[3].opt = driverloaded_ARG;
+commands[59].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[59].optional_opt_args[4].opt = help_ARG;
+commands[59].optional_opt_args[5].opt = profile_ARG;
+commands[59].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[59].optional_opt_args[6].opt = quiet_ARG;
+commands[59].optional_opt_args[7].opt = verbose_ARG;
+commands[59].optional_opt_args[8].opt = version_ARG;
+commands[59].optional_opt_args[9].opt = yes_ARG;
+commands[59].optional_opt_args[10].opt = poolmetadatasize_ARG;
+commands[59].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[59].optional_opt_args[11].opt = poolmetadataspare_ARG;
+commands[59].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[59].optional_opt_args[12].opt = chunksize_ARG;
+commands[59].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[59].optional_opt_args[13].opt = cachemode_ARG;
+commands[59].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[59].optional_opt_args[14].opt = cachepolicy_ARG;
+commands[59].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[59].optional_opt_args[15].opt = cachesettings_ARG;
+commands[59].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[59].optional_opt_args[16].opt = addtag_ARG;
+commands[59].optional_opt_args[16].def.types = ARG_DEF_TYPE_TAG;
+commands[59].optional_opt_args[17].opt = alloc_ARG;
+commands[59].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[59].optional_opt_args[18].opt = autobackup_ARG;
+commands[59].optional_opt_args[18].def.types = ARG_DEF_TYPE_BOOL;
+commands[59].optional_opt_args[19].opt = activate_ARG;
+commands[59].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[59].optional_opt_args[20].opt = contiguous_ARG;
+commands[59].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[59].optional_opt_args[21].opt = ignoreactivationskip_ARG;
+commands[59].optional_opt_args[22].opt = ignoremonitoring_ARG;
+commands[59].optional_opt_args[23].opt = major_ARG;
+commands[59].optional_opt_args[23].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[59].optional_opt_args[24].opt = metadataprofile_ARG;
+commands[59].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[59].optional_opt_args[25].opt = minor_ARG;
+commands[59].optional_opt_args[25].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[59].optional_opt_args[26].opt = monitor_ARG;
+commands[59].optional_opt_args[26].def.types = ARG_DEF_TYPE_BOOL;
+commands[59].optional_opt_args[27].opt = name_ARG;
+commands[59].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[59].optional_opt_args[28].opt = nosync_ARG;
+commands[59].optional_opt_args[29].opt = noudevsync_ARG;
+commands[59].optional_opt_args[30].opt = permission_ARG;
+commands[59].optional_opt_args[31].opt = persistent_ARG;
+commands[59].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[59].optional_opt_args[32].opt = readahead_ARG;
+commands[59].optional_opt_args[32].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[59].optional_opt_args[33].opt = reportformat_ARG;
+commands[59].optional_opt_args[33].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[59].optional_opt_args[34].opt = setactivationskip_ARG;
+commands[59].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+commands[59].optional_opt_args[35].opt = test_ARG;
+commands[59].optional_opt_args[36].opt = wipesignatures_ARG;
+commands[59].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+commands[59].optional_opt_args[37].opt = zero_ARG;
+commands[59].optional_opt_args[37].def.types = ARG_DEF_TYPE_BOOL;
+commands[59].optional_pos_args[0].pos = 1;
+commands[59].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[59].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[60].name = "lvcreate";
+commands[60].fn = lvcreate;
+commands[60].ro_count = 1;
+commands[60].rp_count = 1;
+commands[60].oo_count = 33;
+commands[60].op_count = 1;
+commands[60].desc = "Create a linear LV. (default --type linear)";
+commands[60].usage = "lvcreate --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type linear, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[60].required_opt_args[0].opt = size_ARG;
+commands[60].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[60].required_pos_args[0].pos = 1;
+commands[60].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[60].optional_opt_args[0].opt = commandprofile_ARG;
+commands[60].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[60].optional_opt_args[1].opt = config_ARG;
+commands[60].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[60].optional_opt_args[2].opt = debug_ARG;
+commands[60].optional_opt_args[3].opt = driverloaded_ARG;
+commands[60].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[60].optional_opt_args[4].opt = help_ARG;
+commands[60].optional_opt_args[5].opt = profile_ARG;
+commands[60].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[60].optional_opt_args[6].opt = quiet_ARG;
+commands[60].optional_opt_args[7].opt = verbose_ARG;
+commands[60].optional_opt_args[8].opt = version_ARG;
+commands[60].optional_opt_args[9].opt = yes_ARG;
+commands[60].optional_opt_args[10].opt = type_ARG;
+commands[60].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[60].optional_opt_args[10].def.str = "linear";
+commands[60].optional_opt_args[11].opt = addtag_ARG;
+commands[60].optional_opt_args[11].def.types = ARG_DEF_TYPE_TAG;
+commands[60].optional_opt_args[12].opt = alloc_ARG;
+commands[60].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[60].optional_opt_args[13].opt = autobackup_ARG;
+commands[60].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[60].optional_opt_args[14].opt = activate_ARG;
+commands[60].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[60].optional_opt_args[15].opt = contiguous_ARG;
+commands[60].optional_opt_args[15].def.types = ARG_DEF_TYPE_BOOL;
+commands[60].optional_opt_args[16].opt = ignoreactivationskip_ARG;
+commands[60].optional_opt_args[17].opt = ignoremonitoring_ARG;
+commands[60].optional_opt_args[18].opt = major_ARG;
+commands[60].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[60].optional_opt_args[19].opt = metadataprofile_ARG;
+commands[60].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[60].optional_opt_args[20].opt = minor_ARG;
+commands[60].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[60].optional_opt_args[21].opt = monitor_ARG;
+commands[60].optional_opt_args[21].def.types = ARG_DEF_TYPE_BOOL;
+commands[60].optional_opt_args[22].opt = name_ARG;
+commands[60].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[60].optional_opt_args[23].opt = nosync_ARG;
+commands[60].optional_opt_args[24].opt = noudevsync_ARG;
+commands[60].optional_opt_args[25].opt = permission_ARG;
+commands[60].optional_opt_args[26].opt = persistent_ARG;
+commands[60].optional_opt_args[26].def.types = ARG_DEF_TYPE_BOOL;
+commands[60].optional_opt_args[27].opt = readahead_ARG;
+commands[60].optional_opt_args[27].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[60].optional_opt_args[28].opt = reportformat_ARG;
+commands[60].optional_opt_args[28].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[60].optional_opt_args[29].opt = setactivationskip_ARG;
+commands[60].optional_opt_args[29].def.types = ARG_DEF_TYPE_BOOL;
+commands[60].optional_opt_args[30].opt = test_ARG;
+commands[60].optional_opt_args[31].opt = wipesignatures_ARG;
+commands[60].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[60].optional_opt_args[32].opt = zero_ARG;
+commands[60].optional_opt_args[32].def.types = ARG_DEF_TYPE_BOOL;
+commands[60].optional_pos_args[0].pos = 2;
+commands[60].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[60].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[61].name = "lvcreate";
+commands[61].fn = lvcreate;
+commands[61].ro_count = 2;
+commands[61].rp_count = 1;
+commands[61].oo_count = 34;
+commands[61].op_count = 1;
+commands[61].desc = "Create a striped LV. (infers --type striped)";
+commands[61].usage = "lvcreate --stripes Number --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type striped, --stripesize Number, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[61].required_opt_args[0].opt = stripes_ARG;
+commands[61].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[61].required_opt_args[1].opt = size_ARG;
+commands[61].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[61].required_pos_args[0].pos = 1;
+commands[61].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[61].optional_opt_args[0].opt = commandprofile_ARG;
+commands[61].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[61].optional_opt_args[1].opt = config_ARG;
+commands[61].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[61].optional_opt_args[2].opt = debug_ARG;
+commands[61].optional_opt_args[3].opt = driverloaded_ARG;
+commands[61].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[61].optional_opt_args[4].opt = help_ARG;
+commands[61].optional_opt_args[5].opt = profile_ARG;
+commands[61].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[61].optional_opt_args[6].opt = quiet_ARG;
+commands[61].optional_opt_args[7].opt = verbose_ARG;
+commands[61].optional_opt_args[8].opt = version_ARG;
+commands[61].optional_opt_args[9].opt = yes_ARG;
+commands[61].optional_opt_args[10].opt = type_ARG;
+commands[61].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[61].optional_opt_args[10].def.str = "striped";
+commands[61].optional_opt_args[11].opt = stripesize_ARG;
+commands[61].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[61].optional_opt_args[12].opt = addtag_ARG;
+commands[61].optional_opt_args[12].def.types = ARG_DEF_TYPE_TAG;
+commands[61].optional_opt_args[13].opt = alloc_ARG;
+commands[61].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[61].optional_opt_args[14].opt = autobackup_ARG;
+commands[61].optional_opt_args[14].def.types = ARG_DEF_TYPE_BOOL;
+commands[61].optional_opt_args[15].opt = activate_ARG;
+commands[61].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[61].optional_opt_args[16].opt = contiguous_ARG;
+commands[61].optional_opt_args[16].def.types = ARG_DEF_TYPE_BOOL;
+commands[61].optional_opt_args[17].opt = ignoreactivationskip_ARG;
+commands[61].optional_opt_args[18].opt = ignoremonitoring_ARG;
+commands[61].optional_opt_args[19].opt = major_ARG;
+commands[61].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[61].optional_opt_args[20].opt = metadataprofile_ARG;
+commands[61].optional_opt_args[20].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[61].optional_opt_args[21].opt = minor_ARG;
+commands[61].optional_opt_args[21].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[61].optional_opt_args[22].opt = monitor_ARG;
+commands[61].optional_opt_args[22].def.types = ARG_DEF_TYPE_BOOL;
+commands[61].optional_opt_args[23].opt = name_ARG;
+commands[61].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[61].optional_opt_args[24].opt = nosync_ARG;
+commands[61].optional_opt_args[25].opt = noudevsync_ARG;
+commands[61].optional_opt_args[26].opt = permission_ARG;
+commands[61].optional_opt_args[27].opt = persistent_ARG;
+commands[61].optional_opt_args[27].def.types = ARG_DEF_TYPE_BOOL;
+commands[61].optional_opt_args[28].opt = readahead_ARG;
+commands[61].optional_opt_args[28].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[61].optional_opt_args[29].opt = reportformat_ARG;
+commands[61].optional_opt_args[29].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[61].optional_opt_args[30].opt = setactivationskip_ARG;
+commands[61].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[61].optional_opt_args[31].opt = test_ARG;
+commands[61].optional_opt_args[32].opt = wipesignatures_ARG;
+commands[61].optional_opt_args[32].def.types = ARG_DEF_TYPE_BOOL;
+commands[61].optional_opt_args[33].opt = zero_ARG;
+commands[61].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[61].optional_pos_args[0].pos = 2;
+commands[61].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[61].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[62].name = "lvcreate";
+commands[62].fn = lvcreate;
+commands[62].ro_count = 2;
+commands[62].rp_count = 1;
+commands[62].oo_count = 41;
+commands[62].op_count = 1;
+commands[62].desc = "Create a raid1 or mirror LV. (infers --type raid1|mirror)";
+commands[62].usage = "lvcreate --mirrors Number --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type raid1|mirror, --mirrorlog String, --corelog, --mirrors Number, --stripes Number, --stripesize Number, --regionsize Number, --minrecoveryrate Number, --maxrecoveryrate Number, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[62].required_opt_args[0].opt = mirrors_ARG;
+commands[62].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[62].required_opt_args[1].opt = size_ARG;
+commands[62].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[62].required_pos_args[0].pos = 1;
+commands[62].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[62].optional_opt_args[0].opt = commandprofile_ARG;
+commands[62].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[62].optional_opt_args[1].opt = config_ARG;
+commands[62].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[62].optional_opt_args[2].opt = debug_ARG;
+commands[62].optional_opt_args[3].opt = driverloaded_ARG;
+commands[62].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[62].optional_opt_args[4].opt = help_ARG;
+commands[62].optional_opt_args[5].opt = profile_ARG;
+commands[62].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[62].optional_opt_args[6].opt = quiet_ARG;
+commands[62].optional_opt_args[7].opt = verbose_ARG;
+commands[62].optional_opt_args[8].opt = version_ARG;
+commands[62].optional_opt_args[9].opt = yes_ARG;
+commands[62].optional_opt_args[10].opt = type_ARG;
+commands[62].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_SET;
+commands[62].optional_opt_args[10].def.str_set[0] = "raid1";
+commands[62].optional_opt_args[10].def.str_set[1] = "mirror";
+commands[62].optional_opt_args[11].opt = mirrorlog_ARG;
+commands[62].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[62].optional_opt_args[12].opt = corelog_ARG;
+commands[62].optional_opt_args[13].opt = mirrors_ARG;
+commands[62].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[62].optional_opt_args[14].opt = stripes_ARG;
+commands[62].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[62].optional_opt_args[15].opt = stripesize_ARG;
+commands[62].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[62].optional_opt_args[16].opt = regionsize_ARG;
+commands[62].optional_opt_args[16].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[62].optional_opt_args[17].opt = minrecoveryrate_ARG;
+commands[62].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[62].optional_opt_args[18].opt = maxrecoveryrate_ARG;
+commands[62].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[62].optional_opt_args[19].opt = addtag_ARG;
+commands[62].optional_opt_args[19].def.types = ARG_DEF_TYPE_TAG;
+commands[62].optional_opt_args[20].opt = alloc_ARG;
+commands[62].optional_opt_args[20].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[62].optional_opt_args[21].opt = autobackup_ARG;
+commands[62].optional_opt_args[21].def.types = ARG_DEF_TYPE_BOOL;
+commands[62].optional_opt_args[22].opt = activate_ARG;
+commands[62].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[62].optional_opt_args[23].opt = contiguous_ARG;
+commands[62].optional_opt_args[23].def.types = ARG_DEF_TYPE_BOOL;
+commands[62].optional_opt_args[24].opt = ignoreactivationskip_ARG;
+commands[62].optional_opt_args[25].opt = ignoremonitoring_ARG;
+commands[62].optional_opt_args[26].opt = major_ARG;
+commands[62].optional_opt_args[26].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[62].optional_opt_args[27].opt = metadataprofile_ARG;
+commands[62].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[62].optional_opt_args[28].opt = minor_ARG;
+commands[62].optional_opt_args[28].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[62].optional_opt_args[29].opt = monitor_ARG;
+commands[62].optional_opt_args[29].def.types = ARG_DEF_TYPE_BOOL;
+commands[62].optional_opt_args[30].opt = name_ARG;
+commands[62].optional_opt_args[30].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[62].optional_opt_args[31].opt = nosync_ARG;
+commands[62].optional_opt_args[32].opt = noudevsync_ARG;
+commands[62].optional_opt_args[33].opt = permission_ARG;
+commands[62].optional_opt_args[34].opt = persistent_ARG;
+commands[62].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+commands[62].optional_opt_args[35].opt = readahead_ARG;
+commands[62].optional_opt_args[35].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[62].optional_opt_args[36].opt = reportformat_ARG;
+commands[62].optional_opt_args[36].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[62].optional_opt_args[37].opt = setactivationskip_ARG;
+commands[62].optional_opt_args[37].def.types = ARG_DEF_TYPE_BOOL;
+commands[62].optional_opt_args[38].opt = test_ARG;
+commands[62].optional_opt_args[39].opt = wipesignatures_ARG;
+commands[62].optional_opt_args[39].def.types = ARG_DEF_TYPE_BOOL;
+commands[62].optional_opt_args[40].opt = zero_ARG;
+commands[62].optional_opt_args[40].def.types = ARG_DEF_TYPE_BOOL;
+commands[62].optional_pos_args[0].pos = 2;
+commands[62].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[62].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[63].name = "lvcreate";
+commands[63].fn = lvcreate;
+commands[63].ro_count = 2;
+commands[63].rp_count = 1;
+commands[63].oo_count = 33;
+commands[63].op_count = 1;
+commands[63].desc = "Create a COW snapshot LV of the origin LV in arg pos 1. (infers --type snapshot)";
+commands[63].usage = "lvcreate --snapshot --size Number LV"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type snapshot, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[63].required_opt_args[0].opt = snapshot_ARG;
+commands[63].required_opt_args[1].opt = size_ARG;
+commands[63].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[63].required_pos_args[0].pos = 1;
+commands[63].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[63].optional_opt_args[0].opt = commandprofile_ARG;
+commands[63].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[63].optional_opt_args[1].opt = config_ARG;
+commands[63].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[63].optional_opt_args[2].opt = debug_ARG;
+commands[63].optional_opt_args[3].opt = driverloaded_ARG;
+commands[63].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[63].optional_opt_args[4].opt = help_ARG;
+commands[63].optional_opt_args[5].opt = profile_ARG;
+commands[63].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[63].optional_opt_args[6].opt = quiet_ARG;
+commands[63].optional_opt_args[7].opt = verbose_ARG;
+commands[63].optional_opt_args[8].opt = version_ARG;
+commands[63].optional_opt_args[9].opt = yes_ARG;
+commands[63].optional_opt_args[10].opt = type_ARG;
+commands[63].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[63].optional_opt_args[10].def.str = "snapshot";
+commands[63].optional_opt_args[11].opt = addtag_ARG;
+commands[63].optional_opt_args[11].def.types = ARG_DEF_TYPE_TAG;
+commands[63].optional_opt_args[12].opt = alloc_ARG;
+commands[63].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[63].optional_opt_args[13].opt = autobackup_ARG;
+commands[63].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[63].optional_opt_args[14].opt = activate_ARG;
+commands[63].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[63].optional_opt_args[15].opt = contiguous_ARG;
+commands[63].optional_opt_args[15].def.types = ARG_DEF_TYPE_BOOL;
+commands[63].optional_opt_args[16].opt = ignoreactivationskip_ARG;
+commands[63].optional_opt_args[17].opt = ignoremonitoring_ARG;
+commands[63].optional_opt_args[18].opt = major_ARG;
+commands[63].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[63].optional_opt_args[19].opt = metadataprofile_ARG;
+commands[63].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[63].optional_opt_args[20].opt = minor_ARG;
+commands[63].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[63].optional_opt_args[21].opt = monitor_ARG;
+commands[63].optional_opt_args[21].def.types = ARG_DEF_TYPE_BOOL;
+commands[63].optional_opt_args[22].opt = name_ARG;
+commands[63].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[63].optional_opt_args[23].opt = nosync_ARG;
+commands[63].optional_opt_args[24].opt = noudevsync_ARG;
+commands[63].optional_opt_args[25].opt = permission_ARG;
+commands[63].optional_opt_args[26].opt = persistent_ARG;
+commands[63].optional_opt_args[26].def.types = ARG_DEF_TYPE_BOOL;
+commands[63].optional_opt_args[27].opt = readahead_ARG;
+commands[63].optional_opt_args[27].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[63].optional_opt_args[28].opt = reportformat_ARG;
+commands[63].optional_opt_args[28].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[63].optional_opt_args[29].opt = setactivationskip_ARG;
+commands[63].optional_opt_args[29].def.types = ARG_DEF_TYPE_BOOL;
+commands[63].optional_opt_args[30].opt = test_ARG;
+commands[63].optional_opt_args[31].opt = wipesignatures_ARG;
+commands[63].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[63].optional_opt_args[32].opt = zero_ARG;
+commands[63].optional_opt_args[32].def.types = ARG_DEF_TYPE_BOOL;
+commands[63].optional_pos_args[0].pos = 2;
+commands[63].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[63].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[64].name = "lvcreate";
+commands[64].fn = lvcreate;
+commands[64].ro_count = 2;
+commands[64].rp_count = 1;
+commands[64].oo_count = 38;
+commands[64].op_count = 1;
+commands[64].desc = "Create a thin pool. (infers --type thin-pool)";
+commands[64].usage = "lvcreate --thin --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type thin-pool, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[64].required_opt_args[0].opt = thin_ARG;
+commands[64].required_opt_args[1].opt = size_ARG;
+commands[64].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[64].required_pos_args[0].pos = 1;
+commands[64].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[64].optional_opt_args[0].opt = commandprofile_ARG;
+commands[64].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[64].optional_opt_args[1].opt = config_ARG;
+commands[64].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[64].optional_opt_args[2].opt = debug_ARG;
+commands[64].optional_opt_args[3].opt = driverloaded_ARG;
+commands[64].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[64].optional_opt_args[4].opt = help_ARG;
+commands[64].optional_opt_args[5].opt = profile_ARG;
+commands[64].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[64].optional_opt_args[6].opt = quiet_ARG;
+commands[64].optional_opt_args[7].opt = verbose_ARG;
+commands[64].optional_opt_args[8].opt = version_ARG;
+commands[64].optional_opt_args[9].opt = yes_ARG;
+commands[64].optional_opt_args[10].opt = type_ARG;
+commands[64].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[64].optional_opt_args[10].def.str = "thin-pool";
+commands[64].optional_opt_args[11].opt = poolmetadatasize_ARG;
+commands[64].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[64].optional_opt_args[12].opt = poolmetadataspare_ARG;
+commands[64].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[64].optional_opt_args[13].opt = chunksize_ARG;
+commands[64].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[64].optional_opt_args[14].opt = discards_ARG;
+commands[64].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[64].optional_opt_args[15].opt = errorwhenfull_ARG;
+commands[64].optional_opt_args[15].def.types = ARG_DEF_TYPE_BOOL;
+commands[64].optional_opt_args[16].opt = addtag_ARG;
+commands[64].optional_opt_args[16].def.types = ARG_DEF_TYPE_TAG;
+commands[64].optional_opt_args[17].opt = alloc_ARG;
+commands[64].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[64].optional_opt_args[18].opt = autobackup_ARG;
+commands[64].optional_opt_args[18].def.types = ARG_DEF_TYPE_BOOL;
+commands[64].optional_opt_args[19].opt = activate_ARG;
+commands[64].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[64].optional_opt_args[20].opt = contiguous_ARG;
+commands[64].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[64].optional_opt_args[21].opt = ignoreactivationskip_ARG;
+commands[64].optional_opt_args[22].opt = ignoremonitoring_ARG;
+commands[64].optional_opt_args[23].opt = major_ARG;
+commands[64].optional_opt_args[23].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[64].optional_opt_args[24].opt = metadataprofile_ARG;
+commands[64].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[64].optional_opt_args[25].opt = minor_ARG;
+commands[64].optional_opt_args[25].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[64].optional_opt_args[26].opt = monitor_ARG;
+commands[64].optional_opt_args[26].def.types = ARG_DEF_TYPE_BOOL;
+commands[64].optional_opt_args[27].opt = name_ARG;
+commands[64].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[64].optional_opt_args[28].opt = nosync_ARG;
+commands[64].optional_opt_args[29].opt = noudevsync_ARG;
+commands[64].optional_opt_args[30].opt = permission_ARG;
+commands[64].optional_opt_args[31].opt = persistent_ARG;
+commands[64].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[64].optional_opt_args[32].opt = readahead_ARG;
+commands[64].optional_opt_args[32].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[64].optional_opt_args[33].opt = reportformat_ARG;
+commands[64].optional_opt_args[33].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[64].optional_opt_args[34].opt = setactivationskip_ARG;
+commands[64].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+commands[64].optional_opt_args[35].opt = test_ARG;
+commands[64].optional_opt_args[36].opt = wipesignatures_ARG;
+commands[64].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+commands[64].optional_opt_args[37].opt = zero_ARG;
+commands[64].optional_opt_args[37].def.types = ARG_DEF_TYPE_BOOL;
+commands[64].optional_pos_args[0].pos = 2;
+commands[64].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[64].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[65].name = "lvcreate";
+commands[65].fn = lvcreate;
+commands[65].ro_count = 2;
+commands[65].rp_count = 1;
+commands[65].oo_count = 39;
+commands[65].op_count = 1;
+commands[65].desc = "Create a cache pool. (infers --type cache-pool)";
+commands[65].usage = "lvcreate --cache --size Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type cache-pool, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --cachemode String, --cachepolicy String, --cachesettings String, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[65].required_opt_args[0].opt = cache_ARG;
+commands[65].required_opt_args[1].opt = size_ARG;
+commands[65].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[65].required_pos_args[0].pos = 1;
+commands[65].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[65].optional_opt_args[0].opt = commandprofile_ARG;
+commands[65].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[65].optional_opt_args[1].opt = config_ARG;
+commands[65].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[65].optional_opt_args[2].opt = debug_ARG;
+commands[65].optional_opt_args[3].opt = driverloaded_ARG;
+commands[65].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[65].optional_opt_args[4].opt = help_ARG;
+commands[65].optional_opt_args[5].opt = profile_ARG;
+commands[65].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[65].optional_opt_args[6].opt = quiet_ARG;
+commands[65].optional_opt_args[7].opt = verbose_ARG;
+commands[65].optional_opt_args[8].opt = version_ARG;
+commands[65].optional_opt_args[9].opt = yes_ARG;
+commands[65].optional_opt_args[10].opt = type_ARG;
+commands[65].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[65].optional_opt_args[10].def.str = "cache-pool";
+commands[65].optional_opt_args[11].opt = poolmetadatasize_ARG;
+commands[65].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[65].optional_opt_args[12].opt = poolmetadataspare_ARG;
+commands[65].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[65].optional_opt_args[13].opt = chunksize_ARG;
+commands[65].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[65].optional_opt_args[14].opt = cachemode_ARG;
+commands[65].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[65].optional_opt_args[15].opt = cachepolicy_ARG;
+commands[65].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[65].optional_opt_args[16].opt = cachesettings_ARG;
+commands[65].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[65].optional_opt_args[17].opt = addtag_ARG;
+commands[65].optional_opt_args[17].def.types = ARG_DEF_TYPE_TAG;
+commands[65].optional_opt_args[18].opt = alloc_ARG;
+commands[65].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[65].optional_opt_args[19].opt = autobackup_ARG;
+commands[65].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[65].optional_opt_args[20].opt = activate_ARG;
+commands[65].optional_opt_args[20].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[65].optional_opt_args[21].opt = contiguous_ARG;
+commands[65].optional_opt_args[21].def.types = ARG_DEF_TYPE_BOOL;
+commands[65].optional_opt_args[22].opt = ignoreactivationskip_ARG;
+commands[65].optional_opt_args[23].opt = ignoremonitoring_ARG;
+commands[65].optional_opt_args[24].opt = major_ARG;
+commands[65].optional_opt_args[24].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[65].optional_opt_args[25].opt = metadataprofile_ARG;
+commands[65].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[65].optional_opt_args[26].opt = minor_ARG;
+commands[65].optional_opt_args[26].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[65].optional_opt_args[27].opt = monitor_ARG;
+commands[65].optional_opt_args[27].def.types = ARG_DEF_TYPE_BOOL;
+commands[65].optional_opt_args[28].opt = name_ARG;
+commands[65].optional_opt_args[28].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[65].optional_opt_args[29].opt = nosync_ARG;
+commands[65].optional_opt_args[30].opt = noudevsync_ARG;
+commands[65].optional_opt_args[31].opt = permission_ARG;
+commands[65].optional_opt_args[32].opt = persistent_ARG;
+commands[65].optional_opt_args[32].def.types = ARG_DEF_TYPE_BOOL;
+commands[65].optional_opt_args[33].opt = readahead_ARG;
+commands[65].optional_opt_args[33].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[65].optional_opt_args[34].opt = reportformat_ARG;
+commands[65].optional_opt_args[34].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[65].optional_opt_args[35].opt = setactivationskip_ARG;
+commands[65].optional_opt_args[35].def.types = ARG_DEF_TYPE_BOOL;
+commands[65].optional_opt_args[36].opt = test_ARG;
+commands[65].optional_opt_args[37].opt = wipesignatures_ARG;
+commands[65].optional_opt_args[37].def.types = ARG_DEF_TYPE_BOOL;
+commands[65].optional_opt_args[38].opt = zero_ARG;
+commands[65].optional_opt_args[38].def.types = ARG_DEF_TYPE_BOOL;
+commands[65].optional_pos_args[0].pos = 2;
+commands[65].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[65].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[66].name = "lvcreate";
+commands[66].fn = lvcreate;
+commands[66].ro_count = 1;
+commands[66].rp_count = 1;
+commands[66].oo_count = 35;
+commands[66].op_count = 0;
+commands[66].desc = "Create a thin LV that is a snapshot of an existing thin LV. (infers --type thin)";
+commands[66].usage = "lvcreate --snapshot LV_thin"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type thin, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]";
+commands[66].required_opt_args[0].opt = snapshot_ARG;
+commands[66].required_pos_args[0].pos = 1;
+commands[66].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[66].required_pos_args[0].def.lv_types = ARG_DEF_LV_THIN;
+commands[66].optional_opt_args[0].opt = commandprofile_ARG;
+commands[66].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[66].optional_opt_args[1].opt = config_ARG;
+commands[66].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[66].optional_opt_args[2].opt = debug_ARG;
+commands[66].optional_opt_args[3].opt = driverloaded_ARG;
+commands[66].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[66].optional_opt_args[4].opt = help_ARG;
+commands[66].optional_opt_args[5].opt = profile_ARG;
+commands[66].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[66].optional_opt_args[6].opt = quiet_ARG;
+commands[66].optional_opt_args[7].opt = verbose_ARG;
+commands[66].optional_opt_args[8].opt = version_ARG;
+commands[66].optional_opt_args[9].opt = yes_ARG;
+commands[66].optional_opt_args[10].opt = type_ARG;
+commands[66].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[66].optional_opt_args[10].def.str = "thin";
+commands[66].optional_opt_args[11].opt = discards_ARG;
+commands[66].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[66].optional_opt_args[12].opt = errorwhenfull_ARG;
+commands[66].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[66].optional_opt_args[13].opt = addtag_ARG;
+commands[66].optional_opt_args[13].def.types = ARG_DEF_TYPE_TAG;
+commands[66].optional_opt_args[14].opt = alloc_ARG;
+commands[66].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[66].optional_opt_args[15].opt = autobackup_ARG;
+commands[66].optional_opt_args[15].def.types = ARG_DEF_TYPE_BOOL;
+commands[66].optional_opt_args[16].opt = activate_ARG;
+commands[66].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[66].optional_opt_args[17].opt = contiguous_ARG;
+commands[66].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[66].optional_opt_args[18].opt = ignoreactivationskip_ARG;
+commands[66].optional_opt_args[19].opt = ignoremonitoring_ARG;
+commands[66].optional_opt_args[20].opt = major_ARG;
+commands[66].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[66].optional_opt_args[21].opt = metadataprofile_ARG;
+commands[66].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[66].optional_opt_args[22].opt = minor_ARG;
+commands[66].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[66].optional_opt_args[23].opt = monitor_ARG;
+commands[66].optional_opt_args[23].def.types = ARG_DEF_TYPE_BOOL;
+commands[66].optional_opt_args[24].opt = name_ARG;
+commands[66].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[66].optional_opt_args[25].opt = nosync_ARG;
+commands[66].optional_opt_args[26].opt = noudevsync_ARG;
+commands[66].optional_opt_args[27].opt = permission_ARG;
+commands[66].optional_opt_args[28].opt = persistent_ARG;
+commands[66].optional_opt_args[28].def.types = ARG_DEF_TYPE_BOOL;
+commands[66].optional_opt_args[29].opt = readahead_ARG;
+commands[66].optional_opt_args[29].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[66].optional_opt_args[30].opt = reportformat_ARG;
+commands[66].optional_opt_args[30].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[66].optional_opt_args[31].opt = setactivationskip_ARG;
+commands[66].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[66].optional_opt_args[32].opt = test_ARG;
+commands[66].optional_opt_args[33].opt = wipesignatures_ARG;
+commands[66].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[66].optional_opt_args[34].opt = zero_ARG;
+commands[66].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+
+commands[67].name = "lvcreate";
+commands[67].fn = lvcreate;
+commands[67].ro_count = 2;
+commands[67].rp_count = 1;
+commands[67].oo_count = 35;
+commands[67].op_count = 0;
+commands[67].desc = "Create a thin LV that is a snapshot of an external origin LV. (infers --type thin)";
+commands[67].usage = "lvcreate --snapshot --thinpool LV_thinpool LV"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type thin, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]";
+commands[67].required_opt_args[0].opt = snapshot_ARG;
+commands[67].required_opt_args[1].opt = thinpool_ARG;
+commands[67].required_opt_args[1].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[67].required_opt_args[1].def.lv_types = ARG_DEF_LV_THINPOOL;
+commands[67].required_pos_args[0].pos = 1;
+commands[67].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[67].optional_opt_args[0].opt = commandprofile_ARG;
+commands[67].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[67].optional_opt_args[1].opt = config_ARG;
+commands[67].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[67].optional_opt_args[2].opt = debug_ARG;
+commands[67].optional_opt_args[3].opt = driverloaded_ARG;
+commands[67].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[67].optional_opt_args[4].opt = help_ARG;
+commands[67].optional_opt_args[5].opt = profile_ARG;
+commands[67].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[67].optional_opt_args[6].opt = quiet_ARG;
+commands[67].optional_opt_args[7].opt = verbose_ARG;
+commands[67].optional_opt_args[8].opt = version_ARG;
+commands[67].optional_opt_args[9].opt = yes_ARG;
+commands[67].optional_opt_args[10].opt = type_ARG;
+commands[67].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[67].optional_opt_args[10].def.str = "thin";
+commands[67].optional_opt_args[11].opt = discards_ARG;
+commands[67].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[67].optional_opt_args[12].opt = errorwhenfull_ARG;
+commands[67].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[67].optional_opt_args[13].opt = addtag_ARG;
+commands[67].optional_opt_args[13].def.types = ARG_DEF_TYPE_TAG;
+commands[67].optional_opt_args[14].opt = alloc_ARG;
+commands[67].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[67].optional_opt_args[15].opt = autobackup_ARG;
+commands[67].optional_opt_args[15].def.types = ARG_DEF_TYPE_BOOL;
+commands[67].optional_opt_args[16].opt = activate_ARG;
+commands[67].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[67].optional_opt_args[17].opt = contiguous_ARG;
+commands[67].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[67].optional_opt_args[18].opt = ignoreactivationskip_ARG;
+commands[67].optional_opt_args[19].opt = ignoremonitoring_ARG;
+commands[67].optional_opt_args[20].opt = major_ARG;
+commands[67].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[67].optional_opt_args[21].opt = metadataprofile_ARG;
+commands[67].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[67].optional_opt_args[22].opt = minor_ARG;
+commands[67].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[67].optional_opt_args[23].opt = monitor_ARG;
+commands[67].optional_opt_args[23].def.types = ARG_DEF_TYPE_BOOL;
+commands[67].optional_opt_args[24].opt = name_ARG;
+commands[67].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[67].optional_opt_args[25].opt = nosync_ARG;
+commands[67].optional_opt_args[26].opt = noudevsync_ARG;
+commands[67].optional_opt_args[27].opt = permission_ARG;
+commands[67].optional_opt_args[28].opt = persistent_ARG;
+commands[67].optional_opt_args[28].def.types = ARG_DEF_TYPE_BOOL;
+commands[67].optional_opt_args[29].opt = readahead_ARG;
+commands[67].optional_opt_args[29].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[67].optional_opt_args[30].opt = reportformat_ARG;
+commands[67].optional_opt_args[30].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[67].optional_opt_args[31].opt = setactivationskip_ARG;
+commands[67].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[67].optional_opt_args[32].opt = test_ARG;
+commands[67].optional_opt_args[33].opt = wipesignatures_ARG;
+commands[67].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[67].optional_opt_args[34].opt = zero_ARG;
+commands[67].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+
+commands[68].name = "lvcreate";
+commands[68].fn = lvcreate;
+commands[68].ro_count = 2;
+commands[68].rp_count = 0;
+commands[68].oo_count = 35;
+commands[68].op_count = 0;
+commands[68].desc = "Create a thin LV in a thin pool. (infers --type thin)";
+commands[68].usage = "lvcreate --virtualsize Number --thinpool LV_thinpool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type thin, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]";
+commands[68].required_opt_args[0].opt = virtualsize_ARG;
+commands[68].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[68].required_opt_args[1].opt = thinpool_ARG;
+commands[68].required_opt_args[1].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[68].required_opt_args[1].def.lv_types = ARG_DEF_LV_THINPOOL;
+commands[68].optional_opt_args[0].opt = commandprofile_ARG;
+commands[68].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[68].optional_opt_args[1].opt = config_ARG;
+commands[68].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[68].optional_opt_args[2].opt = debug_ARG;
+commands[68].optional_opt_args[3].opt = driverloaded_ARG;
+commands[68].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[68].optional_opt_args[4].opt = help_ARG;
+commands[68].optional_opt_args[5].opt = profile_ARG;
+commands[68].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[68].optional_opt_args[6].opt = quiet_ARG;
+commands[68].optional_opt_args[7].opt = verbose_ARG;
+commands[68].optional_opt_args[8].opt = version_ARG;
+commands[68].optional_opt_args[9].opt = yes_ARG;
+commands[68].optional_opt_args[10].opt = type_ARG;
+commands[68].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[68].optional_opt_args[10].def.str = "thin";
+commands[68].optional_opt_args[11].opt = discards_ARG;
+commands[68].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[68].optional_opt_args[12].opt = errorwhenfull_ARG;
+commands[68].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[68].optional_opt_args[13].opt = addtag_ARG;
+commands[68].optional_opt_args[13].def.types = ARG_DEF_TYPE_TAG;
+commands[68].optional_opt_args[14].opt = alloc_ARG;
+commands[68].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[68].optional_opt_args[15].opt = autobackup_ARG;
+commands[68].optional_opt_args[15].def.types = ARG_DEF_TYPE_BOOL;
+commands[68].optional_opt_args[16].opt = activate_ARG;
+commands[68].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[68].optional_opt_args[17].opt = contiguous_ARG;
+commands[68].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[68].optional_opt_args[18].opt = ignoreactivationskip_ARG;
+commands[68].optional_opt_args[19].opt = ignoremonitoring_ARG;
+commands[68].optional_opt_args[20].opt = major_ARG;
+commands[68].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[68].optional_opt_args[21].opt = metadataprofile_ARG;
+commands[68].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[68].optional_opt_args[22].opt = minor_ARG;
+commands[68].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[68].optional_opt_args[23].opt = monitor_ARG;
+commands[68].optional_opt_args[23].def.types = ARG_DEF_TYPE_BOOL;
+commands[68].optional_opt_args[24].opt = name_ARG;
+commands[68].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[68].optional_opt_args[25].opt = nosync_ARG;
+commands[68].optional_opt_args[26].opt = noudevsync_ARG;
+commands[68].optional_opt_args[27].opt = permission_ARG;
+commands[68].optional_opt_args[28].opt = persistent_ARG;
+commands[68].optional_opt_args[28].def.types = ARG_DEF_TYPE_BOOL;
+commands[68].optional_opt_args[29].opt = readahead_ARG;
+commands[68].optional_opt_args[29].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[68].optional_opt_args[30].opt = reportformat_ARG;
+commands[68].optional_opt_args[30].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[68].optional_opt_args[31].opt = setactivationskip_ARG;
+commands[68].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[68].optional_opt_args[32].opt = test_ARG;
+commands[68].optional_opt_args[33].opt = wipesignatures_ARG;
+commands[68].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[68].optional_opt_args[34].opt = zero_ARG;
+commands[68].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+
+commands[69].name = "lvcreate";
+commands[69].fn = lvcreate;
+commands[69].ro_count = 2;
+commands[69].rp_count = 0;
+commands[69].oo_count = 36;
+commands[69].op_count = 1;
+commands[69].desc = "Create a new origin LV, combining it with an existing cache pool to create a new cache LV. (infers --type cache)";
+commands[69].usage = "lvcreate --size Number --cachepool LV_cachepool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type cache, --cachemode String, --cachepolicy String, --cachesettings String, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[69].required_opt_args[0].opt = size_ARG;
+commands[69].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[69].required_opt_args[1].opt = cachepool_ARG;
+commands[69].required_opt_args[1].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[69].required_opt_args[1].def.lv_types = ARG_DEF_LV_CACHEPOOL;
+commands[69].optional_opt_args[0].opt = commandprofile_ARG;
+commands[69].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[69].optional_opt_args[1].opt = config_ARG;
+commands[69].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[69].optional_opt_args[2].opt = debug_ARG;
+commands[69].optional_opt_args[3].opt = driverloaded_ARG;
+commands[69].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[69].optional_opt_args[4].opt = help_ARG;
+commands[69].optional_opt_args[5].opt = profile_ARG;
+commands[69].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[69].optional_opt_args[6].opt = quiet_ARG;
+commands[69].optional_opt_args[7].opt = verbose_ARG;
+commands[69].optional_opt_args[8].opt = version_ARG;
+commands[69].optional_opt_args[9].opt = yes_ARG;
+commands[69].optional_opt_args[10].opt = type_ARG;
+commands[69].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[69].optional_opt_args[10].def.str = "cache";
+commands[69].optional_opt_args[11].opt = cachemode_ARG;
+commands[69].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[69].optional_opt_args[12].opt = cachepolicy_ARG;
+commands[69].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[69].optional_opt_args[13].opt = cachesettings_ARG;
+commands[69].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[69].optional_opt_args[14].opt = addtag_ARG;
+commands[69].optional_opt_args[14].def.types = ARG_DEF_TYPE_TAG;
+commands[69].optional_opt_args[15].opt = alloc_ARG;
+commands[69].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[69].optional_opt_args[16].opt = autobackup_ARG;
+commands[69].optional_opt_args[16].def.types = ARG_DEF_TYPE_BOOL;
+commands[69].optional_opt_args[17].opt = activate_ARG;
+commands[69].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[69].optional_opt_args[18].opt = contiguous_ARG;
+commands[69].optional_opt_args[18].def.types = ARG_DEF_TYPE_BOOL;
+commands[69].optional_opt_args[19].opt = ignoreactivationskip_ARG;
+commands[69].optional_opt_args[20].opt = ignoremonitoring_ARG;
+commands[69].optional_opt_args[21].opt = major_ARG;
+commands[69].optional_opt_args[21].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[69].optional_opt_args[22].opt = metadataprofile_ARG;
+commands[69].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[69].optional_opt_args[23].opt = minor_ARG;
+commands[69].optional_opt_args[23].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[69].optional_opt_args[24].opt = monitor_ARG;
+commands[69].optional_opt_args[24].def.types = ARG_DEF_TYPE_BOOL;
+commands[69].optional_opt_args[25].opt = name_ARG;
+commands[69].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[69].optional_opt_args[26].opt = nosync_ARG;
+commands[69].optional_opt_args[27].opt = noudevsync_ARG;
+commands[69].optional_opt_args[28].opt = permission_ARG;
+commands[69].optional_opt_args[29].opt = persistent_ARG;
+commands[69].optional_opt_args[29].def.types = ARG_DEF_TYPE_BOOL;
+commands[69].optional_opt_args[30].opt = readahead_ARG;
+commands[69].optional_opt_args[30].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[69].optional_opt_args[31].opt = reportformat_ARG;
+commands[69].optional_opt_args[31].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[69].optional_opt_args[32].opt = setactivationskip_ARG;
+commands[69].optional_opt_args[32].def.types = ARG_DEF_TYPE_BOOL;
+commands[69].optional_opt_args[33].opt = test_ARG;
+commands[69].optional_opt_args[34].opt = wipesignatures_ARG;
+commands[69].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+commands[69].optional_opt_args[35].opt = zero_ARG;
+commands[69].optional_opt_args[35].def.types = ARG_DEF_TYPE_BOOL;
+commands[69].optional_pos_args[0].pos = 1;
+commands[69].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[69].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[70].name = "lvcreate";
+commands[70].fn = lvcreate;
+commands[70].ro_count = 4;
+commands[70].rp_count = 0;
+commands[70].oo_count = 38;
+commands[70].op_count = 1;
+commands[70].desc = "Create a thin LV, first creating a thin pool for it, where the new thin pool is named by the --thinpool arg. (infers --type thin)";
+commands[70].usage = "lvcreate --thin --virtualsize Number --size Number --thinpool LV_new"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type thin, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[70].required_opt_args[0].opt = thin_ARG;
+commands[70].required_opt_args[1].opt = virtualsize_ARG;
+commands[70].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[70].required_opt_args[2].opt = size_ARG;
+commands[70].required_opt_args[2].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[70].required_opt_args[3].opt = thinpool_ARG;
+commands[70].required_opt_args[3].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[70].required_opt_args[3].def.flags = ARG_DEF_FLAG_NEW;
+commands[70].optional_opt_args[0].opt = commandprofile_ARG;
+commands[70].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[70].optional_opt_args[1].opt = config_ARG;
+commands[70].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[70].optional_opt_args[2].opt = debug_ARG;
+commands[70].optional_opt_args[3].opt = driverloaded_ARG;
+commands[70].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[70].optional_opt_args[4].opt = help_ARG;
+commands[70].optional_opt_args[5].opt = profile_ARG;
+commands[70].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[70].optional_opt_args[6].opt = quiet_ARG;
+commands[70].optional_opt_args[7].opt = verbose_ARG;
+commands[70].optional_opt_args[8].opt = version_ARG;
+commands[70].optional_opt_args[9].opt = yes_ARG;
+commands[70].optional_opt_args[10].opt = type_ARG;
+commands[70].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[70].optional_opt_args[10].def.str = "thin";
+commands[70].optional_opt_args[11].opt = poolmetadatasize_ARG;
+commands[70].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[70].optional_opt_args[12].opt = poolmetadataspare_ARG;
+commands[70].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[70].optional_opt_args[13].opt = chunksize_ARG;
+commands[70].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[70].optional_opt_args[14].opt = discards_ARG;
+commands[70].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[70].optional_opt_args[15].opt = errorwhenfull_ARG;
+commands[70].optional_opt_args[15].def.types = ARG_DEF_TYPE_BOOL;
+commands[70].optional_opt_args[16].opt = addtag_ARG;
+commands[70].optional_opt_args[16].def.types = ARG_DEF_TYPE_TAG;
+commands[70].optional_opt_args[17].opt = alloc_ARG;
+commands[70].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[70].optional_opt_args[18].opt = autobackup_ARG;
+commands[70].optional_opt_args[18].def.types = ARG_DEF_TYPE_BOOL;
+commands[70].optional_opt_args[19].opt = activate_ARG;
+commands[70].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[70].optional_opt_args[20].opt = contiguous_ARG;
+commands[70].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[70].optional_opt_args[21].opt = ignoreactivationskip_ARG;
+commands[70].optional_opt_args[22].opt = ignoremonitoring_ARG;
+commands[70].optional_opt_args[23].opt = major_ARG;
+commands[70].optional_opt_args[23].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[70].optional_opt_args[24].opt = metadataprofile_ARG;
+commands[70].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[70].optional_opt_args[25].opt = minor_ARG;
+commands[70].optional_opt_args[25].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[70].optional_opt_args[26].opt = monitor_ARG;
+commands[70].optional_opt_args[26].def.types = ARG_DEF_TYPE_BOOL;
+commands[70].optional_opt_args[27].opt = name_ARG;
+commands[70].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[70].optional_opt_args[28].opt = nosync_ARG;
+commands[70].optional_opt_args[29].opt = noudevsync_ARG;
+commands[70].optional_opt_args[30].opt = permission_ARG;
+commands[70].optional_opt_args[31].opt = persistent_ARG;
+commands[70].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[70].optional_opt_args[32].opt = readahead_ARG;
+commands[70].optional_opt_args[32].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[70].optional_opt_args[33].opt = reportformat_ARG;
+commands[70].optional_opt_args[33].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[70].optional_opt_args[34].opt = setactivationskip_ARG;
+commands[70].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+commands[70].optional_opt_args[35].opt = test_ARG;
+commands[70].optional_opt_args[36].opt = wipesignatures_ARG;
+commands[70].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+commands[70].optional_opt_args[37].opt = zero_ARG;
+commands[70].optional_opt_args[37].def.types = ARG_DEF_TYPE_BOOL;
+commands[70].optional_pos_args[0].pos = 1;
+commands[70].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[70].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[71].name = "lvcreate";
+commands[71].fn = lvcreate;
+commands[71].ro_count = 3;
+commands[71].rp_count = 1;
+commands[71].oo_count = 38;
+commands[71].op_count = 1;
+commands[71].desc = "Create a thin LV, first creating a thin pool for it, where the new thin pool is named in arg pos 1. (infers --type thin)";
+commands[71].usage = "lvcreate --thin --virtualsize Number --size Number LV_new"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type thin, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[71].required_opt_args[0].opt = thin_ARG;
+commands[71].required_opt_args[1].opt = virtualsize_ARG;
+commands[71].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[71].required_opt_args[2].opt = size_ARG;
+commands[71].required_opt_args[2].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[71].required_pos_args[0].pos = 1;
+commands[71].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[71].required_pos_args[0].def.flags = ARG_DEF_FLAG_NEW;
+commands[71].optional_opt_args[0].opt = commandprofile_ARG;
+commands[71].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[71].optional_opt_args[1].opt = config_ARG;
+commands[71].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[71].optional_opt_args[2].opt = debug_ARG;
+commands[71].optional_opt_args[3].opt = driverloaded_ARG;
+commands[71].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[71].optional_opt_args[4].opt = help_ARG;
+commands[71].optional_opt_args[5].opt = profile_ARG;
+commands[71].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[71].optional_opt_args[6].opt = quiet_ARG;
+commands[71].optional_opt_args[7].opt = verbose_ARG;
+commands[71].optional_opt_args[8].opt = version_ARG;
+commands[71].optional_opt_args[9].opt = yes_ARG;
+commands[71].optional_opt_args[10].opt = type_ARG;
+commands[71].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[71].optional_opt_args[10].def.str = "thin";
+commands[71].optional_opt_args[11].opt = poolmetadatasize_ARG;
+commands[71].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[71].optional_opt_args[12].opt = poolmetadataspare_ARG;
+commands[71].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[71].optional_opt_args[13].opt = chunksize_ARG;
+commands[71].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[71].optional_opt_args[14].opt = discards_ARG;
+commands[71].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[71].optional_opt_args[15].opt = errorwhenfull_ARG;
+commands[71].optional_opt_args[15].def.types = ARG_DEF_TYPE_BOOL;
+commands[71].optional_opt_args[16].opt = addtag_ARG;
+commands[71].optional_opt_args[16].def.types = ARG_DEF_TYPE_TAG;
+commands[71].optional_opt_args[17].opt = alloc_ARG;
+commands[71].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[71].optional_opt_args[18].opt = autobackup_ARG;
+commands[71].optional_opt_args[18].def.types = ARG_DEF_TYPE_BOOL;
+commands[71].optional_opt_args[19].opt = activate_ARG;
+commands[71].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[71].optional_opt_args[20].opt = contiguous_ARG;
+commands[71].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[71].optional_opt_args[21].opt = ignoreactivationskip_ARG;
+commands[71].optional_opt_args[22].opt = ignoremonitoring_ARG;
+commands[71].optional_opt_args[23].opt = major_ARG;
+commands[71].optional_opt_args[23].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[71].optional_opt_args[24].opt = metadataprofile_ARG;
+commands[71].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[71].optional_opt_args[25].opt = minor_ARG;
+commands[71].optional_opt_args[25].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[71].optional_opt_args[26].opt = monitor_ARG;
+commands[71].optional_opt_args[26].def.types = ARG_DEF_TYPE_BOOL;
+commands[71].optional_opt_args[27].opt = name_ARG;
+commands[71].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[71].optional_opt_args[28].opt = nosync_ARG;
+commands[71].optional_opt_args[29].opt = noudevsync_ARG;
+commands[71].optional_opt_args[30].opt = permission_ARG;
+commands[71].optional_opt_args[31].opt = persistent_ARG;
+commands[71].optional_opt_args[31].def.types = ARG_DEF_TYPE_BOOL;
+commands[71].optional_opt_args[32].opt = readahead_ARG;
+commands[71].optional_opt_args[32].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[71].optional_opt_args[33].opt = reportformat_ARG;
+commands[71].optional_opt_args[33].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[71].optional_opt_args[34].opt = setactivationskip_ARG;
+commands[71].optional_opt_args[34].def.types = ARG_DEF_TYPE_BOOL;
+commands[71].optional_opt_args[35].opt = test_ARG;
+commands[71].optional_opt_args[36].opt = wipesignatures_ARG;
+commands[71].optional_opt_args[36].def.types = ARG_DEF_TYPE_BOOL;
+commands[71].optional_opt_args[37].opt = zero_ARG;
+commands[71].optional_opt_args[37].def.types = ARG_DEF_TYPE_BOOL;
+commands[71].optional_pos_args[0].pos = 2;
+commands[71].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[71].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[72].name = "lvcreate";
+commands[72].fn = lvcreate;
+commands[72].ro_count = 2;
+commands[72].rp_count = 1;
+commands[72].oo_count = 42;
+commands[72].op_count = 1;
+commands[72].desc = "Create a thin LV, first creating a thin pool for it. (infers --type thin) Create a sparse snapshot of a virtual origin LV. (infers --type snapshot) (infers --type thin or --type snapshot according to sparse_segtype_default)";
+commands[72].usage = "lvcreate --size Number --virtualsize Number VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --type thin, --type snapshot, --thin, --snapshot, --virtualoriginsize Number, --poolmetadatasize Number, --poolmetadataspare Bool, --chunksize Number, --discards String, --errorwhenfull Bool, --addtag Tag, --alloc String, --autobackup Bool, --activate String, --contiguous Bool, --ignoreactivationskip, --ignoremonitoring, --major Number, --metadataprofile String, --minor Number, --monitor Bool, --name String, --nosync, --noudevsync, --permission, --persistent Bool, --readahead Number|String, --reportformat String, --setactivationskip Bool, --test, --wipesignatures Bool, --zero Bool ]"
+" [ PV ... ]";
+commands[72].required_opt_args[0].opt = size_ARG;
+commands[72].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[72].required_opt_args[1].opt = virtualsize_ARG;
+commands[72].required_opt_args[1].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[72].required_pos_args[0].pos = 1;
+commands[72].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[72].optional_opt_args[0].opt = commandprofile_ARG;
+commands[72].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[72].optional_opt_args[1].opt = config_ARG;
+commands[72].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[72].optional_opt_args[2].opt = debug_ARG;
+commands[72].optional_opt_args[3].opt = driverloaded_ARG;
+commands[72].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[72].optional_opt_args[4].opt = help_ARG;
+commands[72].optional_opt_args[5].opt = profile_ARG;
+commands[72].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[72].optional_opt_args[6].opt = quiet_ARG;
+commands[72].optional_opt_args[7].opt = verbose_ARG;
+commands[72].optional_opt_args[8].opt = version_ARG;
+commands[72].optional_opt_args[9].opt = yes_ARG;
+commands[72].optional_opt_args[10].opt = type_ARG;
+commands[72].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[72].optional_opt_args[10].def.str = "thin";
+commands[72].optional_opt_args[11].opt = type_ARG;
+commands[72].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_CONST;
+commands[72].optional_opt_args[11].def.str = "snapshot";
+commands[72].optional_opt_args[12].opt = thin_ARG;
+commands[72].optional_opt_args[13].opt = snapshot_ARG;
+commands[72].optional_opt_args[14].opt = virtualoriginsize_ARG;
+commands[72].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[72].optional_opt_args[15].opt = poolmetadatasize_ARG;
+commands[72].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[72].optional_opt_args[16].opt = poolmetadataspare_ARG;
+commands[72].optional_opt_args[16].def.types = ARG_DEF_TYPE_BOOL;
+commands[72].optional_opt_args[17].opt = chunksize_ARG;
+commands[72].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[72].optional_opt_args[18].opt = discards_ARG;
+commands[72].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[72].optional_opt_args[19].opt = errorwhenfull_ARG;
+commands[72].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[72].optional_opt_args[20].opt = addtag_ARG;
+commands[72].optional_opt_args[20].def.types = ARG_DEF_TYPE_TAG;
+commands[72].optional_opt_args[21].opt = alloc_ARG;
+commands[72].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[72].optional_opt_args[22].opt = autobackup_ARG;
+commands[72].optional_opt_args[22].def.types = ARG_DEF_TYPE_BOOL;
+commands[72].optional_opt_args[23].opt = activate_ARG;
+commands[72].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[72].optional_opt_args[24].opt = contiguous_ARG;
+commands[72].optional_opt_args[24].def.types = ARG_DEF_TYPE_BOOL;
+commands[72].optional_opt_args[25].opt = ignoreactivationskip_ARG;
+commands[72].optional_opt_args[26].opt = ignoremonitoring_ARG;
+commands[72].optional_opt_args[27].opt = major_ARG;
+commands[72].optional_opt_args[27].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[72].optional_opt_args[28].opt = metadataprofile_ARG;
+commands[72].optional_opt_args[28].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[72].optional_opt_args[29].opt = minor_ARG;
+commands[72].optional_opt_args[29].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[72].optional_opt_args[30].opt = monitor_ARG;
+commands[72].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[72].optional_opt_args[31].opt = name_ARG;
+commands[72].optional_opt_args[31].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[72].optional_opt_args[32].opt = nosync_ARG;
+commands[72].optional_opt_args[33].opt = noudevsync_ARG;
+commands[72].optional_opt_args[34].opt = permission_ARG;
+commands[72].optional_opt_args[35].opt = persistent_ARG;
+commands[72].optional_opt_args[35].def.types = ARG_DEF_TYPE_BOOL;
+commands[72].optional_opt_args[36].opt = readahead_ARG;
+commands[72].optional_opt_args[36].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[72].optional_opt_args[37].opt = reportformat_ARG;
+commands[72].optional_opt_args[37].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[72].optional_opt_args[38].opt = setactivationskip_ARG;
+commands[72].optional_opt_args[38].def.types = ARG_DEF_TYPE_BOOL;
+commands[72].optional_opt_args[39].opt = test_ARG;
+commands[72].optional_opt_args[40].opt = wipesignatures_ARG;
+commands[72].optional_opt_args[40].def.types = ARG_DEF_TYPE_BOOL;
+commands[72].optional_opt_args[41].opt = zero_ARG;
+commands[72].optional_opt_args[41].def.types = ARG_DEF_TYPE_BOOL;
+commands[72].optional_pos_args[0].pos = 2;
+commands[72].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[72].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[73].name = "lvdisplay";
+commands[73].fn = lvdisplay;
+commands[73].ro_count = 0;
+commands[73].rp_count = 0;
+commands[73].oo_count = 35;
+commands[73].op_count = 1;
+commands[73].desc = "";
+commands[73].usage = "lvdisplay"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --aligned, --all, --binary, --colon, --columns, --configreport String, --foreign, --history, --ignorelockingfailure, --ignoreskippedcluster, --logonly, --maps, --noheadings, --nosuffix, --options String, --sort String, --partial, --readonly, --reportformat String, --segments, --select String, --separator String, --shared, --unbuffered, --units String ]"
+" [ VG|LV|Tag ... ]";
+commands[73].optional_opt_args[0].opt = commandprofile_ARG;
+commands[73].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[73].optional_opt_args[1].opt = config_ARG;
+commands[73].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[73].optional_opt_args[2].opt = debug_ARG;
+commands[73].optional_opt_args[3].opt = driverloaded_ARG;
+commands[73].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[73].optional_opt_args[4].opt = help_ARG;
+commands[73].optional_opt_args[5].opt = profile_ARG;
+commands[73].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[73].optional_opt_args[6].opt = quiet_ARG;
+commands[73].optional_opt_args[7].opt = verbose_ARG;
+commands[73].optional_opt_args[8].opt = version_ARG;
+commands[73].optional_opt_args[9].opt = yes_ARG;
+commands[73].optional_opt_args[10].opt = aligned_ARG;
+commands[73].optional_opt_args[11].opt = all_ARG;
+commands[73].optional_opt_args[12].opt = binary_ARG;
+commands[73].optional_opt_args[13].opt = colon_ARG;
+commands[73].optional_opt_args[14].opt = columns_ARG;
+commands[73].optional_opt_args[15].opt = configreport_ARG;
+commands[73].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[73].optional_opt_args[16].opt = foreign_ARG;
+commands[73].optional_opt_args[17].opt = history_ARG;
+commands[73].optional_opt_args[18].opt = ignorelockingfailure_ARG;
+commands[73].optional_opt_args[19].opt = ignoreskippedcluster_ARG;
+commands[73].optional_opt_args[20].opt = logonly_ARG;
+commands[73].optional_opt_args[21].opt = maps_ARG;
+commands[73].optional_opt_args[22].opt = noheadings_ARG;
+commands[73].optional_opt_args[23].opt = nosuffix_ARG;
+commands[73].optional_opt_args[24].opt = options_ARG;
+commands[73].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[73].optional_opt_args[25].opt = sort_ARG;
+commands[73].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[73].optional_opt_args[26].opt = partial_ARG;
+commands[73].optional_opt_args[27].opt = readonly_ARG;
+commands[73].optional_opt_args[28].opt = reportformat_ARG;
+commands[73].optional_opt_args[28].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[73].optional_opt_args[29].opt = segments_ARG;
+commands[73].optional_opt_args[30].opt = select_ARG;
+commands[73].optional_opt_args[30].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[73].optional_opt_args[31].opt = separator_ARG;
+commands[73].optional_opt_args[31].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[73].optional_opt_args[32].opt = shared_ARG;
+commands[73].optional_opt_args[33].opt = unbuffered_ARG;
+commands[73].optional_opt_args[34].opt = units_ARG;
+commands[73].optional_opt_args[34].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[73].optional_pos_args[0].pos = 1;
+commands[73].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG;
+commands[73].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[74].name = "lvextend";
+commands[74].fn = lvextend;
+commands[74].ro_count = 1;
+commands[74].rp_count = 1;
+commands[74].oo_count = 23;
+commands[74].op_count = 1;
+commands[74].desc = "";
+commands[74].usage = "lvextend --size Number LV"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --autobackup Bool, --force, --mirrors Number, --nofsck, --nosync, --noudevsync, --reportformat String, --resizefs, --stripes Number, --stripesize Number, --test, --poolmetadatasize Number ]"
+" [ PV ... ]";
+commands[74].required_opt_args[0].opt = size_ARG;
+commands[74].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[74].required_pos_args[0].pos = 1;
+commands[74].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[74].optional_opt_args[0].opt = commandprofile_ARG;
+commands[74].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[74].optional_opt_args[1].opt = config_ARG;
+commands[74].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[74].optional_opt_args[2].opt = debug_ARG;
+commands[74].optional_opt_args[3].opt = driverloaded_ARG;
+commands[74].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[74].optional_opt_args[4].opt = help_ARG;
+commands[74].optional_opt_args[5].opt = profile_ARG;
+commands[74].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[74].optional_opt_args[6].opt = quiet_ARG;
+commands[74].optional_opt_args[7].opt = verbose_ARG;
+commands[74].optional_opt_args[8].opt = version_ARG;
+commands[74].optional_opt_args[9].opt = yes_ARG;
+commands[74].optional_opt_args[10].opt = alloc_ARG;
+commands[74].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[74].optional_opt_args[11].opt = autobackup_ARG;
+commands[74].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[74].optional_opt_args[12].opt = force_ARG;
+commands[74].optional_opt_args[13].opt = mirrors_ARG;
+commands[74].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[74].optional_opt_args[14].opt = nofsck_ARG;
+commands[74].optional_opt_args[15].opt = nosync_ARG;
+commands[74].optional_opt_args[16].opt = noudevsync_ARG;
+commands[74].optional_opt_args[17].opt = reportformat_ARG;
+commands[74].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[74].optional_opt_args[18].opt = resizefs_ARG;
+commands[74].optional_opt_args[19].opt = stripes_ARG;
+commands[74].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[74].optional_opt_args[20].opt = stripesize_ARG;
+commands[74].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[74].optional_opt_args[21].opt = test_ARG;
+commands[74].optional_opt_args[22].opt = poolmetadatasize_ARG;
+commands[74].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[74].optional_pos_args[0].pos = 2;
+commands[74].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[74].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[75].name = "lvextend";
+commands[75].fn = lvextend;
+commands[75].ro_count = 0;
+commands[75].rp_count = 2;
+commands[75].oo_count = 22;
+commands[75].op_count = 0;
+commands[75].desc = "";
+commands[75].usage = "lvextend LV PV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --autobackup Bool, --force, --mirrors Number, --nofsck, --nosync, --noudevsync, --reportformat String, --resizefs, --stripes Number, --stripesize Number, --test ]";
+commands[75].required_pos_args[0].pos = 1;
+commands[75].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[75].required_pos_args[1].pos = 2;
+commands[75].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[75].required_pos_args[1].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[75].optional_opt_args[0].opt = commandprofile_ARG;
+commands[75].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[75].optional_opt_args[1].opt = config_ARG;
+commands[75].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[75].optional_opt_args[2].opt = debug_ARG;
+commands[75].optional_opt_args[3].opt = driverloaded_ARG;
+commands[75].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[75].optional_opt_args[4].opt = help_ARG;
+commands[75].optional_opt_args[5].opt = profile_ARG;
+commands[75].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[75].optional_opt_args[6].opt = quiet_ARG;
+commands[75].optional_opt_args[7].opt = verbose_ARG;
+commands[75].optional_opt_args[8].opt = version_ARG;
+commands[75].optional_opt_args[9].opt = yes_ARG;
+commands[75].optional_opt_args[10].opt = alloc_ARG;
+commands[75].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[75].optional_opt_args[11].opt = autobackup_ARG;
+commands[75].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[75].optional_opt_args[12].opt = force_ARG;
+commands[75].optional_opt_args[13].opt = mirrors_ARG;
+commands[75].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[75].optional_opt_args[14].opt = nofsck_ARG;
+commands[75].optional_opt_args[15].opt = nosync_ARG;
+commands[75].optional_opt_args[16].opt = noudevsync_ARG;
+commands[75].optional_opt_args[17].opt = reportformat_ARG;
+commands[75].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[75].optional_opt_args[18].opt = resizefs_ARG;
+commands[75].optional_opt_args[19].opt = stripes_ARG;
+commands[75].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[75].optional_opt_args[20].opt = stripesize_ARG;
+commands[75].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[75].optional_opt_args[21].opt = test_ARG;
+
+commands[76].name = "lvextend";
+commands[76].fn = lvextend;
+commands[76].ro_count = 1;
+commands[76].rp_count = 1;
+commands[76].oo_count = 21;
+commands[76].op_count = 1;
+commands[76].desc = "";
+commands[76].usage = "lvextend --poolmetadatasize Number LV_thinpool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --autobackup Bool, --force, --mirrors Number, --nofsck, --nosync, --noudevsync, --reportformat String, --stripes Number, --stripesize Number, --test ]"
+" [ PV ... ]";
+commands[76].required_opt_args[0].opt = poolmetadatasize_ARG;
+commands[76].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[76].required_pos_args[0].pos = 1;
+commands[76].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[76].required_pos_args[0].def.lv_types = ARG_DEF_LV_THINPOOL;
+commands[76].optional_opt_args[0].opt = commandprofile_ARG;
+commands[76].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[76].optional_opt_args[1].opt = config_ARG;
+commands[76].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[76].optional_opt_args[2].opt = debug_ARG;
+commands[76].optional_opt_args[3].opt = driverloaded_ARG;
+commands[76].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[76].optional_opt_args[4].opt = help_ARG;
+commands[76].optional_opt_args[5].opt = profile_ARG;
+commands[76].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[76].optional_opt_args[6].opt = quiet_ARG;
+commands[76].optional_opt_args[7].opt = verbose_ARG;
+commands[76].optional_opt_args[8].opt = version_ARG;
+commands[76].optional_opt_args[9].opt = yes_ARG;
+commands[76].optional_opt_args[10].opt = alloc_ARG;
+commands[76].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[76].optional_opt_args[11].opt = autobackup_ARG;
+commands[76].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[76].optional_opt_args[12].opt = force_ARG;
+commands[76].optional_opt_args[13].opt = mirrors_ARG;
+commands[76].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[76].optional_opt_args[14].opt = nofsck_ARG;
+commands[76].optional_opt_args[15].opt = nosync_ARG;
+commands[76].optional_opt_args[16].opt = noudevsync_ARG;
+commands[76].optional_opt_args[17].opt = reportformat_ARG;
+commands[76].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[76].optional_opt_args[18].opt = stripes_ARG;
+commands[76].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[76].optional_opt_args[19].opt = stripesize_ARG;
+commands[76].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[76].optional_opt_args[20].opt = test_ARG;
+commands[76].optional_pos_args[0].pos = 2;
+commands[76].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[76].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[77].name = "lvextend";
+commands[77].fn = lvextend;
+commands[77].ro_count = 1;
+commands[77].rp_count = 1;
+commands[77].oo_count = 20;
+commands[77].op_count = 0;
+commands[77].desc = "";
+commands[77].usage = "lvextend --usepolicies LV_snapshot|LV_thinpool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --autobackup Bool, --force, --mirrors Number, --nofsck, --nosync, --noudevsync, --reportformat String, --resizefs, --test ]";
+commands[77].required_opt_args[0].opt = usepolicies_ARG;
+commands[77].required_pos_args[0].pos = 1;
+commands[77].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[77].required_pos_args[0].def.lv_types = ARG_DEF_LV_SNAPSHOT|ARG_DEF_LV_THINPOOL;
+commands[77].optional_opt_args[0].opt = commandprofile_ARG;
+commands[77].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[77].optional_opt_args[1].opt = config_ARG;
+commands[77].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[77].optional_opt_args[2].opt = debug_ARG;
+commands[77].optional_opt_args[3].opt = driverloaded_ARG;
+commands[77].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[77].optional_opt_args[4].opt = help_ARG;
+commands[77].optional_opt_args[5].opt = profile_ARG;
+commands[77].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[77].optional_opt_args[6].opt = quiet_ARG;
+commands[77].optional_opt_args[7].opt = verbose_ARG;
+commands[77].optional_opt_args[8].opt = version_ARG;
+commands[77].optional_opt_args[9].opt = yes_ARG;
+commands[77].optional_opt_args[10].opt = alloc_ARG;
+commands[77].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[77].optional_opt_args[11].opt = autobackup_ARG;
+commands[77].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[77].optional_opt_args[12].opt = force_ARG;
+commands[77].optional_opt_args[13].opt = mirrors_ARG;
+commands[77].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[77].optional_opt_args[14].opt = nofsck_ARG;
+commands[77].optional_opt_args[15].opt = nosync_ARG;
+commands[77].optional_opt_args[16].opt = noudevsync_ARG;
+commands[77].optional_opt_args[17].opt = reportformat_ARG;
+commands[77].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[77].optional_opt_args[18].opt = resizefs_ARG;
+commands[77].optional_opt_args[19].opt = test_ARG;
+
+commands[78].name = "lvmchange";
+commands[78].fn = lvmchange;
+commands[78].ro_count = 0;
+commands[78].rp_count = 0;
+commands[78].oo_count = 10;
+commands[78].op_count = 0;
+commands[78].desc = "";
+commands[78].usage = "lvmchange"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes ]";
+commands[78].optional_opt_args[0].opt = commandprofile_ARG;
+commands[78].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[78].optional_opt_args[1].opt = config_ARG;
+commands[78].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[78].optional_opt_args[2].opt = debug_ARG;
+commands[78].optional_opt_args[3].opt = driverloaded_ARG;
+commands[78].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[78].optional_opt_args[4].opt = help_ARG;
+commands[78].optional_opt_args[5].opt = profile_ARG;
+commands[78].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[78].optional_opt_args[6].opt = quiet_ARG;
+commands[78].optional_opt_args[7].opt = verbose_ARG;
+commands[78].optional_opt_args[8].opt = version_ARG;
+commands[78].optional_opt_args[9].opt = yes_ARG;
+
+commands[79].name = "lvmconfig";
+commands[79].fn = lvmconfig;
+commands[79].ro_count = 0;
+commands[79].rp_count = 0;
+commands[79].oo_count = 28;
+commands[79].op_count = 0;
+commands[79].desc = "";
+commands[79].usage = "lvmconfig"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --atversion String, --configtype String, --file String, --ignoreadvanced, --ignoreunsupported, --ignorelocal, --list, --mergedconfig, --metadataprofile String, --sinceversion String, --showdeprecated, --showunsupported, --validate, --withsummary, --withcomments, --withspaces, --unconfigured, --withversions ]";
+commands[79].optional_opt_args[0].opt = commandprofile_ARG;
+commands[79].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[79].optional_opt_args[1].opt = config_ARG;
+commands[79].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[79].optional_opt_args[2].opt = debug_ARG;
+commands[79].optional_opt_args[3].opt = driverloaded_ARG;
+commands[79].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[79].optional_opt_args[4].opt = help_ARG;
+commands[79].optional_opt_args[5].opt = profile_ARG;
+commands[79].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[79].optional_opt_args[6].opt = quiet_ARG;
+commands[79].optional_opt_args[7].opt = verbose_ARG;
+commands[79].optional_opt_args[8].opt = version_ARG;
+commands[79].optional_opt_args[9].opt = yes_ARG;
+commands[79].optional_opt_args[10].opt = atversion_ARG;
+commands[79].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[79].optional_opt_args[11].opt = configtype_ARG;
+commands[79].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[79].optional_opt_args[12].opt = file_ARG;
+commands[79].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[79].optional_opt_args[13].opt = ignoreadvanced_ARG;
+commands[79].optional_opt_args[14].opt = ignoreunsupported_ARG;
+commands[79].optional_opt_args[15].opt = ignorelocal_ARG;
+commands[79].optional_opt_args[16].opt = list_ARG;
+commands[79].optional_opt_args[17].opt = mergedconfig_ARG;
+commands[79].optional_opt_args[18].opt = metadataprofile_ARG;
+commands[79].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[79].optional_opt_args[19].opt = sinceversion_ARG;
+commands[79].optional_opt_args[19].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[79].optional_opt_args[20].opt = showdeprecated_ARG;
+commands[79].optional_opt_args[21].opt = showunsupported_ARG;
+commands[79].optional_opt_args[22].opt = validate_ARG;
+commands[79].optional_opt_args[23].opt = withsummary_ARG;
+commands[79].optional_opt_args[24].opt = withcomments_ARG;
+commands[79].optional_opt_args[25].opt = withspaces_ARG;
+commands[79].optional_opt_args[26].opt = unconfigured_ARG;
+commands[79].optional_opt_args[27].opt = withversions_ARG;
+
+commands[80].name = "lvmdiskscan";
+commands[80].fn = lvmdiskscan;
+commands[80].ro_count = 0;
+commands[80].rp_count = 0;
+commands[80].oo_count = 12;
+commands[80].op_count = 0;
+commands[80].desc = "";
+commands[80].usage = "lvmdiskscan"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --lvmpartition, --readonly ]";
+commands[80].optional_opt_args[0].opt = commandprofile_ARG;
+commands[80].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[80].optional_opt_args[1].opt = config_ARG;
+commands[80].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[80].optional_opt_args[2].opt = debug_ARG;
+commands[80].optional_opt_args[3].opt = driverloaded_ARG;
+commands[80].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[80].optional_opt_args[4].opt = help_ARG;
+commands[80].optional_opt_args[5].opt = profile_ARG;
+commands[80].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[80].optional_opt_args[6].opt = quiet_ARG;
+commands[80].optional_opt_args[7].opt = verbose_ARG;
+commands[80].optional_opt_args[8].opt = version_ARG;
+commands[80].optional_opt_args[9].opt = yes_ARG;
+commands[80].optional_opt_args[10].opt = lvmpartition_ARG;
+commands[80].optional_opt_args[11].opt = readonly_ARG;
+
+commands[81].name = "lvmsadc";
+commands[81].fn = lvmsadc;
+commands[81].ro_count = 0;
+commands[81].rp_count = 0;
+commands[81].oo_count = 10;
+commands[81].op_count = 0;
+commands[81].desc = "";
+commands[81].usage = "lvmsadc"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes ]";
+commands[81].optional_opt_args[0].opt = commandprofile_ARG;
+commands[81].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[81].optional_opt_args[1].opt = config_ARG;
+commands[81].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[81].optional_opt_args[2].opt = debug_ARG;
+commands[81].optional_opt_args[3].opt = driverloaded_ARG;
+commands[81].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[81].optional_opt_args[4].opt = help_ARG;
+commands[81].optional_opt_args[5].opt = profile_ARG;
+commands[81].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[81].optional_opt_args[6].opt = quiet_ARG;
+commands[81].optional_opt_args[7].opt = verbose_ARG;
+commands[81].optional_opt_args[8].opt = version_ARG;
+commands[81].optional_opt_args[9].opt = yes_ARG;
+
+commands[82].name = "lvmsar";
+commands[82].fn = lvmsar;
+commands[82].ro_count = 0;
+commands[82].rp_count = 0;
+commands[82].oo_count = 12;
+commands[82].op_count = 0;
+commands[82].desc = "";
+commands[82].usage = "lvmsar"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --full, --stdin ]";
+commands[82].optional_opt_args[0].opt = commandprofile_ARG;
+commands[82].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[82].optional_opt_args[1].opt = config_ARG;
+commands[82].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[82].optional_opt_args[2].opt = debug_ARG;
+commands[82].optional_opt_args[3].opt = driverloaded_ARG;
+commands[82].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[82].optional_opt_args[4].opt = help_ARG;
+commands[82].optional_opt_args[5].opt = profile_ARG;
+commands[82].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[82].optional_opt_args[6].opt = quiet_ARG;
+commands[82].optional_opt_args[7].opt = verbose_ARG;
+commands[82].optional_opt_args[8].opt = version_ARG;
+commands[82].optional_opt_args[9].opt = yes_ARG;
+commands[82].optional_opt_args[10].opt = full_ARG;
+commands[82].optional_opt_args[11].opt = stdin_ARG;
+
+commands[83].name = "lvreduce";
+commands[83].fn = lvreduce;
+commands[83].ro_count = 1;
+commands[83].rp_count = 1;
+commands[83].oo_count = 17;
+commands[83].op_count = 0;
+commands[83].desc = "";
+commands[83].usage = "lvreduce --size Number LV"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --force, --nofsck, --noudevsync, --reportformat String, --resizefs, --test ]";
+commands[83].required_opt_args[0].opt = size_ARG;
+commands[83].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[83].required_pos_args[0].pos = 1;
+commands[83].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[83].optional_opt_args[0].opt = commandprofile_ARG;
+commands[83].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[83].optional_opt_args[1].opt = config_ARG;
+commands[83].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[83].optional_opt_args[2].opt = debug_ARG;
+commands[83].optional_opt_args[3].opt = driverloaded_ARG;
+commands[83].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[83].optional_opt_args[4].opt = help_ARG;
+commands[83].optional_opt_args[5].opt = profile_ARG;
+commands[83].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[83].optional_opt_args[6].opt = quiet_ARG;
+commands[83].optional_opt_args[7].opt = verbose_ARG;
+commands[83].optional_opt_args[8].opt = version_ARG;
+commands[83].optional_opt_args[9].opt = yes_ARG;
+commands[83].optional_opt_args[10].opt = autobackup_ARG;
+commands[83].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[83].optional_opt_args[11].opt = force_ARG;
+commands[83].optional_opt_args[12].opt = nofsck_ARG;
+commands[83].optional_opt_args[13].opt = noudevsync_ARG;
+commands[83].optional_opt_args[14].opt = reportformat_ARG;
+commands[83].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[83].optional_opt_args[15].opt = resizefs_ARG;
+commands[83].optional_opt_args[16].opt = test_ARG;
+
+commands[84].name = "lvremove";
+commands[84].fn = lvremove;
+commands[84].ro_count = 0;
+commands[84].rp_count = 1;
+commands[84].oo_count = 17;
+commands[84].op_count = 0;
+commands[84].desc = "";
+commands[84].usage = "lvremove VG|LV|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --force, --nohistory, --noudevsync, --reportformat String, --select String, --test ]";
+commands[84].required_pos_args[0].pos = 1;
+commands[84].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[84].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[84].optional_opt_args[0].opt = commandprofile_ARG;
+commands[84].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[84].optional_opt_args[1].opt = config_ARG;
+commands[84].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[84].optional_opt_args[2].opt = debug_ARG;
+commands[84].optional_opt_args[3].opt = driverloaded_ARG;
+commands[84].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[84].optional_opt_args[4].opt = help_ARG;
+commands[84].optional_opt_args[5].opt = profile_ARG;
+commands[84].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[84].optional_opt_args[6].opt = quiet_ARG;
+commands[84].optional_opt_args[7].opt = verbose_ARG;
+commands[84].optional_opt_args[8].opt = version_ARG;
+commands[84].optional_opt_args[9].opt = yes_ARG;
+commands[84].optional_opt_args[10].opt = autobackup_ARG;
+commands[84].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[84].optional_opt_args[11].opt = force_ARG;
+commands[84].optional_opt_args[12].opt = nohistory_ARG;
+commands[84].optional_opt_args[13].opt = noudevsync_ARG;
+commands[84].optional_opt_args[14].opt = reportformat_ARG;
+commands[84].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[84].optional_opt_args[15].opt = select_ARG;
+commands[84].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[84].optional_opt_args[16].opt = test_ARG;
+
+commands[85].name = "lvrename";
+commands[85].fn = lvrename;
+commands[85].ro_count = 0;
+commands[85].rp_count = 3;
+commands[85].oo_count = 14;
+commands[85].op_count = 0;
+commands[85].desc = "";
+commands[85].usage = "lvrename VG LV LV_new"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --noudevsync, --reportformat String, --test ]";
+commands[85].required_pos_args[0].pos = 1;
+commands[85].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[85].required_pos_args[1].pos = 2;
+commands[85].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[85].required_pos_args[2].pos = 3;
+commands[85].required_pos_args[2].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[85].required_pos_args[2].def.flags = ARG_DEF_FLAG_NEW;
+commands[85].optional_opt_args[0].opt = commandprofile_ARG;
+commands[85].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[85].optional_opt_args[1].opt = config_ARG;
+commands[85].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[85].optional_opt_args[2].opt = debug_ARG;
+commands[85].optional_opt_args[3].opt = driverloaded_ARG;
+commands[85].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[85].optional_opt_args[4].opt = help_ARG;
+commands[85].optional_opt_args[5].opt = profile_ARG;
+commands[85].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[85].optional_opt_args[6].opt = quiet_ARG;
+commands[85].optional_opt_args[7].opt = verbose_ARG;
+commands[85].optional_opt_args[8].opt = version_ARG;
+commands[85].optional_opt_args[9].opt = yes_ARG;
+commands[85].optional_opt_args[10].opt = autobackup_ARG;
+commands[85].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[85].optional_opt_args[11].opt = noudevsync_ARG;
+commands[85].optional_opt_args[12].opt = reportformat_ARG;
+commands[85].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[85].optional_opt_args[13].opt = test_ARG;
+
+commands[86].name = "lvrename";
+commands[86].fn = lvrename;
+commands[86].ro_count = 0;
+commands[86].rp_count = 2;
+commands[86].oo_count = 14;
+commands[86].op_count = 0;
+commands[86].desc = "";
+commands[86].usage = "lvrename LV LV_new"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --noudevsync, --reportformat String, --test ]";
+commands[86].required_pos_args[0].pos = 1;
+commands[86].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[86].required_pos_args[1].pos = 2;
+commands[86].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[86].required_pos_args[1].def.flags = ARG_DEF_FLAG_NEW;
+commands[86].optional_opt_args[0].opt = commandprofile_ARG;
+commands[86].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[86].optional_opt_args[1].opt = config_ARG;
+commands[86].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[86].optional_opt_args[2].opt = debug_ARG;
+commands[86].optional_opt_args[3].opt = driverloaded_ARG;
+commands[86].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[86].optional_opt_args[4].opt = help_ARG;
+commands[86].optional_opt_args[5].opt = profile_ARG;
+commands[86].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[86].optional_opt_args[6].opt = quiet_ARG;
+commands[86].optional_opt_args[7].opt = verbose_ARG;
+commands[86].optional_opt_args[8].opt = version_ARG;
+commands[86].optional_opt_args[9].opt = yes_ARG;
+commands[86].optional_opt_args[10].opt = autobackup_ARG;
+commands[86].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[86].optional_opt_args[11].opt = noudevsync_ARG;
+commands[86].optional_opt_args[12].opt = reportformat_ARG;
+commands[86].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[86].optional_opt_args[13].opt = test_ARG;
+
+commands[87].name = "lvresize";
+commands[87].fn = lvresize;
+commands[87].ro_count = 1;
+commands[87].rp_count = 1;
+commands[87].oo_count = 22;
+commands[87].op_count = 1;
+commands[87].desc = "";
+commands[87].usage = "lvresize --size Number LV"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --autobackup Bool, --force, --nofsck, --nosync, --noudevsync, --reportformat String, --resizefs, --stripes Number, --stripesize Number, --test, --poolmetadatasize Number ]"
+" [ PV ... ]";
+commands[87].required_opt_args[0].opt = size_ARG;
+commands[87].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[87].required_pos_args[0].pos = 1;
+commands[87].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[87].optional_opt_args[0].opt = commandprofile_ARG;
+commands[87].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[87].optional_opt_args[1].opt = config_ARG;
+commands[87].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[87].optional_opt_args[2].opt = debug_ARG;
+commands[87].optional_opt_args[3].opt = driverloaded_ARG;
+commands[87].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[87].optional_opt_args[4].opt = help_ARG;
+commands[87].optional_opt_args[5].opt = profile_ARG;
+commands[87].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[87].optional_opt_args[6].opt = quiet_ARG;
+commands[87].optional_opt_args[7].opt = verbose_ARG;
+commands[87].optional_opt_args[8].opt = version_ARG;
+commands[87].optional_opt_args[9].opt = yes_ARG;
+commands[87].optional_opt_args[10].opt = alloc_ARG;
+commands[87].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[87].optional_opt_args[11].opt = autobackup_ARG;
+commands[87].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[87].optional_opt_args[12].opt = force_ARG;
+commands[87].optional_opt_args[13].opt = nofsck_ARG;
+commands[87].optional_opt_args[14].opt = nosync_ARG;
+commands[87].optional_opt_args[15].opt = noudevsync_ARG;
+commands[87].optional_opt_args[16].opt = reportformat_ARG;
+commands[87].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[87].optional_opt_args[17].opt = resizefs_ARG;
+commands[87].optional_opt_args[18].opt = stripes_ARG;
+commands[87].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[87].optional_opt_args[19].opt = stripesize_ARG;
+commands[87].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[87].optional_opt_args[20].opt = test_ARG;
+commands[87].optional_opt_args[21].opt = poolmetadatasize_ARG;
+commands[87].optional_opt_args[21].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[87].optional_pos_args[0].pos = 2;
+commands[87].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[87].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[88].name = "lvresize";
+commands[88].fn = lvresize;
+commands[88].ro_count = 0;
+commands[88].rp_count = 2;
+commands[88].oo_count = 21;
+commands[88].op_count = 0;
+commands[88].desc = "";
+commands[88].usage = "lvresize LV PV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --autobackup Bool, --force, --nofsck, --nosync, --noudevsync, --reportformat String, --resizefs, --stripes Number, --stripesize Number, --test ]";
+commands[88].required_pos_args[0].pos = 1;
+commands[88].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[88].required_pos_args[1].pos = 2;
+commands[88].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[88].required_pos_args[1].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[88].optional_opt_args[0].opt = commandprofile_ARG;
+commands[88].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[88].optional_opt_args[1].opt = config_ARG;
+commands[88].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[88].optional_opt_args[2].opt = debug_ARG;
+commands[88].optional_opt_args[3].opt = driverloaded_ARG;
+commands[88].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[88].optional_opt_args[4].opt = help_ARG;
+commands[88].optional_opt_args[5].opt = profile_ARG;
+commands[88].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[88].optional_opt_args[6].opt = quiet_ARG;
+commands[88].optional_opt_args[7].opt = verbose_ARG;
+commands[88].optional_opt_args[8].opt = version_ARG;
+commands[88].optional_opt_args[9].opt = yes_ARG;
+commands[88].optional_opt_args[10].opt = alloc_ARG;
+commands[88].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[88].optional_opt_args[11].opt = autobackup_ARG;
+commands[88].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[88].optional_opt_args[12].opt = force_ARG;
+commands[88].optional_opt_args[13].opt = nofsck_ARG;
+commands[88].optional_opt_args[14].opt = nosync_ARG;
+commands[88].optional_opt_args[15].opt = noudevsync_ARG;
+commands[88].optional_opt_args[16].opt = reportformat_ARG;
+commands[88].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[88].optional_opt_args[17].opt = resizefs_ARG;
+commands[88].optional_opt_args[18].opt = stripes_ARG;
+commands[88].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[88].optional_opt_args[19].opt = stripesize_ARG;
+commands[88].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[88].optional_opt_args[20].opt = test_ARG;
+
+commands[89].name = "lvresize";
+commands[89].fn = lvresize;
+commands[89].ro_count = 1;
+commands[89].rp_count = 1;
+commands[89].oo_count = 20;
+commands[89].op_count = 1;
+commands[89].desc = "";
+commands[89].usage = "lvresize --poolmetadatasize Number LV_thinpool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --alloc String, --autobackup Bool, --force, --nofsck, --nosync, --noudevsync, --reportformat String, --stripes Number, --stripesize Number, --test ]"
+" [ PV ... ]";
+commands[89].required_opt_args[0].opt = poolmetadatasize_ARG;
+commands[89].required_opt_args[0].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[89].required_pos_args[0].pos = 1;
+commands[89].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[89].required_pos_args[0].def.lv_types = ARG_DEF_LV_THINPOOL;
+commands[89].optional_opt_args[0].opt = commandprofile_ARG;
+commands[89].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[89].optional_opt_args[1].opt = config_ARG;
+commands[89].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[89].optional_opt_args[2].opt = debug_ARG;
+commands[89].optional_opt_args[3].opt = driverloaded_ARG;
+commands[89].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[89].optional_opt_args[4].opt = help_ARG;
+commands[89].optional_opt_args[5].opt = profile_ARG;
+commands[89].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[89].optional_opt_args[6].opt = quiet_ARG;
+commands[89].optional_opt_args[7].opt = verbose_ARG;
+commands[89].optional_opt_args[8].opt = version_ARG;
+commands[89].optional_opt_args[9].opt = yes_ARG;
+commands[89].optional_opt_args[10].opt = alloc_ARG;
+commands[89].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[89].optional_opt_args[11].opt = autobackup_ARG;
+commands[89].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[89].optional_opt_args[12].opt = force_ARG;
+commands[89].optional_opt_args[13].opt = nofsck_ARG;
+commands[89].optional_opt_args[14].opt = nosync_ARG;
+commands[89].optional_opt_args[15].opt = noudevsync_ARG;
+commands[89].optional_opt_args[16].opt = reportformat_ARG;
+commands[89].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[89].optional_opt_args[17].opt = stripes_ARG;
+commands[89].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[89].optional_opt_args[18].opt = stripesize_ARG;
+commands[89].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[89].optional_opt_args[19].opt = test_ARG;
+commands[89].optional_pos_args[0].pos = 2;
+commands[89].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[89].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[90].name = "lvs";
+commands[90].fn = lvs;
+commands[90].ro_count = 0;
+commands[90].rp_count = 0;
+commands[90].oo_count = 37;
+commands[90].op_count = 1;
+commands[90].desc = "";
+commands[90].usage = "lvs"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --history, --segments, --aligned, --all, --binary, --configreport String, --foreign, --ignorelockingfailure, --ignoreskippedcluster, --logonly, --nameprefixes, --noheadings, --nolocking, --nosuffix, --options String, --partial, --readonly, --reportformat String, --rows, --select String, --separator String, --shared, --sort String, --trustcache, --unbuffered, --units String, --unquoted ]"
+" [ VG|LV|Tag ... ]";
+commands[90].optional_opt_args[0].opt = commandprofile_ARG;
+commands[90].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[90].optional_opt_args[1].opt = config_ARG;
+commands[90].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[90].optional_opt_args[2].opt = debug_ARG;
+commands[90].optional_opt_args[3].opt = driverloaded_ARG;
+commands[90].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[90].optional_opt_args[4].opt = help_ARG;
+commands[90].optional_opt_args[5].opt = profile_ARG;
+commands[90].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[90].optional_opt_args[6].opt = quiet_ARG;
+commands[90].optional_opt_args[7].opt = verbose_ARG;
+commands[90].optional_opt_args[8].opt = version_ARG;
+commands[90].optional_opt_args[9].opt = yes_ARG;
+commands[90].optional_opt_args[10].opt = history_ARG;
+commands[90].optional_opt_args[11].opt = segments_ARG;
+commands[90].optional_opt_args[12].opt = aligned_ARG;
+commands[90].optional_opt_args[13].opt = all_ARG;
+commands[90].optional_opt_args[14].opt = binary_ARG;
+commands[90].optional_opt_args[15].opt = configreport_ARG;
+commands[90].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[90].optional_opt_args[16].opt = foreign_ARG;
+commands[90].optional_opt_args[17].opt = ignorelockingfailure_ARG;
+commands[90].optional_opt_args[18].opt = ignoreskippedcluster_ARG;
+commands[90].optional_opt_args[19].opt = logonly_ARG;
+commands[90].optional_opt_args[20].opt = nameprefixes_ARG;
+commands[90].optional_opt_args[21].opt = noheadings_ARG;
+commands[90].optional_opt_args[22].opt = nolocking_ARG;
+commands[90].optional_opt_args[23].opt = nosuffix_ARG;
+commands[90].optional_opt_args[24].opt = options_ARG;
+commands[90].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[90].optional_opt_args[25].opt = partial_ARG;
+commands[90].optional_opt_args[26].opt = readonly_ARG;
+commands[90].optional_opt_args[27].opt = reportformat_ARG;
+commands[90].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[90].optional_opt_args[28].opt = rows_ARG;
+commands[90].optional_opt_args[29].opt = select_ARG;
+commands[90].optional_opt_args[29].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[90].optional_opt_args[30].opt = separator_ARG;
+commands[90].optional_opt_args[30].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[90].optional_opt_args[31].opt = shared_ARG;
+commands[90].optional_opt_args[32].opt = sort_ARG;
+commands[90].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[90].optional_opt_args[33].opt = trustcache_ARG;
+commands[90].optional_opt_args[34].opt = unbuffered_ARG;
+commands[90].optional_opt_args[35].opt = units_ARG;
+commands[90].optional_opt_args[35].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[90].optional_opt_args[36].opt = unquoted_ARG;
+commands[90].optional_pos_args[0].pos = 1;
+commands[90].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG;
+commands[90].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[91].name = "lvscan";
+commands[91].fn = lvscan;
+commands[91].ro_count = 0;
+commands[91].rp_count = 0;
+commands[91].oo_count = 17;
+commands[91].op_count = 0;
+commands[91].desc = "";
+commands[91].usage = "lvscan"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --all, --blockdevice, --ignorelockingfailure, --partial, --readonly, --reportformat String, --cache ]";
+commands[91].optional_opt_args[0].opt = commandprofile_ARG;
+commands[91].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[91].optional_opt_args[1].opt = config_ARG;
+commands[91].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[91].optional_opt_args[2].opt = debug_ARG;
+commands[91].optional_opt_args[3].opt = driverloaded_ARG;
+commands[91].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[91].optional_opt_args[4].opt = help_ARG;
+commands[91].optional_opt_args[5].opt = profile_ARG;
+commands[91].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[91].optional_opt_args[6].opt = quiet_ARG;
+commands[91].optional_opt_args[7].opt = verbose_ARG;
+commands[91].optional_opt_args[8].opt = version_ARG;
+commands[91].optional_opt_args[9].opt = yes_ARG;
+commands[91].optional_opt_args[10].opt = all_ARG;
+commands[91].optional_opt_args[11].opt = blockdevice_ARG;
+commands[91].optional_opt_args[12].opt = ignorelockingfailure_ARG;
+commands[91].optional_opt_args[13].opt = partial_ARG;
+commands[91].optional_opt_args[14].opt = readonly_ARG;
+commands[91].optional_opt_args[15].opt = reportformat_ARG;
+commands[91].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[91].optional_opt_args[16].opt = cache_long_ARG;
+
+commands[92].name = "pvchange";
+commands[92].fn = pvchange;
+commands[92].ro_count = 6;
+commands[92].rp_count = 0;
+commands[92].oo_count = 16;
+commands[92].op_count = 0;
+commands[92].cmd_flags = CMD_FLAG_ONE_REQUIRED_OPT;
+commands[92].desc = "";
+commands[92].usage = "pvchange ( --allocatable Bool, --addtag Tag, --deltag Tag, --uuid, --metadataignore Bool, --all )"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --force, --ignoreskippedcluster, --reportformat String, --test, --uuid ]";
+commands[92].required_opt_args[0].opt = allocatable_ARG;
+commands[92].required_opt_args[0].def.types = ARG_DEF_TYPE_BOOL;
+commands[92].required_opt_args[1].opt = addtag_ARG;
+commands[92].required_opt_args[1].def.types = ARG_DEF_TYPE_TAG;
+commands[92].required_opt_args[2].opt = deltag_ARG;
+commands[92].required_opt_args[2].def.types = ARG_DEF_TYPE_TAG;
+commands[92].required_opt_args[3].opt = uuid_ARG;
+commands[92].required_opt_args[4].opt = metadataignore_ARG;
+commands[92].required_opt_args[4].def.types = ARG_DEF_TYPE_BOOL;
+commands[92].required_opt_args[5].opt = all_ARG;
+commands[92].optional_opt_args[0].opt = commandprofile_ARG;
+commands[92].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[92].optional_opt_args[1].opt = config_ARG;
+commands[92].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[92].optional_opt_args[2].opt = debug_ARG;
+commands[92].optional_opt_args[3].opt = driverloaded_ARG;
+commands[92].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[92].optional_opt_args[4].opt = help_ARG;
+commands[92].optional_opt_args[5].opt = profile_ARG;
+commands[92].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[92].optional_opt_args[6].opt = quiet_ARG;
+commands[92].optional_opt_args[7].opt = verbose_ARG;
+commands[92].optional_opt_args[8].opt = version_ARG;
+commands[92].optional_opt_args[9].opt = yes_ARG;
+commands[92].optional_opt_args[10].opt = autobackup_ARG;
+commands[92].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[92].optional_opt_args[11].opt = force_ARG;
+commands[92].optional_opt_args[12].opt = ignoreskippedcluster_ARG;
+commands[92].optional_opt_args[13].opt = reportformat_ARG;
+commands[92].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[92].optional_opt_args[14].opt = test_ARG;
+commands[92].optional_opt_args[15].opt = uuid_ARG;
+
+commands[93].name = "pvchange";
+commands[93].fn = pvchange;
+commands[93].ro_count = 5;
+commands[93].rp_count = 1;
+commands[93].oo_count = 17;
+commands[93].op_count = 0;
+commands[93].cmd_flags = CMD_FLAG_ONE_REQUIRED_OPT;
+commands[93].desc = "";
+commands[93].usage = "pvchange ( --allocatable Bool, --addtag Tag, --deltag Tag, --uuid, --metadataignore Bool ) PV|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --select String, --autobackup Bool, --force, --ignoreskippedcluster, --reportformat String, --test, --uuid ]";
+commands[93].required_opt_args[0].opt = allocatable_ARG;
+commands[93].required_opt_args[0].def.types = ARG_DEF_TYPE_BOOL;
+commands[93].required_opt_args[1].opt = addtag_ARG;
+commands[93].required_opt_args[1].def.types = ARG_DEF_TYPE_TAG;
+commands[93].required_opt_args[2].opt = deltag_ARG;
+commands[93].required_opt_args[2].def.types = ARG_DEF_TYPE_TAG;
+commands[93].required_opt_args[3].opt = uuid_ARG;
+commands[93].required_opt_args[4].opt = metadataignore_ARG;
+commands[93].required_opt_args[4].def.types = ARG_DEF_TYPE_BOOL;
+commands[93].required_pos_args[0].pos = 1;
+commands[93].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV|ARG_DEF_TYPE_SELECT;
+commands[93].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[93].optional_opt_args[0].opt = commandprofile_ARG;
+commands[93].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[93].optional_opt_args[1].opt = config_ARG;
+commands[93].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[93].optional_opt_args[2].opt = debug_ARG;
+commands[93].optional_opt_args[3].opt = driverloaded_ARG;
+commands[93].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[93].optional_opt_args[4].opt = help_ARG;
+commands[93].optional_opt_args[5].opt = profile_ARG;
+commands[93].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[93].optional_opt_args[6].opt = quiet_ARG;
+commands[93].optional_opt_args[7].opt = verbose_ARG;
+commands[93].optional_opt_args[8].opt = version_ARG;
+commands[93].optional_opt_args[9].opt = yes_ARG;
+commands[93].optional_opt_args[10].opt = select_ARG;
+commands[93].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[93].optional_opt_args[11].opt = autobackup_ARG;
+commands[93].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[93].optional_opt_args[12].opt = force_ARG;
+commands[93].optional_opt_args[13].opt = ignoreskippedcluster_ARG;
+commands[93].optional_opt_args[14].opt = reportformat_ARG;
+commands[93].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[93].optional_opt_args[15].opt = test_ARG;
+commands[93].optional_opt_args[16].opt = uuid_ARG;
+
+commands[94].name = "pvresize";
+commands[94].fn = pvresize;
+commands[94].ro_count = 0;
+commands[94].rp_count = 1;
+commands[94].oo_count = 13;
+commands[94].op_count = 0;
+commands[94].desc = "";
+commands[94].usage = "pvresize PV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --setphysicalvolumesize Number, --reportformat String, --test ]";
+commands[94].required_pos_args[0].pos = 1;
+commands[94].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[94].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[94].optional_opt_args[0].opt = commandprofile_ARG;
+commands[94].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[94].optional_opt_args[1].opt = config_ARG;
+commands[94].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[94].optional_opt_args[2].opt = debug_ARG;
+commands[94].optional_opt_args[3].opt = driverloaded_ARG;
+commands[94].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[94].optional_opt_args[4].opt = help_ARG;
+commands[94].optional_opt_args[5].opt = profile_ARG;
+commands[94].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[94].optional_opt_args[6].opt = quiet_ARG;
+commands[94].optional_opt_args[7].opt = verbose_ARG;
+commands[94].optional_opt_args[8].opt = version_ARG;
+commands[94].optional_opt_args[9].opt = yes_ARG;
+commands[94].optional_opt_args[10].opt = physicalvolumesize_ARG;
+commands[94].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[94].optional_opt_args[11].opt = reportformat_ARG;
+commands[94].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[94].optional_opt_args[12].opt = test_ARG;
+
+commands[95].name = "pvck";
+commands[95].fn = pvck;
+commands[95].ro_count = 0;
+commands[95].rp_count = 1;
+commands[95].oo_count = 11;
+commands[95].op_count = 0;
+commands[95].desc = "";
+commands[95].usage = "pvck PV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --labelsector Number ]";
+commands[95].required_pos_args[0].pos = 1;
+commands[95].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[95].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[95].optional_opt_args[0].opt = commandprofile_ARG;
+commands[95].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[95].optional_opt_args[1].opt = config_ARG;
+commands[95].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[95].optional_opt_args[2].opt = debug_ARG;
+commands[95].optional_opt_args[3].opt = driverloaded_ARG;
+commands[95].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[95].optional_opt_args[4].opt = help_ARG;
+commands[95].optional_opt_args[5].opt = profile_ARG;
+commands[95].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[95].optional_opt_args[6].opt = quiet_ARG;
+commands[95].optional_opt_args[7].opt = verbose_ARG;
+commands[95].optional_opt_args[8].opt = version_ARG;
+commands[95].optional_opt_args[9].opt = yes_ARG;
+commands[95].optional_opt_args[10].opt = labelsector_ARG;
+commands[95].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+
+commands[96].name = "pvcreate";
+commands[96].fn = pvcreate;
+commands[96].ro_count = 0;
+commands[96].rp_count = 1;
+commands[96].oo_count = 26;
+commands[96].op_count = 0;
+commands[96].desc = "";
+commands[96].usage = "pvcreate PV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --dataalignment Number, --dataalignmentoffset Number, --bootloaderareasize Number, --force, --test, --labelsector Number, --metadatatype String, --pvmetadatacopies Number, --metadatasize Number, --metadataignore Bool, --norestorefile, --setphysicalvolumesize Number, --reportformat String, --restorefile String, --uuid String, --zero Bool ]";
+commands[96].required_pos_args[0].pos = 1;
+commands[96].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[96].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[96].optional_opt_args[0].opt = commandprofile_ARG;
+commands[96].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[96].optional_opt_args[1].opt = config_ARG;
+commands[96].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[96].optional_opt_args[2].opt = debug_ARG;
+commands[96].optional_opt_args[3].opt = driverloaded_ARG;
+commands[96].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[96].optional_opt_args[4].opt = help_ARG;
+commands[96].optional_opt_args[5].opt = profile_ARG;
+commands[96].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[96].optional_opt_args[6].opt = quiet_ARG;
+commands[96].optional_opt_args[7].opt = verbose_ARG;
+commands[96].optional_opt_args[8].opt = version_ARG;
+commands[96].optional_opt_args[9].opt = yes_ARG;
+commands[96].optional_opt_args[10].opt = dataalignment_ARG;
+commands[96].optional_opt_args[10].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[96].optional_opt_args[11].opt = dataalignmentoffset_ARG;
+commands[96].optional_opt_args[11].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[96].optional_opt_args[12].opt = bootloaderareasize_ARG;
+commands[96].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[96].optional_opt_args[13].opt = force_ARG;
+commands[96].optional_opt_args[14].opt = test_ARG;
+commands[96].optional_opt_args[15].opt = labelsector_ARG;
+commands[96].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[96].optional_opt_args[16].opt = metadatatype_ARG;
+commands[96].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[96].optional_opt_args[17].opt = pvmetadatacopies_ARG;
+commands[96].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[96].optional_opt_args[18].opt = metadatasize_ARG;
+commands[96].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[96].optional_opt_args[19].opt = metadataignore_ARG;
+commands[96].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[96].optional_opt_args[20].opt = norestorefile_ARG;
+commands[96].optional_opt_args[21].opt = physicalvolumesize_ARG;
+commands[96].optional_opt_args[21].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[96].optional_opt_args[22].opt = reportformat_ARG;
+commands[96].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[96].optional_opt_args[23].opt = restorefile_ARG;
+commands[96].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[96].optional_opt_args[24].opt = uuidstr_ARG;
+commands[96].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[96].optional_opt_args[25].opt = zero_ARG;
+commands[96].optional_opt_args[25].def.types = ARG_DEF_TYPE_BOOL;
+
+commands[97].name = "pvdata";
+commands[97].fn = pvdata;
+commands[97].ro_count = 0;
+commands[97].rp_count = 0;
+commands[97].oo_count = 10;
+commands[97].op_count = 0;
+commands[97].desc = "";
+commands[97].usage = "pvdata"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes ]";
+commands[97].optional_opt_args[0].opt = commandprofile_ARG;
+commands[97].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[97].optional_opt_args[1].opt = config_ARG;
+commands[97].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[97].optional_opt_args[2].opt = debug_ARG;
+commands[97].optional_opt_args[3].opt = driverloaded_ARG;
+commands[97].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[97].optional_opt_args[4].opt = help_ARG;
+commands[97].optional_opt_args[5].opt = profile_ARG;
+commands[97].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[97].optional_opt_args[6].opt = quiet_ARG;
+commands[97].optional_opt_args[7].opt = verbose_ARG;
+commands[97].optional_opt_args[8].opt = version_ARG;
+commands[97].optional_opt_args[9].opt = yes_ARG;
+
+commands[98].name = "pvdisplay";
+commands[98].fn = pvdisplay;
+commands[98].ro_count = 0;
+commands[98].rp_count = 0;
+commands[98].oo_count = 33;
+commands[98].op_count = 1;
+commands[98].desc = "";
+commands[98].usage = "pvdisplay"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --aligned, --all, --binary, --colon, --columns, --configreport String, --foreign, --ignorelockingfailure, --ignoreskippedcluster, --logonly, --maps, --noheadings, --nosuffix, --options String, --readonly, --reportformat String, --select String, --separator String, --shared, --short, --sort String, --unbuffered, --units String ]"
+" [ PV|Tag ... ]";
+commands[98].optional_opt_args[0].opt = commandprofile_ARG;
+commands[98].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[98].optional_opt_args[1].opt = config_ARG;
+commands[98].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[98].optional_opt_args[2].opt = debug_ARG;
+commands[98].optional_opt_args[3].opt = driverloaded_ARG;
+commands[98].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[98].optional_opt_args[4].opt = help_ARG;
+commands[98].optional_opt_args[5].opt = profile_ARG;
+commands[98].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[98].optional_opt_args[6].opt = quiet_ARG;
+commands[98].optional_opt_args[7].opt = verbose_ARG;
+commands[98].optional_opt_args[8].opt = version_ARG;
+commands[98].optional_opt_args[9].opt = yes_ARG;
+commands[98].optional_opt_args[10].opt = aligned_ARG;
+commands[98].optional_opt_args[11].opt = all_ARG;
+commands[98].optional_opt_args[12].opt = binary_ARG;
+commands[98].optional_opt_args[13].opt = colon_ARG;
+commands[98].optional_opt_args[14].opt = columns_ARG;
+commands[98].optional_opt_args[15].opt = configreport_ARG;
+commands[98].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[98].optional_opt_args[16].opt = foreign_ARG;
+commands[98].optional_opt_args[17].opt = ignorelockingfailure_ARG;
+commands[98].optional_opt_args[18].opt = ignoreskippedcluster_ARG;
+commands[98].optional_opt_args[19].opt = logonly_ARG;
+commands[98].optional_opt_args[20].opt = maps_ARG;
+commands[98].optional_opt_args[21].opt = noheadings_ARG;
+commands[98].optional_opt_args[22].opt = nosuffix_ARG;
+commands[98].optional_opt_args[23].opt = options_ARG;
+commands[98].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[98].optional_opt_args[24].opt = readonly_ARG;
+commands[98].optional_opt_args[25].opt = reportformat_ARG;
+commands[98].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[98].optional_opt_args[26].opt = select_ARG;
+commands[98].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[98].optional_opt_args[27].opt = separator_ARG;
+commands[98].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[98].optional_opt_args[28].opt = shared_ARG;
+commands[98].optional_opt_args[29].opt = short_ARG;
+commands[98].optional_opt_args[30].opt = sort_ARG;
+commands[98].optional_opt_args[30].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[98].optional_opt_args[31].opt = unbuffered_ARG;
+commands[98].optional_opt_args[32].opt = units_ARG;
+commands[98].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[98].optional_pos_args[0].pos = 1;
+commands[98].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV|ARG_DEF_TYPE_TAG;
+commands[98].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[99].name = "pvmove";
+commands[99].fn = pvmove;
+commands[99].ro_count = 0;
+commands[99].rp_count = 1;
+commands[99].oo_count = 20;
+commands[99].op_count = 1;
+commands[99].desc = "";
+commands[99].usage = "pvmove PV"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --abort, --alloc String, --atomic, --autobackup Bool, --background, --interval Number, --name LV, --noudevsync, --reportformat String, --test ]"
+" [ PV ... ]";
+commands[99].required_pos_args[0].pos = 1;
+commands[99].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[99].optional_opt_args[0].opt = commandprofile_ARG;
+commands[99].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[99].optional_opt_args[1].opt = config_ARG;
+commands[99].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[99].optional_opt_args[2].opt = debug_ARG;
+commands[99].optional_opt_args[3].opt = driverloaded_ARG;
+commands[99].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[99].optional_opt_args[4].opt = help_ARG;
+commands[99].optional_opt_args[5].opt = profile_ARG;
+commands[99].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[99].optional_opt_args[6].opt = quiet_ARG;
+commands[99].optional_opt_args[7].opt = verbose_ARG;
+commands[99].optional_opt_args[8].opt = version_ARG;
+commands[99].optional_opt_args[9].opt = yes_ARG;
+commands[99].optional_opt_args[10].opt = abort_ARG;
+commands[99].optional_opt_args[11].opt = alloc_ARG;
+commands[99].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[99].optional_opt_args[12].opt = atomic_ARG;
+commands[99].optional_opt_args[13].opt = autobackup_ARG;
+commands[99].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[99].optional_opt_args[14].opt = background_ARG;
+commands[99].optional_opt_args[15].opt = interval_ARG;
+commands[99].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[99].optional_opt_args[16].opt = name_ARG;
+commands[99].optional_opt_args[16].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[99].optional_opt_args[17].opt = noudevsync_ARG;
+commands[99].optional_opt_args[18].opt = reportformat_ARG;
+commands[99].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[99].optional_opt_args[19].opt = test_ARG;
+commands[99].optional_pos_args[0].pos = 2;
+commands[99].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[99].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[100].name = "pvmove";
+commands[100].fn = pvmove;
+commands[100].ro_count = 0;
+commands[100].rp_count = 0;
+commands[100].oo_count = 13;
+commands[100].op_count = 0;
+commands[100].desc = "";
+commands[100].usage = "pvmove"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --abort, --background, --test ]";
+commands[100].optional_opt_args[0].opt = commandprofile_ARG;
+commands[100].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[100].optional_opt_args[1].opt = config_ARG;
+commands[100].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[100].optional_opt_args[2].opt = debug_ARG;
+commands[100].optional_opt_args[3].opt = driverloaded_ARG;
+commands[100].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[100].optional_opt_args[4].opt = help_ARG;
+commands[100].optional_opt_args[5].opt = profile_ARG;
+commands[100].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[100].optional_opt_args[6].opt = quiet_ARG;
+commands[100].optional_opt_args[7].opt = verbose_ARG;
+commands[100].optional_opt_args[8].opt = version_ARG;
+commands[100].optional_opt_args[9].opt = yes_ARG;
+commands[100].optional_opt_args[10].opt = abort_ARG;
+commands[100].optional_opt_args[11].opt = background_ARG;
+commands[100].optional_opt_args[12].opt = test_ARG;
+
+commands[101].name = "lvpoll";
+commands[101].fn = lvpoll;
+commands[101].ro_count = 1;
+commands[101].rp_count = 1;
+commands[101].oo_count = 15;
+commands[101].op_count = 0;
+commands[101].desc = "";
+commands[101].usage = "lvpoll --polloperation String LV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --abort, --autobackup Bool, --handlemissingpvs, --interval Number, --test ]";
+commands[101].required_opt_args[0].opt = polloperation_ARG;
+commands[101].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[101].required_pos_args[0].pos = 1;
+commands[101].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[101].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[101].optional_opt_args[0].opt = commandprofile_ARG;
+commands[101].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[101].optional_opt_args[1].opt = config_ARG;
+commands[101].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[101].optional_opt_args[2].opt = debug_ARG;
+commands[101].optional_opt_args[3].opt = driverloaded_ARG;
+commands[101].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[101].optional_opt_args[4].opt = help_ARG;
+commands[101].optional_opt_args[5].opt = profile_ARG;
+commands[101].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[101].optional_opt_args[6].opt = quiet_ARG;
+commands[101].optional_opt_args[7].opt = verbose_ARG;
+commands[101].optional_opt_args[8].opt = version_ARG;
+commands[101].optional_opt_args[9].opt = yes_ARG;
+commands[101].optional_opt_args[10].opt = abort_ARG;
+commands[101].optional_opt_args[11].opt = autobackup_ARG;
+commands[101].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[101].optional_opt_args[12].opt = handlemissingpvs_ARG;
+commands[101].optional_opt_args[13].opt = interval_ARG;
+commands[101].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[101].optional_opt_args[14].opt = test_ARG;
+
+commands[102].name = "pvremove";
+commands[102].fn = pvremove;
+commands[102].ro_count = 0;
+commands[102].rp_count = 1;
+commands[102].oo_count = 13;
+commands[102].op_count = 0;
+commands[102].desc = "";
+commands[102].usage = "pvremove PV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --force, --reportformat String, --test ]";
+commands[102].required_pos_args[0].pos = 1;
+commands[102].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[102].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[102].optional_opt_args[0].opt = commandprofile_ARG;
+commands[102].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[102].optional_opt_args[1].opt = config_ARG;
+commands[102].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[102].optional_opt_args[2].opt = debug_ARG;
+commands[102].optional_opt_args[3].opt = driverloaded_ARG;
+commands[102].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[102].optional_opt_args[4].opt = help_ARG;
+commands[102].optional_opt_args[5].opt = profile_ARG;
+commands[102].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[102].optional_opt_args[6].opt = quiet_ARG;
+commands[102].optional_opt_args[7].opt = verbose_ARG;
+commands[102].optional_opt_args[8].opt = version_ARG;
+commands[102].optional_opt_args[9].opt = yes_ARG;
+commands[102].optional_opt_args[10].opt = force_ARG;
+commands[102].optional_opt_args[11].opt = reportformat_ARG;
+commands[102].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[102].optional_opt_args[12].opt = test_ARG;
+
+commands[103].name = "pvs";
+commands[103].fn = pvs;
+commands[103].ro_count = 0;
+commands[103].rp_count = 0;
+commands[103].oo_count = 36;
+commands[103].op_count = 1;
+commands[103].desc = "";
+commands[103].usage = "pvs"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --segments, --aligned, --all, --binary, --configreport String, --foreign, --ignorelockingfailure, --ignoreskippedcluster, --logonly, --nameprefixes, --noheadings, --nolocking, --nosuffix, --options String, --partial, --readonly, --reportformat String, --rows, --select String, --separator String, --shared, --sort String, --trustcache, --unbuffered, --units String, --unquoted ]"
+" [ PV|Tag ... ]";
+commands[103].optional_opt_args[0].opt = commandprofile_ARG;
+commands[103].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[103].optional_opt_args[1].opt = config_ARG;
+commands[103].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[103].optional_opt_args[2].opt = debug_ARG;
+commands[103].optional_opt_args[3].opt = driverloaded_ARG;
+commands[103].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[103].optional_opt_args[4].opt = help_ARG;
+commands[103].optional_opt_args[5].opt = profile_ARG;
+commands[103].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[103].optional_opt_args[6].opt = quiet_ARG;
+commands[103].optional_opt_args[7].opt = verbose_ARG;
+commands[103].optional_opt_args[8].opt = version_ARG;
+commands[103].optional_opt_args[9].opt = yes_ARG;
+commands[103].optional_opt_args[10].opt = segments_ARG;
+commands[103].optional_opt_args[11].opt = aligned_ARG;
+commands[103].optional_opt_args[12].opt = all_ARG;
+commands[103].optional_opt_args[13].opt = binary_ARG;
+commands[103].optional_opt_args[14].opt = configreport_ARG;
+commands[103].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[103].optional_opt_args[15].opt = foreign_ARG;
+commands[103].optional_opt_args[16].opt = ignorelockingfailure_ARG;
+commands[103].optional_opt_args[17].opt = ignoreskippedcluster_ARG;
+commands[103].optional_opt_args[18].opt = logonly_ARG;
+commands[103].optional_opt_args[19].opt = nameprefixes_ARG;
+commands[103].optional_opt_args[20].opt = noheadings_ARG;
+commands[103].optional_opt_args[21].opt = nolocking_ARG;
+commands[103].optional_opt_args[22].opt = nosuffix_ARG;
+commands[103].optional_opt_args[23].opt = options_ARG;
+commands[103].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[103].optional_opt_args[24].opt = partial_ARG;
+commands[103].optional_opt_args[25].opt = readonly_ARG;
+commands[103].optional_opt_args[26].opt = reportformat_ARG;
+commands[103].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[103].optional_opt_args[27].opt = rows_ARG;
+commands[103].optional_opt_args[28].opt = select_ARG;
+commands[103].optional_opt_args[28].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[103].optional_opt_args[29].opt = separator_ARG;
+commands[103].optional_opt_args[29].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[103].optional_opt_args[30].opt = shared_ARG;
+commands[103].optional_opt_args[31].opt = sort_ARG;
+commands[103].optional_opt_args[31].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[103].optional_opt_args[32].opt = trustcache_ARG;
+commands[103].optional_opt_args[33].opt = unbuffered_ARG;
+commands[103].optional_opt_args[34].opt = units_ARG;
+commands[103].optional_opt_args[34].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[103].optional_opt_args[35].opt = unquoted_ARG;
+commands[103].optional_pos_args[0].pos = 1;
+commands[103].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV|ARG_DEF_TYPE_TAG;
+commands[103].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[104].name = "pvscan";
+commands[104].fn = pvscan;
+commands[104].ro_count = 0;
+commands[104].rp_count = 0;
+commands[104].oo_count = 16;
+commands[104].op_count = 0;
+commands[104].desc = "";
+commands[104].usage = "pvscan"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --ignorelockingfailure, --reportformat String, --exported, --novolumegroup, --short, --uuid ]";
+commands[104].optional_opt_args[0].opt = commandprofile_ARG;
+commands[104].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[104].optional_opt_args[1].opt = config_ARG;
+commands[104].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[104].optional_opt_args[2].opt = debug_ARG;
+commands[104].optional_opt_args[3].opt = driverloaded_ARG;
+commands[104].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[104].optional_opt_args[4].opt = help_ARG;
+commands[104].optional_opt_args[5].opt = profile_ARG;
+commands[104].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[104].optional_opt_args[6].opt = quiet_ARG;
+commands[104].optional_opt_args[7].opt = verbose_ARG;
+commands[104].optional_opt_args[8].opt = version_ARG;
+commands[104].optional_opt_args[9].opt = yes_ARG;
+commands[104].optional_opt_args[10].opt = ignorelockingfailure_ARG;
+commands[104].optional_opt_args[11].opt = reportformat_ARG;
+commands[104].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[104].optional_opt_args[12].opt = exported_ARG;
+commands[104].optional_opt_args[13].opt = novolumegroup_ARG;
+commands[104].optional_opt_args[14].opt = short_ARG;
+commands[104].optional_opt_args[15].opt = uuid_ARG;
+
+commands[105].name = "pvscan";
+commands[105].fn = pvscan;
+commands[105].ro_count = 1;
+commands[105].rp_count = 0;
+commands[105].oo_count = 16;
+commands[105].op_count = 1;
+commands[105].desc = "";
+commands[105].usage = "pvscan --cache"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --ignorelockingfailure, --reportformat String, --background, --activate String, --major Number, --minor Number ]"
+" [ String|PV ... ]";
+commands[105].required_opt_args[0].opt = cache_ARG;
+commands[105].optional_opt_args[0].opt = commandprofile_ARG;
+commands[105].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[105].optional_opt_args[1].opt = config_ARG;
+commands[105].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[105].optional_opt_args[2].opt = debug_ARG;
+commands[105].optional_opt_args[3].opt = driverloaded_ARG;
+commands[105].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[105].optional_opt_args[4].opt = help_ARG;
+commands[105].optional_opt_args[5].opt = profile_ARG;
+commands[105].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[105].optional_opt_args[6].opt = quiet_ARG;
+commands[105].optional_opt_args[7].opt = verbose_ARG;
+commands[105].optional_opt_args[8].opt = version_ARG;
+commands[105].optional_opt_args[9].opt = yes_ARG;
+commands[105].optional_opt_args[10].opt = ignorelockingfailure_ARG;
+commands[105].optional_opt_args[11].opt = reportformat_ARG;
+commands[105].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[105].optional_opt_args[12].opt = background_ARG;
+commands[105].optional_opt_args[13].opt = activate_ARG;
+commands[105].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[105].optional_opt_args[14].opt = major_ARG;
+commands[105].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[105].optional_opt_args[15].opt = minor_ARG;
+commands[105].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[105].optional_pos_args[0].pos = 1;
+commands[105].optional_pos_args[0].def.types = ARG_DEF_TYPE_STR_ANY|ARG_DEF_TYPE_NAME_PV;
+commands[105].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[106].name = "segtypes";
+commands[106].fn = segtypes;
+commands[106].ro_count = 0;
+commands[106].rp_count = 0;
+commands[106].oo_count = 10;
+commands[106].op_count = 0;
+commands[106].desc = "";
+commands[106].usage = "segtypes"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes ]";
+commands[106].optional_opt_args[0].opt = commandprofile_ARG;
+commands[106].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[106].optional_opt_args[1].opt = config_ARG;
+commands[106].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[106].optional_opt_args[2].opt = debug_ARG;
+commands[106].optional_opt_args[3].opt = driverloaded_ARG;
+commands[106].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[106].optional_opt_args[4].opt = help_ARG;
+commands[106].optional_opt_args[5].opt = profile_ARG;
+commands[106].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[106].optional_opt_args[6].opt = quiet_ARG;
+commands[106].optional_opt_args[7].opt = verbose_ARG;
+commands[106].optional_opt_args[8].opt = version_ARG;
+commands[106].optional_opt_args[9].opt = yes_ARG;
+
+commands[107].name = "systemid";
+commands[107].fn = systemid;
+commands[107].ro_count = 0;
+commands[107].rp_count = 0;
+commands[107].oo_count = 10;
+commands[107].op_count = 0;
+commands[107].desc = "";
+commands[107].usage = "systemid"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes ]";
+commands[107].optional_opt_args[0].opt = commandprofile_ARG;
+commands[107].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[107].optional_opt_args[1].opt = config_ARG;
+commands[107].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[107].optional_opt_args[2].opt = debug_ARG;
+commands[107].optional_opt_args[3].opt = driverloaded_ARG;
+commands[107].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[107].optional_opt_args[4].opt = help_ARG;
+commands[107].optional_opt_args[5].opt = profile_ARG;
+commands[107].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[107].optional_opt_args[6].opt = quiet_ARG;
+commands[107].optional_opt_args[7].opt = verbose_ARG;
+commands[107].optional_opt_args[8].opt = version_ARG;
+commands[107].optional_opt_args[9].opt = yes_ARG;
+
+commands[108].name = "tags";
+commands[108].fn = tags;
+commands[108].ro_count = 0;
+commands[108].rp_count = 0;
+commands[108].oo_count = 10;
+commands[108].op_count = 0;
+commands[108].desc = "";
+commands[108].usage = "tags"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes ]";
+commands[108].optional_opt_args[0].opt = commandprofile_ARG;
+commands[108].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[108].optional_opt_args[1].opt = config_ARG;
+commands[108].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[108].optional_opt_args[2].opt = debug_ARG;
+commands[108].optional_opt_args[3].opt = driverloaded_ARG;
+commands[108].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[108].optional_opt_args[4].opt = help_ARG;
+commands[108].optional_opt_args[5].opt = profile_ARG;
+commands[108].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[108].optional_opt_args[6].opt = quiet_ARG;
+commands[108].optional_opt_args[7].opt = verbose_ARG;
+commands[108].optional_opt_args[8].opt = version_ARG;
+commands[108].optional_opt_args[9].opt = yes_ARG;
+
+commands[109].name = "vgcfgbackup";
+commands[109].fn = vgcfgbackup;
+commands[109].ro_count = 0;
+commands[109].rp_count = 0;
+commands[109].oo_count = 16;
+commands[109].op_count = 0;
+commands[109].desc = "";
+commands[109].usage = "vgcfgbackup"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --file String, --foreign, --ignorelockingfailure, --partial, --readonly, --reportformat String ]";
+commands[109].optional_opt_args[0].opt = commandprofile_ARG;
+commands[109].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[109].optional_opt_args[1].opt = config_ARG;
+commands[109].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[109].optional_opt_args[2].opt = debug_ARG;
+commands[109].optional_opt_args[3].opt = driverloaded_ARG;
+commands[109].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[109].optional_opt_args[4].opt = help_ARG;
+commands[109].optional_opt_args[5].opt = profile_ARG;
+commands[109].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[109].optional_opt_args[6].opt = quiet_ARG;
+commands[109].optional_opt_args[7].opt = verbose_ARG;
+commands[109].optional_opt_args[8].opt = version_ARG;
+commands[109].optional_opt_args[9].opt = yes_ARG;
+commands[109].optional_opt_args[10].opt = file_ARG;
+commands[109].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[109].optional_opt_args[11].opt = foreign_ARG;
+commands[109].optional_opt_args[12].opt = ignorelockingfailure_ARG;
+commands[109].optional_opt_args[13].opt = partial_ARG;
+commands[109].optional_opt_args[14].opt = readonly_ARG;
+commands[109].optional_opt_args[15].opt = reportformat_ARG;
+commands[109].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[110].name = "vgcfgrestore";
+commands[110].fn = vgcfgrestore;
+commands[110].ro_count = 0;
+commands[110].rp_count = 1;
+commands[110].oo_count = 15;
+commands[110].op_count = 0;
+commands[110].desc = "";
+commands[110].usage = "vgcfgrestore VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --file String, --force, --list, --metadatatype String, --test ]";
+commands[110].required_pos_args[0].pos = 1;
+commands[110].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[110].optional_opt_args[0].opt = commandprofile_ARG;
+commands[110].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[110].optional_opt_args[1].opt = config_ARG;
+commands[110].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[110].optional_opt_args[2].opt = debug_ARG;
+commands[110].optional_opt_args[3].opt = driverloaded_ARG;
+commands[110].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[110].optional_opt_args[4].opt = help_ARG;
+commands[110].optional_opt_args[5].opt = profile_ARG;
+commands[110].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[110].optional_opt_args[6].opt = quiet_ARG;
+commands[110].optional_opt_args[7].opt = verbose_ARG;
+commands[110].optional_opt_args[8].opt = version_ARG;
+commands[110].optional_opt_args[9].opt = yes_ARG;
+commands[110].optional_opt_args[10].opt = file_ARG;
+commands[110].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[110].optional_opt_args[11].opt = force_long_ARG;
+commands[110].optional_opt_args[12].opt = list_ARG;
+commands[110].optional_opt_args[13].opt = metadatatype_ARG;
+commands[110].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[110].optional_opt_args[14].opt = test_ARG;
+
+commands[111].name = "vgcfgrestore";
+commands[111].fn = vgcfgrestore;
+commands[111].ro_count = 2;
+commands[111].rp_count = 0;
+commands[111].oo_count = 10;
+commands[111].op_count = 0;
+commands[111].desc = "";
+commands[111].usage = "vgcfgrestore --list --file String"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes ]";
+commands[111].required_opt_args[0].opt = list_ARG;
+commands[111].required_opt_args[1].opt = file_ARG;
+commands[111].required_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[111].optional_opt_args[0].opt = commandprofile_ARG;
+commands[111].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[111].optional_opt_args[1].opt = config_ARG;
+commands[111].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[111].optional_opt_args[2].opt = debug_ARG;
+commands[111].optional_opt_args[3].opt = driverloaded_ARG;
+commands[111].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[111].optional_opt_args[4].opt = help_ARG;
+commands[111].optional_opt_args[5].opt = profile_ARG;
+commands[111].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[111].optional_opt_args[6].opt = quiet_ARG;
+commands[111].optional_opt_args[7].opt = verbose_ARG;
+commands[111].optional_opt_args[8].opt = version_ARG;
+commands[111].optional_opt_args[9].opt = yes_ARG;
+
+commands[112].name = "vgchange";
+commands[112].fn = vgchange;
+commands[112].ro_count = 16;
+commands[112].rp_count = 0;
+commands[112].oo_count = 18;
+commands[112].op_count = 1;
+commands[112].cmd_flags = CMD_FLAG_ONE_REQUIRED_OPT;
+commands[112].desc = "";
+commands[112].usage = "vgchange ( --addtag Tag, --deltag Tag, --logicalvolume Number, --maxphysicalvolumes Number, --alloc String, --uuid, --clustered Bool, --metadatacopies Number, --vgmetadatacopies Number|String, --physicalextentsize Number, --resizeable Bool, --systemid String, --locktype String, --profile String, --detachprofile, --metadataprofile String )"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --select String, --test, --force ]"
+" [ VG|Tag ... ]";
+commands[112].required_opt_args[0].opt = addtag_ARG;
+commands[112].required_opt_args[0].def.types = ARG_DEF_TYPE_TAG;
+commands[112].required_opt_args[1].opt = deltag_ARG;
+commands[112].required_opt_args[1].def.types = ARG_DEF_TYPE_TAG;
+commands[112].required_opt_args[2].opt = logicalvolume_ARG;
+commands[112].required_opt_args[2].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[112].required_opt_args[3].opt = maxphysicalvolumes_ARG;
+commands[112].required_opt_args[3].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[112].required_opt_args[4].opt = alloc_ARG;
+commands[112].required_opt_args[4].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[112].required_opt_args[5].opt = uuid_ARG;
+commands[112].required_opt_args[6].opt = clustered_ARG;
+commands[112].required_opt_args[6].def.types = ARG_DEF_TYPE_BOOL;
+commands[112].required_opt_args[7].opt = metadatacopies_ARG;
+commands[112].required_opt_args[7].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[112].required_opt_args[8].opt = vgmetadatacopies_ARG;
+commands[112].required_opt_args[8].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[112].required_opt_args[9].opt = physicalextentsize_ARG;
+commands[112].required_opt_args[9].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[112].required_opt_args[10].opt = resizeable_ARG;
+commands[112].required_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[112].required_opt_args[11].opt = systemid_ARG;
+commands[112].required_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[112].required_opt_args[12].opt = locktype_ARG;
+commands[112].required_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[112].required_opt_args[13].opt = profile_ARG;
+commands[112].required_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[112].required_opt_args[14].opt = detachprofile_ARG;
+commands[112].required_opt_args[15].opt = metadataprofile_ARG;
+commands[112].required_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[112].optional_opt_args[0].opt = commandprofile_ARG;
+commands[112].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[112].optional_opt_args[1].opt = config_ARG;
+commands[112].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[112].optional_opt_args[2].opt = debug_ARG;
+commands[112].optional_opt_args[3].opt = driverloaded_ARG;
+commands[112].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[112].optional_opt_args[4].opt = help_ARG;
+commands[112].optional_opt_args[5].opt = profile_ARG;
+commands[112].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[112].optional_opt_args[6].opt = quiet_ARG;
+commands[112].optional_opt_args[7].opt = verbose_ARG;
+commands[112].optional_opt_args[8].opt = version_ARG;
+commands[112].optional_opt_args[9].opt = yes_ARG;
+commands[112].optional_opt_args[10].opt = autobackup_ARG;
+commands[112].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[112].optional_opt_args[11].opt = ignoremonitoring_ARG;
+commands[112].optional_opt_args[12].opt = ignoreskippedcluster_ARG;
+commands[112].optional_opt_args[13].opt = noudevsync_ARG;
+commands[112].optional_opt_args[14].opt = reportformat_ARG;
+commands[112].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[112].optional_opt_args[15].opt = select_ARG;
+commands[112].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[112].optional_opt_args[16].opt = test_ARG;
+commands[112].optional_opt_args[17].opt = force_ARG;
+commands[112].optional_pos_args[0].pos = 1;
+commands[112].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG;
+commands[112].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[113].name = "vgchange";
+commands[113].fn = vgchange;
+commands[113].ro_count = 1;
+commands[113].rp_count = 0;
+commands[113].oo_count = 37;
+commands[113].op_count = 1;
+commands[113].desc = "";
+commands[113].usage = "vgchange --monitor Bool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --sysinit, --ignorelockingfailure, --poll Bool, --addtag Tag, --deltag Tag, --logicalvolume Number, --maxphysicalvolumes Number, --alloc String, --uuid, --clustered Bool, --metadatacopies Number, --vgmetadatacopies Number|String, --physicalextentsize Number, --resizeable Bool, --systemid String, --locktype String, --profile String, --detachprofile, --metadataprofile String, --autobackup Bool, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --select String, --test, --force ]"
+" [ VG|Tag ... ]";
+commands[113].required_opt_args[0].opt = monitor_ARG;
+commands[113].required_opt_args[0].def.types = ARG_DEF_TYPE_BOOL;
+commands[113].optional_opt_args[0].opt = commandprofile_ARG;
+commands[113].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[113].optional_opt_args[1].opt = config_ARG;
+commands[113].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[113].optional_opt_args[2].opt = debug_ARG;
+commands[113].optional_opt_args[3].opt = driverloaded_ARG;
+commands[113].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[113].optional_opt_args[4].opt = help_ARG;
+commands[113].optional_opt_args[5].opt = profile_ARG;
+commands[113].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[113].optional_opt_args[6].opt = quiet_ARG;
+commands[113].optional_opt_args[7].opt = verbose_ARG;
+commands[113].optional_opt_args[8].opt = version_ARG;
+commands[113].optional_opt_args[9].opt = yes_ARG;
+commands[113].optional_opt_args[10].opt = sysinit_ARG;
+commands[113].optional_opt_args[11].opt = ignorelockingfailure_ARG;
+commands[113].optional_opt_args[12].opt = poll_ARG;
+commands[113].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[113].optional_opt_args[13].opt = addtag_ARG;
+commands[113].optional_opt_args[13].def.types = ARG_DEF_TYPE_TAG;
+commands[113].optional_opt_args[14].opt = deltag_ARG;
+commands[113].optional_opt_args[14].def.types = ARG_DEF_TYPE_TAG;
+commands[113].optional_opt_args[15].opt = logicalvolume_ARG;
+commands[113].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[113].optional_opt_args[16].opt = maxphysicalvolumes_ARG;
+commands[113].optional_opt_args[16].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[113].optional_opt_args[17].opt = alloc_ARG;
+commands[113].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[113].optional_opt_args[18].opt = uuid_ARG;
+commands[113].optional_opt_args[19].opt = clustered_ARG;
+commands[113].optional_opt_args[19].def.types = ARG_DEF_TYPE_BOOL;
+commands[113].optional_opt_args[20].opt = metadatacopies_ARG;
+commands[113].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[113].optional_opt_args[21].opt = vgmetadatacopies_ARG;
+commands[113].optional_opt_args[21].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[113].optional_opt_args[22].opt = physicalextentsize_ARG;
+commands[113].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[113].optional_opt_args[23].opt = resizeable_ARG;
+commands[113].optional_opt_args[23].def.types = ARG_DEF_TYPE_BOOL;
+commands[113].optional_opt_args[24].opt = systemid_ARG;
+commands[113].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[113].optional_opt_args[25].opt = locktype_ARG;
+commands[113].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[113].optional_opt_args[26].opt = profile_ARG;
+commands[113].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[113].optional_opt_args[27].opt = detachprofile_ARG;
+commands[113].optional_opt_args[28].opt = metadataprofile_ARG;
+commands[113].optional_opt_args[28].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[113].optional_opt_args[29].opt = autobackup_ARG;
+commands[113].optional_opt_args[29].def.types = ARG_DEF_TYPE_BOOL;
+commands[113].optional_opt_args[30].opt = ignoremonitoring_ARG;
+commands[113].optional_opt_args[31].opt = ignoreskippedcluster_ARG;
+commands[113].optional_opt_args[32].opt = noudevsync_ARG;
+commands[113].optional_opt_args[33].opt = reportformat_ARG;
+commands[113].optional_opt_args[33].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[113].optional_opt_args[34].opt = select_ARG;
+commands[113].optional_opt_args[34].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[113].optional_opt_args[35].opt = test_ARG;
+commands[113].optional_opt_args[36].opt = force_ARG;
+commands[113].optional_pos_args[0].pos = 1;
+commands[113].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG;
+commands[113].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[114].name = "vgchange";
+commands[114].fn = vgchange;
+commands[114].ro_count = 1;
+commands[114].rp_count = 0;
+commands[114].oo_count = 35;
+commands[114].op_count = 1;
+commands[114].desc = "";
+commands[114].usage = "vgchange --poll Bool"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --ignorelockingfailure, --addtag Tag, --deltag Tag, --logicalvolume Number, --maxphysicalvolumes Number, --alloc String, --uuid, --clustered Bool, --metadatacopies Number, --vgmetadatacopies Number|String, --physicalextentsize Number, --resizeable Bool, --systemid String, --locktype String, --profile String, --detachprofile, --metadataprofile String, --autobackup Bool, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --select String, --test, --force ]"
+" [ VG|Tag ... ]";
+commands[114].required_opt_args[0].opt = poll_ARG;
+commands[114].required_opt_args[0].def.types = ARG_DEF_TYPE_BOOL;
+commands[114].optional_opt_args[0].opt = commandprofile_ARG;
+commands[114].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[114].optional_opt_args[1].opt = config_ARG;
+commands[114].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[114].optional_opt_args[2].opt = debug_ARG;
+commands[114].optional_opt_args[3].opt = driverloaded_ARG;
+commands[114].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[114].optional_opt_args[4].opt = help_ARG;
+commands[114].optional_opt_args[5].opt = profile_ARG;
+commands[114].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[114].optional_opt_args[6].opt = quiet_ARG;
+commands[114].optional_opt_args[7].opt = verbose_ARG;
+commands[114].optional_opt_args[8].opt = version_ARG;
+commands[114].optional_opt_args[9].opt = yes_ARG;
+commands[114].optional_opt_args[10].opt = ignorelockingfailure_ARG;
+commands[114].optional_opt_args[11].opt = addtag_ARG;
+commands[114].optional_opt_args[11].def.types = ARG_DEF_TYPE_TAG;
+commands[114].optional_opt_args[12].opt = deltag_ARG;
+commands[114].optional_opt_args[12].def.types = ARG_DEF_TYPE_TAG;
+commands[114].optional_opt_args[13].opt = logicalvolume_ARG;
+commands[114].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[114].optional_opt_args[14].opt = maxphysicalvolumes_ARG;
+commands[114].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[114].optional_opt_args[15].opt = alloc_ARG;
+commands[114].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[114].optional_opt_args[16].opt = uuid_ARG;
+commands[114].optional_opt_args[17].opt = clustered_ARG;
+commands[114].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[114].optional_opt_args[18].opt = metadatacopies_ARG;
+commands[114].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[114].optional_opt_args[19].opt = vgmetadatacopies_ARG;
+commands[114].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[114].optional_opt_args[20].opt = physicalextentsize_ARG;
+commands[114].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[114].optional_opt_args[21].opt = resizeable_ARG;
+commands[114].optional_opt_args[21].def.types = ARG_DEF_TYPE_BOOL;
+commands[114].optional_opt_args[22].opt = systemid_ARG;
+commands[114].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[114].optional_opt_args[23].opt = locktype_ARG;
+commands[114].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[114].optional_opt_args[24].opt = profile_ARG;
+commands[114].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[114].optional_opt_args[25].opt = detachprofile_ARG;
+commands[114].optional_opt_args[26].opt = metadataprofile_ARG;
+commands[114].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[114].optional_opt_args[27].opt = autobackup_ARG;
+commands[114].optional_opt_args[27].def.types = ARG_DEF_TYPE_BOOL;
+commands[114].optional_opt_args[28].opt = ignoremonitoring_ARG;
+commands[114].optional_opt_args[29].opt = ignoreskippedcluster_ARG;
+commands[114].optional_opt_args[30].opt = noudevsync_ARG;
+commands[114].optional_opt_args[31].opt = reportformat_ARG;
+commands[114].optional_opt_args[31].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[114].optional_opt_args[32].opt = select_ARG;
+commands[114].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[114].optional_opt_args[33].opt = test_ARG;
+commands[114].optional_opt_args[34].opt = force_ARG;
+commands[114].optional_pos_args[0].pos = 1;
+commands[114].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG;
+commands[114].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[115].name = "vgchange";
+commands[115].fn = vgchange;
+commands[115].ro_count = 1;
+commands[115].rp_count = 0;
+commands[115].oo_count = 41;
+commands[115].op_count = 1;
+commands[115].desc = "";
+commands[115].usage = "vgchange --activate String"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --activationmode String, --ignoreactivationskip, --partial, --sysinit, --ignorelockingfailure, --monitor Bool, --poll Bool, --addtag Tag, --deltag Tag, --logicalvolume Number, --maxphysicalvolumes Number, --alloc String, --uuid, --clustered Bool, --metadatacopies Number, --vgmetadatacopies Number|String, --physicalextentsize Number, --resizeable Bool, --systemid String, --locktype String, --profile String, --detachprofile, --metadataprofile String, --autobackup Bool, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --select String, --test, --force ]"
+" [ VG|Tag ... ]";
+commands[115].required_opt_args[0].opt = activate_ARG;
+commands[115].required_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[0].opt = commandprofile_ARG;
+commands[115].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[1].opt = config_ARG;
+commands[115].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[2].opt = debug_ARG;
+commands[115].optional_opt_args[3].opt = driverloaded_ARG;
+commands[115].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[115].optional_opt_args[4].opt = help_ARG;
+commands[115].optional_opt_args[5].opt = profile_ARG;
+commands[115].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[6].opt = quiet_ARG;
+commands[115].optional_opt_args[7].opt = verbose_ARG;
+commands[115].optional_opt_args[8].opt = version_ARG;
+commands[115].optional_opt_args[9].opt = yes_ARG;
+commands[115].optional_opt_args[10].opt = activationmode_ARG;
+commands[115].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[11].opt = ignoreactivationskip_ARG;
+commands[115].optional_opt_args[12].opt = partial_ARG;
+commands[115].optional_opt_args[13].opt = sysinit_ARG;
+commands[115].optional_opt_args[14].opt = ignorelockingfailure_ARG;
+commands[115].optional_opt_args[15].opt = monitor_ARG;
+commands[115].optional_opt_args[15].def.types = ARG_DEF_TYPE_BOOL;
+commands[115].optional_opt_args[16].opt = poll_ARG;
+commands[115].optional_opt_args[16].def.types = ARG_DEF_TYPE_BOOL;
+commands[115].optional_opt_args[17].opt = addtag_ARG;
+commands[115].optional_opt_args[17].def.types = ARG_DEF_TYPE_TAG;
+commands[115].optional_opt_args[18].opt = deltag_ARG;
+commands[115].optional_opt_args[18].def.types = ARG_DEF_TYPE_TAG;
+commands[115].optional_opt_args[19].opt = logicalvolume_ARG;
+commands[115].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[115].optional_opt_args[20].opt = maxphysicalvolumes_ARG;
+commands[115].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[115].optional_opt_args[21].opt = alloc_ARG;
+commands[115].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[22].opt = uuid_ARG;
+commands[115].optional_opt_args[23].opt = clustered_ARG;
+commands[115].optional_opt_args[23].def.types = ARG_DEF_TYPE_BOOL;
+commands[115].optional_opt_args[24].opt = metadatacopies_ARG;
+commands[115].optional_opt_args[24].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[115].optional_opt_args[25].opt = vgmetadatacopies_ARG;
+commands[115].optional_opt_args[25].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[26].opt = physicalextentsize_ARG;
+commands[115].optional_opt_args[26].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[115].optional_opt_args[27].opt = resizeable_ARG;
+commands[115].optional_opt_args[27].def.types = ARG_DEF_TYPE_BOOL;
+commands[115].optional_opt_args[28].opt = systemid_ARG;
+commands[115].optional_opt_args[28].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[29].opt = locktype_ARG;
+commands[115].optional_opt_args[29].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[30].opt = profile_ARG;
+commands[115].optional_opt_args[30].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[31].opt = detachprofile_ARG;
+commands[115].optional_opt_args[32].opt = metadataprofile_ARG;
+commands[115].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[33].opt = autobackup_ARG;
+commands[115].optional_opt_args[33].def.types = ARG_DEF_TYPE_BOOL;
+commands[115].optional_opt_args[34].opt = ignoremonitoring_ARG;
+commands[115].optional_opt_args[35].opt = ignoreskippedcluster_ARG;
+commands[115].optional_opt_args[36].opt = noudevsync_ARG;
+commands[115].optional_opt_args[37].opt = reportformat_ARG;
+commands[115].optional_opt_args[37].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[38].opt = select_ARG;
+commands[115].optional_opt_args[38].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[115].optional_opt_args[39].opt = test_ARG;
+commands[115].optional_opt_args[40].opt = force_ARG;
+commands[115].optional_pos_args[0].pos = 1;
+commands[115].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG;
+commands[115].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[116].name = "vgchange";
+commands[116].fn = vgchange;
+commands[116].ro_count = 1;
+commands[116].rp_count = 0;
+commands[116].oo_count = 38;
+commands[116].op_count = 1;
+commands[116].desc = "";
+commands[116].usage = "vgchange --refresh"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --sysinit, --ignorelockingfailure, --monitor Bool, --poll Bool, --addtag Tag, --deltag Tag, --logicalvolume Number, --maxphysicalvolumes Number, --alloc String, --uuid, --clustered Bool, --metadatacopies Number, --vgmetadatacopies Number|String, --physicalextentsize Number, --resizeable Bool, --systemid String, --locktype String, --profile String, --detachprofile, --metadataprofile String, --autobackup Bool, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --select String, --test, --force ]"
+" [ VG|Tag ... ]";
+commands[116].required_opt_args[0].opt = refresh_ARG;
+commands[116].optional_opt_args[0].opt = commandprofile_ARG;
+commands[116].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[116].optional_opt_args[1].opt = config_ARG;
+commands[116].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[116].optional_opt_args[2].opt = debug_ARG;
+commands[116].optional_opt_args[3].opt = driverloaded_ARG;
+commands[116].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[116].optional_opt_args[4].opt = help_ARG;
+commands[116].optional_opt_args[5].opt = profile_ARG;
+commands[116].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[116].optional_opt_args[6].opt = quiet_ARG;
+commands[116].optional_opt_args[7].opt = verbose_ARG;
+commands[116].optional_opt_args[8].opt = version_ARG;
+commands[116].optional_opt_args[9].opt = yes_ARG;
+commands[116].optional_opt_args[10].opt = sysinit_ARG;
+commands[116].optional_opt_args[11].opt = ignorelockingfailure_ARG;
+commands[116].optional_opt_args[12].opt = monitor_ARG;
+commands[116].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[116].optional_opt_args[13].opt = poll_ARG;
+commands[116].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[116].optional_opt_args[14].opt = addtag_ARG;
+commands[116].optional_opt_args[14].def.types = ARG_DEF_TYPE_TAG;
+commands[116].optional_opt_args[15].opt = deltag_ARG;
+commands[116].optional_opt_args[15].def.types = ARG_DEF_TYPE_TAG;
+commands[116].optional_opt_args[16].opt = logicalvolume_ARG;
+commands[116].optional_opt_args[16].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[116].optional_opt_args[17].opt = maxphysicalvolumes_ARG;
+commands[116].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[116].optional_opt_args[18].opt = alloc_ARG;
+commands[116].optional_opt_args[18].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[116].optional_opt_args[19].opt = uuid_ARG;
+commands[116].optional_opt_args[20].opt = clustered_ARG;
+commands[116].optional_opt_args[20].def.types = ARG_DEF_TYPE_BOOL;
+commands[116].optional_opt_args[21].opt = metadatacopies_ARG;
+commands[116].optional_opt_args[21].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[116].optional_opt_args[22].opt = vgmetadatacopies_ARG;
+commands[116].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[116].optional_opt_args[23].opt = physicalextentsize_ARG;
+commands[116].optional_opt_args[23].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[116].optional_opt_args[24].opt = resizeable_ARG;
+commands[116].optional_opt_args[24].def.types = ARG_DEF_TYPE_BOOL;
+commands[116].optional_opt_args[25].opt = systemid_ARG;
+commands[116].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[116].optional_opt_args[26].opt = locktype_ARG;
+commands[116].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[116].optional_opt_args[27].opt = profile_ARG;
+commands[116].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[116].optional_opt_args[28].opt = detachprofile_ARG;
+commands[116].optional_opt_args[29].opt = metadataprofile_ARG;
+commands[116].optional_opt_args[29].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[116].optional_opt_args[30].opt = autobackup_ARG;
+commands[116].optional_opt_args[30].def.types = ARG_DEF_TYPE_BOOL;
+commands[116].optional_opt_args[31].opt = ignoremonitoring_ARG;
+commands[116].optional_opt_args[32].opt = ignoreskippedcluster_ARG;
+commands[116].optional_opt_args[33].opt = noudevsync_ARG;
+commands[116].optional_opt_args[34].opt = reportformat_ARG;
+commands[116].optional_opt_args[34].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[116].optional_opt_args[35].opt = select_ARG;
+commands[116].optional_opt_args[35].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[116].optional_opt_args[36].opt = test_ARG;
+commands[116].optional_opt_args[37].opt = force_ARG;
+commands[116].optional_pos_args[0].pos = 1;
+commands[116].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG;
+commands[116].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[117].name = "vgchange";
+commands[117].fn = vgchange;
+commands[117].ro_count = 1;
+commands[117].rp_count = 0;
+commands[117].oo_count = 35;
+commands[117].op_count = 1;
+commands[117].desc = "";
+commands[117].usage = "vgchange --lockstart"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --lockopt String, --addtag Tag, --deltag Tag, --logicalvolume Number, --maxphysicalvolumes Number, --alloc String, --uuid, --clustered Bool, --metadatacopies Number, --vgmetadatacopies Number|String, --physicalextentsize Number, --resizeable Bool, --systemid String, --locktype String, --profile String, --detachprofile, --metadataprofile String, --autobackup Bool, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --select String, --test, --force ]"
+" [ VG|Tag ... ]";
+commands[117].required_opt_args[0].opt = lockstart_ARG;
+commands[117].optional_opt_args[0].opt = commandprofile_ARG;
+commands[117].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[117].optional_opt_args[1].opt = config_ARG;
+commands[117].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[117].optional_opt_args[2].opt = debug_ARG;
+commands[117].optional_opt_args[3].opt = driverloaded_ARG;
+commands[117].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[117].optional_opt_args[4].opt = help_ARG;
+commands[117].optional_opt_args[5].opt = profile_ARG;
+commands[117].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[117].optional_opt_args[6].opt = quiet_ARG;
+commands[117].optional_opt_args[7].opt = verbose_ARG;
+commands[117].optional_opt_args[8].opt = version_ARG;
+commands[117].optional_opt_args[9].opt = yes_ARG;
+commands[117].optional_opt_args[10].opt = lockopt_ARG;
+commands[117].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[117].optional_opt_args[11].opt = addtag_ARG;
+commands[117].optional_opt_args[11].def.types = ARG_DEF_TYPE_TAG;
+commands[117].optional_opt_args[12].opt = deltag_ARG;
+commands[117].optional_opt_args[12].def.types = ARG_DEF_TYPE_TAG;
+commands[117].optional_opt_args[13].opt = logicalvolume_ARG;
+commands[117].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[117].optional_opt_args[14].opt = maxphysicalvolumes_ARG;
+commands[117].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[117].optional_opt_args[15].opt = alloc_ARG;
+commands[117].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[117].optional_opt_args[16].opt = uuid_ARG;
+commands[117].optional_opt_args[17].opt = clustered_ARG;
+commands[117].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[117].optional_opt_args[18].opt = metadatacopies_ARG;
+commands[117].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[117].optional_opt_args[19].opt = vgmetadatacopies_ARG;
+commands[117].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[117].optional_opt_args[20].opt = physicalextentsize_ARG;
+commands[117].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[117].optional_opt_args[21].opt = resizeable_ARG;
+commands[117].optional_opt_args[21].def.types = ARG_DEF_TYPE_BOOL;
+commands[117].optional_opt_args[22].opt = systemid_ARG;
+commands[117].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[117].optional_opt_args[23].opt = locktype_ARG;
+commands[117].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[117].optional_opt_args[24].opt = profile_ARG;
+commands[117].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[117].optional_opt_args[25].opt = detachprofile_ARG;
+commands[117].optional_opt_args[26].opt = metadataprofile_ARG;
+commands[117].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[117].optional_opt_args[27].opt = autobackup_ARG;
+commands[117].optional_opt_args[27].def.types = ARG_DEF_TYPE_BOOL;
+commands[117].optional_opt_args[28].opt = ignoremonitoring_ARG;
+commands[117].optional_opt_args[29].opt = ignoreskippedcluster_ARG;
+commands[117].optional_opt_args[30].opt = noudevsync_ARG;
+commands[117].optional_opt_args[31].opt = reportformat_ARG;
+commands[117].optional_opt_args[31].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[117].optional_opt_args[32].opt = select_ARG;
+commands[117].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[117].optional_opt_args[33].opt = test_ARG;
+commands[117].optional_opt_args[34].opt = force_ARG;
+commands[117].optional_pos_args[0].pos = 1;
+commands[117].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG;
+commands[117].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[118].name = "vgchange";
+commands[118].fn = vgchange;
+commands[118].ro_count = 1;
+commands[118].rp_count = 0;
+commands[118].oo_count = 35;
+commands[118].op_count = 1;
+commands[118].desc = "";
+commands[118].usage = "vgchange --lockstop"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --lockopt String, --addtag Tag, --deltag Tag, --logicalvolume Number, --maxphysicalvolumes Number, --alloc String, --uuid, --clustered Bool, --metadatacopies Number, --vgmetadatacopies Number|String, --physicalextentsize Number, --resizeable Bool, --systemid String, --locktype String, --profile String, --detachprofile, --metadataprofile String, --autobackup Bool, --ignoremonitoring, --ignoreskippedcluster, --noudevsync, --reportformat String, --select String, --test, --force ]"
+" [ VG|Tag ... ]";
+commands[118].required_opt_args[0].opt = lockstop_ARG;
+commands[118].optional_opt_args[0].opt = commandprofile_ARG;
+commands[118].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[118].optional_opt_args[1].opt = config_ARG;
+commands[118].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[118].optional_opt_args[2].opt = debug_ARG;
+commands[118].optional_opt_args[3].opt = driverloaded_ARG;
+commands[118].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[118].optional_opt_args[4].opt = help_ARG;
+commands[118].optional_opt_args[5].opt = profile_ARG;
+commands[118].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[118].optional_opt_args[6].opt = quiet_ARG;
+commands[118].optional_opt_args[7].opt = verbose_ARG;
+commands[118].optional_opt_args[8].opt = version_ARG;
+commands[118].optional_opt_args[9].opt = yes_ARG;
+commands[118].optional_opt_args[10].opt = lockopt_ARG;
+commands[118].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[118].optional_opt_args[11].opt = addtag_ARG;
+commands[118].optional_opt_args[11].def.types = ARG_DEF_TYPE_TAG;
+commands[118].optional_opt_args[12].opt = deltag_ARG;
+commands[118].optional_opt_args[12].def.types = ARG_DEF_TYPE_TAG;
+commands[118].optional_opt_args[13].opt = logicalvolume_ARG;
+commands[118].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[118].optional_opt_args[14].opt = maxphysicalvolumes_ARG;
+commands[118].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[118].optional_opt_args[15].opt = alloc_ARG;
+commands[118].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[118].optional_opt_args[16].opt = uuid_ARG;
+commands[118].optional_opt_args[17].opt = clustered_ARG;
+commands[118].optional_opt_args[17].def.types = ARG_DEF_TYPE_BOOL;
+commands[118].optional_opt_args[18].opt = metadatacopies_ARG;
+commands[118].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[118].optional_opt_args[19].opt = vgmetadatacopies_ARG;
+commands[118].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[118].optional_opt_args[20].opt = physicalextentsize_ARG;
+commands[118].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[118].optional_opt_args[21].opt = resizeable_ARG;
+commands[118].optional_opt_args[21].def.types = ARG_DEF_TYPE_BOOL;
+commands[118].optional_opt_args[22].opt = systemid_ARG;
+commands[118].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[118].optional_opt_args[23].opt = locktype_ARG;
+commands[118].optional_opt_args[23].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[118].optional_opt_args[24].opt = profile_ARG;
+commands[118].optional_opt_args[24].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[118].optional_opt_args[25].opt = detachprofile_ARG;
+commands[118].optional_opt_args[26].opt = metadataprofile_ARG;
+commands[118].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[118].optional_opt_args[27].opt = autobackup_ARG;
+commands[118].optional_opt_args[27].def.types = ARG_DEF_TYPE_BOOL;
+commands[118].optional_opt_args[28].opt = ignoremonitoring_ARG;
+commands[118].optional_opt_args[29].opt = ignoreskippedcluster_ARG;
+commands[118].optional_opt_args[30].opt = noudevsync_ARG;
+commands[118].optional_opt_args[31].opt = reportformat_ARG;
+commands[118].optional_opt_args[31].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[118].optional_opt_args[32].opt = select_ARG;
+commands[118].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[118].optional_opt_args[33].opt = test_ARG;
+commands[118].optional_opt_args[34].opt = force_ARG;
+commands[118].optional_pos_args[0].pos = 1;
+commands[118].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG;
+commands[118].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[119].name = "vgck";
+commands[119].fn = vgck;
+commands[119].ro_count = 0;
+commands[119].rp_count = 0;
+commands[119].oo_count = 11;
+commands[119].op_count = 1;
+commands[119].desc = "";
+commands[119].usage = "vgck"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --reportformat String ]"
+" [ VG|Tag ... ]";
+commands[119].optional_opt_args[0].opt = commandprofile_ARG;
+commands[119].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[119].optional_opt_args[1].opt = config_ARG;
+commands[119].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[119].optional_opt_args[2].opt = debug_ARG;
+commands[119].optional_opt_args[3].opt = driverloaded_ARG;
+commands[119].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[119].optional_opt_args[4].opt = help_ARG;
+commands[119].optional_opt_args[5].opt = profile_ARG;
+commands[119].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[119].optional_opt_args[6].opt = quiet_ARG;
+commands[119].optional_opt_args[7].opt = verbose_ARG;
+commands[119].optional_opt_args[8].opt = version_ARG;
+commands[119].optional_opt_args[9].opt = yes_ARG;
+commands[119].optional_opt_args[10].opt = reportformat_ARG;
+commands[119].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[119].optional_pos_args[0].pos = 1;
+commands[119].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG;
+commands[119].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[120].name = "vgconvert";
+commands[120].fn = vgconvert;
+commands[120].ro_count = 0;
+commands[120].rp_count = 1;
+commands[120].oo_count = 18;
+commands[120].op_count = 0;
+commands[120].desc = "";
+commands[120].usage = "vgconvert VG ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --force, --test, --labelsector Number, --bootloaderareasize Number, --metadatatype String, --pvmetadatacopies Number, --metadatasize Number, --reportformat String ]";
+commands[120].required_pos_args[0].pos = 1;
+commands[120].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[120].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[120].optional_opt_args[0].opt = commandprofile_ARG;
+commands[120].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[120].optional_opt_args[1].opt = config_ARG;
+commands[120].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[120].optional_opt_args[2].opt = debug_ARG;
+commands[120].optional_opt_args[3].opt = driverloaded_ARG;
+commands[120].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[120].optional_opt_args[4].opt = help_ARG;
+commands[120].optional_opt_args[5].opt = profile_ARG;
+commands[120].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[120].optional_opt_args[6].opt = quiet_ARG;
+commands[120].optional_opt_args[7].opt = verbose_ARG;
+commands[120].optional_opt_args[8].opt = version_ARG;
+commands[120].optional_opt_args[9].opt = yes_ARG;
+commands[120].optional_opt_args[10].opt = force_ARG;
+commands[120].optional_opt_args[11].opt = test_ARG;
+commands[120].optional_opt_args[12].opt = labelsector_ARG;
+commands[120].optional_opt_args[12].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[120].optional_opt_args[13].opt = bootloaderareasize_ARG;
+commands[120].optional_opt_args[13].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[120].optional_opt_args[14].opt = metadatatype_ARG;
+commands[120].optional_opt_args[14].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[120].optional_opt_args[15].opt = pvmetadatacopies_ARG;
+commands[120].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[120].optional_opt_args[16].opt = metadatasize_ARG;
+commands[120].optional_opt_args[16].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[120].optional_opt_args[17].opt = reportformat_ARG;
+commands[120].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[121].name = "vgcreate";
+commands[121].fn = vgcreate;
+commands[121].ro_count = 0;
+commands[121].rp_count = 2;
+commands[121].oo_count = 34;
+commands[121].op_count = 0;
+commands[121].desc = "";
+commands[121].usage = "vgcreate VG_new PV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --addtag Tag, --alloc String, --autobackup Bool, --clustered Bool, --maxlogicalvolumes Number, --maxphysicalvolumes Number, --metadataprofile String, --metadatatype String, --physicalextentsize Number, --test, --force, --zero Bool, --labelsector Number, --metadatasize Number, --pvmetadatacopies Number, --reportformat String, --metadatacopies Number, --vgmetadatacopies Number|String, --dataalignment Number, --dataalignmentoffset Number, --shared, --systemid String, --locktype String, --lockopt String ]";
+commands[121].required_pos_args[0].pos = 1;
+commands[121].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[121].required_pos_args[0].def.flags = ARG_DEF_FLAG_NEW;
+commands[121].required_pos_args[1].pos = 2;
+commands[121].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[121].required_pos_args[1].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[121].optional_opt_args[0].opt = commandprofile_ARG;
+commands[121].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[121].optional_opt_args[1].opt = config_ARG;
+commands[121].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[121].optional_opt_args[2].opt = debug_ARG;
+commands[121].optional_opt_args[3].opt = driverloaded_ARG;
+commands[121].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[121].optional_opt_args[4].opt = help_ARG;
+commands[121].optional_opt_args[5].opt = profile_ARG;
+commands[121].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[121].optional_opt_args[6].opt = quiet_ARG;
+commands[121].optional_opt_args[7].opt = verbose_ARG;
+commands[121].optional_opt_args[8].opt = version_ARG;
+commands[121].optional_opt_args[9].opt = yes_ARG;
+commands[121].optional_opt_args[10].opt = addtag_ARG;
+commands[121].optional_opt_args[10].def.types = ARG_DEF_TYPE_TAG;
+commands[121].optional_opt_args[11].opt = alloc_ARG;
+commands[121].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[121].optional_opt_args[12].opt = autobackup_ARG;
+commands[121].optional_opt_args[12].def.types = ARG_DEF_TYPE_BOOL;
+commands[121].optional_opt_args[13].opt = clustered_ARG;
+commands[121].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[121].optional_opt_args[14].opt = maxlogicalvolumes_ARG;
+commands[121].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[121].optional_opt_args[15].opt = maxphysicalvolumes_ARG;
+commands[121].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[121].optional_opt_args[16].opt = metadataprofile_ARG;
+commands[121].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[121].optional_opt_args[17].opt = metadatatype_ARG;
+commands[121].optional_opt_args[17].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[121].optional_opt_args[18].opt = physicalextentsize_ARG;
+commands[121].optional_opt_args[18].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[121].optional_opt_args[19].opt = test_ARG;
+commands[121].optional_opt_args[20].opt = force_ARG;
+commands[121].optional_opt_args[21].opt = zero_ARG;
+commands[121].optional_opt_args[21].def.types = ARG_DEF_TYPE_BOOL;
+commands[121].optional_opt_args[22].opt = labelsector_ARG;
+commands[121].optional_opt_args[22].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[121].optional_opt_args[23].opt = metadatasize_ARG;
+commands[121].optional_opt_args[23].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[121].optional_opt_args[24].opt = pvmetadatacopies_ARG;
+commands[121].optional_opt_args[24].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[121].optional_opt_args[25].opt = reportformat_ARG;
+commands[121].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[121].optional_opt_args[26].opt = metadatacopies_ARG;
+commands[121].optional_opt_args[26].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[121].optional_opt_args[27].opt = vgmetadatacopies_ARG;
+commands[121].optional_opt_args[27].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+commands[121].optional_opt_args[28].opt = dataalignment_ARG;
+commands[121].optional_opt_args[28].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[121].optional_opt_args[29].opt = dataalignmentoffset_ARG;
+commands[121].optional_opt_args[29].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[121].optional_opt_args[30].opt = shared_ARG;
+commands[121].optional_opt_args[31].opt = systemid_ARG;
+commands[121].optional_opt_args[31].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[121].optional_opt_args[32].opt = locktype_ARG;
+commands[121].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[121].optional_opt_args[33].opt = lockopt_ARG;
+commands[121].optional_opt_args[33].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[122].name = "vgdisplay";
+commands[122].fn = vgdisplay;
+commands[122].ro_count = 0;
+commands[122].rp_count = 0;
+commands[122].oo_count = 33;
+commands[122].op_count = 1;
+commands[122].desc = "";
+commands[122].usage = "vgdisplay"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --activevolumegroups, --aligned, --binary, --colon, --columns, --configreport String, --foreign, --ignorelockingfailure, --ignoreskippedcluster, --logonly, --noheadings, --nosuffix, --options String, --partial, --readonly, --reportformat String, --select String, --shared, --short, --separator String, --sort String, --unbuffered, --units String ]"
+" [ VG|Tag ... ]";
+commands[122].optional_opt_args[0].opt = commandprofile_ARG;
+commands[122].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[122].optional_opt_args[1].opt = config_ARG;
+commands[122].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[122].optional_opt_args[2].opt = debug_ARG;
+commands[122].optional_opt_args[3].opt = driverloaded_ARG;
+commands[122].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[122].optional_opt_args[4].opt = help_ARG;
+commands[122].optional_opt_args[5].opt = profile_ARG;
+commands[122].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[122].optional_opt_args[6].opt = quiet_ARG;
+commands[122].optional_opt_args[7].opt = verbose_ARG;
+commands[122].optional_opt_args[8].opt = version_ARG;
+commands[122].optional_opt_args[9].opt = yes_ARG;
+commands[122].optional_opt_args[10].opt = activevolumegroups_ARG;
+commands[122].optional_opt_args[11].opt = aligned_ARG;
+commands[122].optional_opt_args[12].opt = binary_ARG;
+commands[122].optional_opt_args[13].opt = colon_ARG;
+commands[122].optional_opt_args[14].opt = columns_ARG;
+commands[122].optional_opt_args[15].opt = configreport_ARG;
+commands[122].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[122].optional_opt_args[16].opt = foreign_ARG;
+commands[122].optional_opt_args[17].opt = ignorelockingfailure_ARG;
+commands[122].optional_opt_args[18].opt = ignoreskippedcluster_ARG;
+commands[122].optional_opt_args[19].opt = logonly_ARG;
+commands[122].optional_opt_args[20].opt = noheadings_ARG;
+commands[122].optional_opt_args[21].opt = nosuffix_ARG;
+commands[122].optional_opt_args[22].opt = options_ARG;
+commands[122].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[122].optional_opt_args[23].opt = partial_ARG;
+commands[122].optional_opt_args[24].opt = readonly_ARG;
+commands[122].optional_opt_args[25].opt = reportformat_ARG;
+commands[122].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[122].optional_opt_args[26].opt = select_ARG;
+commands[122].optional_opt_args[26].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[122].optional_opt_args[27].opt = shared_ARG;
+commands[122].optional_opt_args[28].opt = short_ARG;
+commands[122].optional_opt_args[29].opt = separator_ARG;
+commands[122].optional_opt_args[29].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[122].optional_opt_args[30].opt = sort_ARG;
+commands[122].optional_opt_args[30].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[122].optional_opt_args[31].opt = unbuffered_ARG;
+commands[122].optional_opt_args[32].opt = units_ARG;
+commands[122].optional_opt_args[32].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[122].optional_pos_args[0].pos = 1;
+commands[122].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG;
+commands[122].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[123].name = "vgexport";
+commands[123].fn = vgexport;
+commands[123].ro_count = 0;
+commands[123].rp_count = 1;
+commands[123].oo_count = 13;
+commands[123].op_count = 0;
+commands[123].desc = "";
+commands[123].usage = "vgexport VG|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --select String, --reportformat String, --test ]";
+commands[123].required_pos_args[0].pos = 1;
+commands[123].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[123].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[123].optional_opt_args[0].opt = commandprofile_ARG;
+commands[123].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[123].optional_opt_args[1].opt = config_ARG;
+commands[123].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[123].optional_opt_args[2].opt = debug_ARG;
+commands[123].optional_opt_args[3].opt = driverloaded_ARG;
+commands[123].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[123].optional_opt_args[4].opt = help_ARG;
+commands[123].optional_opt_args[5].opt = profile_ARG;
+commands[123].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[123].optional_opt_args[6].opt = quiet_ARG;
+commands[123].optional_opt_args[7].opt = verbose_ARG;
+commands[123].optional_opt_args[8].opt = version_ARG;
+commands[123].optional_opt_args[9].opt = yes_ARG;
+commands[123].optional_opt_args[10].opt = select_ARG;
+commands[123].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[123].optional_opt_args[11].opt = reportformat_ARG;
+commands[123].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[123].optional_opt_args[12].opt = test_ARG;
+
+commands[124].name = "vgexport";
+commands[124].fn = vgexport;
+commands[124].ro_count = 1;
+commands[124].rp_count = 0;
+commands[124].oo_count = 12;
+commands[124].op_count = 0;
+commands[124].desc = "";
+commands[124].usage = "vgexport --all"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --reportformat String, --test ]";
+commands[124].required_opt_args[0].opt = all_ARG;
+commands[124].optional_opt_args[0].opt = commandprofile_ARG;
+commands[124].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[124].optional_opt_args[1].opt = config_ARG;
+commands[124].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[124].optional_opt_args[2].opt = debug_ARG;
+commands[124].optional_opt_args[3].opt = driverloaded_ARG;
+commands[124].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[124].optional_opt_args[4].opt = help_ARG;
+commands[124].optional_opt_args[5].opt = profile_ARG;
+commands[124].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[124].optional_opt_args[6].opt = quiet_ARG;
+commands[124].optional_opt_args[7].opt = verbose_ARG;
+commands[124].optional_opt_args[8].opt = version_ARG;
+commands[124].optional_opt_args[9].opt = yes_ARG;
+commands[124].optional_opt_args[10].opt = reportformat_ARG;
+commands[124].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[124].optional_opt_args[11].opt = test_ARG;
+
+commands[125].name = "vgextend";
+commands[125].fn = vgextend;
+commands[125].ro_count = 0;
+commands[125].rp_count = 2;
+commands[125].oo_count = 23;
+commands[125].op_count = 0;
+commands[125].desc = "";
+commands[125].usage = "vgextend VG PV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --test, --force, --zero Bool, --labelsector Number, --metadatatype String, --metadatasize Number, --pvmetadatacopies Number, --metadataignore Bool, --dataalignment Number, --dataalignmentoffset Number, --reportformat String, --restoremissing ]";
+commands[125].required_pos_args[0].pos = 1;
+commands[125].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[125].required_pos_args[1].pos = 2;
+commands[125].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[125].required_pos_args[1].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[125].optional_opt_args[0].opt = commandprofile_ARG;
+commands[125].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[125].optional_opt_args[1].opt = config_ARG;
+commands[125].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[125].optional_opt_args[2].opt = debug_ARG;
+commands[125].optional_opt_args[3].opt = driverloaded_ARG;
+commands[125].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[125].optional_opt_args[4].opt = help_ARG;
+commands[125].optional_opt_args[5].opt = profile_ARG;
+commands[125].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[125].optional_opt_args[6].opt = quiet_ARG;
+commands[125].optional_opt_args[7].opt = verbose_ARG;
+commands[125].optional_opt_args[8].opt = version_ARG;
+commands[125].optional_opt_args[9].opt = yes_ARG;
+commands[125].optional_opt_args[10].opt = autobackup_ARG;
+commands[125].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[125].optional_opt_args[11].opt = test_ARG;
+commands[125].optional_opt_args[12].opt = force_ARG;
+commands[125].optional_opt_args[13].opt = zero_ARG;
+commands[125].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[125].optional_opt_args[14].opt = labelsector_ARG;
+commands[125].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[125].optional_opt_args[15].opt = metadatatype_ARG;
+commands[125].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[125].optional_opt_args[16].opt = metadatasize_ARG;
+commands[125].optional_opt_args[16].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[125].optional_opt_args[17].opt = pvmetadatacopies_ARG;
+commands[125].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[125].optional_opt_args[18].opt = metadataignore_ARG;
+commands[125].optional_opt_args[18].def.types = ARG_DEF_TYPE_BOOL;
+commands[125].optional_opt_args[19].opt = dataalignment_ARG;
+commands[125].optional_opt_args[19].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[125].optional_opt_args[20].opt = dataalignmentoffset_ARG;
+commands[125].optional_opt_args[20].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[125].optional_opt_args[21].opt = reportformat_ARG;
+commands[125].optional_opt_args[21].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[125].optional_opt_args[22].opt = restoremissing_ARG;
+
+commands[126].name = "vgimport";
+commands[126].fn = vgimport;
+commands[126].ro_count = 0;
+commands[126].rp_count = 1;
+commands[126].oo_count = 14;
+commands[126].op_count = 0;
+commands[126].desc = "";
+commands[126].usage = "vgimport VG|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --select String, --force, --reportformat String, --test ]";
+commands[126].required_pos_args[0].pos = 1;
+commands[126].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[126].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[126].optional_opt_args[0].opt = commandprofile_ARG;
+commands[126].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[126].optional_opt_args[1].opt = config_ARG;
+commands[126].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[126].optional_opt_args[2].opt = debug_ARG;
+commands[126].optional_opt_args[3].opt = driverloaded_ARG;
+commands[126].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[126].optional_opt_args[4].opt = help_ARG;
+commands[126].optional_opt_args[5].opt = profile_ARG;
+commands[126].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[126].optional_opt_args[6].opt = quiet_ARG;
+commands[126].optional_opt_args[7].opt = verbose_ARG;
+commands[126].optional_opt_args[8].opt = version_ARG;
+commands[126].optional_opt_args[9].opt = yes_ARG;
+commands[126].optional_opt_args[10].opt = select_ARG;
+commands[126].optional_opt_args[10].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[126].optional_opt_args[11].opt = force_ARG;
+commands[126].optional_opt_args[12].opt = reportformat_ARG;
+commands[126].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[126].optional_opt_args[13].opt = test_ARG;
+
+commands[127].name = "vgimport";
+commands[127].fn = vgimport;
+commands[127].ro_count = 1;
+commands[127].rp_count = 0;
+commands[127].oo_count = 13;
+commands[127].op_count = 0;
+commands[127].desc = "";
+commands[127].usage = "vgimport --all"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --force, --reportformat String, --test ]";
+commands[127].required_opt_args[0].opt = all_ARG;
+commands[127].optional_opt_args[0].opt = commandprofile_ARG;
+commands[127].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[127].optional_opt_args[1].opt = config_ARG;
+commands[127].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[127].optional_opt_args[2].opt = debug_ARG;
+commands[127].optional_opt_args[3].opt = driverloaded_ARG;
+commands[127].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[127].optional_opt_args[4].opt = help_ARG;
+commands[127].optional_opt_args[5].opt = profile_ARG;
+commands[127].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[127].optional_opt_args[6].opt = quiet_ARG;
+commands[127].optional_opt_args[7].opt = verbose_ARG;
+commands[127].optional_opt_args[8].opt = version_ARG;
+commands[127].optional_opt_args[9].opt = yes_ARG;
+commands[127].optional_opt_args[10].opt = force_ARG;
+commands[127].optional_opt_args[11].opt = reportformat_ARG;
+commands[127].optional_opt_args[11].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[127].optional_opt_args[12].opt = test_ARG;
+
+commands[128].name = "vgimportclone";
+commands[128].fn = vgimportclone;
+commands[128].ro_count = 0;
+commands[128].rp_count = 1;
+commands[128].oo_count = 13;
+commands[128].op_count = 0;
+commands[128].desc = "";
+commands[128].usage = "vgimportclone PV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --basevgname VG, --test, --import ]";
+commands[128].required_pos_args[0].pos = 1;
+commands[128].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[128].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[128].optional_opt_args[0].opt = commandprofile_ARG;
+commands[128].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[128].optional_opt_args[1].opt = config_ARG;
+commands[128].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[128].optional_opt_args[2].opt = debug_ARG;
+commands[128].optional_opt_args[3].opt = driverloaded_ARG;
+commands[128].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[128].optional_opt_args[4].opt = help_ARG;
+commands[128].optional_opt_args[5].opt = profile_ARG;
+commands[128].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[128].optional_opt_args[6].opt = quiet_ARG;
+commands[128].optional_opt_args[7].opt = verbose_ARG;
+commands[128].optional_opt_args[8].opt = version_ARG;
+commands[128].optional_opt_args[9].opt = yes_ARG;
+commands[128].optional_opt_args[10].opt = basevgname_ARG;
+commands[128].optional_opt_args[10].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[128].optional_opt_args[11].opt = test_ARG;
+commands[128].optional_opt_args[12].opt = import_ARG;
+
+commands[129].name = "vgmerge";
+commands[129].fn = vgmerge;
+commands[129].ro_count = 0;
+commands[129].rp_count = 2;
+commands[129].oo_count = 13;
+commands[129].op_count = 0;
+commands[129].desc = "";
+commands[129].usage = "vgmerge VG VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --list, --test ]";
+commands[129].required_pos_args[0].pos = 1;
+commands[129].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[129].required_pos_args[1].pos = 2;
+commands[129].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[129].optional_opt_args[0].opt = commandprofile_ARG;
+commands[129].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[129].optional_opt_args[1].opt = config_ARG;
+commands[129].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[129].optional_opt_args[2].opt = debug_ARG;
+commands[129].optional_opt_args[3].opt = driverloaded_ARG;
+commands[129].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[129].optional_opt_args[4].opt = help_ARG;
+commands[129].optional_opt_args[5].opt = profile_ARG;
+commands[129].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[129].optional_opt_args[6].opt = quiet_ARG;
+commands[129].optional_opt_args[7].opt = verbose_ARG;
+commands[129].optional_opt_args[8].opt = version_ARG;
+commands[129].optional_opt_args[9].opt = yes_ARG;
+commands[129].optional_opt_args[10].opt = autobackup_ARG;
+commands[129].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[129].optional_opt_args[11].opt = list_ARG;
+commands[129].optional_opt_args[12].opt = test_ARG;
+
+commands[130].name = "vgmknodes";
+commands[130].fn = vgmknodes;
+commands[130].ro_count = 0;
+commands[130].rp_count = 0;
+commands[130].oo_count = 13;
+commands[130].op_count = 1;
+commands[130].desc = "";
+commands[130].usage = "vgmknodes"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --ignorelockingfailure, --refresh, --reportformat String ]"
+" [ VG|LV|Tag ... ]";
+commands[130].optional_opt_args[0].opt = commandprofile_ARG;
+commands[130].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[130].optional_opt_args[1].opt = config_ARG;
+commands[130].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[130].optional_opt_args[2].opt = debug_ARG;
+commands[130].optional_opt_args[3].opt = driverloaded_ARG;
+commands[130].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[130].optional_opt_args[4].opt = help_ARG;
+commands[130].optional_opt_args[5].opt = profile_ARG;
+commands[130].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[130].optional_opt_args[6].opt = quiet_ARG;
+commands[130].optional_opt_args[7].opt = verbose_ARG;
+commands[130].optional_opt_args[8].opt = version_ARG;
+commands[130].optional_opt_args[9].opt = yes_ARG;
+commands[130].optional_opt_args[10].opt = ignorelockingfailure_ARG;
+commands[130].optional_opt_args[11].opt = refresh_ARG;
+commands[130].optional_opt_args[12].opt = reportformat_ARG;
+commands[130].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[130].optional_pos_args[0].pos = 1;
+commands[130].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_NAME_LV|ARG_DEF_TYPE_TAG;
+commands[130].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[131].name = "vgreduce";
+commands[131].fn = vgreduce;
+commands[131].ro_count = 0;
+commands[131].rp_count = 2;
+commands[131].oo_count = 14;
+commands[131].op_count = 0;
+commands[131].desc = "";
+commands[131].usage = "vgreduce VG PV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --force, --reportformat String, --test ]";
+commands[131].required_pos_args[0].pos = 1;
+commands[131].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[131].required_pos_args[1].pos = 2;
+commands[131].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[131].required_pos_args[1].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[131].optional_opt_args[0].opt = commandprofile_ARG;
+commands[131].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[131].optional_opt_args[1].opt = config_ARG;
+commands[131].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[131].optional_opt_args[2].opt = debug_ARG;
+commands[131].optional_opt_args[3].opt = driverloaded_ARG;
+commands[131].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[131].optional_opt_args[4].opt = help_ARG;
+commands[131].optional_opt_args[5].opt = profile_ARG;
+commands[131].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[131].optional_opt_args[6].opt = quiet_ARG;
+commands[131].optional_opt_args[7].opt = verbose_ARG;
+commands[131].optional_opt_args[8].opt = version_ARG;
+commands[131].optional_opt_args[9].opt = yes_ARG;
+commands[131].optional_opt_args[10].opt = autobackup_ARG;
+commands[131].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[131].optional_opt_args[11].opt = force_ARG;
+commands[131].optional_opt_args[12].opt = reportformat_ARG;
+commands[131].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[131].optional_opt_args[13].opt = test_ARG;
+
+commands[132].name = "vgreduce";
+commands[132].fn = vgreduce;
+commands[132].ro_count = 1;
+commands[132].rp_count = 1;
+commands[132].oo_count = 14;
+commands[132].op_count = 0;
+commands[132].desc = "";
+commands[132].usage = "vgreduce --all VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --force, --reportformat String, --test ]";
+commands[132].required_opt_args[0].opt = all_ARG;
+commands[132].required_pos_args[0].pos = 1;
+commands[132].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[132].optional_opt_args[0].opt = commandprofile_ARG;
+commands[132].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[132].optional_opt_args[1].opt = config_ARG;
+commands[132].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[132].optional_opt_args[2].opt = debug_ARG;
+commands[132].optional_opt_args[3].opt = driverloaded_ARG;
+commands[132].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[132].optional_opt_args[4].opt = help_ARG;
+commands[132].optional_opt_args[5].opt = profile_ARG;
+commands[132].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[132].optional_opt_args[6].opt = quiet_ARG;
+commands[132].optional_opt_args[7].opt = verbose_ARG;
+commands[132].optional_opt_args[8].opt = version_ARG;
+commands[132].optional_opt_args[9].opt = yes_ARG;
+commands[132].optional_opt_args[10].opt = autobackup_ARG;
+commands[132].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[132].optional_opt_args[11].opt = force_ARG;
+commands[132].optional_opt_args[12].opt = reportformat_ARG;
+commands[132].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[132].optional_opt_args[13].opt = test_ARG;
+
+commands[133].name = "vgreduce";
+commands[133].fn = vgreduce;
+commands[133].ro_count = 1;
+commands[133].rp_count = 1;
+commands[133].oo_count = 15;
+commands[133].op_count = 0;
+commands[133].desc = "";
+commands[133].usage = "vgreduce --removemissing VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --mirrorsonly, --autobackup Bool, --force, --reportformat String, --test ]";
+commands[133].required_opt_args[0].opt = removemissing_ARG;
+commands[133].required_pos_args[0].pos = 1;
+commands[133].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[133].optional_opt_args[0].opt = commandprofile_ARG;
+commands[133].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[133].optional_opt_args[1].opt = config_ARG;
+commands[133].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[133].optional_opt_args[2].opt = debug_ARG;
+commands[133].optional_opt_args[3].opt = driverloaded_ARG;
+commands[133].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[133].optional_opt_args[4].opt = help_ARG;
+commands[133].optional_opt_args[5].opt = profile_ARG;
+commands[133].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[133].optional_opt_args[6].opt = quiet_ARG;
+commands[133].optional_opt_args[7].opt = verbose_ARG;
+commands[133].optional_opt_args[8].opt = version_ARG;
+commands[133].optional_opt_args[9].opt = yes_ARG;
+commands[133].optional_opt_args[10].opt = mirrorsonly_ARG;
+commands[133].optional_opt_args[11].opt = autobackup_ARG;
+commands[133].optional_opt_args[11].def.types = ARG_DEF_TYPE_BOOL;
+commands[133].optional_opt_args[12].opt = force_ARG;
+commands[133].optional_opt_args[13].opt = reportformat_ARG;
+commands[133].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[133].optional_opt_args[14].opt = test_ARG;
+
+commands[134].name = "vgremove";
+commands[134].fn = vgremove;
+commands[134].ro_count = 0;
+commands[134].rp_count = 1;
+commands[134].oo_count = 15;
+commands[134].op_count = 0;
+commands[134].desc = "";
+commands[134].usage = "vgremove VG|Tag|Select ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --force, --noudevsync, --reportformat String, --select String, --test ]";
+commands[134].required_pos_args[0].pos = 1;
+commands[134].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG|ARG_DEF_TYPE_SELECT;
+commands[134].required_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[134].optional_opt_args[0].opt = commandprofile_ARG;
+commands[134].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[134].optional_opt_args[1].opt = config_ARG;
+commands[134].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[134].optional_opt_args[2].opt = debug_ARG;
+commands[134].optional_opt_args[3].opt = driverloaded_ARG;
+commands[134].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[134].optional_opt_args[4].opt = help_ARG;
+commands[134].optional_opt_args[5].opt = profile_ARG;
+commands[134].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[134].optional_opt_args[6].opt = quiet_ARG;
+commands[134].optional_opt_args[7].opt = verbose_ARG;
+commands[134].optional_opt_args[8].opt = version_ARG;
+commands[134].optional_opt_args[9].opt = yes_ARG;
+commands[134].optional_opt_args[10].opt = force_ARG;
+commands[134].optional_opt_args[11].opt = noudevsync_ARG;
+commands[134].optional_opt_args[12].opt = reportformat_ARG;
+commands[134].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[134].optional_opt_args[13].opt = select_ARG;
+commands[134].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[134].optional_opt_args[14].opt = test_ARG;
+
+commands[135].name = "vgrename";
+commands[135].fn = vgrename;
+commands[135].ro_count = 0;
+commands[135].rp_count = 2;
+commands[135].oo_count = 14;
+commands[135].op_count = 0;
+commands[135].desc = "";
+commands[135].usage = "vgrename VG VG_new"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --force, --reportformat String, --test ]";
+commands[135].required_pos_args[0].pos = 1;
+commands[135].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[135].required_pos_args[1].pos = 2;
+commands[135].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[135].required_pos_args[1].def.flags = ARG_DEF_FLAG_NEW;
+commands[135].optional_opt_args[0].opt = commandprofile_ARG;
+commands[135].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[135].optional_opt_args[1].opt = config_ARG;
+commands[135].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[135].optional_opt_args[2].opt = debug_ARG;
+commands[135].optional_opt_args[3].opt = driverloaded_ARG;
+commands[135].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[135].optional_opt_args[4].opt = help_ARG;
+commands[135].optional_opt_args[5].opt = profile_ARG;
+commands[135].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[135].optional_opt_args[6].opt = quiet_ARG;
+commands[135].optional_opt_args[7].opt = verbose_ARG;
+commands[135].optional_opt_args[8].opt = version_ARG;
+commands[135].optional_opt_args[9].opt = yes_ARG;
+commands[135].optional_opt_args[10].opt = autobackup_ARG;
+commands[135].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[135].optional_opt_args[11].opt = force_ARG;
+commands[135].optional_opt_args[12].opt = reportformat_ARG;
+commands[135].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[135].optional_opt_args[13].opt = test_ARG;
+
+commands[136].name = "vgrename";
+commands[136].fn = vgrename;
+commands[136].ro_count = 0;
+commands[136].rp_count = 2;
+commands[136].oo_count = 14;
+commands[136].op_count = 0;
+commands[136].desc = "";
+commands[136].usage = "vgrename String VG_new"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --force, --reportformat String, --test ]";
+commands[136].required_pos_args[0].pos = 1;
+commands[136].required_pos_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[136].required_pos_args[1].pos = 2;
+commands[136].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[136].required_pos_args[1].def.flags = ARG_DEF_FLAG_NEW;
+commands[136].optional_opt_args[0].opt = commandprofile_ARG;
+commands[136].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[136].optional_opt_args[1].opt = config_ARG;
+commands[136].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[136].optional_opt_args[2].opt = debug_ARG;
+commands[136].optional_opt_args[3].opt = driverloaded_ARG;
+commands[136].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[136].optional_opt_args[4].opt = help_ARG;
+commands[136].optional_opt_args[5].opt = profile_ARG;
+commands[136].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[136].optional_opt_args[6].opt = quiet_ARG;
+commands[136].optional_opt_args[7].opt = verbose_ARG;
+commands[136].optional_opt_args[8].opt = version_ARG;
+commands[136].optional_opt_args[9].opt = yes_ARG;
+commands[136].optional_opt_args[10].opt = autobackup_ARG;
+commands[136].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[136].optional_opt_args[11].opt = force_ARG;
+commands[136].optional_opt_args[12].opt = reportformat_ARG;
+commands[136].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[136].optional_opt_args[13].opt = test_ARG;
+
+commands[137].name = "vgs";
+commands[137].fn = vgs;
+commands[137].ro_count = 0;
+commands[137].rp_count = 0;
+commands[137].oo_count = 35;
+commands[137].op_count = 1;
+commands[137].desc = "";
+commands[137].usage = "vgs"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --aligned, --all, --binary, --configreport String, --foreign, --ignorelockingfailure, --ignoreskippedcluster, --logonly, --nameprefixes, --noheadings, --nolocking, --nosuffix, --options String, --partial, --readonly, --reportformat String, --rows, --select String, --separator String, --shared, --sort String, --trustcache, --unbuffered, --units String, --unquoted ]"
+" [ VG|Tag ... ]";
+commands[137].optional_opt_args[0].opt = commandprofile_ARG;
+commands[137].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[137].optional_opt_args[1].opt = config_ARG;
+commands[137].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[137].optional_opt_args[2].opt = debug_ARG;
+commands[137].optional_opt_args[3].opt = driverloaded_ARG;
+commands[137].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[137].optional_opt_args[4].opt = help_ARG;
+commands[137].optional_opt_args[5].opt = profile_ARG;
+commands[137].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[137].optional_opt_args[6].opt = quiet_ARG;
+commands[137].optional_opt_args[7].opt = verbose_ARG;
+commands[137].optional_opt_args[8].opt = version_ARG;
+commands[137].optional_opt_args[9].opt = yes_ARG;
+commands[137].optional_opt_args[10].opt = aligned_ARG;
+commands[137].optional_opt_args[11].opt = all_ARG;
+commands[137].optional_opt_args[12].opt = binary_ARG;
+commands[137].optional_opt_args[13].opt = configreport_ARG;
+commands[137].optional_opt_args[13].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[137].optional_opt_args[14].opt = foreign_ARG;
+commands[137].optional_opt_args[15].opt = ignorelockingfailure_ARG;
+commands[137].optional_opt_args[16].opt = ignoreskippedcluster_ARG;
+commands[137].optional_opt_args[17].opt = logonly_ARG;
+commands[137].optional_opt_args[18].opt = nameprefixes_ARG;
+commands[137].optional_opt_args[19].opt = noheadings_ARG;
+commands[137].optional_opt_args[20].opt = nolocking_ARG;
+commands[137].optional_opt_args[21].opt = nosuffix_ARG;
+commands[137].optional_opt_args[22].opt = options_ARG;
+commands[137].optional_opt_args[22].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[137].optional_opt_args[23].opt = partial_ARG;
+commands[137].optional_opt_args[24].opt = readonly_ARG;
+commands[137].optional_opt_args[25].opt = reportformat_ARG;
+commands[137].optional_opt_args[25].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[137].optional_opt_args[26].opt = rows_ARG;
+commands[137].optional_opt_args[27].opt = select_ARG;
+commands[137].optional_opt_args[27].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[137].optional_opt_args[28].opt = separator_ARG;
+commands[137].optional_opt_args[28].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[137].optional_opt_args[29].opt = shared_ARG;
+commands[137].optional_opt_args[30].opt = sort_ARG;
+commands[137].optional_opt_args[30].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[137].optional_opt_args[31].opt = trustcache_ARG;
+commands[137].optional_opt_args[32].opt = unbuffered_ARG;
+commands[137].optional_opt_args[33].opt = units_ARG;
+commands[137].optional_opt_args[33].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[137].optional_opt_args[34].opt = unquoted_ARG;
+commands[137].optional_pos_args[0].pos = 1;
+commands[137].optional_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG|ARG_DEF_TYPE_TAG;
+commands[137].optional_pos_args[0].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+
+commands[138].name = "vgscan";
+commands[138].fn = vgscan;
+commands[138].ro_count = 0;
+commands[138].rp_count = 0;
+commands[138].oo_count = 16;
+commands[138].op_count = 0;
+commands[138].desc = "";
+commands[138].usage = "vgscan"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --cache, --ignorelockingfailure, --mknodes, --notifydbus, --partial, --reportformat String ]";
+commands[138].optional_opt_args[0].opt = commandprofile_ARG;
+commands[138].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[138].optional_opt_args[1].opt = config_ARG;
+commands[138].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[138].optional_opt_args[2].opt = debug_ARG;
+commands[138].optional_opt_args[3].opt = driverloaded_ARG;
+commands[138].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[138].optional_opt_args[4].opt = help_ARG;
+commands[138].optional_opt_args[5].opt = profile_ARG;
+commands[138].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[138].optional_opt_args[6].opt = quiet_ARG;
+commands[138].optional_opt_args[7].opt = verbose_ARG;
+commands[138].optional_opt_args[8].opt = version_ARG;
+commands[138].optional_opt_args[9].opt = yes_ARG;
+commands[138].optional_opt_args[10].opt = cache_long_ARG;
+commands[138].optional_opt_args[11].opt = ignorelockingfailure_ARG;
+commands[138].optional_opt_args[12].opt = mknodes_ARG;
+commands[138].optional_opt_args[13].opt = notifydbus_ARG;
+commands[138].optional_opt_args[14].opt = partial_ARG;
+commands[138].optional_opt_args[15].opt = reportformat_ARG;
+commands[138].optional_opt_args[15].def.types = ARG_DEF_TYPE_STR_ANY;
+
+commands[139].name = "vgsplit";
+commands[139].fn = vgsplit;
+commands[139].ro_count = 0;
+commands[139].rp_count = 3;
+commands[139].oo_count = 12;
+commands[139].op_count = 0;
+commands[139].desc = "";
+commands[139].usage = "vgsplit VG VG PV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --test ]";
+commands[139].required_pos_args[0].pos = 1;
+commands[139].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[139].required_pos_args[1].pos = 2;
+commands[139].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[139].required_pos_args[2].pos = 3;
+commands[139].required_pos_args[2].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[139].required_pos_args[2].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[139].optional_opt_args[0].opt = commandprofile_ARG;
+commands[139].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[139].optional_opt_args[1].opt = config_ARG;
+commands[139].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[139].optional_opt_args[2].opt = debug_ARG;
+commands[139].optional_opt_args[3].opt = driverloaded_ARG;
+commands[139].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[139].optional_opt_args[4].opt = help_ARG;
+commands[139].optional_opt_args[5].opt = profile_ARG;
+commands[139].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[139].optional_opt_args[6].opt = quiet_ARG;
+commands[139].optional_opt_args[7].opt = verbose_ARG;
+commands[139].optional_opt_args[8].opt = version_ARG;
+commands[139].optional_opt_args[9].opt = yes_ARG;
+commands[139].optional_opt_args[10].opt = autobackup_ARG;
+commands[139].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[139].optional_opt_args[11].opt = test_ARG;
+
+commands[140].name = "vgsplit";
+commands[140].fn = vgsplit;
+commands[140].ro_count = 1;
+commands[140].rp_count = 2;
+commands[140].oo_count = 12;
+commands[140].op_count = 0;
+commands[140].desc = "";
+commands[140].usage = "vgsplit --name LV VG VG"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --test ]";
+commands[140].required_opt_args[0].opt = name_ARG;
+commands[140].required_opt_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[140].required_pos_args[0].pos = 1;
+commands[140].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[140].required_pos_args[1].pos = 2;
+commands[140].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[140].optional_opt_args[0].opt = commandprofile_ARG;
+commands[140].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[140].optional_opt_args[1].opt = config_ARG;
+commands[140].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[140].optional_opt_args[2].opt = debug_ARG;
+commands[140].optional_opt_args[3].opt = driverloaded_ARG;
+commands[140].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[140].optional_opt_args[4].opt = help_ARG;
+commands[140].optional_opt_args[5].opt = profile_ARG;
+commands[140].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[140].optional_opt_args[6].opt = quiet_ARG;
+commands[140].optional_opt_args[7].opt = verbose_ARG;
+commands[140].optional_opt_args[8].opt = version_ARG;
+commands[140].optional_opt_args[9].opt = yes_ARG;
+commands[140].optional_opt_args[10].opt = autobackup_ARG;
+commands[140].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[140].optional_opt_args[11].opt = test_ARG;
+
+commands[141].name = "vgsplit";
+commands[141].fn = vgsplit;
+commands[141].ro_count = 0;
+commands[141].rp_count = 3;
+commands[141].oo_count = 18;
+commands[141].op_count = 0;
+commands[141].desc = "";
+commands[141].usage = "vgsplit VG VG_new PV ..."
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --test, --alloc String, --clustered Bool, --maxlogicalvolumes Number, --maxphysicalvolumes Number, --metadatatype String, --vgmetadatacopies Number|String ]";
+commands[141].required_pos_args[0].pos = 1;
+commands[141].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[141].required_pos_args[1].pos = 2;
+commands[141].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[141].required_pos_args[1].def.flags = ARG_DEF_FLAG_NEW;
+commands[141].required_pos_args[2].pos = 3;
+commands[141].required_pos_args[2].def.types = ARG_DEF_TYPE_NAME_PV;
+commands[141].required_pos_args[2].def.flags = ARG_DEF_FLAG_MAY_REPEAT;
+commands[141].optional_opt_args[0].opt = commandprofile_ARG;
+commands[141].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[141].optional_opt_args[1].opt = config_ARG;
+commands[141].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[141].optional_opt_args[2].opt = debug_ARG;
+commands[141].optional_opt_args[3].opt = driverloaded_ARG;
+commands[141].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[141].optional_opt_args[4].opt = help_ARG;
+commands[141].optional_opt_args[5].opt = profile_ARG;
+commands[141].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[141].optional_opt_args[6].opt = quiet_ARG;
+commands[141].optional_opt_args[7].opt = verbose_ARG;
+commands[141].optional_opt_args[8].opt = version_ARG;
+commands[141].optional_opt_args[9].opt = yes_ARG;
+commands[141].optional_opt_args[10].opt = autobackup_ARG;
+commands[141].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[141].optional_opt_args[11].opt = test_ARG;
+commands[141].optional_opt_args[12].opt = alloc_ARG;
+commands[141].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[141].optional_opt_args[13].opt = clustered_ARG;
+commands[141].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[141].optional_opt_args[14].opt = maxlogicalvolumes_ARG;
+commands[141].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[141].optional_opt_args[15].opt = maxphysicalvolumes_ARG;
+commands[141].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[141].optional_opt_args[16].opt = metadatatype_ARG;
+commands[141].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[141].optional_opt_args[17].opt = vgmetadatacopies_ARG;
+commands[141].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+
+commands[142].name = "vgsplit";
+commands[142].fn = vgsplit;
+commands[142].ro_count = 1;
+commands[142].rp_count = 2;
+commands[142].oo_count = 18;
+commands[142].op_count = 0;
+commands[142].desc = "";
+commands[142].usage = "vgsplit --name LV VG VG_new"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes, --autobackup Bool, --test, --alloc String, --clustered Bool, --maxlogicalvolumes Number, --maxphysicalvolumes Number, --metadatatype String, --vgmetadatacopies Number|String ]";
+commands[142].required_opt_args[0].opt = name_ARG;
+commands[142].required_opt_args[0].def.types = ARG_DEF_TYPE_NAME_LV;
+commands[142].required_pos_args[0].pos = 1;
+commands[142].required_pos_args[0].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[142].required_pos_args[1].pos = 2;
+commands[142].required_pos_args[1].def.types = ARG_DEF_TYPE_NAME_VG;
+commands[142].required_pos_args[1].def.flags = ARG_DEF_FLAG_NEW;
+commands[142].optional_opt_args[0].opt = commandprofile_ARG;
+commands[142].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[142].optional_opt_args[1].opt = config_ARG;
+commands[142].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[142].optional_opt_args[2].opt = debug_ARG;
+commands[142].optional_opt_args[3].opt = driverloaded_ARG;
+commands[142].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[142].optional_opt_args[4].opt = help_ARG;
+commands[142].optional_opt_args[5].opt = profile_ARG;
+commands[142].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[142].optional_opt_args[6].opt = quiet_ARG;
+commands[142].optional_opt_args[7].opt = verbose_ARG;
+commands[142].optional_opt_args[8].opt = version_ARG;
+commands[142].optional_opt_args[9].opt = yes_ARG;
+commands[142].optional_opt_args[10].opt = autobackup_ARG;
+commands[142].optional_opt_args[10].def.types = ARG_DEF_TYPE_BOOL;
+commands[142].optional_opt_args[11].opt = test_ARG;
+commands[142].optional_opt_args[12].opt = alloc_ARG;
+commands[142].optional_opt_args[12].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[142].optional_opt_args[13].opt = clustered_ARG;
+commands[142].optional_opt_args[13].def.types = ARG_DEF_TYPE_BOOL;
+commands[142].optional_opt_args[14].opt = maxlogicalvolumes_ARG;
+commands[142].optional_opt_args[14].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[142].optional_opt_args[15].opt = maxphysicalvolumes_ARG;
+commands[142].optional_opt_args[15].def.types = ARG_DEF_TYPE_NUM_ANY;
+commands[142].optional_opt_args[16].opt = metadatatype_ARG;
+commands[142].optional_opt_args[16].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[142].optional_opt_args[17].opt = vgmetadatacopies_ARG;
+commands[142].optional_opt_args[17].def.types = ARG_DEF_TYPE_NUM_ANY|ARG_DEF_TYPE_STR_ANY;
+
+commands[143].name = "version";
+commands[143].fn = version;
+commands[143].ro_count = 0;
+commands[143].rp_count = 0;
+commands[143].oo_count = 10;
+commands[143].op_count = 0;
+commands[143].desc = "";
+commands[143].usage = "version"
+" [ --commandprofile String, --config String, --debug, --driverloaded Bool, --help, --profile String, --quiet, --verbose, --version, --yes ]";
+commands[143].optional_opt_args[0].opt = commandprofile_ARG;
+commands[143].optional_opt_args[0].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[143].optional_opt_args[1].opt = config_ARG;
+commands[143].optional_opt_args[1].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[143].optional_opt_args[2].opt = debug_ARG;
+commands[143].optional_opt_args[3].opt = driverloaded_ARG;
+commands[143].optional_opt_args[3].def.types = ARG_DEF_TYPE_BOOL;
+commands[143].optional_opt_args[4].opt = help_ARG;
+commands[143].optional_opt_args[5].opt = profile_ARG;
+commands[143].optional_opt_args[5].def.types = ARG_DEF_TYPE_STR_ANY;
+commands[143].optional_opt_args[6].opt = quiet_ARG;
+commands[143].optional_opt_args[7].opt = verbose_ARG;
+commands[143].optional_opt_args[8].opt = version_ARG;
+commands[143].optional_opt_args[9].opt = yes_ARG;
+
diff --git a/tools/command.h b/tools/command.h
new file mode 100644
index 000000000..f7b84d04c
--- /dev/null
+++ b/tools/command.h
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
+ * Copyright (C) 2004-2015 Red Hat, Inc. All rights reserved.
+ *
+ * This file is part of LVM2.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License v.2.1.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _LVM_COMMAND_H
+#define _LVM_COMMAND_H
+
+struct cmd_context;
+
+/* command functions */
+typedef int (*command_fn) (struct cmd_context * cmd, int argc, char **argv);
+
+/*
+ * Command defintion
+ *
+ * A command is defined in terms of a command name,
+ * required options (+args), optional options (+args),
+ * required positional args, optional positional args.
+ *
+ * A positional arg always has non-zero pos_arg.def.types.
+ * The first positional arg has pos_arg.pos of 1.
+ */
+
+/* Number of string constants accepted after an option. */
+#define MAX_STR_SET 16
+
+/* arg_def flags */
+#define ARG_DEF_FLAG_NEW 1
+#define ARG_DEF_FLAG_MAY_REPEAT 2
+
+/* arg_def types, can be multiple */
+enum {
+ ARG_DEF_TYPE_NONE = 0,
+ ARG_DEF_TYPE_BOOL = 1 << 0,
+ ARG_DEF_TYPE_NUM_ANY = 1 << 1,
+ ARG_DEF_TYPE_STR_ANY = 1 << 2,
+ ARG_DEF_TYPE_NUM_CONST = 1 << 3,
+ ARG_DEF_TYPE_STR_CONST = 1 << 4,
+ ARG_DEF_TYPE_STR_SET = 1 << 5,
+ ARG_DEF_TYPE_NAME_ANY = 1 << 6,
+ ARG_DEF_TYPE_NAME_PV = 1 << 7,
+ ARG_DEF_TYPE_NAME_VG = 1 << 8,
+ ARG_DEF_TYPE_NAME_LV = 1 << 9,
+ ARG_DEF_TYPE_TAG = 1 << 10,
+ ARG_DEF_TYPE_SELECT = 1 << 11,
+};
+
+/* arg_def lv_types, can be multiple */
+enum {
+ ARG_DEF_LV_ANY = 0,
+ ARG_DEF_LV_LINEAR = 1 << 0,
+ ARG_DEF_LV_STRIPED = 1 << 1,
+ ARG_DEF_LV_SNAPSHOT = 1 << 2,
+ ARG_DEF_LV_MIRROR = 1 << 3,
+ ARG_DEF_LV_RAID = 1 << 4,
+ ARG_DEF_LV_RAID0 = 1 << 5,
+ ARG_DEF_LV_RAID1 = 1 << 6,
+ ARG_DEF_LV_RAID4 = 1 << 7,
+ ARG_DEF_LV_RAID5 = 1 << 8,
+ ARG_DEF_LV_RAID6 = 1 << 9,
+ ARG_DEF_LV_RAID10 = 1 << 10,
+ ARG_DEF_LV_THIN = 1 << 11,
+ ARG_DEF_LV_THINPOOL = 1 << 12,
+ ARG_DEF_LV_CACHE = 1 << 13,
+ ARG_DEF_LV_CACHEPOOL = 1 << 14,
+};
+
+/* Description a value that follows an option or exists in a position. */
+
+struct arg_def {
+ uint32_t types; /* ARG_DEF_TYPE_, can be multiple */
+ uint32_t lv_types; /* ARG_DEF_LV_, can be multiple */
+ uint64_t num; /* a literal number for ARG_DEF_TYPE_NUM_CONST */
+ const char *str; /* a literal string for ARG_DEF_TYPE_STR_CONST */
+ const char *str_set[MAX_STR_SET]; /* literal strings for ARG_DEF_TYPE_STR_SET */
+ uint32_t flags; /* ARG_DEF_FLAG_ */
+};
+
+/* Description of an option and the value that follows it. */
+
+struct opt_arg {
+ int opt; /* option, e.g. foo_ARG */
+ struct arg_def def; /* defines accepted values */
+};
+
+/* Description of a position and the value that exists there. */
+
+struct pos_arg {
+ int pos; /* position, e.g. first is 1 */
+ struct arg_def def; /* defines accepted values */
+};
+
+/*
+ * CMD_RO_ARGS needs to accomodate a list of options,
+ * of which one is required after which the rest are
+ * optional.
+ */
+#define CMD_RO_ARGS 64 /* required opt args */
+#define CMD_OO_ARGS 150 /* optional opt args */
+#define CMD_RP_ARGS 8 /* required positional args */
+#define CMD_OP_ARGS 8 /* optional positional args */
+
+/*
+ * one or more from required_opt_args is required,
+ * then the rest are optional.
+ */
+#define CMD_FLAG_ONE_REQUIRED_OPT 1
+
+/* a register of the lvm commands */
+struct command {
+ const char *name;
+ const char *desc; /* specific command description from command-lines.h */
+ const char *usage;
+
+ struct command_name *cname;
+ command_fn fn;
+
+ unsigned int flags; /* copied from command_name.flags from commands.h */
+
+ unsigned int cmd_flags; /* CMD_FLAG_ */
+
+ /* definitions of opt/pos args */
+
+ /* required args following an --opt */
+ struct opt_arg required_opt_args[CMD_RO_ARGS];
+
+ /* optional args following an --opt */
+ struct opt_arg optional_opt_args[CMD_OO_ARGS];
+
+ /* required positional args */
+ struct pos_arg required_pos_args[CMD_RP_ARGS];
+
+ /* optional positional args */
+ struct pos_arg optional_pos_args[CMD_OP_ARGS];
+
+ int ro_count;
+ int oo_count;
+ int rp_count;
+ int op_count;
+
+ /* used for processing current position */
+ int pos_count;
+};
+
+struct command_name {
+ const char *name;
+ const char *desc; /* general command description from commands.h */
+ unsigned int flags;
+
+ /* union of {required,optional}_opt_args for all commands with this name */
+ int valid_args[ARG_COUNT];
+ int num_args;
+};
+
+#endif
diff --git a/tools/commands.h b/tools/commands.h
index baf89b15f..c66320794 100644
--- a/tools/commands.h
+++ b/tools/commands.h
@@ -13,1546 +13,232 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-/*********** Replace with script?
-xx(e2fsadm,
- "Resize logical volume and ext2 filesystem",
- "e2fsadm "
- "[-d|--debug] " "[-h|--help] " "[-n|--nofsck]\n"
- "\t{[-l|--extents] [+|-]LogicalExtentsNumber |\n"
- "\t [-L|--size] [+|-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tLogicalVolumePath\n",
-
- extents_ARG, size_ARG, nofsck_ARG, test_ARG)
-*********/
-
xx(config,
"Display and manipulate configuration information",
- PERMITTED_READ_ONLY | NO_METADATA_PROCESSING,
- "config\n"
- "\t[-f|--file filename]\n"
- "\t[--type {current|default|diff|full|list|missing|new|profilable|profilable-command|profilable-metadata}]\n"
- "\t[--atversion version]\n"
- "\t[--ignoreadvanced]\n"
- "\t[--ignoreunsupported]\n"
- "\t[--ignorelocal]\n"
- "\t[-l|--list]\n"
- "\t[--config ConfigurationString]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[--profile ProfileName]\n"
- "\t[--metadataprofile ProfileName]\n"
- "\t[--mergedconfig]\n"
- "\t[--sinceversion version]\n"
- "\t[--showdeprecated]\n"
- "\t[--showunsupported]\n"
- "\t[--validate]\n"
- "\t[--withsummary]\n"
- "\t[--withcomments]\n"
- "\t[--withspaces]\n"
- "\t[--unconfigured]\n"
- "\t[--withversions]\n"
- "\t[ConfigurationNode...]\n",
- atversion_ARG, configtype_ARG, file_ARG, ignoreadvanced_ARG,
- ignoreunsupported_ARG, ignorelocal_ARG, list_ARG, mergedconfig_ARG, metadataprofile_ARG,
- sinceversion_ARG, showdeprecated_ARG, showunsupported_ARG, validate_ARG, withsummary_ARG,
- withcomments_ARG, withspaces_ARG, unconfigured_ARG, withversions_ARG)
+ PERMITTED_READ_ONLY | NO_METADATA_PROCESSING)
xx(devtypes,
"Display recognised built-in block device types",
- PERMITTED_READ_ONLY | NO_METADATA_PROCESSING,
- "devtypes\n"
- "\t[--aligned]\n"
- "\t[--binary]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[--nameprefixes]\n"
- "\t[--noheadings]\n"
- "\t[--nosuffix]\n"
- "\t[-o|--options [+|-|#]Field[,Field]]\n"
- "\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[--rows]\n"
- "\t[-S|--select Selection]\n"
- "\t[--separator Separator]\n"
- "\t[--unbuffered]\n"
- "\t[--unquoted]\n"
- "\t[--version]\n",
-
- aligned_ARG, binary_ARG, nameprefixes_ARG, noheadings_ARG,
- nosuffix_ARG, options_ARG, reportformat_ARG, rows_ARG,
- select_ARG, separator_ARG, sort_ARG, unbuffered_ARG, unquoted_ARG)
+ PERMITTED_READ_ONLY | NO_METADATA_PROCESSING)
xx(dumpconfig,
"Display and manipulate configuration information",
- PERMITTED_READ_ONLY | NO_METADATA_PROCESSING,
- "dumpconfig\n"
- "\t[-f|--file filename]\n"
- "\t[--type {current|default|diff|full|list|missing|new|profilable|profilable-command|profilable-metadata}]\n"
- "\t[--atversion version]\n"
- "\t[--ignoreadvanced]\n"
- "\t[--ignoreunsupported]\n"
- "\t[--ignorelocal]\n"
- "\t[-l|--list]\n"
- "\t[--config ConfigurationString]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[--profile ProfileName]\n"
- "\t[--metadataprofile ProfileName]\n"
- "\t[--mergedconfig]\n"
- "\t[--sinceversion version]\n"
- "\t[--showdeprecated]\n"
- "\t[--showunsupported]\n"
- "\t[--validate]\n"
- "\t[--withsummary]\n"
- "\t[--withcomments]\n"
- "\t[--withspaces]\n"
- "\t[--unconfigured]\n"
- "\t[--withversions]\n"
- "\t[ConfigurationNode...]\n",
- atversion_ARG, configtype_ARG, file_ARG, ignoreadvanced_ARG,
- ignoreunsupported_ARG, ignorelocal_ARG, list_ARG, mergedconfig_ARG, metadataprofile_ARG,
- sinceversion_ARG, showdeprecated_ARG, showunsupported_ARG, validate_ARG, withsummary_ARG,
- withcomments_ARG, withspaces_ARG, unconfigured_ARG, withversions_ARG)
+ PERMITTED_READ_ONLY | NO_METADATA_PROCESSING)
xx(formats,
"List available metadata formats",
- PERMITTED_READ_ONLY | NO_METADATA_PROCESSING,
- "formats\n")
+ PERMITTED_READ_ONLY | NO_METADATA_PROCESSING)
xx(help,
"Display help for commands",
- PERMITTED_READ_ONLY | NO_METADATA_PROCESSING,
- "help <command>\n")
-
-/*********
-xx(lvactivate,
- "Activate logical volume on given partition(s)",
- "lvactivate "
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[-v|--verbose]\n"
- "Logical Volume(s)\n")
-***********/
+ PERMITTED_READ_ONLY | NO_METADATA_PROCESSING)
xx(fullreport,
"Display full report",
- PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH,
- "fullreport\n"
- "\t[--aligned]\n"
- "\t[--binary]\n"
- "\t[-a|--all]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[--configreport ReportName]\n"
- "\t[-d|--debug]\n"
- "\t[--foreign]\n"
- "\t[-h|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[--logonly]\n"
- "\t[--nameprefixes]\n"
- "\t[--noheadings]\n"
- "\t[--nosuffix]\n"
- "\t[-o|--options [+|-|#]Field[,Field]]\n"
- "\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
- "\t[-P|--partial]\n"
- "\t[--readonly]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[--rows]\n"
- "\t[-S|--select Selection]\n"
- "\t[--separator Separator]\n"
- "\t[--trustcache]\n"
- "\t[--unbuffered]\n"
- "\t[--units hHbBsSkKmMgGtTpPeE]\n"
- "\t[--unquoted]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[VolumeGroupName [VolumeGroupName...]]\n",
-
- aligned_ARG, all_ARG, binary_ARG, configreport_ARG, foreign_ARG,
- ignorelockingfailure_ARG, ignoreskippedcluster_ARG, logonly_ARG,
- nameprefixes_ARG, noheadings_ARG, nolocking_ARG, nosuffix_ARG,
- options_ARG, partial_ARG, readonly_ARG, reportformat_ARG, rows_ARG,
- select_ARG, separator_ARG, shared_ARG, sort_ARG, trustcache_ARG,
- unbuffered_ARG, units_ARG, unquoted_ARG)
+ PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH)
xx(lastlog,
"Display last command's log report",
- PERMITTED_READ_ONLY | NO_METADATA_PROCESSING,
- "log\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-S|--select Selection]\n",
-
- reportformat_ARG, select_ARG)
+ PERMITTED_READ_ONLY | NO_METADATA_PROCESSING)
xx(lvchange,
"Change the attributes of logical volume(s)",
- CACHE_VGMETADATA | PERMITTED_READ_ONLY,
- "lvchange\n"
- "\t[-A|--autobackup {y|n}]\n"
- "\t[-a|--activate [a][e|s|l]{y|n}]\n"
- "\t[--activationmode {complete|degraded|partial}"
- "\t[--addtag <Tag>]\n"
- "\t[--alloc <AllocationPolicy>]\n"
- "\t[--rebuild PhysicalVolume]\n"
- "\t[-C|--contiguous {y|n}]\n"
- "\t[--cachemode <CacheMode>]\n"
- "\t[--cachepolicy <policyname>] [--cachesettings <parameter=value>]\n"
- "\t[--commandprofile <ProfileName>]\n"
- "\t[-d|--debug]\n"
- "\t[--deltag <Tag>]\n"
- "\t[--detachprofile]\n"
- "\t[--errorwhenfull {y|n}]\n"
- "\t[-f|--force]\n"
- "\t[-h|--help]\n"
- "\t[--discards {ignore|nopassdown|passdown}]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--ignoremonitoring]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[-k|--setactivationskip {y|n}]\n"
- "\t[-K|--ignoreactivationskip]\n"
- "\t[--monitor {y|n}]\n"
- "\t[--poll {y|n}]\n"
- "\t[--noudevsync]\n"
- "\t[-M|--persistent {y|n}] [-j|--major <major>] [--minor <minor>]\n"
- "\t[--metadataprofile <ProfileName>]\n"
- "\t[-P|--partial]\n"
- "\t[-p|--permission {r|rw}]\n"
- "\t[--[raid]minrecoveryrate <Rate>]\n"
- "\t[--[raid]maxrecoveryrate <Rate>]\n"
- "\t[--[raid]syncaction {check|repair}\n"
- "\t[--[raid]writebehind <IOCount>]\n"
- "\t[--[raid]writemostly <PhysicalVolume>[:{t|n|y}]]\n"
- "\t[-r|--readahead <ReadAheadSectors>|auto|none]\n"
- "\t[--refresh]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[--resync]\n"
- "\t[-S|--select Selection]\n"
- "\t[--sysinit]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[-y|--yes]\n"
- "\t[-Z|--zero {y|n}]\n"
- "\t<LogicalVolume[Path]> [<LogicalVolume[Path]>...]\n",
-
- activationmode_ARG, addtag_ARG, alloc_ARG, autobackup_ARG, activate_ARG,
- available_ARG, cachemode_ARG, cachepolicy_ARG, cachesettings_ARG,
- contiguous_ARG, deltag_ARG,
- discards_ARG, detachprofile_ARG, errorwhenfull_ARG, force_ARG,
- ignorelockingfailure_ARG, ignoremonitoring_ARG, ignoreactivationskip_ARG,
- ignoreskippedcluster_ARG, major_ARG, metadataprofile_ARG, minor_ARG,
- monitor_ARG, minrecoveryrate_ARG, maxrecoveryrate_ARG, noudevsync_ARG,
- partial_ARG, permission_ARG, persistent_ARG, poll_ARG,
- raidrebuild_ARG, raidminrecoveryrate_ARG, raidmaxrecoveryrate_ARG,
- raidsyncaction_ARG, raidwritebehind_ARG, raidwritemostly_ARG, readahead_ARG,
- reportformat_ARG, rebuild_ARG, resync_ARG, refresh_ARG, select_ARG, setactivationskip_ARG,
- syncaction_ARG, sysinit_ARG, test_ARG, writebehind_ARG, writemostly_ARG, zero_ARG)
-
-#define COMMON_OPTS \
- "\t[--commandprofile <ProfileName>] [-d|--debug] [-h|-?|--help]\n" \
- "\t[--noudevsync] [-t|--test] [-v|--verbose] [--version] [-y|--yes]\n"
+ CACHE_VGMETADATA | PERMITTED_READ_ONLY)
xx(lvconvert,
"Change logical volume layout",
- 0,
- "lvconvert "
- "[-m|--mirrors <Mirrors> [--mirrorlog {disk|core|mirrored}|--corelog]]\n"
- "\t[--type <SegmentType>]\n"
- "\t[--rebuild PhysicalVolume]\n"
- "\t[--repair [--use-policies]]\n"
- "\t[--replace PhysicalVolume]\n"
- "\t[-R|--regionsize <MirrorLogRegionSize>]\n"
- "\t[--alloc <AllocationPolicy>]\n"
- "\t[-b|--background]\n"
- "\t[-f|--force]\n"
- "\t[-i|--interval <Seconds>]\n"
- "\t[--stripes <Stripes> [-I|--stripesize <StripeSize>]]\n"
- COMMON_OPTS
- "\tLogicalVolume[Path] [PhysicalVolume[Path]...]\n\n"
-
- "lvconvert "
- "[--splitmirrors <Images> --trackchanges]\n"
- "\t[--splitmirrors Images --name SplitLogicalVolumeName]\n"
- COMMON_OPTS
- "\tLogicalVolume[Path] [SplittablePhysicalVolume[Path]...]\n\n"
-
- "lvconvert "
- "--splitsnapshot\n"
- COMMON_OPTS
- "\tSnapshotLogicalVolume[Path]\n\n"
-
- "lvconvert "
- "--splitcache\n"
- COMMON_OPTS
- "\tCacheLogicalVolume[Path]\n\n"
-
- "lvconvert "
- "--split\n"
- "\t[--name SplitLogicalVolumeName]\n"
- COMMON_OPTS
- "\tSplitableLogicalVolume[Path]\n\n"
-
- "lvconvert "
- "--uncache\n"
- COMMON_OPTS
- "\tCacheLogicalVolume[Path]\n\n"
-
- "lvconvert "
- "[--type snapshot|-s|--snapshot]\n"
- "\t[-c|--chunksize <ChunkSize>]\n"
- "\t[-Z|--zero {y|n}]\n"
- COMMON_OPTS
- "\tOriginalLogicalVolume[Path] SnapshotLogicalVolume[Path]\n\n"
-
- "lvconvert "
- "--merge\n"
- "\t[-b|--background]\n"
- "\t[-i|--interval <Seconds>]\n"
- COMMON_OPTS
- "\tLogicalVolume[Path]\n\n"
-
- "lvconvert "
- "[--type thin[-pool]|-T|--thin]\n"
- "\t[--thinpool ThinPoolLogicalVolume[Path]]\n"
- "\t[--chunksize <ChunkSize>]\n"
- "\t[--discards {ignore|nopassdown|passdown}]\n"
- "\t[--poolmetadataspare {y|n}]\n"
- "\t[--poolmetadata ThinMetadataLogicalVolume[Path] |\n"
- "\t --poolmetadatasize <MetadataSize>]\n"
- "\t[-r|--readahead <ReadAheadSectors>|auto|none]\n"
- "\t[--stripes <Stripes> [-I|--stripesize <StripeSize>]]]\n"
- "\t[--originname NewExternalOriginVolumeName]]\n"
- "\t[-Z|--zero {y|n}]\n"
- COMMON_OPTS
- "\t[ExternalOrigin|ThinDataPool]LogicalVolume[Path] [PhysicalVolumePath...]\n\n"
-
- "lvconvert "
- "[--type cache[-pool]|-H|--cache]\n"
- "\t[--cachepool CacheDataLogicalVolume[Path]]\n"
- "\t[--cachemode <CacheMode>]\n"
- "\t[--cachepolicy <CachePolicy>]\n"
- "\t[--cachesettings <Key>=<Value>]\n"
- "\t[--chunksize <ChunkSize>]\n"
- "\t[--poolmetadata CacheMetadataLogicalVolume[Path] |\n"
- "\t --poolmetadatasize <MetadataSize>]\n"
- "\t[--poolmetadataspare {y|n}]]\n"
- COMMON_OPTS
- "\t[Cache|CacheDataPool]LogicalVolume[Path] [PhysicalVolumePath...]\n\n",
-
- alloc_ARG, background_ARG, cache_ARG, cachemode_ARG,
- cachepool_ARG, cachepolicy_ARG, cachesettings_ARG, chunksize_ARG,
- corelog_ARG, discards_ARG, force_ARG, interval_ARG, merge_ARG, mirrorlog_ARG,
- mirrors_ARG, name_ARG, noudevsync_ARG, originname_ARG, poolmetadata_ARG,
- poolmetadatasize_ARG, poolmetadataspare_ARG, readahead_ARG, regionsize_ARG,
- repair_ARG, replace_ARG, snapshot_ARG,
- split_ARG, splitcache_ARG, splitmirrors_ARG, splitsnapshot_ARG,
- stripes_long_ARG, stripesize_ARG, test_ARG, thin_ARG, thinpool_ARG,
- trackchanges_ARG, type_ARG, uncache_ARG, usepolicies_ARG, zero_ARG)
+ 0)
xx(lvcreate,
"Create a logical volume",
- 0,
- "lvcreate\n"
- "\t[-A|--autobackup {y|n}]\n"
- "\t[-a|--activate [a|e|l]{y|n}]\n"
- "\t[--addtag Tag]\n"
- "\t[--alloc AllocationPolicy]\n"
- "\t[-H|--cache\n"
- "\t [--cachemode {writeback|writethrough}]\n"
- "\t [--cachepolicy policy]\n"
- "\t [--cachesettings key=value]\n"
- "\t[--cachepool CachePoolLogicalVolume{Name|Path}]\n"
- "\t[-c|--chunksize ChunkSize]\n"
- "\t[-C|--contiguous {y|n}]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|-?|--help]\n"
- "\t[--errorwhenfull {y|n}]\n"
- "\t[--ignoremonitoring]\n"
- "\t[--monitor {y|n}]\n"
- "\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n"
- "\t[-k|--setactivationskip {y|n}]\n"
- "\t[-K|--ignoreactivationskip]\n"
- "\t{-l|--extents LogicalExtentsNumber[%{VG|PVS|FREE}] |\n"
- "\t -L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
- "\t[-M|--persistent {y|n}] [-j|--major major] [--minor minor]\n"
- "\t[--metadataprofile ProfileName]\n"
- "\t[-m|--mirrors Mirrors [--nosync]\n"
- "\t [{--mirrorlog {disk|core|mirrored}|--corelog}]]\n"
- "\t[-n|--name LogicalVolumeName]\n"
- "\t[--noudevsync]\n"
- "\t[-p|--permission {r|rw}]\n"
- //"\t[--pooldatasize DataSize[bBsSkKmMgGtTpPeE]]\n"
- "\t[--poolmetadatasize MetadataSize[bBsSkKmMgG]]\n"
- "\t[--poolmetadataspare {y|n}]]\n"
- "\t[--[raid]minrecoveryrate Rate]\n"
- "\t[--[raid]maxrecoveryrate Rate]\n"
- "\t[-r|--readahead {ReadAheadSectors|auto|none}]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-R|--regionsize MirrorLogRegionSize]\n"
- "\t[-T|--thin\n"
- "\t [--discards {ignore|nopassdown|passdown}]\n"
- "\t[--thinpool ThinPoolLogicalVolume{Name|Path}]\n"
- "\t[-t|--test]\n"
- "\t[--type VolumeType]\n"
- "\t[-v|--verbose]\n"
- "\t[-W|--wipesignatures {y|n}]\n"
- "\t[-Z|--zero {y|n}]\n"
- "\t[--version]\n"
- "\tVolumeGroupName [PhysicalVolumePath...]\n\n"
-
- "lvcreate\n"
- "\t{ {-s|--snapshot} OriginalLogicalVolume[Path] |\n"
- "\t [-s|--snapshot] VolumeGroupName[Path] -V|--virtualsize VirtualSize}\n"
- "\t {-H|--cache} VolumeGroupName[Path][/OriginalLogicalVolume]\n"
- "\t {-T|--thin} VolumeGroupName[Path][/PoolLogicalVolume]\n"
- "\t -V|--virtualsize VirtualSize}\n"
- "\t[-A|--autobackup {y|n}]\n"
- "\t[--addtag Tag]\n"
- "\t[--alloc AllocationPolicy]\n"
- "\t[--cachepolicy Policy] [--cachesettings Key=Value]\n"
- "\t[-c|--chunksize]\n"
- "\t[-C|--contiguous {y|n}]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[--discards {ignore|nopassdown|passdown}]\n"
- "\t[-h|-?|--help]\n"
- "\t[--ignoremonitoring]\n"
- "\t[--monitor {y|n}]\n"
- "\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n"
- "\t[-k|--setactivationskip {y|n}]\n"
- "\t[-K|--ignoreactivationskip]\n"
- "\t{-l|--extents LogicalExtentsNumber[%{VG|FREE|ORIGIN}] |\n"
- "\t -L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
- //"\t[--pooldatasize DataVolumeSize[bBsSkKmMgGtTpPeE]]\n"
- "\t[--poolmetadatasize MetadataVolumeSize[bBsSkKmMgG]]\n"
- "\t[-M|--persistent {y|n}] [-j|--major major] [--minor minor]\n"
- "\t[--metadataprofile ProfileName]\n"
- "\t[-n|--name LogicalVolumeName]\n"
- "\t[--noudevsync]\n"
- "\t[-p|--permission {r|rw}]\n"
- "\t[-r|--readahead ReadAheadSectors|auto|none]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-t|--test]\n"
- "\t[{--thinpool ThinPoolLogicalVolume[Path] |\n"
- "\t --cachepool CachePoolLogicalVolume[Path]}]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[PhysicalVolumePath...]\n\n",
-
- addtag_ARG, alloc_ARG, autobackup_ARG, activate_ARG, available_ARG,
- cache_ARG, cachemode_ARG, cachepool_ARG, cachepolicy_ARG, cachesettings_ARG,
- chunksize_ARG, contiguous_ARG, corelog_ARG, discards_ARG, errorwhenfull_ARG,
- extents_ARG, ignoreactivationskip_ARG, ignoremonitoring_ARG, major_ARG,
- metadataprofile_ARG, minor_ARG, mirrorlog_ARG, mirrors_ARG, monitor_ARG,
- minrecoveryrate_ARG, maxrecoveryrate_ARG, name_ARG, nosync_ARG,
- noudevsync_ARG, permission_ARG, persistent_ARG,
- //pooldatasize_ARG,
- poolmetadatasize_ARG, poolmetadataspare_ARG,
- raidminrecoveryrate_ARG, raidmaxrecoveryrate_ARG,
- readahead_ARG, regionsize_ARG, reportformat_ARG, setactivationskip_ARG,
- size_ARG, snapshot_ARG, stripes_ARG, stripesize_ARG, test_ARG, thin_ARG,
- thinpool_ARG, type_ARG, virtualoriginsize_ARG, virtualsize_ARG,
- wipesignatures_ARG, zero_ARG)
+ 0)
xx(lvdisplay,
"Display information about a logical volume",
- PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH,
- "lvdisplay\n"
- "\t[-a|--all]\n"
- "\t[-c|--colon]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[--foreign]\n"
- "\t[-h|--help]\n"
- "\t[-H|--history]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[-m|--maps]\n"
- "\t[--nosuffix]\n"
- "\t[-P|--partial]\n"
- "\t[--readonly]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-S|--select Selection]\n"
- "\t[--units hHbBsSkKmMgGtTpPeE]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[LogicalVolume[Path] [LogicalVolume[Path]...]]\n"
- "\n"
- "lvdisplay --columns|-C\n"
- "\t[--aligned]\n"
- "\t[-a|--all]\n"
- "\t[--binary]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[--configreport ReportName]\n"
- "\t[-d|--debug]\n"
- "\t[--foreign]\n"
- "\t[-h|--help]\n"
- "\t[-H|--history]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[--logonly]\n"
- "\t[--noheadings]\n"
- "\t[--nosuffix]\n"
- "\t[-o|--options [+|-|#]Field[,Field]]\n"
- "\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
- "\t[-S|--select Selection]\n"
- "\t[-P|--partial]\n"
- "\t[--readonly]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[--segments]\n"
- "\t[--separator Separator]\n"
- "\t[--unbuffered]\n"
- "\t[--units hHbBsSkKmMgGtTpPeE]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[LogicalVolume[Path] [LogicalVolume[Path]...]]\n",
-
- aligned_ARG, all_ARG, binary_ARG, colon_ARG, columns_ARG,
- configreport_ARG, foreign_ARG, history_ARG, ignorelockingfailure_ARG,
- ignoreskippedcluster_ARG, logonly_ARG, maps_ARG, noheadings_ARG,
- nosuffix_ARG, options_ARG, sort_ARG, partial_ARG, readonly_ARG,
- reportformat_ARG, segments_ARG, select_ARG, separator_ARG,
- shared_ARG, unbuffered_ARG, units_ARG)
+ PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH)
xx(lvextend,
"Add space to a logical volume",
- 0,
- "lvextend\n"
- "\t[-A|--autobackup y|n]\n"
- "\t[--alloc AllocationPolicy]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f|--force]\n"
- "\t[-h|--help]\n"
- "\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n"
- "\t{-l|--extents [+]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}] |\n"
- "\t -L|--size [+]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
- "\t --poolmetadatasize [+]MetadataVolumeSize[bBsSkKmMgG]}\n"
- "\t[-m|--mirrors Mirrors]\n"
- "\t[--nosync]\n"
- "\t[--use-policies]\n"
- "\t[-n|--nofsck]\n"
- "\t[--noudevsync]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-r|--resizefs]\n"
- "\t[-t|--test]\n"
- "\t[--type VolumeType]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tLogicalVolume[Path] [ PhysicalVolumePath... ]\n",
-
- alloc_ARG, autobackup_ARG, extents_ARG, force_ARG, mirrors_ARG,
- nofsck_ARG, nosync_ARG, noudevsync_ARG, poolmetadatasize_ARG,
- reportformat_ARG, resizefs_ARG, size_ARG, stripes_ARG, stripesize_ARG,
- test_ARG, type_ARG, usepolicies_ARG)
+ 0)
xx(lvmchange,
"With the device mapper, this is obsolete and does nothing.",
- 0,
- "lvmchange\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[-R|--reset]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n",
-
- reset_ARG)
+ 0)
xx(lvmconfig,
"Display and manipulate configuration information",
- PERMITTED_READ_ONLY | NO_METADATA_PROCESSING,
- "lvmconfig\n"
- "\t[-f|--file filename]\n"
- "\t[--type {current|default|diff|full|list|missing|new|profilable|profilable-command|profilable-metadata}]\n"
- "\t[--atversion version]\n"
- "\t[--ignoreadvanced]\n"
- "\t[--ignoreunsupported]\n"
- "\t[--ignorelocal]\n"
- "\t[-l|--list]\n"
- "\t[--config ConfigurationString]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[--profile ProfileName]\n"
- "\t[--metadataprofile ProfileName]\n"
- "\t[--mergedconfig]\n"
- "\t[--sinceversion version]\n"
- "\t[--showdeprecated]\n"
- "\t[--showunsupported]\n"
- "\t[--validate]\n"
- "\t[--withsummary]\n"
- "\t[--withcomments]\n"
- "\t[--withspaces]\n"
- "\t[--unconfigured]\n"
- "\t[--withversions]\n"
- "\t[ConfigurationNode...]\n",
- atversion_ARG, configtype_ARG, file_ARG, ignoreadvanced_ARG,
- ignoreunsupported_ARG, ignorelocal_ARG, list_ARG, mergedconfig_ARG, metadataprofile_ARG,
- sinceversion_ARG, showdeprecated_ARG, showunsupported_ARG, validate_ARG, withsummary_ARG,
- withcomments_ARG, withspaces_ARG, unconfigured_ARG, withversions_ARG)
+ PERMITTED_READ_ONLY | NO_METADATA_PROCESSING)
xx(lvmdiskscan,
"List devices that may be used as physical volumes",
- PERMITTED_READ_ONLY | ENABLE_ALL_DEVS,
- "lvmdiskscan\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[-l|--lvmpartition]\n"
- "\t[--readonly]\n"
- "\t[--version]\n",
-
- lvmpartition_ARG, readonly_ARG)
+ PERMITTED_READ_ONLY | ENABLE_ALL_DEVS)
xx(lvmsadc,
"Collect activity data",
- 0,
- "lvmsadc\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[LogFilePath]\n")
+ 0)
xx(lvmsar,
"Create activity report",
- 0,
- "lvmsar\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f|--full]\n"
- "\t[-h|--help]\n"
- "\t[-s|--stdin]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tLogFilePath\n",
-
- full_ARG, stdin_ARG)
+ 0)
xx(lvreduce,
"Reduce the size of a logical volume",
- 0,
- "lvreduce\n"
- "\t[-A|--autobackup y|n]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f|--force]\n"
- "\t[-h|--help]\n"
- "\t{-l|--extents [-]LogicalExtentsNumber[%{VG|LV|FREE|ORIGIN}] |\n"
- "\t -L|--size [-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
- "\t[-n|--nofsck]\n"
- "\t[--noudevsync]\n"
- "\t[-r|--resizefs]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[-y|--yes]\n"
- "\tLogicalVolume[Path]\n",
-
- autobackup_ARG, force_ARG, extents_ARG, nofsck_ARG, noudevsync_ARG,
- reportformat_ARG, resizefs_ARG, size_ARG, test_ARG)
+ 0)
xx(lvremove,
"Remove logical volume(s) from the system",
- ALL_VGS_IS_DEFAULT, /* all VGs only with --select */
- "lvremove\n"
- "\t[-A|--autobackup y|n]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f|--force]\n"
- "\t[-h|--help]\n"
- "\t[--nohistory]\n"
- "\t[--noudevsync]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-S|--select Selection]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tLogicalVolume[Path] [LogicalVolume[Path]...]\n",
-
- autobackup_ARG, force_ARG, nohistory_ARG, noudevsync_ARG,
- reportformat_ARG, select_ARG, test_ARG)
+ ALL_VGS_IS_DEFAULT) /* all VGs only with --select */
xx(lvrename,
"Rename a logical volume",
- 0,
- "lvrename\n"
- "\t[-A|--autobackup {y|n}]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|-?|--help]\n"
- "\t[--noudevsync]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t{ OldLogicalVolumePath NewLogicalVolumePath |\n"
- "\t VolumeGroupName OldLogicalVolumeName NewLogicalVolumeName }\n",
-
- autobackup_ARG, noudevsync_ARG, reportformat_ARG, test_ARG)
+ 0)
xx(lvresize,
"Resize a logical volume",
- 0,
- "lvresize\n"
- "\t[-A|--autobackup y|n]\n"
- "\t[--alloc AllocationPolicy]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f|--force]\n"
- "\t[-h|--help]\n"
- "\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n"
- "\t{-l|--extents [+|-]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}] |\n"
- "\t -L|--size [+|-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
- "\t --poolmetadatasize [+]MetadataVolumeSize[bBsSkKmMgG]}\n"
- "\t[-n|--nofsck]\n"
- "\t[--noudevsync]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-r|--resizefs]\n"
- "\t[-t|--test]\n"
- "\t[--type VolumeType]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tLogicalVolume[Path] [ PhysicalVolumePath... ]\n",
-
- alloc_ARG, autobackup_ARG, extents_ARG, force_ARG, nofsck_ARG,
- noudevsync_ARG, reportformat_ARG, resizefs_ARG,
- poolmetadatasize_ARG, size_ARG, stripes_ARG, stripesize_ARG,
- test_ARG, type_ARG)
+ 0)
xx(lvs,
"Display information about logical volumes",
- PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH,
- "lvs\n"
- "\t[-a|--all]\n"
- "\t[--aligned]\n"
- "\t[--binary]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[--configreport ReportName]\n"
- "\t[-d|--debug]\n"
- "\t[--foreign]\n"
- "\t[-h|--help]\n"
- "\t[-H|--history]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[--logonly]\n"
- "\t[--nameprefixes]\n"
- "\t[--noheadings]\n"
- "\t[--nosuffix]\n"
- "\t[-o|--options [+|-|#]Field[,Field]]\n"
- "\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
- "\t[-P|--partial]\n"
- "\t[--readonly]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[--rows]\n"
- "\t[--segments]\n"
- "\t[-S|--select Selection]\n"
- "\t[--separator Separator]\n"
- "\t[--trustcache]\n"
- "\t[--unbuffered]\n"
- "\t[--units hHbBsSkKmMgGtTpPeE]\n"
- "\t[--unquoted]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[LogicalVolume[Path] [LogicalVolume[Path]...]]\n",
-
- aligned_ARG, all_ARG, binary_ARG, configreport_ARG, foreign_ARG, history_ARG,
- ignorelockingfailure_ARG, ignoreskippedcluster_ARG, logonly_ARG,
- nameprefixes_ARG, noheadings_ARG, nolocking_ARG, nosuffix_ARG,
- options_ARG, partial_ARG, readonly_ARG, reportformat_ARG, rows_ARG,
- segments_ARG, select_ARG, separator_ARG, shared_ARG, sort_ARG,
- trustcache_ARG, unbuffered_ARG, units_ARG, unquoted_ARG)
+ PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH)
xx(lvscan,
"List all logical volumes in all volume groups",
- PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH | NO_LVMETAD_AUTOSCAN,
- "lvscan\n"
- "\t[-a|--all]\n"
- "\t[-b|--blockdevice]\n"
- "\t[--cache]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|-?|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[-P|--partial]\n"
- "\t[--readonly]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n",
-
- all_ARG, blockdevice_ARG, ignorelockingfailure_ARG, partial_ARG,
- readonly_ARG, reportformat_ARG, cache_long_ARG)
+ PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH | NO_LVMETAD_AUTOSCAN)
xx(pvchange,
"Change attributes of physical volume(s)",
- 0,
- "pvchange\n"
- "\t[-a|--all]\n"
- "\t[-A|--autobackup y|n]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f|--force]\n"
- "\t[-h|--help]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[--metadataignore y|n]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-S|--select Selection]\n"
- "\t[-t|--test]\n"
- "\t[-u|--uuid]\n"
- "\t[-x|--allocatable y|n]\n"
- "\t[-v|--verbose]\n"
- "\t[--addtag Tag]\n"
- "\t[--deltag Tag]\n"
- "\t[--version]\n"
- "\t[PhysicalVolumePath...]\n",
-
- all_ARG, allocatable_ARG, allocation_ARG, autobackup_ARG, deltag_ARG,
- addtag_ARG, force_ARG, ignoreskippedcluster_ARG, metadataignore_ARG,
- reportformat_ARG, select_ARG, test_ARG, uuid_ARG)
+ 0)
xx(pvresize,
"Resize physical volume(s)",
- 0,
- "pvresize\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|-?|--help]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[--setphysicalvolumesize PhysicalVolumeSize[bBsSkKmMgGtTpPeE]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tPhysicalVolume [PhysicalVolume...]\n",
-
- physicalvolumesize_ARG, reportformat_ARG, test_ARG)
+ 0)
xx(pvck,
"Check the consistency of physical volume(s)",
- LOCKD_VG_SH,
- "pvck "
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[--labelsector sector]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tPhysicalVolume [PhysicalVolume...]\n",
-
- labelsector_ARG)
+ LOCKD_VG_SH)
xx(pvcreate,
"Initialize physical volume(s) for use by LVM",
- ENABLE_ALL_DEVS,
- "pvcreate\n"
- "\t[--norestorefile]\n"
- "\t[--restorefile file]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f[f]|--force [--force]]\n"
- "\t[-h|-?|--help]\n"
- "\t[--labelsector sector]\n"
- "\t[-M|--metadatatype 1|2]\n"
- "\t[--pvmetadatacopies #copies]\n"
- "\t[--bootloaderareasize BootLoaderAreaSize[bBsSkKmMgGtTpPeE]]\n"
- "\t[--metadatasize MetadataSize[bBsSkKmMgGtTpPeE]]\n"
- "\t[--dataalignment Alignment[bBsSkKmMgGtTpPeE]]\n"
- "\t[--dataalignmentoffset AlignmentOffset[bBsSkKmMgGtTpPeE]]\n"
- "\t[--setphysicalvolumesize PhysicalVolumeSize[bBsSkKmMgGtTpPeE]\n"
- "\t[-t|--test]\n"
- "\t[-u|--uuid uuid]\n"
- "\t[-v|--verbose]\n"
- "\t[-y|--yes]\n"
- "\t[-Z|--zero {y|n}]\n"
- "\t[--version]\n"
- "\tPhysicalVolume [PhysicalVolume...]\n",
-
- dataalignment_ARG, dataalignmentoffset_ARG, bootloaderareasize_ARG,
- force_ARG, test_ARG, labelsector_ARG, metadatatype_ARG,
- metadatacopies_ARG, metadatasize_ARG, metadataignore_ARG,
- norestorefile_ARG, physicalvolumesize_ARG, pvmetadatacopies_ARG,
- reportformat_ARG, restorefile_ARG, uuidstr_ARG, zero_ARG)
+ ENABLE_ALL_DEVS)
xx(pvdata,
"Display the on-disk metadata for physical volume(s)",
- 0,
- "pvdata\n"
- "\t[-a|--all]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-E|--physicalextent]\n"
- "\t[-h|-?|--help]\n"
- "\t[-L|--logicalvolume]\n"
- "\t[-P[P]|--physicalvolume [--physicalvolume]]\n"
- "\t[-U|--uuidlist]\n"
- "\t[-v[v]|--verbose [--verbose]]\n"
- "\t[-V|--volumegroup]\n"
- "\t[--version]\n"
- "\tPhysicalVolume [PhysicalVolume...]\n",
-
- all_ARG, logicalextent_ARG, physicalextent_ARG,
- physicalvolume_ARG, uuidlist_ARG, volumegroup_ARG)
+ 0)
xx(pvdisplay,
"Display various attributes of physical volume(s)",
- CACHE_VGMETADATA | PERMITTED_READ_ONLY | ENABLE_ALL_DEVS | ENABLE_DUPLICATE_DEVS | LOCKD_VG_SH,
- "pvdisplay\n"
- "\t[-c|--colon]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[--foreign]\n"
- "\t[-h|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[-m|--maps]\n"
- "\t[--nosuffix]\n"
- "\t[--readonly]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-S|--select Selection]\n"
- "\t[-s|--short]\n"
- "\t[--units hHbBsSkKmMgGtTpPeE]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[PhysicalVolumePath [PhysicalVolumePath...]]\n"
- "\n"
- "pvdisplay --columns|-C\n"
- "\t[--aligned]\n"
- "\t[-a|--all]\n"
- "\t[--binary]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[--configreport ReportName]\n"
- "\t[-d|--debug]\n"
- "\t[--foreign]\n"
- "\t[-h|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[--logonly]\n"
- "\t[--noheadings]\n"
- "\t[--nosuffix]\n"
- "\t[-o|--options [+|-|#]Field[,Field]]\n"
- "\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-S|--select Selection]\n"
- "\t[--readonly]\n"
- "\t[--separator Separator]\n"
- "\t[--unbuffered]\n"
- "\t[--units hHbBsSkKmMgGtTpPeE]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[PhysicalVolumePath [PhysicalVolumePath...]]\n",
-
- aligned_ARG, all_ARG, binary_ARG, colon_ARG, columns_ARG, configreport_ARG,
- foreign_ARG, ignorelockingfailure_ARG, ignoreskippedcluster_ARG,
- logonly_ARG, maps_ARG, noheadings_ARG, nosuffix_ARG, options_ARG,
- readonly_ARG, reportformat_ARG, select_ARG, separator_ARG, shared_ARG,
- short_ARG, sort_ARG, unbuffered_ARG, units_ARG)
+ CACHE_VGMETADATA | PERMITTED_READ_ONLY | ENABLE_ALL_DEVS | ENABLE_DUPLICATE_DEVS | LOCKD_VG_SH)
/* ALL_VGS_IS_DEFAULT is for polldaemon to find pvmoves in-progress using process_each_vg. */
xx(pvmove,
"Move extents from one physical volume to another",
- ALL_VGS_IS_DEFAULT | DISALLOW_TAG_ARGS,
- "pvmove\n"
- "\t[--abort]\n"
- "\t[--alloc AllocationPolicy]\n"
- "\t[--atomic]\n"
- "\t[-A|--autobackup {y|n}]\n"
- "\t[-b|--background]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n "
- "\t[-h|-?|--help]\n"
- "\t[-i|--interval seconds]\n"
- "\t[--noudevsync]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-t|--test]\n "
- "\t[-v|--verbose]\n "
- "\t[--version]\n"
- "\t[{-n|--name} LogicalVolume]\n"
-/* "\t[{-n|--name} LogicalVolume[:LogicalExtent[-LogicalExtent]...]]\n" */
- "\tSourcePhysicalVolume[:PhysicalExtent[-PhysicalExtent]...]}\n"
- "\t[DestinationPhysicalVolume[:PhysicalExtent[-PhysicalExtent]...]...]\n",
-
- abort_ARG, alloc_ARG, atomic_ARG, autobackup_ARG, background_ARG,
- interval_ARG, name_ARG, noudevsync_ARG, reportformat_ARG, test_ARG)
+ ALL_VGS_IS_DEFAULT | DISALLOW_TAG_ARGS)
xx(lvpoll,
"Continue already initiated poll operation on a logical volume",
- 0,
- "\t[--abort]\n"
- "\t[-A|--autobackup {y|n}]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n "
- "\t[-h|-?|--help]\n"
- "\t[--handlemissingpvs]\n"
- "\t[-i|--interval seconds]\n"
- "\t[--polloperation]\n"
- "\t[-t|--test]\n "
- "\t[-v|--verbose]\n "
- "\t[--version]\n",
-
- abort_ARG, autobackup_ARG, handlemissingpvs_ARG, interval_ARG, polloperation_ARG,
- test_ARG)
+ 0)
xx(pvremove,
"Remove LVM label(s) from physical volume(s)",
- ENABLE_ALL_DEVS,
- "pvremove\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f[f]|--force [--force]]\n"
- "\t[-h|-?|--help]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[-y|--yes]\n"
- "\tPhysicalVolume [PhysicalVolume...]\n",
-
- force_ARG, reportformat_ARG, test_ARG)
+ ENABLE_ALL_DEVS)
xx(pvs,
"Display information about physical volumes",
- CACHE_VGMETADATA | PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | ENABLE_ALL_DEVS | ENABLE_DUPLICATE_DEVS | LOCKD_VG_SH,
- "pvs\n"
- "\t[-a|--all]\n"
- "\t[--aligned]\n"
- "\t[--binary]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[--configreport ReportName]\n"
- "\t[-d|--debug]\n"
- "\t[--foreign]\n"
- "\t[-h|-?|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[--logonly]\n"
- "\t[--nameprefixes]\n"
- "\t[--noheadings]\n"
- "\t[--nosuffix]\n"
- "\t[-o|--options [+|-|#]Field[,Field]]\n"
- "\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
- "\t[-P|--partial]\n"
- "\t[--readonly]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[--rows]\n"
- "\t[--segments]\n"
- "\t[-S|--select Selection]\n"
- "\t[--separator Separator]\n"
- "\t[--trustcache]\n"
- "\t[--unbuffered]\n"
- "\t[--units hHbBsSkKmMgGtTpPeE]\n"
- "\t[--unquoted]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[PhysicalVolume [PhysicalVolume...]]\n",
-
- aligned_ARG, all_ARG, binary_ARG, configreport_ARG, foreign_ARG,
- ignorelockingfailure_ARG, ignoreskippedcluster_ARG, logonly_ARG,
- nameprefixes_ARG, noheadings_ARG, nolocking_ARG, nosuffix_ARG,
- options_ARG, partial_ARG, readonly_ARG, reportformat_ARG, rows_ARG,
- segments_ARG, select_ARG, separator_ARG, shared_ARG, sort_ARG,
- trustcache_ARG, unbuffered_ARG, units_ARG, unquoted_ARG)
+ CACHE_VGMETADATA | PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | ENABLE_ALL_DEVS | ENABLE_DUPLICATE_DEVS | LOCKD_VG_SH)
xx(pvscan,
"List all physical volumes",
- PERMITTED_READ_ONLY | LOCKD_VG_SH | NO_LVMETAD_AUTOSCAN,
- "pvscan\n"
- "\t[-b|--background]\n"
- "\t[--cache [-a|--activate ay] [ DevicePath | -j|--major major --minor minor]...]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t{-e|--exported | -n|--novolumegroup}\n"
- "\t[-h|-?|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[-P|--partial]\n"
- "\t[--readonly]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-s|--short]\n"
- "\t[-u|--uuid]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n",
-
- activate_ARG, available_ARG, backgroundfork_ARG, cache_long_ARG,
- exported_ARG, ignorelockingfailure_ARG, major_ARG, minor_ARG,
- novolumegroup_ARG, partial_ARG, readonly_ARG, reportformat_ARG,
- short_ARG, uuid_ARG)
+ PERMITTED_READ_ONLY | LOCKD_VG_SH | NO_LVMETAD_AUTOSCAN)
xx(segtypes,
"List available segment types",
- PERMITTED_READ_ONLY | NO_METADATA_PROCESSING,
- "segtypes\n")
+ PERMITTED_READ_ONLY | NO_METADATA_PROCESSING)
xx(systemid,
"Display the system ID, if any, currently set on this host",
- PERMITTED_READ_ONLY | NO_METADATA_PROCESSING,
- "systemid\n")
+ PERMITTED_READ_ONLY | NO_METADATA_PROCESSING)
xx(tags,
"List tags defined on this host",
- PERMITTED_READ_ONLY | NO_METADATA_PROCESSING,
- "tags\n")
+ PERMITTED_READ_ONLY | NO_METADATA_PROCESSING)
xx(vgcfgbackup,
"Backup volume group configuration(s)",
- PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH,
- "vgcfgbackup\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f|--file filename]\n"
- "\t[--foreign]\n"
- "\t[-h|-?|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[-P|--partial]\n"
- "\t[--readonly]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[VolumeGroupName...]\n",
-
- file_ARG, foreign_ARG, ignorelockingfailure_ARG, partial_ARG, readonly_ARG,
- reportformat_ARG)
+ PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH)
xx(vgcfgrestore,
"Restore volume group configuration",
- 0,
- "vgcfgrestore\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f|--file filename]\n"
- "\t[--force]\n"
- "\t[-l[l]|--list [--list]]\n"
- "\t[-M|--metadatatype 1|2]\n"
- "\t[-h|--help]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tVolumeGroupName",
-
- file_ARG, force_long_ARG, list_ARG, metadatatype_ARG, test_ARG)
+ 0)
xx(vgchange,
"Change volume group attributes",
- CACHE_VGMETADATA | PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT,
- "vgchange\n"
- "\t[-A|--autobackup {y|n}]\n"
- "\t[--alloc AllocationPolicy]\n"
- "\t[-P|--partial]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[--detachprofile]\n"
- "\t[-h|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--ignoremonitoring]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[-K|--ignoreactivationskip]\n"
- "\t[--metadataprofile ProfileName]\n"
- "\t[--monitor {y|n}]\n"
- "\t[--[vg]metadatacopies #copies]\n"
- "\t[--poll {y|n}]\n"
- "\t[--noudevsync]\n"
- "\t[--refresh]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-S|--select Selection]\n"
- "\t[--sysinit]\n"
- "\t[--systemid SystemID]\n"
- "\t[-t|--test]\n"
- "\t[-u|--uuid]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t{-a|--activate [a|e|l]{y|n} |\n"
- "\t[--activationmode {complete|degraded|partial}]\n"
- "\t -c|--clustered {y|n} |\n"
- "\t -x|--resizeable {y|n} |\n"
- "\t -l|--logicalvolume MaxLogicalVolumes |\n"
- "\t -p|--maxphysicalvolumes MaxPhysicalVolumes |\n"
- "\t -s|--physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE] |\n"
- "\t --addtag Tag |\n"
- "\t --deltag Tag}\n"
- "\t[VolumeGroupName...]\n",
-
- activationmode_ARG, addtag_ARG, alloc_ARG, allocation_ARG, autobackup_ARG,
- activate_ARG, available_ARG, clustered_ARG, deltag_ARG, detachprofile_ARG,
- ignoreactivationskip_ARG, ignorelockingfailure_ARG, ignoremonitoring_ARG,
- ignoreskippedcluster_ARG, logicalvolume_ARG, maxphysicalvolumes_ARG,
- metadataprofile_ARG, monitor_ARG, noudevsync_ARG, metadatacopies_ARG,
- vgmetadatacopies_ARG, partial_ARG, physicalextentsize_ARG, poll_ARG,
- refresh_ARG, reportformat_ARG, resizeable_ARG, resizable_ARG, select_ARG,
- sysinit_ARG, systemid_ARG, test_ARG, uuid_ARG, lockstart_ARG, lockstop_ARG,
- locktype_ARG, lockopt_ARG, force_ARG)
+ CACHE_VGMETADATA | PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT)
xx(vgck,
"Check the consistency of volume group(s)",
- ALL_VGS_IS_DEFAULT | LOCKD_VG_SH,
- "vgck "
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[VolumeGroupName...]\n",
-
- reportformat_ARG)
+ ALL_VGS_IS_DEFAULT | LOCKD_VG_SH)
xx(vgconvert,
"Change volume group metadata format",
- 0,
- "vgconvert\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[--labelsector sector]\n"
- "\t[-M|--metadatatype 1|2]\n"
- "\t[--pvmetadatacopies #copies]\n"
- "\t[--metadatasize MetadataSize[bBsSkKmMgGtTpPeE]]\n"
- "\t[--bootloaderareasize BootLoaderAreaSize[bBsSkKmMgGtTpPeE]]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tVolumeGroupName [VolumeGroupName...]\n",
-
- force_ARG, test_ARG, labelsector_ARG, bootloaderareasize_ARG,
- metadatatype_ARG, metadatacopies_ARG, pvmetadatacopies_ARG,
- metadatasize_ARG, reportformat_ARG)
+ 0)
xx(vgcreate,
"Create a volume group",
- MUST_USE_ALL_ARGS | ENABLE_ALL_DEVS,
- "vgcreate\n"
- "\t[-A|--autobackup {y|n}]\n"
- "\t[--addtag Tag]\n"
- "\t[--alloc AllocationPolicy]\n"
- "\t[-c|--clustered {y|n}]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[-l|--maxlogicalvolumes MaxLogicalVolumes]\n"
- "\t[--metadataprofile ProfileName]\n"
- "\t[-M|--metadatatype 1|2]\n"
- "\t[--[vg]metadatacopies #copies]\n"
- "\t[-p|--maxphysicalvolumes MaxPhysicalVolumes]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-s|--physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE]]\n"
- "\t[--systemid SystemID]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[-y|--yes]\n"
- "\t[ PHYSICAL DEVICE OPTIONS ]\n"
- "\tVolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]\n",
-
- addtag_ARG, alloc_ARG, autobackup_ARG, clustered_ARG, maxlogicalvolumes_ARG,
- maxphysicalvolumes_ARG, metadataprofile_ARG, metadatatype_ARG,
- physicalextentsize_ARG, test_ARG, force_ARG, zero_ARG, labelsector_ARG,
- metadatasize_ARG, pvmetadatacopies_ARG, reportformat_ARG, metadatacopies_ARG,
- vgmetadatacopies_ARG, dataalignment_ARG, dataalignmentoffset_ARG,
- shared_ARG, systemid_ARG, locktype_ARG, lockopt_ARG)
+ MUST_USE_ALL_ARGS | ENABLE_ALL_DEVS)
xx(vgdisplay,
"Display volume group information",
- PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH,
- "vgdisplay\n"
- "\t[-A|--activevolumegroups]\n"
- "\t[-c|--colon | -s|--short | -v|--verbose]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[--foreign]\n"
- "\t[-h|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[--nosuffix]\n"
- "\t[-P|--partial]\n"
- "\t[--readonly]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-S|--select Selection]\n"
- "\t[--units hHbBsSkKmMgGtTpPeE]\n"
- "\t[--version]\n"
- "\t[VolumeGroupName [VolumeGroupName...]]\n"
- "\n"
- "vgdisplay --columns|-C\n"
- "\t[--aligned]\n"
- "\t[--binary]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[--configreport ReportName]\n"
- "\t[-d|--debug]\n"
- "\t[--foreign]\n"
- "\t[-h|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[--logonly]\n"
- "\t[--noheadings]\n"
- "\t[--nosuffix]\n"
- "\t[-o|--options [+|-|#]Field[,Field]]\n"
- "\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
- "\t[-P|--partial]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-S|--select Selection]\n"
- "\t[--readonly]\n"
- "\t[--separator Separator]\n"
- "\t[--unbuffered]\n"
- "\t[--units hHbBsSkKmMgGtTpPeE]\n"
- "\t[--verbose]\n"
- "\t[--version]\n"
- "\t[VolumeGroupName [VolumeGroupName...]]\n",
-
- activevolumegroups_ARG, aligned_ARG, binary_ARG, colon_ARG, columns_ARG,
- configreport_ARG, foreign_ARG, ignorelockingfailure_ARG,
- ignoreskippedcluster_ARG, logonly_ARG, noheadings_ARG, nosuffix_ARG,
- options_ARG, partial_ARG, readonly_ARG, reportformat_ARG, select_ARG,
- shared_ARG, short_ARG, separator_ARG, sort_ARG, unbuffered_ARG, units_ARG)
+ PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH)
xx(vgexport,
"Unregister volume group(s) from the system",
- ALL_VGS_IS_DEFAULT,
- "vgexport\n"
- "\t[-a|--all]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-S|--select Selection]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tVolumeGroupName [VolumeGroupName...]\n",
-
- all_ARG, reportformat_ARG, select_ARG, test_ARG)
+ ALL_VGS_IS_DEFAULT)
xx(vgextend,
"Add physical volumes to a volume group",
- MUST_USE_ALL_ARGS | ENABLE_ALL_DEVS,
- "vgextend\n"
- "\t[-A|--autobackup y|n]\n"
- "\t[--restoremissing]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f|--force]\n"
- "\t[-h|--help]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[-y|--yes]\n"
- "\t[ PHYSICAL DEVICE OPTIONS ]\n"
- "\tVolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]\n",
-
- autobackup_ARG, test_ARG,
- force_ARG, zero_ARG, labelsector_ARG, metadatatype_ARG,
- metadatasize_ARG, pvmetadatacopies_ARG, metadatacopies_ARG,
- metadataignore_ARG, dataalignment_ARG, dataalignmentoffset_ARG,
- reportformat_ARG, restoremissing_ARG)
+ MUST_USE_ALL_ARGS | ENABLE_ALL_DEVS)
xx(vgimport,
"Register exported volume group with system",
- ALL_VGS_IS_DEFAULT | NO_LVMETAD_AUTOSCAN,
- "vgimport\n"
- "\t[-a|--all]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f|--force]\n"
- "\t[-h|--help]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-S|--select Selection]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tVolumeGroupName...\n",
-
- all_ARG, force_ARG, reportformat_ARG, select_ARG, test_ARG)
+ ALL_VGS_IS_DEFAULT | NO_LVMETAD_AUTOSCAN)
xx(vgimportclone,
"Import a VG from cloned PVs",
- NO_LVMETAD_AUTOSCAN,
- "vgimportclone\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[-i|--import]\n"
- "\t[-n|--basevgname]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[PhysicalVolumePath...]\n",
-
- basevgname_ARG, test_ARG, import_ARG)
+ NO_LVMETAD_AUTOSCAN)
xx(vgmerge,
"Merge volume groups",
- 0,
- "vgmerge\n"
- "\t[-A|--autobackup y|n]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[-l|--list]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tDestinationVolumeGroupName SourceVolumeGroupName\n",
-
- autobackup_ARG, list_ARG, test_ARG)
+ 0)
xx(vgmknodes,
"Create the special files for volume group devices in /dev",
- ALL_VGS_IS_DEFAULT,
- "vgmknodes\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--refresh]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[VolumeGroupName...]\n",
-
- ignorelockingfailure_ARG, refresh_ARG, reportformat_ARG)
+ ALL_VGS_IS_DEFAULT)
xx(vgreduce,
"Remove physical volume(s) from a volume group",
- 0,
- "vgreduce\n"
- "\t[-a|--all]\n"
- "\t[-A|--autobackup y|n]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[--mirrorsonly]\n"
- "\t[--removemissing]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-f|--force]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tVolumeGroupName\n"
- "\t[PhysicalVolumePath...]\n",
-
- all_ARG, autobackup_ARG, force_ARG, mirrorsonly_ARG, removemissing_ARG,
- reportformat_ARG, test_ARG)
+ 0)
xx(vgremove,
"Remove volume group(s)",
- ALL_VGS_IS_DEFAULT, /* all VGs only with select */
- "vgremove\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-f|--force]\n"
- "\t[-h|--help]\n"
- "\t[--noudevsync]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-S|--select Selection]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tVolumeGroupName [VolumeGroupName...]\n",
-
- force_ARG, noudevsync_ARG, reportformat_ARG, select_ARG, test_ARG)
+ ALL_VGS_IS_DEFAULT) /* all VGs only with select */
xx(vgrename,
"Rename a volume group",
- ALLOW_UUID_AS_NAME | REQUIRES_FULL_LABEL_SCAN,
- "vgrename\n"
- "\t[-A|--autobackup y|n]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tOldVolumeGroupPath NewVolumeGroupPath |\n"
- "\tOldVolumeGroupName NewVolumeGroupName\n",
-
- autobackup_ARG, force_ARG, reportformat_ARG, test_ARG)
+ ALLOW_UUID_AS_NAME | REQUIRES_FULL_LABEL_SCAN)
xx(vgs,
"Display information about volume groups",
- PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH,
- "vgs\n"
- "\t[--aligned]\n"
- "\t[--binary]\n"
- "\t[-a|--all]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[--configreport ReportName]\n"
- "\t[-d|--debug]\n"
- "\t[--foreign]\n"
- "\t[-h|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--ignoreskippedcluster]\n"
- "\t[--logonly]\n"
- "\t[--nameprefixes]\n"
- "\t[--noheadings]\n"
- "\t[--nosuffix]\n"
- "\t[-o|--options [+|-|#]Field[,Field]]\n"
- "\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
- "\t[-P|--partial]\n"
- "\t[--readonly]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[--rows]\n"
- "\t[-S|--select Selection]\n"
- "\t[--separator Separator]\n"
- "\t[--trustcache]\n"
- "\t[--unbuffered]\n"
- "\t[--units hHbBsSkKmMgGtTpPeE]\n"
- "\t[--unquoted]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\t[VolumeGroupName [VolumeGroupName...]]\n",
-
- aligned_ARG, all_ARG, binary_ARG, configreport_ARG, foreign_ARG,
- ignorelockingfailure_ARG, ignoreskippedcluster_ARG, logonly_ARG,
- nameprefixes_ARG, noheadings_ARG, nolocking_ARG, nosuffix_ARG,
- options_ARG, partial_ARG, readonly_ARG, reportformat_ARG, rows_ARG,
- select_ARG, separator_ARG, shared_ARG, sort_ARG, trustcache_ARG,
- unbuffered_ARG, units_ARG, unquoted_ARG)
+ PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH)
xx(vgscan,
"Search for all volume groups",
- PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH | NO_LVMETAD_AUTOSCAN,
- "vgscan "
- "\t[--cache]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[--ignorelockingfailure]\n"
- "\t[--mknodes]\n"
- "\t[--notifydbus]\n"
- "\t[-P|--partial]\n"
- "\t[--reportformat {basic|json}]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n",
-
- cache_long_ARG, ignorelockingfailure_ARG, mknodes_ARG, notifydbus_ARG,
- partial_ARG, reportformat_ARG)
+ PERMITTED_READ_ONLY | ALL_VGS_IS_DEFAULT | LOCKD_VG_SH | NO_LVMETAD_AUTOSCAN)
xx(vgsplit,
"Move physical volumes into a new or existing volume group",
- 0,
- "vgsplit\n"
- "\t[-A|--autobackup {y|n}]\n"
- "\t[--alloc AllocationPolicy]\n"
- "\t[-c|--clustered {y|n}]\n"
- "\t[--commandprofile ProfileName]\n"
- "\t[-d|--debug]\n"
- "\t[-h|--help]\n"
- "\t[-l|--maxlogicalvolumes MaxLogicalVolumes]\n"
- "\t[-M|--metadatatype 1|2]\n"
- "\t[--[vg]metadatacopies #copies]\n"
- "\t[-n|--name LogicalVolumeName]\n"
- "\t[-p|--maxphysicalvolumes MaxPhysicalVolumes]\n"
- "\t[-t|--test]\n"
- "\t[-v|--verbose]\n"
- "\t[--version]\n"
- "\tSourceVolumeGroupName DestinationVolumeGroupName\n"
- "\t[PhysicalVolumePath...]\n",
-
- alloc_ARG, autobackup_ARG, clustered_ARG,
- maxlogicalvolumes_ARG, maxphysicalvolumes_ARG,
- metadatatype_ARG, vgmetadatacopies_ARG, name_ARG, test_ARG)
+ 0)
xx(version,
"Display software and driver version information",
- PERMITTED_READ_ONLY | NO_METADATA_PROCESSING,
- "version\n")
+ PERMITTED_READ_ONLY | NO_METADATA_PROCESSING)
diff --git a/tools/lvm.c b/tools/lvm.c
index b3af0206b..aae6da037 100644
--- a/tools/lvm.c
+++ b/tools/lvm.c
@@ -45,9 +45,9 @@ static char *_list_cmds(const char *text, int state)
len = strlen(text);
}
- while (i < _cmdline->num_commands)
- if (!strncmp(text, _cmdline->commands[i++].name, len))
- return strdup(_cmdline->commands[i - 1].name);
+ while (i < _cmdline->num_command_names)
+ if (!strncmp(text, _cmdline->command_names[i++].name, len))
+ return strdup(_cmdline->command_names[i - 1].name);
return NULL;
}
@@ -57,7 +57,7 @@ static char *_list_args(const char *text, int state)
{
static int match_no = 0;
static size_t len = 0;
- static struct command *com;
+ static struct command_name *cname;
/* Initialise if this is a new completion attempt */
if (!state) {
@@ -65,40 +65,40 @@ static char *_list_args(const char *text, int state)
int j;
match_no = 0;
- com = NULL;
+ cname = NULL;
len = strlen(text);
/* Find start of first word in line buffer */
while (isspace(*s))
s++;
- /* Look for word in list of commands */
- for (j = 0; j < _cmdline->num_commands; j++) {
+ /* Look for word in list of command names */
+ for (j = 0; j < _cmdline->num_command_names; j++) {
const char *p;
char *q = s;
- p = _cmdline->commands[j].name;
+ p = _cmdline->command_names[j].name;
while (*p == *q) {
p++;
q++;
}
if ((!*p) && *q == ' ') {
- com = _cmdline->commands + j;
+ cname = _cmdline->command_names + j;
break;
}
}
}
- if (!com)
+ if (!cname)
return NULL;
/* Short form arguments */
if (len < 3) {
- while (match_no < com->num_args) {
+ while (match_no < cname->num_args) {
char s[3];
char c;
if (!(c = (_cmdline->arg_props +
- com->valid_args[match_no++])->short_arg))
+ cname->valid_args[match_no++])->short_arg))
continue;
sprintf(s, "-%c", c);
@@ -108,13 +108,13 @@ static char *_list_args(const char *text, int state)
}
/* Long form arguments */
- if (match_no < com->num_args)
- match_no = com->num_args;
+ if (match_no < cname->num_args)
+ match_no = cname->num_args;
- while (match_no - com->num_args < com->num_args) {
+ while (match_no - cname->num_args < cname->num_args) {
const char *l;
l = (_cmdline->arg_props +
- com->valid_args[match_no++ - com->num_args])->long_arg;
+ cname->valid_args[match_no++ - cname->num_args])->long_arg;
if (*(l + 2) && !strncmp(text, l, len))
return strdup(l);
}
diff --git a/tools/lvm2cmdline.h b/tools/lvm2cmdline.h
index 80bd03ea1..9b75c36d5 100644
--- a/tools/lvm2cmdline.h
+++ b/tools/lvm2cmdline.h
@@ -19,10 +19,11 @@
struct cmd_context;
struct cmdline_context {
- struct arg_props *arg_props;
- struct command *commands;
- int num_commands;
- int commands_size;
+ struct arg_props *arg_props;
+ struct command *commands;
+ int num_commands;
+ struct command_name *command_names;
+ int num_command_names;
};
int lvm2_main(int argc, char **argv);
diff --git a/tools/lvmcmdlib.c b/tools/lvmcmdlib.c
index 276c8b357..02cfffaa9 100644
--- a/tools/lvmcmdlib.c
+++ b/tools/lvmcmdlib.c
@@ -57,7 +57,7 @@ int lvm2_run(void *handle, const char *cmdline)
cmd = (struct cmd_context *) handle;
- cmd->argv = argv;
+ cmd->pos_arg_values = argv;
if (!(cmdcopy = dm_strdup(cmdline))) {
log_error("Cmdline copy failed.");
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index 9a4deb7d5..078663b34 100644
--- a/tools/lvmcmdline.c
+++ b/tools/lvmcmdline.c
@@ -49,21 +49,37 @@ extern char *optarg;
# define OPTIND_INIT 1
#endif
+#include "command-lines-count.h" /* #define COMMAND_COUNT, generated from command-lines.in */
+
/*
* Table of valid switches
*/
static struct arg_props _arg_props[ARG_COUNT + 1] = {
-#define arg(a, b, c, d, e, f) {b, "", "--" c, d, e, f},
+#define arg(a, b, c, d, e, f) {a, b, "", "--" c, d, e, f},
#include "args.h"
#undef arg
};
+/*
+ * Table of valid command names
+ */
+#define MAX_COMMAND_NAMES 64
+struct command_name command_names[MAX_COMMAND_NAMES] = {
+#define xx(a, b, c...) { # a, b, c },
+#include "commands.h"
+#undef xx
+};
+
+/*
+ * Table of valid command lines
+ */
+static struct command commands[COMMAND_COUNT];
static struct cmdline_context _cmdline;
/* Command line args */
unsigned arg_count(const struct cmd_context *cmd, int a)
{
- return cmd->arg_values ? cmd->arg_values[a].count : 0;
+ return cmd->opt_arg_values ? cmd->opt_arg_values[a].count : 0;
}
unsigned grouped_arg_count(const struct arg_values *av, int a)
@@ -182,12 +198,12 @@ const char *arg_long_option_name(int a)
const char *arg_value(const struct cmd_context *cmd, int a)
{
- return cmd->arg_values ? cmd->arg_values[a].value : NULL;
+ return cmd->opt_arg_values ? cmd->opt_arg_values[a].value : NULL;
}
const char *arg_str_value(const struct cmd_context *cmd, int a, const char *def)
{
- return arg_is_set(cmd, a) ? cmd->arg_values[a].value : def;
+ return arg_is_set(cmd, a) ? cmd->opt_arg_values[a].value : def;
}
const char *grouped_arg_str_value(const struct arg_values *av, int a, const char *def)
@@ -217,44 +233,44 @@ int32_t first_grouped_arg_int_value(const struct cmd_context *cmd, int a, const
int32_t arg_int_value(const struct cmd_context *cmd, int a, const int32_t def)
{
return (_cmdline.arg_props[a].flags & ARG_GROUPABLE) ?
- first_grouped_arg_int_value(cmd, a, def) : (arg_is_set(cmd, a) ? cmd->arg_values[a].i_value : def);
+ first_grouped_arg_int_value(cmd, a, def) : (arg_is_set(cmd, a) ? cmd->opt_arg_values[a].i_value : def);
}
uint32_t arg_uint_value(const struct cmd_context *cmd, int a, const uint32_t def)
{
- return arg_is_set(cmd, a) ? cmd->arg_values[a].ui_value : def;
+ return arg_is_set(cmd, a) ? cmd->opt_arg_values[a].ui_value : def;
}
int64_t arg_int64_value(const struct cmd_context *cmd, int a, const int64_t def)
{
- return arg_is_set(cmd, a) ? cmd->arg_values[a].i64_value : def;
+ return arg_is_set(cmd, a) ? cmd->opt_arg_values[a].i64_value : def;
}
uint64_t arg_uint64_value(const struct cmd_context *cmd, int a, const uint64_t def)
{
- return arg_is_set(cmd, a) ? cmd->arg_values[a].ui64_value : def;
+ return arg_is_set(cmd, a) ? cmd->opt_arg_values[a].ui64_value : def;
}
/* No longer used.
const void *arg_ptr_value(struct cmd_context *cmd, int a, const void *def)
{
- return arg_is_set(cmd, a) ? cmd->arg_values[a].ptr : def;
+ return arg_is_set(cmd, a) ? cmd->opt_arg_values[a].ptr : def;
}
*/
sign_t arg_sign_value(const struct cmd_context *cmd, int a, const sign_t def)
{
- return arg_is_set(cmd, a) ? cmd->arg_values[a].sign : def;
+ return arg_is_set(cmd, a) ? cmd->opt_arg_values[a].sign : def;
}
percent_type_t arg_percent_value(const struct cmd_context *cmd, int a, const percent_type_t def)
{
- return arg_is_set(cmd, a) ? cmd->arg_values[a].percent : def;
+ return arg_is_set(cmd, a) ? cmd->opt_arg_values[a].percent : def;
}
int arg_count_increment(struct cmd_context *cmd, int a)
{
- return cmd->arg_values[a].count++;
+ return cmd->opt_arg_values[a].count++;
}
int yes_no_arg(struct cmd_context *cmd __attribute__((unused)), struct arg_values *av)
@@ -709,104 +725,417 @@ int metadatacopies_arg(struct cmd_context *cmd, struct arg_values *av)
return int_arg(cmd, av);
}
-static void __alloc(int size)
+/*
+ * The valid args for a command name in general is a union of
+ * required_opt_args and optional_opt_args for all commands[]
+ * with the given name.
+ */
+
+static void _set_valid_args_for_command_name(int ci)
{
- if (!(_cmdline.commands = dm_realloc(_cmdline.commands, sizeof(*_cmdline.commands) * size))) {
- log_fatal("Couldn't allocate memory.");
- exit(ECMD_FAILED);
+ int all_args[ARG_COUNT] = { 0 };
+ int num_args = 0;
+ int opt_enum_val;
+ int i, ro, oo;
+
+ /*
+ * all_args is indexed by the foo_ARG enum vals
+ */
+
+ for (i = 0; i < COMMAND_COUNT; i++) {
+ if (strcmp(commands[i].name, command_names[ci].name))
+ continue;
+
+ for (ro = 0; ro < commands[i].ro_count; ro++) {
+ opt_enum_val = commands[i].required_opt_args[ro].opt;
+ all_args[opt_enum_val] = 1;
+ }
+ for (oo = 0; oo < commands[i].oo_count; oo++) {
+ opt_enum_val = commands[i].optional_opt_args[oo].opt;
+ all_args[opt_enum_val] = 1;
+ }
}
- _cmdline.commands_size = size;
+ for (i = 0; i < ARG_COUNT; i++) {
+ if (all_args[i]) {
+ command_names[ci].valid_args[num_args] = _cmdline.arg_props[i].enum_val;
+ num_args++;
+ }
+ }
+ command_names[ci].num_args = num_args;
}
-static void _alloc_command(void)
+static struct command_name *_find_command_name(const char *name)
{
- if (!_cmdline.commands_size)
- __alloc(32);
+ int i;
+
+ for (i = 0; i < MAX_COMMAND_NAMES; i++) {
+ if (!command_names[i].name)
+ break;
+ if (!strcmp(command_names[i].name, name))
+ return &command_names[i];
+ }
+ return NULL;
+}
- if (_cmdline.commands_size <= _cmdline.num_commands)
- __alloc(2 * _cmdline.commands_size);
+static void _define_commands(void)
+{
+/* command-lines.h defines command[] structs, generated from command-lines.in */
+#include "command-lines.h" /* generated from command-lines.in */
}
-static void _create_new_command(const char *name, command_fn command,
- unsigned flags,
- const char *desc, const char *usagestr,
- int nargs, int *args)
+void lvm_register_commands(void)
{
- struct command *nc;
+ struct command_name *cname;
+ int i;
+
+ memset(&commands, 0, sizeof(commands));
- _alloc_command();
+ _define_commands();
- nc = _cmdline.commands + _cmdline.num_commands++;
+ _cmdline.commands = commands;
+ _cmdline.num_commands = COMMAND_COUNT;
+
+ for (i = 0; i < COMMAND_COUNT; i++) {
+ if (!(cname = _find_command_name(commands[i].name)))
+ log_error(INTERNAL_ERROR "Failed to find command name %s.", commands[i].name);
+ commands[i].cname = cname;
+ commands[i].flags = cname->flags;
+ }
+
+ _cmdline.command_names = command_names;
+
+ for (i = 0; i < MAX_COMMAND_NAMES; i++) {
+ if (!command_names[i].name)
+ break;
+ _cmdline.num_command_names++;
+ }
- nc->name = name;
- nc->desc = desc;
- nc->usage = usagestr;
- nc->fn = command;
- nc->flags = flags;
- nc->num_args = nargs;
- nc->valid_args = args;
+ for (i = 0; i < _cmdline.num_command_names; i++)
+ _set_valid_args_for_command_name(i);
}
-static void _register_command(const char *name, command_fn fn, const char *desc,
- unsigned flags, const char *usagestr, ...)
+/*
+ * Match what the user typed with a one specific command definition/prototype
+ * from commands[]. If nothing matches, it's not a valid command. The match
+ * is based on command name, required opt args and required pos args.
+ *
+ * Find an entry in the commands array that matches based the arg values.
+ *
+ * If the cmd has opt or pos args set that are not accepted by command,
+ * we can: silently ignore them, warn they are not being used, or fail.
+ * Default should probably be to warn and continue.
+ *
+ * For each command[i], check how many required opt/pos args cmd matches.
+ * Save the command[i] that matches the most.
+ *
+ * commands[i].cmd_flags & CMD_FLAG_ONE_REQUIRED_OPT means
+ * any one item from commands[i].required_opt_args needs to be
+ * set to match.
+ *
+ * required_pos_args[0].flags & ARG_DEF_TYPE_SELECT means
+ * cmd->pos_arg_values[0] can be NULL if arg_is_set(select_ARG)
+ */
+
+static int _opt_equivalent_is_set(struct cmd_context *cmd, int opt)
{
- int nargs = 0, i;
- int *args;
- va_list ap;
+ if ((opt == mirrorlog_ARG) && arg_is_set(cmd, corelog_ARG))
+ return 1;
- /* count how many arguments we have */
- va_start(ap, usagestr);
- while (va_arg(ap, int) >= 0)
- nargs++;
- va_end(ap);
+ if ((opt == resizeable_ARG) && arg_is_set(cmd, resizable_ARG))
+ return 1;
+
+ if ((opt == allocatable_ARG) && arg_is_set(cmd, allocation_ARG))
+ return 1;
+
+ if ((opt == resizeable_ARG) && arg_is_set(cmd, allocation_ARG))
+ return 1;
+
+ if ((opt == activate_ARG) && arg_is_set(cmd, available_ARG))
+ return 1;
+
+ if ((opt == rebuild_ARG) && arg_is_set(cmd, raidrebuild_ARG))
+ return 1;
- /* allocate space for them */
- if (!(args = dm_malloc(sizeof(*args) * nargs))) {
- log_fatal("Out of memory.");
- exit(ECMD_FAILED);
+ if ((opt == syncaction_ARG) && arg_is_set(cmd, raidsyncaction_ARG))
+ return 1;
+
+ if ((opt == writemostly_ARG) && arg_is_set(cmd, raidwritemostly_ARG))
+ return 1;
+
+ if ((opt == minrecoveryrate_ARG) && arg_is_set(cmd, raidminrecoveryrate_ARG))
+ return 1;
+
+ if ((opt == maxrecoveryrate_ARG) && arg_is_set(cmd, raidmaxrecoveryrate_ARG))
+ return 1;
+
+ if ((opt == writebehind_ARG) && arg_is_set(cmd, raidwritebehind_ARG))
+ return 1;
+
+ return 0;
+}
+
+static int _command_required_opt_matches(struct cmd_context *cmd, int ci, int ro)
+{
+ if (arg_is_set(cmd, commands[ci].required_opt_args[ro].opt))
+ return 1;
+
+ /*
+ * For some commands, --size and --extents are interchanable,
+ * but command[] definitions use only --size.
+ */
+ if ((commands[ci].required_opt_args[ro].opt == size_ARG) && arg_is_set(cmd, extents_ARG)) {
+ if (!strcmp(commands[ci].name, "lvcreate") ||
+ !strcmp(commands[ci].name, "lvresize") ||
+ !strcmp(commands[ci].name, "lvextend") ||
+ !strcmp(commands[ci].name, "lvreduce"))
+ return 1;
}
- /* fill them in */
- va_start(ap, usagestr);
- for (i = 0; i < nargs; i++)
- args[i] = va_arg(ap, int);
- va_end(ap);
+ /* TODO: for lvmconfig, recognize --type in place of --typeconfig? */
+
+ if (_opt_equivalent_is_set(cmd, commands[ci].required_opt_args[ro].opt))
+ return 1;
- /* enter the command in the register */
- _create_new_command(name, fn, flags, desc, usagestr, nargs, args);
+ return 0;
}
-void lvm_register_commands(void)
+static int _command_required_pos_matches(struct cmd_context *cmd, int ci, int rp)
{
-#define xx(a, b, c, d...) _register_command(# a, a, b, c, ## d, \
- driverloaded_ARG, \
- debug_ARG, help_ARG, help2_ARG, \
- version_ARG, verbose_ARG, \
- yes_ARG, \
- quiet_ARG, config_ARG, \
- commandprofile_ARG, \
- profile_ARG, -1);
-#include "commands.h"
-#undef xx
+ if (cmd->pos_arg_values[rp]) {
+ /* FIXME: can we match object type better than just checking something exists? */
+ /* Some cases could be validated by looking at defs.types and at the value. */
+ return 1;
+ }
+
+ /*
+ * If Select is specified as a pos arg, then that pos arg can be
+ * empty if --select is used.
+ */
+ if ((commands[ci].required_pos_args[rp].def.types & ARG_DEF_TYPE_SELECT) &&
+ arg_is_set(cmd, select_ARG))
+ return 1;
+
+ return 0;
}
-static struct command *_find_command(const char *name)
+
+#define HELP_LINE_SIZE 1024
+
+static void _print_usage(int ci, int include_optional)
{
- int i;
- const char *base;
+ const char *usage = _cmdline.commands[ci].usage;
+ char buf[HELP_LINE_SIZE] = {0};
+ int optional_ui = 0;
+ int ui = 0;
+ int bi = 0;
- base = last_path_component(name);
+ /*
+ * Print the required portions of the usage string.
+ * The optional portions of the usage string are enclosed
+ * in [] and follow the required portions.
+ */
- for (i = 0; i < _cmdline.num_commands; i++) {
- if (!strcmp(base, _cmdline.commands[i].name))
+ for (ui = 0; ui < strlen(usage); ui++) {
+ if (usage[ui] == '[') {
+ optional_ui = ui;
+ break;
+ }
+ if (usage[ui] == '\0')
+ break;
+ if (usage[ui] == '\n')
+ break;
+
+ buf[bi++] = usage[ui];
+
+ if (usage[ui] == ',') {
+ buf[bi++] = '\n';
+ buf[bi++] = '\t';
+ }
+
+ if (bi == (HELP_LINE_SIZE - 1))
break;
}
- if (i >= _cmdline.num_commands)
- return 0;
+ if (!include_optional) {
+ log_print("%s\n", buf);
+ return;
+ }
+
+ log_print("%s", buf);
- return _cmdline.commands + i;
+ memset(buf, 0, sizeof(buf));
+ bi = 0;
+
+ buf[bi++] = '\t';
+
+ for (ui = optional_ui; ui < strlen(usage); ui++) {
+ if (usage[ui] == '\0')
+ break;
+ if (usage[ui] == '\n')
+ break;
+
+ buf[bi++] = usage[ui];
+
+ if (usage[ui] == ',') {
+ buf[bi++] = '\n';
+ buf[bi++] = '\t';
+ }
+
+ if (bi == (HELP_LINE_SIZE - 1))
+ break;
+ }
+
+ log_print("%s\n", buf);
+}
+
+/*
+ * A description is a string with multiple sentences each ending in periods.
+ * Print each sentence on a new line.
+ */
+
+static void _print_description(int ci)
+{
+ const char *desc = _cmdline.commands[ci].desc;
+ char buf[HELP_LINE_SIZE] = {0};
+ int di = 0;
+ int bi = 0;
+
+ for (di = 0; di < strlen(desc); di++) {
+ if (desc[di] == '\0')
+ break;
+ if (desc[di] == '\n')
+ continue;
+
+ if (!bi && desc[di] == ' ')
+ continue;
+
+ buf[bi++] = desc[di];
+
+ if (desc[di] == '.') {
+ log_print("%s", buf);
+ memset(buf, 0, sizeof(buf));
+ bi = 0;
+ }
+
+ if (bi == (HELP_LINE_SIZE - 1))
+ break;
+ }
+}
+
+static struct command *_find_command(struct cmd_context *cmd, const char *path)
+{
+ const char *name;
+ int match_count, mismatch_count;
+ int best_match_i = 0, best_match_count = 0;
+ int closest_i = 0, closest_count = 0;
+ int ro_matches;
+ int ro, rp;
+ int i;
+
+ name = last_path_component(path);
+
+ for (i = 0; i < COMMAND_COUNT; i++) {
+ if (strcmp(name, commands[i].name))
+ continue;
+
+ /* For help and version just return the first entry with matching name. */
+ if (arg_is_set(cmd, help_ARG) || arg_is_set(cmd, help2_ARG) || arg_is_set(cmd, version_ARG))
+ return &commands[i];
+
+ match_count = 0;
+ mismatch_count = 0;
+ ro_matches = 0;
+
+ /* if the command name alone is enough, then that's a match */
+
+ if (!commands[i].ro_count && !commands[i].rp_count) {
+ /* log_warn("match %d command name %s", i, name); */
+ match_count = 1;
+ }
+
+ /* match required_opt_args */
+
+ for (ro = 0; ro < commands[i].ro_count; ro++) {
+ if (_command_required_opt_matches(cmd, i, ro)) {
+ /* log_warn("match %d ro opt %d", i, commands[i].required_opt_args[ro].opt); */
+ match_count++;
+ ro_matches++;
+ } else {
+ /* cmd is missing a required opt arg */
+ /* log_warn("mismatch %d ro opt %d", i, commands[i].required_opt_args[ro].opt); */
+ mismatch_count++;
+ }
+ }
+
+ /*
+ * Special case where missing required_opt_arg's does not matter
+ * if one required_opt_arg did match.
+ */
+ if (commands[i].cmd_flags & CMD_FLAG_ONE_REQUIRED_OPT) {
+ if (ro_matches) {
+ /* one or more of the required_opt_args is used */
+ mismatch_count = 0;
+ } else {
+ /* not even one of the required_opt_args is used */
+ mismatch_count = 1;
+ }
+ }
+
+ /* match required_pos_args */
+
+ for (rp = 0; rp < commands[i].rp_count; rp++) {
+ if (_command_required_pos_matches(cmd, i, rp)) {
+ /* log_warn("match %d rp %d", i, commands[i].required_pos_args[rp].pos); */
+ match_count++;
+ } else {
+ /* cmd is missing a required pos arg */
+ /* log_warn("mismatch %d rp %d", i, commands[i].required_pos_args[rp].pos); */
+ mismatch_count++;
+ }
+ }
+
+ /* if cmd is missing any required opt/pos args, it can't be this command. */
+
+ if (mismatch_count) {
+ /* save i/match_count for "closest" command that doesn't match */
+ if (!closest_count || (match_count > closest_count)) {
+ closest_i = i;
+ closest_count = match_count;
+ }
+ continue;
+ }
+
+ /* use command that has the most matching required opt/pos */
+
+ if (!best_match_count || (match_count > best_match_count)) {
+ /* log_warn("match best i %d count %d", i, match_count); */
+ best_match_i = i;
+ best_match_count = match_count;
+ }
+ }
+
+ if (!best_match_count) {
+ /* cmd did not have all the required opt/pos args of any command */
+ log_error("Failed to find a matching command definition.\n");
+ if (closest_count) {
+ log_warn("Closest command usage is:");
+ _print_usage(closest_i, 0);
+ }
+ return NULL;
+ }
+
+ /*
+ * Check if all arg_is_set values from cmd are accepted as
+ * optional_opt_args, and warn (or fail per config?) if options are set
+ * in cmd that are not accepted by the chosen command[i].
+ *
+ * Same for pos args.
+ */
+
+ /* log_warn("command matched: %.256s ...", commands[best_match_i].usage); */
+
+ return &commands[best_match_i];
}
static void _short_usage(const char *name)
@@ -814,67 +1143,109 @@ static void _short_usage(const char *name)
log_error("Run `%s --help' for more information.", name);
}
-static int _usage(const char *name)
+static int _usage(const char *name, int help_count)
{
- struct command *com = _find_command(name);
+ struct command_name *cname = _find_command_name(name);
+ int i;
- if (!com) {
+ if (!cname) {
log_print("%s: no such command.", name);
return 0;
}
- log_print("%s: %s\n\n%s", com->name, com->desc, com->usage);
+ log_print("%s - %s\n", name, cname->desc);
+
+ for (i = 0; i < _cmdline.num_commands; i++) {
+ if (strcmp(_cmdline.commands[i].name, name))
+ continue;
+
+ if (strlen(_cmdline.commands[i].desc))
+ _print_description(i);
+
+ _print_usage(i, help_count > 1);
+ }
+
return 1;
}
/*
+ * Sets up the arguments to pass to getopt_long().
+ *
+ * getopt_long() takes a string of short option characters
+ * where the char is followed by ":" if the option takes an arg,
+ * e.g. "abc:d:" This string is created in optstrp.
+ *
+ * getopt_long() also takes an array of struct option which
+ * has the name of the long option, if it takes an arg, etc,
+ * e.g.
+ *
+ * option long_options[] = {
+ * { "foo", required_argument, 0, 0 },
+ * { "bar", no_argument, 0, 'b' }
+ * };
+ *
+ * this array is created in longoptsp.
+ *
+ * Original comment:
* Sets up the short and long argument. If there
* is no short argument then the index of the
* argument in the the_args array is set as the
* long opt value. Yuck. Of course this means we
* can't have more than 'a' long arguments.
*/
-static void _add_getopt_arg(int arg, char **ptr, struct option **o)
+
+static void _add_getopt_arg(int arg_enum, char **optstrp, struct option **longoptsp)
{
- struct arg_props *a = _cmdline.arg_props + arg;
+ struct arg_props *a = _cmdline.arg_props + arg_enum;
if (a->short_arg) {
- *(*ptr)++ = a->short_arg;
+ *(*optstrp)++ = a->short_arg;
if (a->fn)
- *(*ptr)++ = ':';
+ *(*optstrp)++ = ':';
}
#ifdef HAVE_GETOPTLONG
+ /* long_arg is "--foo", so +2 is the offset of the name after "--" */
+
if (*(a->long_arg + 2)) {
- (*o)->name = a->long_arg + 2;
- (*o)->has_arg = a->fn ? 1 : 0;
- (*o)->flag = NULL;
+ (*longoptsp)->name = a->long_arg + 2;
+ (*longoptsp)->has_arg = a->fn ? 1 : 0;
+ (*longoptsp)->flag = NULL;
+
+ /*
+ * When getopt_long() sees an option that has an associated
+ * single letter, it returns the ascii value of that letter.
+ * e.g. getopt_long() returns 100 for '-d' or '--debug'
+ * (100 is the ascii value of 'd').
+ *
+ * When getopt_long() sees an option that does not have an
+ * associated single letter, it returns the value of the
+ * the enum for that long option name plus 128.
+ * e.g. getopt_long() returns 139 for --cachepool
+ * (11 is the enum value for --cachepool, so 11+128)
+ */
+
if (a->short_arg)
- (*o)->val = a->short_arg;
+ (*longoptsp)->val = a->short_arg;
else
- (*o)->val = arg + 128;
- (*o)++;
+ (*longoptsp)->val = arg_enum + 128;
+ (*longoptsp)++;
}
#endif
}
-static int _find_arg(struct command *com, int opt)
+static int _find_arg(int goval)
{
- struct arg_props *a;
- int i, arg;
+ int i;
- for (i = 0; i < com->num_args; i++) {
- arg = com->valid_args[i];
- a = _cmdline.arg_props + arg;
+ for (i = 0; i < ARG_COUNT; i++) {
+ /* the value returned by getopt matches the ascii value of single letter option */
+ if (_cmdline.arg_props[i].short_arg && (goval == _cmdline.arg_props[i].short_arg))
+ return _cmdline.arg_props[i].enum_val;
- /*
- * opt should equal either the
- * short arg, or the index into
- * the_args.
- */
- if ((a->short_arg && (opt == a->short_arg)) ||
- (!a->short_arg && (opt == (arg + 128))))
- return arg;
+ /* the value returned by getopt matches the enum value plus 128 */
+ if (!_cmdline.arg_props[i].short_arg && (goval == _cmdline.arg_props[i].enum_val + 128))
+ return _cmdline.arg_props[i].enum_val;
}
return -1;
@@ -883,21 +1254,27 @@ static int _find_arg(struct command *com, int opt)
static int _process_command_line(struct cmd_context *cmd, int *argc,
char ***argv)
{
- int i, opt, arg;
char str[((ARG_COUNT + 1) * 2) + 1], *ptr = str;
struct option opts[ARG_COUNT + 1], *o = opts;
struct arg_props *a;
struct arg_values *av;
struct arg_value_group_list *current_group = NULL;
+ int arg_enum; /* e.g. foo_ARG */
+ int goval; /* the number returned from getopt_long identifying what it found */
+ int i;
- if (!(cmd->arg_values = dm_pool_zalloc(cmd->mem, sizeof(*cmd->arg_values) * ARG_COUNT))) {
+ if (!(cmd->opt_arg_values = dm_pool_zalloc(cmd->mem, sizeof(*cmd->opt_arg_values) * ARG_COUNT))) {
log_fatal("Unable to allocate memory for command line arguments.");
return 0;
}
- /* fill in the short and long opts */
- for (i = 0; i < cmd->command->num_args; i++)
- _add_getopt_arg(cmd->command->valid_args[i], &ptr, &o);
+ /*
+ * create the short-form character array (str) and the long-form option
+ * array (opts) to pass to the getopt_long() function. IOW we generate
+ * the arguments to pass to getopt_long() from the args.h/arg_props data.
+ */
+ for (i = 0; i < ARG_COUNT; i++)
+ _add_getopt_arg(_cmdline.arg_props[i].enum_val, &ptr, &o);
*ptr = '\0';
memset(o, 0, sizeof(*o));
@@ -905,19 +1282,23 @@ static int _process_command_line(struct cmd_context *cmd, int *argc,
/* initialise getopt_long & scan for command line switches */
optarg = 0;
optind = OPTIND_INIT;
- while ((opt = GETOPTLONG_FN(*argc, *argv, str, opts, NULL)) >= 0) {
+ while ((goval = GETOPTLONG_FN(*argc, *argv, str, opts, NULL)) >= 0) {
- if (opt == '?')
+ if (goval == '?')
return 0;
- if ((arg = _find_arg(cmd->command, opt)) < 0) {
+ /*
+ * translate the option value used by getopt into the enum
+ * value (e.g. foo_ARG) from the args array....
+ */
+ if ((arg_enum = _find_arg(goval)) < 0) {
log_fatal("Unrecognised option.");
return 0;
}
- a = _cmdline.arg_props + arg;
+ a = _cmdline.arg_props + arg_enum;
- av = &cmd->arg_values[arg];
+ av = &cmd->opt_arg_values[arg_enum];
if (a->flags & ARG_GROUPABLE) {
/*
@@ -927,10 +1308,10 @@ static int _process_command_line(struct cmd_context *cmd, int *argc,
* - or if argument has higher priority than current group.
*/
if (!current_group ||
- (current_group->arg_values[arg].count && !(a->flags & ARG_COUNTABLE)) ||
+ (current_group->arg_values[arg_enum].count && !(a->flags & ARG_COUNTABLE)) ||
(current_group->prio < a->prio)) {
/* FIXME Reduce size including only groupable args */
- if (!(current_group = dm_pool_zalloc(cmd->mem, sizeof(struct arg_value_group_list) + sizeof(*cmd->arg_values) * ARG_COUNT))) {
+ if (!(current_group = dm_pool_zalloc(cmd->mem, sizeof(struct arg_value_group_list) + sizeof(*cmd->opt_arg_values) * ARG_COUNT))) {
log_fatal("Unable to allocate memory for command line arguments.");
return 0;
}
@@ -940,7 +1321,7 @@ static int _process_command_line(struct cmd_context *cmd, int *argc,
}
/* Maintain total argument count as well as count within each group */
av->count++;
- av = &current_group->arg_values[arg];
+ av = &current_group->arg_values[arg_enum];
}
if (av->count && !(a->flags & ARG_COUNTABLE)) {
@@ -1002,12 +1383,12 @@ static int _merge_synonym(struct cmd_context *cmd, int oldarg, int newarg)
/* Not groupable? */
if (!(_cmdline.arg_props[oldarg].flags & ARG_GROUPABLE)) {
if (arg_is_set(cmd, oldarg))
- _copy_arg_values(cmd->arg_values, oldarg, newarg);
+ _copy_arg_values(cmd->opt_arg_values, oldarg, newarg);
return 1;
}
if (arg_is_set(cmd, oldarg))
- cmd->arg_values[newarg].count = cmd->arg_values[oldarg].count;
+ cmd->opt_arg_values[newarg].count = cmd->opt_arg_values[oldarg].count;
/* Groupable */
dm_list_iterate_items(current_group, &cmd->arg_value_groups) {
@@ -1188,7 +1569,10 @@ static int _get_settings(struct cmd_context *cmd)
static int _process_common_commands(struct cmd_context *cmd)
{
if (arg_is_set(cmd, help_ARG) || arg_is_set(cmd, help2_ARG)) {
- _usage(cmd->command->name);
+ _usage(cmd->command->name, arg_count(cmd, help_ARG));
+
+ if (arg_count(cmd, help_ARG) < 2)
+ log_print("(Use --help --help to include optional parameters.)");
return ECMD_PROCESSED;
}
@@ -1208,10 +1592,10 @@ static void _display_help(void)
log_error("Use 'lvm help <command>' for more information");
log_error(" ");
- for (i = 0; i < _cmdline.num_commands; i++) {
- struct command *com = _cmdline.commands + i;
+ for (i = 0; i < _cmdline.num_command_names; i++) {
+ struct command_name *cname = _cmdline.command_names + i;
- log_error("%-16.16s%s", com->name, com->desc);
+ log_error("%-16.16s%s", cname->name, cname->desc);
}
}
@@ -1224,7 +1608,7 @@ int help(struct cmd_context *cmd __attribute__((unused)), int argc, char **argv)
else {
int i;
for (i = 0; i < argc; i++)
- if (!_usage(argv[i]))
+ if (!_usage(argv[i], 0))
ret = EINVALID_CMD_LINE;
}
@@ -1431,7 +1815,7 @@ static int _prepare_profiles(struct cmd_context *cmd)
log_debug(_setting_global_profile_msg, _command_profile_source_name, profile->name);
cmd->profile_params->global_command_profile = profile;
- if (!cmd->arg_values)
+ if (!cmd->opt_arg_values)
cmd->profile_params->shell_profile = profile;
}
@@ -1502,6 +1886,7 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv)
{
struct dm_config_tree *config_string_cft, *config_profile_command_cft, *config_profile_metadata_cft;
const char *reason = NULL;
+ const char *cmd_name;
int ret = 0;
int locking_type;
int monitoring;
@@ -1515,6 +1900,8 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv)
/* each command should start out with sigint flag cleared */
sigint_clear();
+ cmd_name = strdup(argv[0]);
+
/* eliminate '-' from all options starting with -- */
for (i = 1; i < argc; i++) {
@@ -1553,15 +1940,15 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv)
log_debug("Parsing: %s", cmd->cmd_line);
- if (!(cmd->command = _find_command(argv[0])))
- return ENO_SUCH_CMD;
-
if (!_process_command_line(cmd, &argc, &argv)) {
log_error("Error during parsing of command line.");
return EINVALID_CMD_LINE;
}
- set_cmd_name(cmd->command->name);
+ if (!(cmd->command = _find_command(cmd, cmd_name)))
+ return ENO_SUCH_CMD;
+
+ set_cmd_name(cmd_name);
if (arg_is_set(cmd, backgroundfork_ARG)) {
if (!become_daemon(cmd, 1)) {
@@ -2040,23 +2427,8 @@ struct cmd_context *init_lvm(unsigned set_connections, unsigned set_filters)
return cmd;
}
-static void _fin_commands(void)
-{
- int i;
-
- for (i = 0; i < _cmdline.num_commands; i++)
- dm_free(_cmdline.commands[i].valid_args);
-
- dm_free(_cmdline.commands);
-
- _cmdline.commands = NULL;
- _cmdline.num_commands = 0;
- _cmdline.commands_size = 0;
-}
-
void lvm_fin(struct cmd_context *cmd)
{
- _fin_commands();
destroy_toolcontext(cmd);
udev_fin_library_context();
}
@@ -2202,7 +2574,8 @@ int lvm2_main(int argc, char **argv)
if (!(cmd = init_lvm(0, 0)))
return -1;
- cmd->argv = argv;
+ cmd->pos_arg_values = argv;
+
lvm_register_commands();
if (_lvm1_fallback(cmd)) {
diff --git a/tools/toollib.c b/tools/toollib.c
index 4f8cbb4af..f800872e1 100644
--- a/tools/toollib.c
+++ b/tools/toollib.c
@@ -105,7 +105,7 @@ int become_daemon(struct cmd_context *cmd, int skip_lvm)
init_verbose(VERBOSE_BASE_LEVEL);
#endif /* DEBUG_CHILD */
- strncpy(*cmd->argv, "(lvm2)", strlen(*cmd->argv));
+ strncpy(*cmd->pos_arg_values, "(lvm2)", strlen(*cmd->pos_arg_values));
lvmetad_disconnect();
diff --git a/tools/tools.h b/tools/tools.h
index f6d224fb1..9d7e8448d 100644
--- a/tools/tools.h
+++ b/tools/tools.h
@@ -50,13 +50,6 @@
#define CMD_LEN 256
#define MAX_ARGS 64
-/* command functions */
-typedef int (*command_fn) (struct cmd_context * cmd, int argc, char **argv);
-
-#define xx(a, b...) int a(struct cmd_context *cmd, int argc, char **argv);
-#include "commands.h"
-#undef xx
-
/* define the enums for the command line switches */
enum {
#define arg(a, b, c, d, e, f) a ,
@@ -64,6 +57,13 @@ enum {
#undef arg
};
+/* command functions */
+#define xx(a, b...) int a(struct cmd_context *cmd, int argc, char **argv);
+#include "commands.h"
+#undef xx
+
+#include "command.h"
+
#define ARG_COUNTABLE 0x00000001 /* E.g. -vvvv */
#define ARG_GROUPABLE 0x00000002 /* E.g. --addtag */
@@ -81,6 +81,7 @@ struct arg_values {
/* a global table of possible arguments */
struct arg_props {
+ int enum_val;
const char short_arg;
char _padding[7];
const char *long_arg;
@@ -118,19 +119,6 @@ struct arg_value_group_list {
#define ENABLE_DUPLICATE_DEVS 0x00000400
/* Command does not accept tags as args. */
#define DISALLOW_TAG_ARGS 0x00000800
-
-/* a register of the lvm commands */
-struct command {
- const char *name;
- const char *desc;
- const char *usage;
- command_fn fn;
-
- unsigned flags;
-
- int num_args;
- int *valid_args;
-};
void usage(const char *name);