diff options
Diffstat (limited to 'gps/gnsspps')
-rw-r--r-- | gps/gnsspps/Android.mk | 36 | ||||
-rw-r--r-- | gps/gnsspps/Makefile.am | 37 | ||||
-rw-r--r-- | gps/gnsspps/configure.ac | 70 | ||||
-rw-r--r-- | gps/gnsspps/gnsspps.c | 194 | ||||
-rw-r--r-- | gps/gnsspps/gnsspps.h | 45 | ||||
-rw-r--r-- | gps/gnsspps/gnsspps.pc.in | 10 | ||||
-rw-r--r-- | gps/gnsspps/timepps.h | 106 |
7 files changed, 0 insertions, 498 deletions
diff --git a/gps/gnsspps/Android.mk b/gps/gnsspps/Android.mk deleted file mode 100644 index f87b674..0000000 --- a/gps/gnsspps/Android.mk +++ /dev/null @@ -1,36 +0,0 @@ -ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),) -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := libgnsspps -LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib -LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR)/lib64 -LOCAL_MODULE_TAGS := optional - -LOCAL_SHARED_LIBRARIES := \ - libutils \ - libcutils \ - libgps.utils \ - liblog - -LOCAL_SRC_FILES += \ - gnsspps.c - -LOCAL_CFLAGS += \ - -fno-short-enums \ - -D_ANDROID_ - -## Includes -LOCAL_HEADER_LIBRARIES := \ - libgps.utils_headers \ - libloc_pla_headers -LOCAL_CFLAGS += $(GNSS_CFLAGS) -include $(BUILD_SHARED_LIBRARY) - -include $(CLEAR_VARS) -LOCAL_MODULE := libgnsspps_headers -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) -include $(BUILD_HEADER_LIBRARY) - -endif diff --git a/gps/gnsspps/Makefile.am b/gps/gnsspps/Makefile.am deleted file mode 100644 index c990be0..0000000 --- a/gps/gnsspps/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -AM_CFLAGS = \ - $(LOCPLA_CFLAGS) \ - $(GPSUTILS_CFLAGS) \ - -I$(WORKSPACE)/system/core/include \ - -I./ - -ACLOCAL_AMFLAGS = -I m4 - -libgnsspps_la_SOURCES = \ - gnsspps.c - -if USE_GLIB -libgnsspps_la_CFLAGS = -DUSE_GLIB $(AM_CFLAGS) @GLIB_CFLAGS@ -libgnsspps_la_LDFLAGS = -lstdc++ -Wl,-z,defs -lpthread @GLIB_LIBS@ -shared -version-info 1:0:0 -libgnsspps_la_CPPFLAGS = -DUSE_GLIB $(AM_CFLAGS) $(AM_CPPFLAGS) @GLIB_CFLAGS@ -else -libgnsspps_la_CFLAGS = $(AM_CFLAGS) -libgnsspps_la_LDFLAGS = -Wl,-z,defs -lpthread -shared -version-info 1:0:0 -libgnsspps_la_CPPFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS) -endif - -libgnsspps_la_LIBADD = -lstdc++ $(GPSUTILS_LIBS) - -library_include_HEADERS = \ - gnsspps.h - -#Create and Install libraries -lib_LTLIBRARIES = libgnsspps.la - -library_includedir = $(pkgincludedir) -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = gnsspps.pc -EXTRA_DIST = $(pkgconfig_DATA) - - - - diff --git a/gps/gnsspps/configure.ac b/gps/gnsspps/configure.ac deleted file mode 100644 index eb87bc1..0000000 --- a/gps/gnsspps/configure.ac +++ /dev/null @@ -1,70 +0,0 @@ -# configure.ac -- Autoconf script for gps lbs-core -# -# Process this file with autoconf to produce a configure script - -# Requires autoconf tool later than 2.61 -AC_PREREQ(2.61) -# Initialize the gps lbs-core package version 1.0.0 -AC_INIT([gnsspps],1.0.0) -# Does not strictly follow GNU Coding standards -AM_INIT_AUTOMAKE([foreign]) -# Disables auto rebuilding of configure, Makefile.ins -AM_MAINTAINER_MODE -# Verifies the --srcdir is correct by checking for the path -AC_CONFIG_SRCDIR([Makefile.am]) -# defines some macros variable to be included by source -AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_MACRO_DIR([m4]) - -# Checks for programs. -AC_PROG_LIBTOOL -AC_PROG_CXX -AC_PROG_CC -AM_PROG_CC_C_O -AC_PROG_AWK -AC_PROG_CPP -AC_PROG_INSTALL -AC_PROG_LN_S -AC_PROG_MAKE_SET -PKG_PROG_PKG_CONFIG - -# Checks for libraries. -PKG_CHECK_MODULES([GPSUTILS], [gps-utils]) -AC_SUBST([GPSUTILS_CFLAGS]) -AC_SUBST([GPSUTILS_LIBS]) - -AC_ARG_WITH([locpla_includes], - AC_HELP_STRING([--with-locpla-includes=@<:@dir@:>@], - [Specify the path to locpla-includes in loc-pla_git.bb]), - [locpla_incdir=$withval], - with_locpla_includes=no) - -if test "x${with_locpla_includes}" != "xno"; then - AC_SUBST(LOCPLA_CFLAGS, "-I${locpla_incdir}") -fi - -AC_ARG_WITH([glib], - AC_HELP_STRING([--with-glib], - [enable glib, building HLOS systems which use glib])) - -if (test "x${with_glib}" = "xyes"); then - AC_DEFINE(ENABLE_USEGLIB, 1, [Define if HLOS systems uses glib]) - PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= 2.16, dummy=yes, - AC_MSG_ERROR(GThread >= 2.16 is required)) - PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.16, dummy=yes, - AC_MSG_ERROR(GLib >= 2.16 is required)) - GLIB_CFLAGS="$GLIB_CFLAGS $GTHREAD_CFLAGS" - GLIB_LIBS="$GLIB_LIBS $GTHREAD_LIBS" - - AC_SUBST(GLIB_CFLAGS) - AC_SUBST(GLIB_LIBS) -fi - -AM_CONDITIONAL(USE_GLIB, test "x${with_glib}" = "xyes") - -AC_CONFIG_FILES([ \ - Makefile \ - gnsspps.pc - ]) - -AC_OUTPUT diff --git a/gps/gnsspps/gnsspps.c b/gps/gnsspps/gnsspps.c deleted file mode 100644 index 70b23f5..0000000 --- a/gps/gnsspps/gnsspps.c +++ /dev/null @@ -1,194 +0,0 @@ -/* Copyright (c) 2011-2015, 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 Foundatoin, 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 "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. - */ -#include <log_util.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <fcntl.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <pthread.h> -#include <timepps.h> -#include <linux/types.h> - -//DRsync kernel timestamp -static struct timespec drsyncKernelTs = {0,0}; -//DRsync userspace timestamp -static struct timespec drsyncUserTs = {0,0}; -//flag to stop fetching timestamp -static int isActive = 0; -static pps_handle handle; - -static pthread_mutex_t ts_lock; - - /* checks the PPS source and opens it */ -int check_device(char *path, pps_handle *handle) -{ - int ret; - - /* Try to find the source by using the supplied "path" name */ - ret = open(path, O_RDWR); - if (ret < 0) - { - LOC_LOGV("%s:%d unable to open device %s", __func__, __LINE__, path); - return ret; - } - - /* Open the PPS source */ - ret = pps_create(ret, handle); - if (ret < 0) - { - LOC_LOGV( "%s:%d cannot create a PPS source from device %s", __func__, __LINE__, path); - return -1; - } - return 0; -} - -/* fetches the timestamp from the PPS source */ -int read_pps(pps_handle *handle) -{ - struct timespec timeout; - pps_info infobuf; - int ret; - // 3sec timeout - timeout.tv_sec = 3; - timeout.tv_nsec = 0; - - ret = pps_fetch(*handle, PPS_TSFMT_TSPEC, &infobuf,&timeout); - - if (ret < 0 && ret !=-EINTR) - { - LOC_LOGV("%s:%d pps_fetch() error %d", __func__, __LINE__, ret); - return -1; - } - - pthread_mutex_lock(&ts_lock); - drsyncKernelTs.tv_sec = infobuf.tv_sec; - drsyncKernelTs.tv_nsec = infobuf.tv_nsec; - ret = clock_gettime(CLOCK_BOOTTIME,&drsyncUserTs); - pthread_mutex_unlock(&ts_lock); - - if(ret != 0) - { - LOC_LOGV("%s:%d clock_gettime() error",__func__,__LINE__); - } - return 0; -} - -#ifdef __cplusplus -extern "C" { -#endif -/* infinitely calls read_pps() */ -void *thread_handle(void *input) -{ - int ret; - if(input != NULL) - { - LOC_LOGV("%s:%d Thread Input is present", __func__, __LINE__); - } - while(isActive) - { - ret = read_pps(&handle); - - if (ret == -1 && errno != ETIMEDOUT ) - { - LOC_LOGV("%s:%d Could not fetch PPS source", __func__, __LINE__); - } - } - return NULL; -} - -/* opens the device and fetches from PPS source */ -int initPPS(char *devname) -{ - int ret,pid; - pthread_t thread; - isActive = 1; - - ret = check_device(devname, &handle); - if (ret < 0) - { - LOC_LOGV("%s:%d Could not find PPS source", __func__, __LINE__); - return 0; - } - - pthread_mutex_init(&ts_lock,NULL); - - pid = pthread_create(&thread,NULL,&thread_handle,NULL); - if(pid != 0) - { - LOC_LOGV("%s:%d Could not create thread in InitPPS", __func__, __LINE__); - return 0; - } - return 1; -} - -/* stops fetching and closes the device */ -void deInitPPS() -{ - pthread_mutex_lock(&ts_lock); - isActive = 0; - pthread_mutex_unlock(&ts_lock); - - pthread_mutex_destroy(&ts_lock); - pps_destroy(handle); -} - -/* retrieves DRsync kernel timestamp,DRsync userspace timestamp - and updates current timestamp */ -/* Returns: - * 1. @Param out DRsync kernel timestamp - * 2. @Param out DRsync userspace timestamp - * 3. @Param out current timestamp - */ -int getPPS(struct timespec *fineKernelTs ,struct timespec *currentTs, - struct timespec *fineUserTs) -{ - int ret; - - pthread_mutex_lock(&ts_lock); - fineKernelTs->tv_sec = drsyncKernelTs.tv_sec; - fineKernelTs->tv_nsec = drsyncKernelTs.tv_nsec; - - fineUserTs->tv_sec = drsyncUserTs.tv_sec; - fineUserTs->tv_nsec = drsyncUserTs.tv_nsec; - - ret = clock_gettime(CLOCK_BOOTTIME,currentTs); - pthread_mutex_unlock(&ts_lock); - if(ret != 0) - { - LOC_LOGV("%s:%d clock_gettime() error",__func__,__LINE__); - return 0; - } - return 1; -} - -#ifdef __cplusplus -} -#endif - diff --git a/gps/gnsspps/gnsspps.h b/gps/gnsspps/gnsspps.h deleted file mode 100644 index 3642f3b..0000000 --- a/gps/gnsspps/gnsspps.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (c) 2011-2015, 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 Foundatoin, 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 "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 _GNSSPPS_H -#define _GNSSPPS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* opens the device and fetches from PPS source */ -int initPPS(char *devname); -/* updates the fine time stamp */ -int getPPS(struct timespec *current_ts, struct timespec *current_boottime, struct timespec *last_boottime); -/* stops fetching and closes the device */ -void deInitPPS(); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/gps/gnsspps/gnsspps.pc.in b/gps/gnsspps/gnsspps.pc.in deleted file mode 100644 index 8931ebd..0000000 --- a/gps/gnsspps/gnsspps.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: gnsspps -Description: QTI GPS gnsspps -Version: @VERSION -Libs: -L${libdir} -lgnsspps -Cflags: -I${includedir}/gnsspps diff --git a/gps/gnsspps/timepps.h b/gps/gnsspps/timepps.h deleted file mode 100644 index fe0d8f0..0000000 --- a/gps/gnsspps/timepps.h +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (c) 2011-2015, 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 Foundatoin, 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 "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. - */ -#include <errno.h> -#include <sys/time.h> -#include <sys/ioctl.h> -#include <linux/types.h> -#include <linux/pps.h> - -#ifndef _TIMEPPS_H -#define _TIMEPPS_H - -#ifdef __cplusplus -extern "C" { -#endif -/* time of assert event */ -typedef struct timespec pps_info; -/* represents pps source */ -typedef int pps_handle; - - /* Open the PPS source */ -static __inline int pps_create(int source, pps_handle *handle) -{ - int ret; - struct pps_kparams dummy; - - if (!handle) - { - errno = EINVAL; - return -1; - } - /* check if current device is valid pps */ - ret = ioctl(source, PPS_GETPARAMS, &dummy); - if (ret) - { - errno = EOPNOTSUPP; - return -1; - } - *handle = source; - - return 0; -} -/* close the pps source */ -static __inline int pps_destroy(pps_handle handle) -{ - return close(handle); -} -/*reads timestamp from pps device*/ -static __inline int pps_fetch(pps_handle handle, const int tsformat, - pps_info *ppsinfobuf, - const struct timespec *timeout) -{ - struct pps_fdata fdata; - int ret; - - if (tsformat != PPS_TSFMT_TSPEC) - { - errno = EINVAL; - return -1; - } - if (timeout) - { - fdata.timeout.sec = timeout->tv_sec; - fdata.timeout.nsec = timeout->tv_nsec; - fdata.timeout.flags = ~PPS_TIME_INVALID; - } - else - { - fdata.timeout.flags = PPS_TIME_INVALID; - } - ret = ioctl(handle, PPS_FETCH, &fdata); - - ppsinfobuf->tv_sec = fdata.info.assert_tu.sec; - ppsinfobuf->tv_nsec = fdata.info.assert_tu.nsec; - - return ret; -} - -#ifdef __cplusplus -} -#endif -#endif |