From 7fa1f6ed0726ff0f908245e43a01f50620293e8d Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Thu, 24 Aug 2017 15:48:42 -0700 Subject: uhd: Moved get_system_time outside of public API uhd::get_system_time() is an abstracted way of reading back a time, and is not UHD-specific. As such, there's no reason to keep it in the public part of the API where we're contractually obligated not to touch it. Instead, moving it to the internal API space. --- host/lib/types/CMakeLists.txt | 61 ------------------------------------------- host/lib/types/time_spec.cpp | 48 ---------------------------------- 2 files changed, 109 deletions(-) (limited to 'host/lib/types') diff --git a/host/lib/types/CMakeLists.txt b/host/lib/types/CMakeLists.txt index 2156160cd..7f8c80c95 100644 --- a/host/lib/types/CMakeLists.txt +++ b/host/lib/types/CMakeLists.txt @@ -5,67 +5,6 @@ # SPDX-License-Identifier: GPL-3.0 # -######################################################################## -# Setup defines for high resolution timing -######################################################################## -MESSAGE(STATUS "") -MESSAGE(STATUS "Configuring high resolution timing...") -INCLUDE(CheckCXXSourceCompiles) - -SET(CMAKE_REQUIRED_LIBRARIES -lrt) -CHECK_CXX_SOURCE_COMPILES(" - #include - int main(){ - timespec ts; - return clock_gettime(CLOCK_MONOTONIC, &ts); - } - " HAVE_CLOCK_GETTIME -) -SET(CMAKE_REQUIRED_LIBRARIES) - -INCLUDE(CheckCXXSourceCompiles) -CHECK_CXX_SOURCE_COMPILES(" - #include - int main(){ - mach_timebase_info_data_t info; - mach_timebase_info(&info); - mach_absolute_time(); - return 0; - } - " HAVE_MACH_ABSOLUTE_TIME -) - -CHECK_CXX_SOURCE_COMPILES(" - #include - int main(){ - LARGE_INTEGER value; - QueryPerformanceCounter(&value); - QueryPerformanceFrequency(&value); - return 0; - } - " HAVE_QUERY_PERFORMANCE_COUNTER -) - -IF(HAVE_CLOCK_GETTIME) - MESSAGE(STATUS " High resolution timing supported through clock_gettime.") - SET(TIME_SPEC_DEFS HAVE_CLOCK_GETTIME) - LIBUHD_APPEND_LIBS("-lrt") -ELSEIF(HAVE_MACH_ABSOLUTE_TIME) - MESSAGE(STATUS " High resolution timing supported through mach_absolute_time.") - SET(TIME_SPEC_DEFS HAVE_MACH_ABSOLUTE_TIME) -ELSEIF(HAVE_QUERY_PERFORMANCE_COUNTER) - MESSAGE(STATUS " High resolution timing supported through QueryPerformanceCounter.") - SET(TIME_SPEC_DEFS HAVE_QUERY_PERFORMANCE_COUNTER) -ELSE() - MESSAGE(STATUS " High resolution timing supported though microsec_clock.") - SET(TIME_SPEC_DEFS HAVE_MICROSEC_CLOCK) -ENDIF() - -SET_SOURCE_FILES_PROPERTIES( - ${CMAKE_CURRENT_SOURCE_DIR}/time_spec.cpp - PROPERTIES COMPILE_DEFINITIONS "${TIME_SPEC_DEFS}" -) - ######################################################################## # This file included, use CMake directory variables ######################################################################## diff --git a/host/lib/types/time_spec.cpp b/host/lib/types/time_spec.cpp index 40df87611..aae6a6121 100644 --- a/host/lib/types/time_spec.cpp +++ b/host/lib/types/time_spec.cpp @@ -9,54 +9,6 @@ using namespace uhd; -/*********************************************************************** - * Time spec system time - **********************************************************************/ - -#ifdef HAVE_CLOCK_GETTIME -#include -time_spec_t time_spec_t::get_system_time(void){ - timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); - return time_spec_t(ts.tv_sec, ts.tv_nsec, 1e9); -} -#endif /* HAVE_CLOCK_GETTIME */ - - -#ifdef HAVE_MACH_ABSOLUTE_TIME -#include -time_spec_t time_spec_t::get_system_time(void){ - mach_timebase_info_data_t info; mach_timebase_info(&info); - intmax_t nanosecs = mach_absolute_time()*info.numer/info.denom; - return time_spec_t::from_ticks(nanosecs, 1e9); -} -#endif /* HAVE_MACH_ABSOLUTE_TIME */ - - -#ifdef HAVE_QUERY_PERFORMANCE_COUNTER -#include -time_spec_t time_spec_t::get_system_time(void){ - LARGE_INTEGER counts, freq; - QueryPerformanceCounter(&counts); - QueryPerformanceFrequency(&freq); - return time_spec_t::from_ticks(counts.QuadPart, double(freq.QuadPart)); -} -#endif /* HAVE_QUERY_PERFORMANCE_COUNTER */ - - -#ifdef HAVE_MICROSEC_CLOCK -#include -namespace pt = boost::posix_time; -time_spec_t time_spec_t::get_system_time(void){ - pt::ptime time_now = pt::microsec_clock::universal_time(); - pt::time_duration time_dur = time_now - pt::from_time_t(0); - return time_spec_t( - time_t(time_dur.total_seconds()), - long(time_dur.fractional_seconds()), - double(pt::time_duration::ticks_per_second()) - ); -} -#endif /* HAVE_MICROSEC_CLOCK */ - /*********************************************************************** * Time spec constructors **********************************************************************/ -- cgit v1.2.3