[lvm-devel] master - lvmcmdline: support uint32

Zdenek Kabelac zkabelac at fedoraproject.org
Tue Jan 3 13:56:06 UTC 2017


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=9f65a3f0c54fc349da279f9a9e8f1b214945489e
Commit:        9f65a3f0c54fc349da279f9a9e8f1b214945489e
Parent:        e75f0b7c771ac6b3a2925af92a9f3098fa8381a7
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Tue Jan 3 13:02:52 2017 +0100
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Tue Jan 3 14:55:16 2017 +0100

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>
---
 tools/lvmcmdline.c |    8 ++++++++
 tools/tools.h      |    1 +
 2 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index 9a4deb7..ae26957 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 f6d224f..1419af9 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);




More information about the lvm-devel mailing list