summaryrefslogtreecommitdiff
path: root/drivers/staging/csr/csr_time.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/csr/csr_time.h')
-rw-r--r--drivers/staging/csr/csr_time.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/drivers/staging/csr/csr_time.h b/drivers/staging/csr/csr_time.h
new file mode 100644
index 00000000..fc29e8e5
--- /dev/null
+++ b/drivers/staging/csr/csr_time.h
@@ -0,0 +1,76 @@
+#ifndef CSR_TIME_H__
+#define CSR_TIME_H__
+/*****************************************************************************
+
+(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/types.h>
+
+/*******************************************************************************
+
+NAME
+ CsrTimeGet
+
+DESCRIPTION
+ Returns the current system time in a low and a high part. The low part
+ is expressed in microseconds. The high part is incremented when the low
+ part wraps to provide an extended range.
+
+ The caller may provide a NULL pointer as the high parameter.
+ In this case the function just returns the low part and ignores the
+ high parameter.
+
+ Although the time is expressed in microseconds the actual resolution is
+ platform dependent and can be less. It is recommended that the
+ resolution is at least 10 milliseconds.
+
+PARAMETERS
+ high - Pointer to variable that will receive the high part of the
+ current system time. Passing NULL is valid.
+
+RETURNS
+ Low part of current system time in microseconds.
+
+*******************************************************************************/
+u32 CsrTimeGet(u32 *high);
+
+
+/*------------------------------------------------------------------*/
+/* CsrTime Macros */
+/*------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------*
+ * NAME
+ * CsrTimeAdd
+ *
+ * DESCRIPTION
+ * Add two time values. Adding the numbers can overflow the range of a
+ * CsrTime, so the user must be cautious.
+ *
+ * RETURNS
+ * CsrTime - the sum of "t1" and "t2".
+ *
+ *----------------------------------------------------------------------------*/
+#define CsrTimeAdd(t1, t2) ((t1) + (t2))
+
+/*----------------------------------------------------------------------------*
+ * NAME
+ * CsrTimeSub
+ *
+ * DESCRIPTION
+ * Subtract two time values. Subtracting the numbers can provoke an
+ * underflow, so the user must be cautious.
+ *
+ * RETURNS
+ * CsrTime - "t1" - "t2".
+ *
+ *----------------------------------------------------------------------------*/
+#define CsrTimeSub(t1, t2) ((s32) (t1) - (s32) (t2))
+
+#endif