diff options
Diffstat (limited to 'drivers/staging/csr/csr_time.c')
-rw-r--r-- | drivers/staging/csr/csr_time.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/drivers/staging/csr/csr_time.c b/drivers/staging/csr/csr_time.c new file mode 100644 index 000000000000..83586ca34e8c --- /dev/null +++ b/drivers/staging/csr/csr_time.c @@ -0,0 +1,43 @@ +/***************************************************************************** + + (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 <linux/kernel.h> +#include <linux/version.h> + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) +#elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16) +#include <linux/autoconf.h> +#include <linux/config.h> +#endif + +#include <linux/time.h> +#include <linux/module.h> + +#include "csr_time.h" + +CsrTime CsrTimeGet(CsrTime *high) +{ + struct timespec ts; + u64 time; + CsrTime low; + + ts = current_kernel_time(); + time = (u64) 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); |