diff mbox

[7/9] ndctl: return unit size from parse_size64()

Message ID 148401048177.16217.14743190895800442308.stgit@dwillia2-desk3.amr.corp.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dan Williams Jan. 10, 2017, 1:08 a.m. UTC
In preparation for suggesting namespace sizes that satisfy alignment
requirements, add the ability to track the size suffix. The suggestions
will be aligned to the size suffix by default.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
---
 util/size.c |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/util/size.c b/util/size.c
index 1ca2dcff5e28..6ad622781a27 100644
--- a/util/size.c
+++ b/util/size.c
@@ -2,7 +2,8 @@ 
 #include <limits.h>
 #include <util/size.h>
 
-unsigned long long parse_size64(const char *str)
+static unsigned long long __parse_size64(const char *str,
+		unsigned long long *units)
 {
 	unsigned long long val, check;
 	char *end;
@@ -14,25 +15,35 @@  unsigned long long parse_size64(const char *str)
 	switch (*end) {
 		case 'k':
 		case 'K':
+			if (units)
+				*units = SZ_1K;
 			val *= SZ_1K;
 			end++;
 			break;
 		case 'm':
 		case 'M':
+			if (units)
+				*units = SZ_1M;
 			val *= SZ_1M;
 			end++;
 			break;
 		case 'g':
 		case 'G':
+			if (units)
+				*units = SZ_1G;
 			val *= SZ_1G;
 			end++;
 			break;
 		case 't':
 		case 'T':
+			if (units)
+				*units = SZ_1T;
 			val *= SZ_1T;
 			end++;
 			break;
 		default:
+			if (units)
+				*units = 1;
 			break;
 	}
 
@@ -40,3 +51,8 @@  unsigned long long parse_size64(const char *str)
 		val = ULLONG_MAX;
 	return val;
 }
+
+unsigned long long parse_size64(const char *str)
+{
+	return __parse_size64(str, NULL);
+}