/***************************************************************************** (c) Cambridge Silicon Radio Limited 2010 All rights reserved and confidential information of CSR Refer to LICENSE.txt included with this source for details on the license terms. *****************************************************************************/ #include #include #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16) #include #include #endif #include #include #include "csr_types.h" #include "csr_time.h" CsrTime CsrTimeGet(CsrTime *high) { struct timespec ts; CsrUint64 time; CsrTime low; ts = current_kernel_time(); time = (CsrUint64) ts.tv_sec * 1000000 + ts.tv_nsec / 1000; if (high != NULL) { *high = (CsrTime) ((time >> 32) & 0xFFFFFFFF); } low = (CsrTime) (time & 0xFFFFFFFF); return low; } EXPORT_SYMBOL_GPL(CsrTimeGet); void CsrTimeUtcGet(CsrTimeUtc *tod, CsrTime *low, CsrTime *high) { struct timespec ts; CsrUint64 time; ts = current_kernel_time(); time = (CsrUint64) ts.tv_sec * 1000000 + ts.tv_nsec / 1000; if (high != NULL) { *high = (CsrTime) ((time >> 32) & 0xFFFFFFFF); } if (low != NULL) { *low = (CsrTime) (time & 0xFFFFFFFF); } if (tod != NULL) { struct timeval tv; do_gettimeofday(&tv); tod->sec = tv.tv_sec; tod->msec = tv.tv_usec / 1000; } }