summaryrefslogtreecommitdiffstats
path: root/rtemsbsd/include/rtems/bsd/sys
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-10-29 15:22:58 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-10-31 13:18:53 +0100
commit89761ed7548cd45e9f01ade9e90ce9422ebfd99a (patch)
tree52e417de6e99951a599da4a5898de5ca1abdc107 /rtemsbsd/include/rtems/bsd/sys
parentselectpollkqueue01: New test (diff)
downloadrtems-libbsd-89761ed7548cd45e9f01ade9e90ce9422ebfd99a.tar.bz2
Do not use FreeBSD time control
Diffstat (limited to 'rtemsbsd/include/rtems/bsd/sys')
-rw-r--r--rtemsbsd/include/rtems/bsd/sys/time.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/rtemsbsd/include/rtems/bsd/sys/time.h b/rtemsbsd/include/rtems/bsd/sys/time.h
index 7dea42bd..4eeff864 100644
--- a/rtemsbsd/include/rtems/bsd/sys/time.h
+++ b/rtemsbsd/include/rtems/bsd/sys/time.h
@@ -272,8 +272,27 @@ struct clockinfo {
void inittodr(time_t base);
void resettodr(void);
+#ifndef __rtems__
extern time_t time_second;
extern time_t time_uptime;
+#else /* __rtems__ */
+#include <rtems.h>
+
+static inline time_t
+rtems_bsd_time_second(void)
+{
+ return time(NULL);
+}
+
+static inline time_t
+rtems_bsd_time_uptime(void)
+{
+ return rtems_clock_get_uptime_seconds();
+}
+
+#define time_second rtems_bsd_time_second()
+#define time_uptime rtems_bsd_time_uptime()
+#endif /* __rtems__ */
extern struct timeval boottime;
/*
@@ -298,21 +317,67 @@ extern struct timeval boottime;
*
*/
+#ifndef __rtems__
void binuptime(struct bintime *bt);
+#else /* __rtems__ */
+static inline void
+binuptime(struct bintime *bt)
+{
+ struct timeval tv;
+
+ rtems_clock_get_uptime_timeval(&tv);
+ timeval2bintime(&tv, bt);
+}
+#endif /* __rtems__ */
void nanouptime(struct timespec *tsp);
void microuptime(struct timeval *tvp);
+#ifndef __rtems__
void bintime(struct bintime *bt);
+#else /* __rtems__ */
+static inline void
+bintime(struct bintime *bt)
+{
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+ timeval2bintime(&tv, bt);
+}
+#endif /* __rtems__ */
void nanotime(struct timespec *tsp);
+#ifndef __rtems__
void microtime(struct timeval *tvp);
+#else /* __rtems__ */
+static inline void
+microtime(struct timeval *tvp)
+{
+ gettimeofday(tvp, NULL);
+}
+#endif /* __rtems__ */
void getbinuptime(struct bintime *bt);
void getnanouptime(struct timespec *tsp);
+#ifndef __rtems__
void getmicrouptime(struct timeval *tvp);
+#else /* __rtems__ */
+static inline void
+getmicrouptime(struct timeval *tvp)
+{
+ rtems_clock_get_uptime_timeval(tvp);
+}
+#endif /* __rtems__ */
void getbintime(struct bintime *bt);
void getnanotime(struct timespec *tsp);
+#ifndef __rtems__
void getmicrotime(struct timeval *tvp);
+#else /* __rtems__ */
+static inline void
+getmicrotime(struct timeval *tvp)
+{
+ microtime(tvp);
+}
+#endif /* __rtems__ */
/* Other functions */
int itimerdecr(struct itimerval *itp, int usec);