summaryrefslogtreecommitdiffstats
path: root/src/include/time.h
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2012-05-11 13:53:11 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-05-21 09:44:55 -0500
commitf4161d714e3e9de684610e35f6dd42c3a2cabc94 (patch)
tree1a3b0fc6e9a11520e302d29558a63cf97cb41c51 /src/include/time.h
parent70961ee3265e37813c4fb89dfd7a5660ae4b189a (diff)
downloadtalos-hostboot-f4161d714e3e9de684610e35f6dd42c3a2cabc94.tar.gz
talos-hostboot-f4161d714e3e9de684610e35f6dd42c3a2cabc94.zip
Support for POSIX clock_gettime function.
Change-Id: I004772e9005ce08d72d666a9b4073afd7b74e582 RTC: 41635 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1053 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/time.h')
-rw-r--r--src/include/time.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/include/time.h b/src/include/time.h
new file mode 100644
index 000000000..cc3a9e4bf
--- /dev/null
+++ b/src/include/time.h
@@ -0,0 +1,61 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/include/time.h $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 2012
+//
+// p1
+//
+// Object Code Only (OCO) source materials
+// Licensed Internal Code Source Materials
+// IBM HostBoot Licensed Internal Code
+//
+// The source code for this program is not published or other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+#ifndef __TIME_H
+#define __TIME_H
+
+#include <stdint.h>
+
+// POSIX structure for time (sec / nsec pairs).
+struct timespec
+{
+ uint64_t tv_sec;
+ uint64_t tv_nsec;
+};
+typedef struct timespec timespec_t;
+
+// POSIX clock IDs.
+typedef enum
+{
+ CLOCK_REALTIME = 0,
+ CLOCK_MONOTONIC = 1
+} clockid_t;
+
+/** @fn clock_gettime
+ * @brief Reads the clock value from a POSIX clock.
+ *
+ * @note Currently, we only support CLOCK_MONOTONIC.
+ * CLOCK_REALTIME requires synchronization of the timebase with the FSP
+ * RTC.
+ *
+ * @param[in] clk_id - The clock ID to read.
+ * @param[out] tp - The timespec struct to store the clock value in.
+ *
+ * @return 0 or -(errno).
+ * @retval 0 - SUCCESS.
+ * @retval -EINVAL - Invalid clock requested.
+ * @retval -EFAULT - NULL ptr given for timespec struct.
+ *
+ */
+int clock_gettime(clockid_t clk_id, timespec_t* tp);
+
+#endif
OpenPOWER on IntegriCloud