summaryrefslogtreecommitdiffstats
path: root/include/private/time_genoff.h
diff options
context:
space:
mode:
authorRicardo Cerqueira <cyanogenmod@cerqueira.org>2013-10-23 03:00:09 +0100
committerSteve Kondik <steve@cyngn.com>2015-10-18 00:51:44 -0700
commitb0e75a90a726bccd977684259bd096fdb63b776a (patch)
treed6f2b6d13cc4f539334595cbba16e081442dffa7 /include/private/time_genoff.h
parentcc8536a2402f4332ae5a895bfa041f96a7e0dcc1 (diff)
downloadframeworks_base-b0e75a90a726bccd977684259bd096fdb63b776a.zip
frameworks_base-b0e75a90a726bccd977684259bd096fdb63b776a.tar.gz
frameworks_base-b0e75a90a726bccd977684259bd096fdb63b776a.tar.bz2
Add support for QC's time_daemon
Enabled by BOARD_USES_QC_TIME_SERVICES=true, it requires the device to provide its own time_daemon executable and libtime_genoff.so proprietaries. The library should be copied by the device's setup config to $OUT/obj/lib for linkage (and pushed to the final build, obviously) Change-Id: Ie6964dbe2692dc33fc04093a5b89b6922d8443c8
Diffstat (limited to 'include/private/time_genoff.h')
-rw-r--r--include/private/time_genoff.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/include/private/time_genoff.h b/include/private/time_genoff.h
new file mode 100644
index 0000000..4df5680
--- /dev/null
+++ b/include/private/time_genoff.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2010-2013, The Linux Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of The Linux Foundation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __TIME_GENOFF_H__
+#define __TIME_GENOFF_H__
+
+/*
+ * Time genoff base -- To be used by the time setter
+ * Reserved bases to be supported later.
+ */
+typedef enum time_bases {
+ ATS_RTC = 0,
+ ATS_TOD,
+ ATS_USER,
+ ATS_SECURE,
+ ATS_RESERVED_1,
+ ATS_RESERVED_2,
+ ATS_RESERVED_3,
+ ATS_GPS,
+ ATS_1X,
+ ATS_RESERVED_4,
+ ATS_WCDMA,
+ ATS_SNTP,
+ ATS_UTC,
+ ATS_MFLO,
+ ATS_INVALID
+} time_bases_type;
+
+/* Time unit -- Unit in which time is set/get */
+typedef enum time_unit {
+ TIME_STAMP, /* Not supported */
+ TIME_MSEC,
+ TIME_SECS,
+ TIME_JULIAN,
+ TIME_20MS_FRAME, /* Not supported */
+ TIME_INVALID
+} time_unit_type;
+
+/* Operation to be done */
+typedef enum time_genoff_opr {
+ T_SET,
+ T_GET,
+ T_MAX
+} time_genoff_opr_type;
+
+/* Structure to be passed as argument to time_genoff_operation() */
+/*
+ * In set/get: ts_val should be assigned memory and then passed.
+ * if time_unit = TIME_MSEC, TIME_SECS then ts_val = (uint64_t *)
+ * if time_unit = TIME_JULIAN then ts_val = (struct tm *)
+ */
+typedef struct time_genoff_info {
+ time_bases_type base; /* Genoff in consideration */
+ void *ts_val; /* Time to be set/get */
+ time_unit_type unit; /* Time unit */
+ time_genoff_opr_type operation; /* Time operation to be done */
+}time_genoff_info_type;
+
+/* API to be called for time get/set operation */
+int time_genoff_operation(time_genoff_info_type *pargs);
+
+#endif /* __TIME_GENOFF_H__ */