[RFC][PATCH 1/4] break up string_get_size()

From: Dave Hansen
Date: Fri Sep 30 2011 - 14:03:41 EST



I started to break up string_get_size() in to some pieces
so that I could pick and choose which bits I wanted. I
ended up not re-using this function. But, I think this
still stands by itself since it makes the code much more
self-explanatory.

Signed-off-by: Dave Hansen <dave@xxxxxxxxxxxxxxxxxx>
---

linux-2.6.git-dave/lib/string_helpers.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)

diff -puN lib/string_helpers.c~break-up-string_get_size lib/string_helpers.c
--- linux-2.6.git/lib/string_helpers.c~break-up-string_get_size 2011-09-30 10:58:32.909418688 -0700
+++ linux-2.6.git-dave/lib/string_helpers.c 2011-09-30 10:58:32.953418603 -0700
@@ -8,6 +8,18 @@
#include <linux/module.h>
#include <linux/string_helpers.h>

+static int calc_sf_digit_room(u64 size)
+{
+ u64 sf_cap;
+ int digits;
+
+ sf_cap = size;
+ for (digits = 0; sf_cap*10 < 1000; digits++)
+ sf_cap *= 10;
+
+ return digits;
+}
+
/**
* string_get_size - get the size in the specified units
* @size: The size to be converted
@@ -36,7 +48,7 @@ int string_get_size(u64 size, const enum
[STRING_UNITS_2] = 1024,
};
int i, j;
- u64 remainder = 0, sf_cap;
+ u64 remainder = 0;
char tmp[8];

tmp[0] = '\0';
@@ -47,10 +59,7 @@ int string_get_size(u64 size, const enum
i++;
}

- sf_cap = size;
- for (j = 0; sf_cap*10 < 1000; j++)
- sf_cap *= 10;
-
+ j = calc_sf_digit_room(size);
if (j) {
remainder *= 1000;
do_div(remainder, divisor[units]);
_
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/