diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-03-15 10:01:25 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-03-24 15:20:56 +0100 |
commit | 20b7d3d9c04bf2d66e2b3bfede4d52c59ad2fbe8 (patch) | |
tree | 568d6d54c3ec55814225d2f1c04e2f052e6bf3fe | |
parent | Special case for <rtems/bsd/zerocopy.h> (diff) | |
download | rtems-libbsd-20b7d3d9c04bf2d66e2b3bfede4d52c59ad2fbe8.tar.bz2 |
Update due to Newlib <sys/time.h> etc. changes
-rwxr-xr-x | freebsd-to-rtems.py | 2 | ||||
-rw-r--r-- | freebsd/sys/sys/_timeval.h | 56 | ||||
-rw-r--r-- | freebsd/sys/sys/select.h | 2 | ||||
-rw-r--r-- | rtemsbsd/include/rtems/bsd/sys/time.h | 398 | ||||
-rw-r--r-- | rtemsbsd/include/rtems/bsd/sys/timespec.h | 81 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-bsd-timesupport.c | 42 |
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); +} |