summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-03-15 10:01:25 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-03-24 15:20:56 +0100
commit20b7d3d9c04bf2d66e2b3bfede4d52c59ad2fbe8 (patch)
tree568d6d54c3ec55814225d2f1c04e2f052e6bf3fe
parentSpecial case for <rtems/bsd/zerocopy.h> (diff)
downloadrtems-libbsd-20b7d3d9c04bf2d66e2b3bfede4d52c59ad2fbe8.tar.bz2
Update due to Newlib <sys/time.h> etc. changes
-rwxr-xr-xfreebsd-to-rtems.py2
-rw-r--r--freebsd/sys/sys/_timeval.h56
-rw-r--r--freebsd/sys/sys/select.h2
-rw-r--r--rtemsbsd/include/rtems/bsd/sys/time.h398
-rw-r--r--rtemsbsd/include/rtems/bsd/sys/timespec.h81
-rw-r--r--rtemsbsd/rtems/rtems-bsd-timesupport.c42
6 files changed, 55 insertions, 526 deletions
diff --git a/freebsd-to-rtems.py b/freebsd-to-rtems.py
index 6c4457b4..58698ae1 100755
--- a/freebsd-to-rtems.py
+++ b/freebsd-to-rtems.py
@@ -181,7 +181,6 @@ def fixIncludes(data):
data = re.sub('#include <sys/types.h>', '#include <rtems/bsd/sys/types.h>', data)
data = re.sub('#include <sys/resource.h>', '#include <rtems/bsd/sys/resource.h>', data)
data = re.sub('#include <sys/unistd.h>', '#include <rtems/bsd/sys/unistd.h>', data)
- data = re.sub('#include <sys/timespec.h>', '#include <rtems/bsd/sys/timespec.h>', data)
data = re.sub('#include <sys/_types.h>', '#include <rtems/bsd/sys/_types.h>', data)
return data
@@ -857,7 +856,6 @@ base.addKernelSpaceHeaderFiles(
'sys/rpc/types.h',
'sys/sys/timepps.h',
'sys/sys/timetc.h',
- 'sys/sys/_timeval.h',
'sys/sys/timex.h',
'sys/sys/tree.h',
'sys/sys/ttycom.h',
diff --git a/freebsd/sys/sys/_timeval.h b/freebsd/sys/sys/_timeval.h
deleted file mode 100644
index c1edd5c8..00000000
--- a/freebsd/sys/sys/_timeval.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*-
- * Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
- *
- * $FreeBSD$
- */
-
-#ifndef _SYS__TIMEVAL_H_
-#define _SYS__TIMEVAL_H_
-
-#ifndef __rtems__
-#include <rtems/bsd/sys/_types.h>
-
-#ifndef _SUSECONDS_T_DECLARED
-typedef __suseconds_t suseconds_t;
-#define _SUSECONDS_T_DECLARED
-#endif
-
-#ifndef _TIME_T_DECLARED
-typedef __time_t time_t;
-#define _TIME_T_DECLARED
-#endif
-
-/*
- * Structure returned by gettimeofday(2) system call, and used in other calls.
- */
-struct timeval {
- time_t tv_sec; /* seconds */
- suseconds_t tv_usec; /* and microseconds */
-};
-#else /* __rtems__ */
-#include <rtems/bsd/sys/time.h>
-#endif /* __rtems__ */
-
-#endif /* !_SYS__TIMEVAL_H_ */
diff --git a/freebsd/sys/sys/select.h b/freebsd/sys/sys/select.h
index f348f54e..6db6c373 100644
--- a/freebsd/sys/sys/select.h
+++ b/freebsd/sys/sys/select.h
@@ -37,7 +37,7 @@
#include <sys/_sigset.h>
#include <sys/_timeval.h>
-#include <rtems/bsd/sys/timespec.h>
+#include <sys/timespec.h>
#ifndef __rtems__
typedef unsigned long __fd_mask;
diff --git a/rtemsbsd/include/rtems/bsd/sys/time.h b/rtemsbsd/include/rtems/bsd/sys/time.h
index b6f45ba0..8120aaeb 100644
--- a/rtemsbsd/include/rtems/bsd/sys/time.h
+++ b/rtemsbsd/include/rtems/bsd/sys/time.h
@@ -1,6 +1,11 @@
-/*-
- * Copyright (c) 1982, 1986, 1993
- * The Regents of the University of California. All rights reserved.
+/*
+ * Copyright (c) 2009-2015 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Dornierstr. 4
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,14 +15,11 @@
* 2. 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.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
*
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS BE LIABLE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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)
@@ -25,257 +27,11 @@
* 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.
- *
- * @(#)time.h 8.5 (Berkeley) 5/4/95
- * $FreeBSD$
*/
-
#ifndef _RTEMS_BSD_SYS_TIME_H_
#define _RTEMS_BSD_SYS_TIME_H_
-#include <sys/_timeval.h>
-#include <rtems/bsd/sys/types.h>
-#include <rtems/bsd/sys/timespec.h>
-#ifdef __rtems__
#include <sys/time.h>
-#endif /* __rtems__ */
-
-#ifndef __rtems__
-struct timezone {
- int tz_minuteswest; /* minutes west of Greenwich */
- int tz_dsttime; /* type of dst correction */
-};
-#endif
-
-#define DST_NONE 0 /* not on dst */
-#define DST_USA 1 /* USA style dst */
-#define DST_AUST 2 /* Australian style dst */
-#define DST_WET 3 /* Western European dst */
-#define DST_MET 4 /* Middle European dst */
-#define DST_EET 5 /* Eastern European dst */
-#define DST_CAN 6 /* Canada */
-
-#if __BSD_VISIBLE
-struct bintime {
- time_t sec;
- uint64_t frac;
-};
-
-static __inline void
-bintime_addx(struct bintime *bt, uint64_t x)
-{
- uint64_t u;
-
- u = bt->frac;
- bt->frac += x;
- if (u > bt->frac)
- bt->sec++;
-}
-
-static __inline void
-bintime_add(struct bintime *bt, const struct bintime *bt2)
-{
- uint64_t u;
-
- u = bt->frac;
- bt->frac += bt2->frac;
- if (u > bt->frac)
- bt->sec++;
- bt->sec += bt2->sec;
-}
-
-static __inline void
-bintime_sub(struct bintime *bt, const struct bintime *bt2)
-{
- uint64_t u;
-
- u = bt->frac;
- bt->frac -= bt2->frac;
- if (u < bt->frac)
- bt->sec--;
- bt->sec -= bt2->sec;
-}
-
-/*-
- * Background information:
- *
- * When converting between timestamps on parallel timescales of differing
- * resolutions it is historical and scientific practice to round down rather
- * than doing 4/5 rounding.
- *
- * The date changes at midnight, not at noon.
- *
- * Even at 15:59:59.999999999 it's not four'o'clock.
- *
- * time_second ticks after N.999999999 not after N.4999999999
- */
-
-static __inline void
-bintime2timespec(const struct bintime *bt, struct timespec *ts)
-{
-
- ts->tv_sec = bt->sec;
- ts->tv_nsec = ((uint64_t)1000000000 * (uint32_t)(bt->frac >> 32)) >> 32;
-}
-
-static __inline void
-timespec2bintime(const struct timespec *ts, struct bintime *bt)
-{
-
- bt->sec = ts->tv_sec;
- /* 18446744073 = int(2^64 / 1000000000) */
- bt->frac = ts->tv_nsec * (uint64_t)18446744073LL;
-}
-
-static __inline void
-bintime2timeval(const struct bintime *bt, struct timeval *tv)
-{
-
- tv->tv_sec = bt->sec;
- tv->tv_usec = ((uint64_t)1000000 * (uint32_t)(bt->frac >> 32)) >> 32;
-}
-
-static __inline void
-timeval2bintime(const struct timeval *tv, struct bintime *bt)
-{
-
- bt->sec = tv->tv_sec;
- /* 18446744073709 = int(2^64 / 1000000) */
- bt->frac = tv->tv_usec * (uint64_t)18446744073709LL;
-}
-#endif /* __BSD_VISIBLE */
-
-#ifdef _KERNEL
-
-/* Operations on timespecs */
-#define timespecclear(tvp) ((tvp)->tv_sec = (tvp)->tv_nsec = 0)
-#define timespecisset(tvp) ((tvp)->tv_sec || (tvp)->tv_nsec)
-#define timespeccmp(tvp, uvp, cmp) \
- (((tvp)->tv_sec == (uvp)->tv_sec) ? \
- ((tvp)->tv_nsec cmp (uvp)->tv_nsec) : \
- ((tvp)->tv_sec cmp (uvp)->tv_sec))
-#define timespecadd(vvp, uvp) \
- do { \
- (vvp)->tv_sec += (uvp)->tv_sec; \
- (vvp)->tv_nsec += (uvp)->tv_nsec; \
- if ((vvp)->tv_nsec >= 1000000000) { \
- (vvp)->tv_sec++; \
- (vvp)->tv_nsec -= 1000000000; \
- } \
- } while (0)
-#define timespecsub(vvp, uvp) \
- do { \
- (vvp)->tv_sec -= (uvp)->tv_sec; \
- (vvp)->tv_nsec -= (uvp)->tv_nsec; \
- if ((vvp)->tv_nsec < 0) { \
- (vvp)->tv_sec--; \
- (vvp)->tv_nsec += 1000000000; \
- } \
- } while (0)
-
-/* Operations on timevals. */
-
-#define timevalclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0)
-#define timevalisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
-#define timevalcmp(tvp, uvp, cmp) \
- (((tvp)->tv_sec == (uvp)->tv_sec) ? \
- ((tvp)->tv_usec cmp (uvp)->tv_usec) : \
- ((tvp)->tv_sec cmp (uvp)->tv_sec))
-
-/* timevaladd and timevalsub are not inlined */
-
-#endif /* _KERNEL */
-
-#ifndef _KERNEL /* NetBSD/OpenBSD compatible interfaces */
-
-#define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0)
-#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
-#ifndef __rtems__
-#define timercmp(tvp, uvp, cmp) \
- (((tvp)->tv_sec == (uvp)->tv_sec) ? \
- ((tvp)->tv_usec cmp (uvp)->tv_usec) : \
- ((tvp)->tv_sec cmp (uvp)->tv_sec))
-#define timeradd(tvp, uvp, vvp) \
- do { \
- (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \
- (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \
- if ((vvp)->tv_usec >= 1000000) { \
- (vvp)->tv_sec++; \
- (vvp)->tv_usec -= 1000000; \
- } \
- } while (0)
-#define timersub(tvp, uvp, vvp) \
- do { \
- (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \
- (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \
- if ((vvp)->tv_usec < 0) { \
- (vvp)->tv_sec--; \
- (vvp)->tv_usec += 1000000; \
- } \
- } while (0)
-#endif
-#endif
-
-/*
- * Names of the interval timers, and structure
- * defining a timer setting.
- */
-#define ITIMER_REAL 0
-#define ITIMER_VIRTUAL 1
-#define ITIMER_PROF 2
-
-#ifndef __rtems__
-struct itimerval {
- struct timeval it_interval; /* timer interval */
- struct timeval it_value; /* current value */
-};
-#endif
-
-/*
- * Getkerninfo clock information structure
- */
-struct clockinfo {
- int hz; /* clock frequency */
- int tick; /* micro-seconds per hz tick */
- int spare;
- int stathz; /* statistics clock frequency */
- int profhz; /* profiling clock frequency */
-};
-
-/* These macros are also in time.h. */
-#ifndef CLOCK_REALTIME
-#define CLOCK_REALTIME 0
-#define CLOCK_VIRTUAL 1
-#define CLOCK_PROF 2
-#define CLOCK_MONOTONIC 4
-#define CLOCK_UPTIME 5 /* FreeBSD-specific. */
-#define CLOCK_UPTIME_PRECISE 7 /* FreeBSD-specific. */
-#define CLOCK_UPTIME_FAST 8 /* FreeBSD-specific. */
-#define CLOCK_REALTIME_PRECISE 9 /* FreeBSD-specific. */
-#define CLOCK_REALTIME_FAST 10 /* FreeBSD-specific. */
-#define CLOCK_MONOTONIC_PRECISE 11 /* FreeBSD-specific. */
-#define CLOCK_MONOTONIC_FAST 12 /* FreeBSD-specific. */
-#define CLOCK_SECOND 13 /* FreeBSD-specific. */
-#define CLOCK_THREAD_CPUTIME_ID 14
-#endif
-
-#ifndef TIMER_ABSTIME
-#define TIMER_RELTIME 0x0 /* relative timer */
-#define TIMER_ABSTIME 0x1 /* absolute timer */
-#endif
-
-#ifdef _KERNEL
-
-/*
- * Kernel to clock driver interface.
- */
-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
@@ -292,137 +48,5 @@ rtems_bsd_time_uptime(void)
#define time_second rtems_bsd_time_second()
#define time_uptime rtems_bsd_time_uptime()
-#endif /* __rtems__ */
-extern struct bintime boottimebin;
-extern struct timeval boottime;
-
-/*
- * Functions for looking at our clock: [get]{bin,nano,micro}[up]time()
- *
- * Functions without the "get" prefix returns the best timestamp
- * we can produce in the given format.
- *
- * "bin" == struct bintime == seconds + 64 bit fraction of seconds.
- * "nano" == struct timespec == seconds + nanoseconds.
- * "micro" == struct timeval == seconds + microseconds.
- *
- * Functions containing "up" returns time relative to boot and
- * should be used for calculating time intervals.
- *
- * Functions without "up" returns GMT time.
- *
- * Functions with the "get" prefix returns a less precise result
- * much faster than the functions without "get" prefix and should
- * be used where a precision of 10 msec is acceptable or where
- * performance is priority. (NB: "precision", _not_ "resolution" !)
- *
- */
-
-#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__ */
-
-#ifndef __rtems__
-void getbinuptime(struct bintime *bt);
-#else /* __rtems__ */
-static inline void
-getbinuptime(struct bintime *bt)
-{
- binuptime(bt);
-}
-#endif /* __rtems__ */
-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);
-int itimerfix(struct timeval *tv);
-int ppsratecheck(struct timeval *, int *, int);
-int ratecheck(struct timeval *, const struct timeval *);
-void timevaladd(struct timeval *t1, const struct timeval *t2);
-void timevalsub(struct timeval *t1, const struct timeval *t2);
-int tvtohz(struct timeval *tv);
-#else /* !_KERNEL */
-#include <time.h>
-
-#include <sys/cdefs.h>
-#include <sys/select.h>
-
-__BEGIN_DECLS
-int setitimer(int, const struct itimerval *, struct itimerval *);
-int utimes(const char *, const struct timeval *);
-
-#if __BSD_VISIBLE
-int adjtime(const struct timeval *, struct timeval *);
-int futimes(int, const struct timeval *);
-int futimesat(int, const char *, const struct timeval [2]);
-int lutimes(const char *, const struct timeval *);
-int settimeofday(const struct timeval *, const struct timezone *);
-#endif
-
-#ifndef __rtems__
-#if __XSI_VISIBLE
-int getitimer(int, struct itimerval *);
-int gettimeofday(struct timeval *, struct timezone *);
-#endif
-#endif
-
-__END_DECLS
-
-#endif /* !_KERNEL */
-#endif /* !_RTEMS_BSD_SYS_TIME_H_ */
+#endif /* _RTEMS_BSD_SYS_TIME_H_ */
diff --git a/rtemsbsd/include/rtems/bsd/sys/timespec.h b/rtemsbsd/include/rtems/bsd/sys/timespec.h
index 19a4ba3e..6f9ecd71 100644
--- a/rtemsbsd/include/rtems/bsd/sys/timespec.h
+++ b/rtemsbsd/include/rtems/bsd/sys/timespec.h
@@ -1,80 +1 @@
-/*-
- * Copyright (c) 1982, 1986, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. 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.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
- *
- * @(#)time.h 8.5 (Berkeley) 5/4/95
- * from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
- * $FreeBSD$
- */
-
-/*
- * Prerequisites: <sys/cdefs.h>, <sys/_types.h>
- */
-
-#ifndef _RTEMS_BSD_SYS_TIMESPEC_H_
-#define _RTEMS_BSD_SYS_TIMESPEC_H_
-
-#ifndef __rtems__
-#ifndef _TIME_T_DECLARED
-typedef __time_t time_t;
-#define _TIME_T_DECLARED
-#endif
-
-struct timespec {
- time_t tv_sec; /* seconds */
- long tv_nsec; /* and nanoseconds */
-};
-#else /* __rtems__ */
-#include <rtems/bsd/sys/types.h>
-#endif /* __rtems__ */
-
-#if __BSD_VISIBLE
-#define TIMEVAL_TO_TIMESPEC(tv, ts) \
- do { \
- (ts)->tv_sec = (tv)->tv_sec; \
- (ts)->tv_nsec = (tv)->tv_usec * 1000; \
- } while (0)
-#define TIMESPEC_TO_TIMEVAL(tv, ts) \
- do { \
- (tv)->tv_sec = (ts)->tv_sec; \
- (tv)->tv_usec = (ts)->tv_nsec / 1000; \
- } while (0)
-
-#endif /* __BSD_VISIBLE */
-
-#ifndef __rtems__
-/*
- * Structure defined by POSIX.1b to be like a itimerval, but with
- * timespecs. Used in the timer_*() system calls.
- */
-struct itimerspec {
- struct timespec it_interval;
- struct timespec it_value;
-};
-#endif /* __rtems__ */
-
-#endif /* _RTEMS_BSD_SYS_TIMESPEC_H_ */
+#include <sys/timespec.h>
diff --git a/rtemsbsd/rtems/rtems-bsd-timesupport.c b/rtemsbsd/rtems/rtems-bsd-timesupport.c
index ef14d1fa..efa80c51 100644
--- a/rtemsbsd/rtems/rtems-bsd-timesupport.c
+++ b/rtemsbsd/rtems/rtems-bsd-timesupport.c
@@ -52,3 +52,45 @@ tvtohz(struct timeval *tv)
return (int) _Timespec_To_ticks( &ts );
}
+
+void
+binuptime(struct bintime *bt)
+{
+ struct timeval tv;
+
+ rtems_clock_get_uptime_timeval(&tv);
+ timeval2bintime(&tv, bt);
+}
+
+void
+bintime(struct bintime *bt)
+{
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+ timeval2bintime(&tv, bt);
+}
+
+void
+microtime(struct timeval *tvp)
+{
+ gettimeofday(tvp, NULL);
+}
+
+void
+getbinuptime(struct bintime *bt)
+{
+ binuptime(bt);
+}
+
+void
+getmicrouptime(struct timeval *tvp)
+{
+ rtems_clock_get_uptime_timeval(tvp);
+}
+
+void
+getmicrotime(struct timeval *tvp)
+{
+ microtime(tvp);
+}