Index: uspace/lib/c/generic/str.c
===================================================================
--- uspace/lib/c/generic/str.c	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ uspace/lib/c/generic/str.c	(revision e535eeb8ca65f325690f9d79d60ea2f3c9e9da35)
@@ -1007,4 +1007,30 @@
 }
 
+void order_suffix(const uint64_t val, uint64_t *rv, char *suffix)
+{
+	if (val > 10000000000000000000ULL) {
+		*rv = val / 1000000000000000000ULL;
+		*suffix = 'Z';
+	} else if (val > 1000000000000000000ULL) {
+		*rv = val / 1000000000000000ULL;
+		*suffix = 'E';
+	} else if (val > 1000000000000000ULL) {
+		*rv = val / 1000000000000ULL;
+		*suffix = 'T';
+	} else if (val > 1000000000000ULL) {
+		*rv = val / 1000000000ULL;
+		*suffix = 'G';
+	} else if (val > 1000000000ULL) {
+		*rv = val / 1000000ULL;
+		*suffix = 'M';
+	} else if (val > 1000000ULL) {
+		*rv = val / 1000ULL;
+		*suffix = 'k';
+	} else {
+		*rv = val;
+		*suffix = ' ';
+	}
+}
+
 /** @}
  */
Index: uspace/lib/c/include/str.h
===================================================================
--- uspace/lib/c/include/str.h	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ uspace/lib/c/include/str.h	(revision e535eeb8ca65f325690f9d79d60ea2f3c9e9da35)
@@ -86,4 +86,6 @@
 extern char *str_ndup(const char *, size_t max_size);
 
+extern void order_suffix(const uint64_t val, uint64_t *rv, char *suffix);
+
 /*
  * TODO: Get rid of this.
