diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2017-01-03 13:02:52 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2017-01-03 14:55:16 +0100 |
commit | 9f65a3f0c54fc349da279f9a9e8f1b214945489e (patch) | |
tree | 9aafa936dcd0c8fa4d3c5311c2de7ff2e41e8ad3 | |
parent | e75f0b7c771ac6b3a2925af92a9f3098fa8381a7 (diff) | |
download | lvm2-9f65a3f0c54fc349da279f9a9e8f1b214945489e.tar.gz |
lvmcmdline: support uint32
Add simple function to wrap usage for only uint32 numbers.
Unlike 'int_arg' which accepts full range of 64bit number
this function will error on numbers out of this range:
<0, UINT32_MAX>
-rw-r--r-- | tools/lvmcmdline.c | 8 | ||||
-rw-r--r-- | tools/tools.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c index 9a4deb7d5..ae26957e9 100644 --- a/tools/lvmcmdline.c +++ b/tools/lvmcmdline.c @@ -554,6 +554,14 @@ int int_arg(struct cmd_context *cmd __attribute__((unused)), struct arg_values * return 1; } +int uint32_arg(struct cmd_context *cmd, struct arg_values *av) +{ + if (!int_arg(cmd, av) || (av->ui64_value > UINT32_MAX)) + return 0; + + return 1; +} + int int_arg_with_sign(struct cmd_context *cmd __attribute__((unused)), struct arg_values *av) { char *ptr; diff --git a/tools/tools.h b/tools/tools.h index f6d224fb1..1419af9f5 100644 --- a/tools/tools.h +++ b/tools/tools.h @@ -144,6 +144,7 @@ int size_kb_arg(struct cmd_context *cmd, struct arg_values *av); int size_mb_arg(struct cmd_context *cmd, struct arg_values *av); int size_mb_arg_with_percent(struct cmd_context *cmd, struct arg_values *av); int int_arg(struct cmd_context *cmd, struct arg_values *av); +int uint32_arg(struct cmd_context *cmd, struct arg_values *av); int int_arg_with_sign(struct cmd_context *cmd, struct arg_values *av); int int_arg_with_sign_and_percent(struct cmd_context *cmd, struct arg_values *av); int major_arg(struct cmd_context *cmd, struct arg_values *av); |