Index: uspace/lib/posix/time.h
===================================================================
--- uspace/lib/posix/time.h	(revision 324d46b796a17e2bb13119a062bb6626158f8afa)
+++ uspace/lib/posix/time.h	(revision e4f8c77d2f0ec68a5943a6b063aaa901dc22d1b4)
@@ -56,4 +56,11 @@
 #endif
 
+#ifndef POSIX_SIGNAL_H_
+	struct posix_sigevent;
+	#ifndef LIBPOSIX_INTERNAL
+		#define sigevent posix_sigevent
+	#endif
+#endif
+
 #undef ASCTIME_BUF_LEN
 #define ASCTIME_BUF_LEN 26
@@ -74,7 +81,4 @@
 };
 
-// FIXME: should be in sys/types.h
-typedef long posix_clock_t;
-
 struct posix_timespec {
 	time_t tv_sec; /* Seconds. */
@@ -87,4 +91,6 @@
 };
 
+typedef struct __posix_timer *posix_timer_t;
+
 /* Timezones */
 
@@ -101,15 +107,53 @@
 /* Broken-down Time */
 extern time_t posix_mktime(struct posix_tm *timeptr);
-extern struct posix_tm *posix_localtime(const time_t *timep);
+extern struct posix_tm *posix_gmtime(const time_t *timer);
+extern struct posix_tm *posix_gmtime_r(const time_t *restrict timer,
+    struct posix_tm *restrict result);
+extern struct posix_tm *posix_localtime(const time_t *timer);
 extern struct posix_tm *posix_localtime_r(const time_t *restrict timer,
     struct posix_tm *restrict result);
+
 /* Formatting Calendar Time */
 extern char *posix_asctime(const struct posix_tm *timeptr);
 extern char *posix_asctime_r(const struct posix_tm *restrict timeptr,
     char *restrict buf);
-extern char *posix_ctime(const time_t *timep);
+extern char *posix_ctime(const time_t *timer);
+extern char *posix_ctime_r(const time_t *timer, char *buf);
+
 extern size_t posix_strftime(char *restrict s, size_t maxsize,
     const char *restrict format, const struct posix_tm *restrict tm);
 
+extern size_t posix_strftime_l(char *restrict s, size_t maxsize,
+    const char *restrict format, const struct posix_tm *restrict tm,
+    posix_locale_t loc);
+
+/* Clocks. */
+
+extern int posix_clock_getres(posix_clockid_t clock_id,
+    struct posix_timespec *res);
+extern int posix_clock_gettime(posix_clockid_t clock_id,
+    struct posix_timespec *tp);
+extern int posix_clock_settime(posix_clockid_t clock_id,
+    const struct posix_timespec *tp); 
+extern int posix_clock_nanosleep(posix_clockid_t clock_id, int flags,
+    const struct posix_timespec *rqtp, struct posix_timespec *rmtp);
+
+/* Timers. */
+
+#if 0
+
+extern int posix_timer_create(posix_clockid_t clockid,
+    struct posix_sigevent *restrict evp,
+    posix_timer_t *restrict timerid);
+extern int posix_timer_delete(posix_timer_t timerid);
+extern int posix_timer_getoverrun(posix_timer_t timerid);
+extern int posix_timer_gettime(posix_timer_t timerid,
+    struct posix_itimerspec *value);
+extern int posix_timer_settime(posix_timer_t timerid, int flags,
+    const struct posix_itimerspec *restrict value,
+    struct posix_itimerspec *restrict ovalue);
+
+#endif
+
 /* CPU Time */
 extern posix_clock_t posix_clock(void);
@@ -119,10 +163,12 @@
 	#define tm posix_tm
 
-	#define clock_t posix_clock_t
 	#define timespec posix_timespec
 	#define itimerspec posix_itimerspec
+	#define timer_t posix_timer_t
 
 	#define difftime posix_difftime
 	#define mktime posix_mktime
+	#define gmtime posix_gmtime
+	#define gmtime_r posix_gmtime_r
 	#define localtime posix_localtime
 	#define localtime_r posix_localtime_r
@@ -136,6 +182,18 @@
 	#define asctime_r posix_asctime_r
 	#define ctime posix_ctime
+	#define ctime_r posix_ctime_r
 	#define strftime posix_strftime
 
+	#define clock_getres posix_clock_getres
+	#define clock_gettime posix_clock_gettime
+	#define clock_settime posix_clock_settime
+	#define clock_nanosleep posix_clock_nanosleep
+	
+	#define timer_create posix_timer_create
+	#define timer_delete posix_timer_delete
+	#define timer_getoverrun posix_timer_getoverrun
+	#define timer_gettime posix_timer_gettime
+	#define timer_settime posix_timer_settime
+	
 	#define clock posix_clock
 #endif
