/* * Copyright (c) 2010-2014, 2016 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__ #ifdef __cplusplus extern "C" { #endif /* * 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_DRM, ATS_RESERVED_2, ATS_RESERVED_3, ATS_GPS, ATS_1X, ATS_RESERVED_4, ATS_WCDMA, ATS_SNTP, ATS_UTC, ATS_MODEM, ATS_MFLO, ATS_TOD_MODEM, ATS_WLAN, 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_IS_SET, T_DISABLE, T_ENABLE, 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); /* API to be called for logging operations */ int time_control_operations(time_genoff_info_type *pargs); #ifdef __cplusplus } #endif #endif /* __TIME_GENOFF_H__ */