Index: uspace/lib/libc/generic/async.c
===================================================================
--- uspace/lib/libc/generic/async.c	(revision f2f03920b9cbe70ec1fa65df9ff172eba44647a4)
+++ uspace/lib/libc/generic/async.c	(revision 7b63b6b0ed5eb2c8d7afc8e459b93343244389d7)
@@ -100,5 +100,5 @@
 #include <assert.h>
 #include <errno.h>
-#include <time.h>
+#include <sys/time.h>
 #include <arch/barrier.h>
 
@@ -161,47 +161,4 @@
 static async_client_conn_t client_connection = default_client_connection;
 static async_client_conn_t interrupt_received = default_interrupt_received;
-
-/** Add microseconds to give timeval */
-static void tv_add(struct timeval *tv, suseconds_t usecs)
-{
-	tv->tv_sec += usecs / 1000000;
-	tv->tv_usec += usecs % 1000000;
-	if (tv->tv_usec > 1000000) {
-		tv->tv_sec++;
-		tv->tv_usec -= 1000000;
-	}
-}
-
-/** Subtract 2 timevals, return microseconds difference */
-static suseconds_t tv_sub(struct timeval *tv1, struct timeval *tv2)
-{
-	suseconds_t result;
-
-	result = tv1->tv_usec - tv2->tv_usec;
-	result += (tv1->tv_sec - tv2->tv_sec) * 1000000;
-
-	return result;
-}
-
-/** Compare timeval
- *
- * @return 1 if tv1 > tv2, otherwise 0
- */
-static int tv_gt(struct timeval *tv1, struct timeval *tv2)
-{
-	if (tv1->tv_sec > tv2->tv_sec)
-		return 1;
-	if (tv1->tv_sec == tv2->tv_sec && tv1->tv_usec > tv2->tv_usec)
-		return 1;
-	return 0;
-}
-static int tv_gteq(struct timeval *tv1, struct timeval *tv2)
-{
-	if (tv1->tv_sec > tv2->tv_sec)
-		return 1;
-	if (tv1->tv_sec == tv2->tv_sec && tv1->tv_usec >= tv2->tv_usec)
-		return 1;
-	return 0;
-}
 
 /* Hash table functions */
Index: uspace/lib/libc/generic/time.c
===================================================================
--- uspace/lib/libc/generic/time.c	(revision f2f03920b9cbe70ec1fa65df9ff172eba44647a4)
+++ uspace/lib/libc/generic/time.c	(revision 7b63b6b0ed5eb2c8d7afc8e459b93343244389d7)
@@ -54,4 +54,71 @@
 	volatile sysarg_t seconds2;
 } *ktime = NULL;
+
+/** Add microseconds to given timeval.
+ *
+ * @param tv		Destination timeval.
+ * @param usecs		Number of microseconds to add.
+ */
+void tv_add(struct timeval *tv, suseconds_t usecs)
+{
+	tv->tv_sec += usecs / 1000000;
+	tv->tv_usec += usecs % 1000000;
+	if (tv->tv_usec > 1000000) {
+		tv->tv_sec++;
+		tv->tv_usec -= 1000000;
+	}
+}
+
+/** Subtract two timevals.
+ *
+ * @param tv1		First timeval.
+ * @param tv2		Second timeval.
+ *
+ * @return		Return difference between tv1 and tv2 (tv1 - tv2) in
+ * 			microseconds.
+ */
+suseconds_t tv_sub(struct timeval *tv1, struct timeval *tv2)
+{
+	suseconds_t result;
+
+	result = tv1->tv_usec - tv2->tv_usec;
+	result += (tv1->tv_sec - tv2->tv_sec) * 1000000;
+
+	return result;
+}
+
+/** Decide if one timeval is greater than the other.
+ *
+ * @param t1		First timeval.
+ * @param t2		Second timeval.
+ *
+ * @return		Return true tv1 is greater than tv2. Otherwise return
+ * 			false.
+ */
+int tv_gt(struct timeval *tv1, struct timeval *tv2)
+{
+	if (tv1->tv_sec > tv2->tv_sec)
+		return 1;
+	if (tv1->tv_sec == tv2->tv_sec && tv1->tv_usec > tv2->tv_usec)
+		return 1;
+	return 0;
+}
+
+/** Decide if one timeval is greater than or equal to the other.
+ *
+ * @param tv1		First timeval.
+ * @param tv2		Second timeval.
+ *
+ * @return		Return true if tv1 is greater than or equal to tv2.
+ * 			Otherwise return false.
+ */
+int tv_gteq(struct timeval *tv1, struct timeval *tv2)
+{
+	if (tv1->tv_sec > tv2->tv_sec)
+		return 1;
+	if (tv1->tv_sec == tv2->tv_sec && tv1->tv_usec >= tv2->tv_usec)
+		return 1;
+	return 0;
+}
 
 
Index: uspace/lib/libc/include/sys/time.h
===================================================================
--- uspace/lib/libc/include/sys/time.h	(revision f2f03920b9cbe70ec1fa65df9ff172eba44647a4)
+++ uspace/lib/libc/include/sys/time.h	(revision 7b63b6b0ed5eb2c8d7afc8e459b93343244389d7)
@@ -53,5 +53,9 @@
 };
 
-int gettimeofday(struct timeval *tv, struct timezone *tz);
+extern void tv_add(struct timeval *tv, suseconds_t usecs);
+extern suseconds_t tv_sub(struct timeval *tv1, struct timeval *tv2);
+extern int tv_gt(struct timeval *tv1, struct timeval *tv2);
+extern int tv_gteq(struct timeval *tv1, struct timeval *tv2);
+extern int gettimeofday(struct timeval *tv, struct timezone *tz);
 
 #endif
Index: uspace/lib/libc/include/time.h
===================================================================
--- uspace/lib/libc/include/time.h	(revision f2f03920b9cbe70ec1fa65df9ff172eba44647a4)
+++ 	(revision )
@@ -1,41 +1,0 @@
-/*
- * Copyright (c) 2006 Ondrej Palkovsky
- * 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 libc
- * @{
- */
-/** @file
- */ 
-
-#ifndef LIBC_TIME_H_
-#define LIBC_TIME_H_
-
-#endif
-
-/** @}
- */
