Index: kernel/generic/include/func.h
===================================================================
--- kernel/generic/include/func.h	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ kernel/generic/include/func.h	(revision e535eeb8ca65f325690f9d79d60ea2f3c9e9da35)
@@ -43,5 +43,4 @@
 extern void halt(void) __attribute__((noreturn));
 extern unative_t atoi(const char *text);
-extern void order(const uint64_t val, uint64_t *rv, char *suffix);
 
 #endif
Index: kernel/generic/include/str.h
===================================================================
--- kernel/generic/include/str.h	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ kernel/generic/include/str.h	(revision e535eeb8ca65f325690f9d79d60ea2f3c9e9da35)
@@ -99,4 +99,6 @@
 extern int str_uint64(const char *, char **, unsigned int, bool, uint64_t *);
 
+extern void order_suffix(const uint64_t val, uint64_t *rv, char *suffix);
+
 #endif
 
Index: kernel/generic/src/console/cmd.c
===================================================================
--- kernel/generic/src/console/cmd.c	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ kernel/generic/src/console/cmd.c	(revision e535eeb8ca65f325690f9d79d60ea2f3c9e9da35)
@@ -1068,6 +1068,6 @@
 	uint64_t ucycles, kcycles;
 	char usuffix, ksuffix;
-	order(ucycles1 - ucycles0, &ucycles, &usuffix);
-	order(kcycles1 - kcycles0, &kcycles, &ksuffix);
+	order_suffix(ucycles1 - ucycles0, &ucycles, &usuffix);
+	order_suffix(kcycles1 - kcycles0, &kcycles, &ksuffix);
 		
 	printf("Time: %" PRIu64 "%c user cycles, %" PRIu64 "%c kernel cycles\n",
@@ -1130,6 +1130,6 @@
 		
 		data[i] = ucycles1 - ucycles0 + kcycles1 - kcycles0;
-		order(ucycles1 - ucycles0, &ucycles, &usuffix);
-		order(kcycles1 - kcycles0, &kcycles, &ksuffix);
+		order_suffix(ucycles1 - ucycles0, &ucycles, &usuffix);
+		order_suffix(kcycles1 - kcycles0, &kcycles, &ksuffix);
 		printf("OK (%" PRIu64 "%c user cycles, %" PRIu64 "%c kernel cycles)\n",
 				ucycles, usuffix, kcycles, ksuffix);
@@ -1145,5 +1145,5 @@
 		}
 		
-		order(sum / (uint64_t) cnt, &ucycles, &usuffix);
+		order_suffix(sum / (uint64_t) cnt, &ucycles, &usuffix);
 		printf("Average\t\t%" PRIu64 "%c\n", ucycles, usuffix);
 	}
Index: kernel/generic/src/lib/func.c
===================================================================
--- kernel/generic/src/lib/func.c	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ kernel/generic/src/lib/func.c	(revision e535eeb8ca65f325690f9d79d60ea2f3c9e9da35)
@@ -123,31 +123,4 @@
 }
 
-
-void order(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: kernel/generic/src/lib/str.c
===================================================================
--- kernel/generic/src/lib/str.c	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ kernel/generic/src/lib/str.c	(revision e535eeb8ca65f325690f9d79d60ea2f3c9e9da35)
@@ -918,4 +918,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: kernel/generic/src/proc/task.c
===================================================================
--- kernel/generic/src/proc/task.c	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ kernel/generic/src/proc/task.c	(revision e535eeb8ca65f325690f9d79d60ea2f3c9e9da35)
@@ -432,6 +432,6 @@
 	char usuffix, ksuffix;
 	task_get_accounting(t, &ucycles, &kcycles);
-	order(ucycles, &ucycles, &usuffix);
-	order(kcycles, &kcycles, &ksuffix);
+	order_suffix(ucycles, &ucycles, &usuffix);
+	order_suffix(kcycles, &kcycles, &ksuffix);
 	
 #ifdef __32_BITS__	
Index: kernel/generic/src/proc/thread.c
===================================================================
--- kernel/generic/src/proc/thread.c	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ kernel/generic/src/proc/thread.c	(revision e535eeb8ca65f325690f9d79d60ea2f3c9e9da35)
@@ -50,5 +50,5 @@
 #include <synch/rwlock.h>
 #include <cpu.h>
-#include <func.h>
+#include <str.h>
 #include <context.h>
 #include <adt/avl.h>
@@ -626,6 +626,6 @@
 	uint64_t ucycles, kcycles;
 	char usuffix, ksuffix;
-	order(t->ucycles, &ucycles, &usuffix);
-	order(t->kcycles, &kcycles, &ksuffix);
+	order_suffix(t->ucycles, &ucycles, &usuffix);
+	order_suffix(t->kcycles, &kcycles, &ksuffix);
 
 #ifdef __32_BITS__
Index: uspace/app/tasks/Makefile
===================================================================
--- uspace/app/tasks/Makefile	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ uspace/app/tasks/Makefile	(revision e535eeb8ca65f325690f9d79d60ea2f3c9e9da35)
@@ -32,6 +32,5 @@
 
 SOURCES = \
-	tasks.c \
-	func.c
+	tasks.c
 
 include $(USPACE_PREFIX)/Makefile.common
Index: pace/app/tasks/func.c
===================================================================
--- uspace/app/tasks/func.c	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ 	(revision )
@@ -1,68 +1,0 @@
-/*
- * Copyright (c) 2001-2004 Jakub Jermar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup tasks
- * @{
- */
-
-/**
- * @file
- * @brief Miscellaneous functions.
- */
-
-#include <stdint.h>
-#include "func.h"
-
-void order(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: pace/app/tasks/func.h
===================================================================
--- uspace/app/tasks/func.h	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/*
- * Copyright (c) 2001-2004 Jakub Jermar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup tasks
- * @{
- */
-/** @file
- */
-
-#ifndef FUNC_H_
-#define FUNC_H_
-
-#include <stdint.h>
-
-extern void order(const uint64_t val, uint64_t *rv, char *suffix);
-
-#endif
-
-/** @}
- */
Index: uspace/app/tasks/tasks.c
===================================================================
--- uspace/app/tasks/tasks.c	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ uspace/app/tasks/tasks.c	(revision e535eeb8ca65f325690f9d79d60ea2f3c9e9da35)
@@ -45,6 +45,6 @@
 #include <inttypes.h>
 #include <bool.h>
+#include <str.h>
 #include <arg_parse.h>
-#include "func.h"
 
 #define NAME  "tasks"
@@ -76,7 +76,7 @@
 			char vmsuffix, usuffix, ksuffix;
 			
-			order(stats_task->virtmem, &virtmem, &vmsuffix);
-			order(stats_task->ucycles, &ucycles, &usuffix);
-			order(stats_task->kcycles, &kcycles, &ksuffix);
+			order_suffix(stats_task->virtmem, &virtmem, &vmsuffix);
+			order_suffix(stats_task->ucycles, &ucycles, &usuffix);
+			order_suffix(stats_task->kcycles, &kcycles, &ksuffix);
 			
 			printf("%8" PRIu64 "%8u %8" PRIu64"%c %12"
@@ -113,6 +113,6 @@
 				char usuffix, ksuffix;
 				
-				order(stats_thread->ucycles, &ucycles, &usuffix);
-				order(stats_thread->kcycles, &kcycles, &ksuffix);
+				order_suffix(stats_thread->ucycles, &ucycles, &usuffix);
+				order_suffix(stats_thread->kcycles, &kcycles, &ksuffix);
 				
 				if (stats_thread->on_cpu) {
Index: uspace/app/top/Makefile
===================================================================
--- uspace/app/top/Makefile	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ uspace/app/top/Makefile	(revision e535eeb8ca65f325690f9d79d60ea2f3c9e9da35)
@@ -35,5 +35,4 @@
 	screen.c \
 	input.c \
-	func.c \
 	ps.c
 
Index: pace/app/top/func.c
===================================================================
--- uspace/app/top/func.c	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ 	(revision )
@@ -1,68 +1,0 @@
-/*
- * Copyright (c) 2001-2004 Jakub Jermar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup top
- * @{
- */
-
-/**
- * @file
- * @brief Miscellaneous functions.
- */
-
-#include <stdint.h>
-#include "func.h"
-
-void order(const uint64_t val, uint64_t *rv, char *suffix)
-{
-	if (val > 10000000000000000000ULL) {
-		*rv = val >> 60;
-		*suffix = 'Z';
-	} else if (val > 1000000000000000000ULL) {
-		*rv = val >> 50;
-		*suffix = 'E';
-	} else if (val > 1000000000000000ULL) {
-		*rv = val >> 40;
-		*suffix = 'T';
-	} else if (val > 1000000000000ULL) {
-		*rv = val >> 30;
-		*suffix = 'G';
-	} else if (val > 1000000000ULL) {
-		*rv = val >> 20;
-		*suffix = 'M';
-	} else if (val > 1000000ULL) {
-		*rv = val >> 10;
-		*suffix = 'k';
-	} else {
-		*rv = val;
-		*suffix = ' ';
-	}
-}
-
-/** @}
- */
Index: pace/app/top/func.h
===================================================================
--- uspace/app/top/func.h	(revision e1b674201c97668fa9f3559cca094e0e1865629a)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/*
- * Copyright (c) 2001-2004 Jakub Jermar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup top
- * @{
- */
-/** @file
- */
-
-#ifndef FUNC_H_
-#define FUNC_H_
-
-#include <stdint.h>
-
-extern void order(const uint64_t, uint64_t *, char *);
-
-#endif
-
-/** @}
- */
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.
