From 5f02a574783d3ee5fa5e119af1a2d5e163dd1143 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 24 Oct 2017 11:17:54 +0200 Subject: score: Change _Timecounter_Time_uptime to int32_t Move basic timecounter API shared with BSD network stack to . Update #3185. --- cpukit/libcsupport/Makefile.am | 1 + cpukit/libcsupport/include/machine/_kernel_time.h | 2 + cpukit/libcsupport/include/machine/_timecounter.h | 53 +++++++++++++++++++++++ cpukit/libcsupport/preinstall.am | 4 ++ cpukit/score/include/rtems/score/timecounter.h | 3 +- cpukit/score/src/kern_tc.c | 3 +- 6 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 cpukit/libcsupport/include/machine/_timecounter.h (limited to 'cpukit') diff --git a/cpukit/libcsupport/Makefile.am b/cpukit/libcsupport/Makefile.am index dbba6b1d8b..756526ae8e 100644 --- a/cpukit/libcsupport/Makefile.am +++ b/cpukit/libcsupport/Makefile.am @@ -29,6 +29,7 @@ include_machine_HEADERS += include/machine/_kernel_cpuset.h include_machine_HEADERS += include/machine/_kernel_param.h include_machine_HEADERS += include/machine/_kernel_time.h include_machine_HEADERS += include/machine/_kernel_types.h +include_machine_HEADERS += include/machine/_timecounter.h ## General stuff ERROR_C_FILES = src/error.c src/__assert.c diff --git a/cpukit/libcsupport/include/machine/_kernel_time.h b/cpukit/libcsupport/include/machine/_kernel_time.h index 51fa719442..8200b6a73e 100644 --- a/cpukit/libcsupport/include/machine/_kernel_time.h +++ b/cpukit/libcsupport/include/machine/_kernel_time.h @@ -28,6 +28,8 @@ #error "must be included via in kernel space" #endif +#include + /* Operations on timespecs */ #define timespecclear(tvp) ((tvp)->tv_sec = (tvp)->tv_nsec = 0) #define timespecisset(tvp) ((tvp)->tv_sec || (tvp)->tv_nsec) diff --git a/cpukit/libcsupport/include/machine/_timecounter.h b/cpukit/libcsupport/include/machine/_timecounter.h new file mode 100644 index 0000000000..fb974f13c1 --- /dev/null +++ b/cpukit/libcsupport/include/machine/_timecounter.h @@ -0,0 +1,53 @@ +/*- + * Copyright (c) 2016 embedded brains GmbH + * 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. + */ + +#ifndef _SYS_TIME_H_ +#error " must be included first" +#endif /* !_SYS_TIME_H_ */ + +#ifndef _MACHINE__TIMECOUNTER_H_ +#define _MACHINE__TIMECOUNTER_H_ + +__BEGIN_DECLS +extern volatile time_t _Timecounter_Time_second; +extern volatile int32_t _Timecounter_Time_uptime; +extern struct bintime _Timecounter_Boottimebin; + +void _Timecounter_Binuptime(struct bintime *); +void _Timecounter_Nanouptime(struct timespec *); +void _Timecounter_Microuptime(struct timeval *); +void _Timecounter_Bintime(struct bintime *); +void _Timecounter_Nanotime(struct timespec *); +void _Timecounter_Microtime(struct timeval *); +void _Timecounter_Getbinuptime(struct bintime *); +void _Timecounter_Getnanouptime(struct timespec *); +void _Timecounter_Getmicrouptime(struct timeval *); +void _Timecounter_Getbintime(struct bintime *); +void _Timecounter_Getnanotime(struct timespec *); +void _Timecounter_Getmicrotime(struct timeval *); +__END_DECLS + +#endif /* _MACHINE__TIMECOUNTER_H_ */ diff --git a/cpukit/libcsupport/preinstall.am b/cpukit/libcsupport/preinstall.am index 074e6c1a29..01a128e2ff 100644 --- a/cpukit/libcsupport/preinstall.am +++ b/cpukit/libcsupport/preinstall.am @@ -95,3 +95,7 @@ $(PROJECT_INCLUDE)/machine/_kernel_types.h: include/machine/_kernel_types.h $(PR $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/machine/_kernel_types.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/machine/_kernel_types.h +$(PROJECT_INCLUDE)/machine/_timecounter.h: include/machine/_timecounter.h $(PROJECT_INCLUDE)/machine/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/machine/_timecounter.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/machine/_timecounter.h + diff --git a/cpukit/score/include/rtems/score/timecounter.h b/cpukit/score/include/rtems/score/timecounter.h index 1c318e2a78..79444de482 100644 --- a/cpukit/score/include/rtems/score/timecounter.h +++ b/cpukit/score/include/rtems/score/timecounter.h @@ -25,6 +25,7 @@ #include #include +#include #include @@ -227,7 +228,7 @@ extern volatile time_t _Timecounter_Time_second; * For compatibility with the FreeBSD network stack the initial value is one * second. */ -extern volatile time_t _Timecounter_Time_uptime; +extern volatile int32_t _Timecounter_Time_uptime; /** * @brief The current timecounter. diff --git a/cpukit/score/src/kern_tc.c b/cpukit/score/src/kern_tc.c index 55aa0ae255..99c6664fcb 100644 --- a/cpukit/score/src/kern_tc.c +++ b/cpukit/score/src/kern_tc.c @@ -203,10 +203,11 @@ int tc_min_ticktock_freq = 1; #ifndef __rtems__ volatile time_t time_second = 1; +volatile time_t time_uptime = 1; #else /* __rtems__ */ volatile time_t time_second = TOD_SECONDS_1970_THROUGH_1988; +volatile int32_t time_uptime = 1; #endif /* __rtems__ */ -volatile time_t time_uptime = 1; #ifndef __rtems__ static int sysctl_kern_boottime(SYSCTL_HANDLER_ARGS); -- cgit v1.2.3