Merge "Add -Wno-error to compile with global -Werror." am: dae62bdf70 am: 5f32ca93b0
am: 8cc1ab3e0e

Change-Id: Ifbe2850b87bddebc674b8b53e497597c31bcf9fc
diff --git a/msm8994/utils/log_util.h b/msm8994/utils/log_util.h
index 8ff6b5a..42ef961 100644
--- a/msm8994/utils/log_util.h
+++ b/msm8994/utils/log_util.h
@@ -97,46 +97,24 @@
   provide a value and we default to the initial value to use
   Android's logging levels*/
 #define IF_LOC_LOGE if((loc_logger.DEBUG_LEVEL >= 1) && (loc_logger.DEBUG_LEVEL <= 5))
-
 #define IF_LOC_LOGW if((loc_logger.DEBUG_LEVEL >= 2) && (loc_logger.DEBUG_LEVEL <= 5))
-
 #define IF_LOC_LOGI if((loc_logger.DEBUG_LEVEL >= 3) && (loc_logger.DEBUG_LEVEL <= 5))
-
 #define IF_LOC_LOGD if((loc_logger.DEBUG_LEVEL >= 4) && (loc_logger.DEBUG_LEVEL <= 5))
-
 #define IF_LOC_LOGV if((loc_logger.DEBUG_LEVEL >= 5) && (loc_logger.DEBUG_LEVEL <= 5))
 
-#define LOC_LOGE(...) \
-IF_LOC_LOGE { ALOGE("E/" __VA_ARGS__); } \
-else if (loc_logger.DEBUG_LEVEL == 0xff) { ALOGE("E/" __VA_ARGS__); }
-
-#define LOC_LOGW(...) \
-IF_LOC_LOGW { ALOGE("W/" __VA_ARGS__); }  \
-else if (loc_logger.DEBUG_LEVEL == 0xff) { ALOGW("W/" __VA_ARGS__); }
-
-#define LOC_LOGI(...) \
-IF_LOC_LOGI { ALOGE("I/" __VA_ARGS__); }   \
-else if (loc_logger.DEBUG_LEVEL == 0xff) { ALOGI("I/" __VA_ARGS__); }
-
-#define LOC_LOGD(...) \
-IF_LOC_LOGD { ALOGE("D/" __VA_ARGS__); }   \
-else if (loc_logger.DEBUG_LEVEL == 0xff) { ALOGD("D/" __VA_ARGS__); }
-
-#define LOC_LOGV(...) \
-IF_LOC_LOGV { ALOGE("V/" __VA_ARGS__); }   \
-else if (loc_logger.DEBUG_LEVEL == 0xff) { ALOGV("V/" __VA_ARGS__); }
+#define LOC_LOGE(...) IF_LOC_LOGE { ALOGE(__VA_ARGS__); }
+#define LOC_LOGW(...) IF_LOC_LOGW { ALOGW(__VA_ARGS__); }
+#define LOC_LOGI(...) IF_LOC_LOGI { ALOGI(__VA_ARGS__); }
+#define LOC_LOGD(...) IF_LOC_LOGD { ALOGD(__VA_ARGS__); }
+#define LOC_LOGV(...) IF_LOC_LOGV { ALOGV(__VA_ARGS__); }
 
 #else /* DEBUG_DMN_LOC_API */
 
-#define LOC_LOGE(...) ALOGE("E/" __VA_ARGS__)
-
-#define LOC_LOGW(...) ALOGW("W/" __VA_ARGS__)
-
-#define LOC_LOGI(...) ALOGI("I/" __VA_ARGS__)
-
-#define LOC_LOGD(...) ALOGD("D/" __VA_ARGS__)
-
-#define LOC_LOGV(...) ALOGV("V/" __VA_ARGS__)
+#define LOC_LOGE(...) ALOGE(__VA_ARGS__)
+#define LOC_LOGW(...) ALOGW(__VA_ARGS__)
+#define LOC_LOGI(...) ALOGI(__VA_ARGS__)
+#define LOC_LOGD(...) ALOGD(__VA_ARGS__)
+#define LOC_LOGV(...) ALOGV(__VA_ARGS__)
 
 #endif /* DEBUG_DMN_LOC_API */
 
@@ -161,16 +139,16 @@
 #define LOG_I(ID, WHAT, SPEC, VAL) LOG_(LOC_LOGI, ID, WHAT, SPEC, VAL)
 #define LOG_V(ID, WHAT, SPEC, VAL) LOG_(LOC_LOGV, ID, WHAT, SPEC, VAL)
 
-#define ENTRY_LOG() LOG_V(ENTRY_TAG, __func__, %s, "")
-#define EXIT_LOG(SPEC, VAL) LOG_V(EXIT_TAG, __func__, SPEC, VAL)
+#define ENTRY_LOG() LOG_V(ENTRY_TAG, __FUNCTION__, %s, "")
+#define EXIT_LOG(SPEC, VAL) LOG_V(EXIT_TAG, __FUNCTION__, SPEC, VAL)
 
 
 // Used for logging callflow from Android Framework
-#define ENTRY_LOG_CALLFLOW() LOG_I(FROM_AFW, __func__, %s, "")
+#define ENTRY_LOG_CALLFLOW() LOG_I(FROM_AFW, __FUNCTION__, %s, "")
 // Used for logging callflow to Modem
-#define EXIT_LOG_CALLFLOW(SPEC, VAL) LOG_I(TO_MODEM, __func__, SPEC, VAL)
-// Used for logging callflow from Modem(TO_MODEM, __func__, %s, "")
-#define MODEM_LOG_CALLFLOW(SPEC, VAL) LOG_I(FROM_MODEM, __func__, SPEC, VAL)
+#define EXIT_LOG_CALLFLOW(SPEC, VAL) LOG_I(TO_MODEM, __FUNCTION__, SPEC, VAL)
+// Used for logging callflow from Modem(TO_MODEM, __FUNCTION__, %s, "")
+#define MODEM_LOG_CALLFLOW(SPEC, VAL) LOG_I(FROM_MODEM, __FUNCTION__, SPEC, VAL)
 // Used for logging callflow to Android Framework
 #define CALLBACK_LOG_CALLFLOW(CB, SPEC, VAL) LOG_I(TO_AFW, CB, SPEC, VAL)
 
diff --git a/msm8998/android/android.hardware.gnss@1.0-service-qti.rc b/msm8998/android/android.hardware.gnss@1.0-service-qti.rc
index b5da6f9..4571808 100644
--- a/msm8998/android/android.hardware.gnss@1.0-service-qti.rc
+++ b/msm8998/android/android.hardware.gnss@1.0-service-qti.rc
@@ -1,4 +1,4 @@
-service gnss_service /vendor/bin/hw/android.hardware.gnss@1.0-service-qti
+service vendor.gnss_service /vendor/bin/hw/android.hardware.gnss@1.0-service-qti
     class hal
     user gps
     group system gps radio
diff --git a/msm8998/core/Android.mk b/msm8998/core/Android.mk
index 1bcc16b..3c872a2 100644
--- a/msm8998/core/Android.mk
+++ b/msm8998/core/Android.mk
@@ -43,6 +43,8 @@
     -Wno-unneeded-internal-declaration \
     -Wno-unused-const-variable \
     -Wno-unused-parameter \
+    -Wno-delete-incomplete \
+    -Wno-switch \
 
 LOCAL_CPPFLAGS += \
     -Wno-overloaded-virtual \
diff --git a/msm8998/utils/LocTimer.cpp b/msm8998/utils/LocTimer.cpp
index d6415df..7a75dfd 100644
--- a/msm8998/utils/LocTimer.cpp
+++ b/msm8998/utils/LocTimer.cpp
@@ -184,7 +184,7 @@
         : mClient(NULL), mLock(NULL), mFutureTime(delay), mContainer(NULL) {}
     inline ~LocTimerDelegate() { if (mLock) { mLock->drop(); mLock = NULL; } }
 public:
-    LocTimerDelegate(LocTimer& client, struct timespec& futureTime, bool wakeOnExpire);
+    LocTimerDelegate(LocTimer& client, struct timespec& futureTime, LocTimerContainer* container);
     void destroyLocked();
     // LocRankable virtual method
     virtual int ranks(LocRankable& rankable);
@@ -473,11 +473,13 @@
 /***************************LocTimerDelegate methods***************************/
 
 inline
-LocTimerDelegate::LocTimerDelegate(LocTimer& client, struct timespec& futureTime, bool wakeOnExpire)
+LocTimerDelegate::LocTimerDelegate(LocTimer& client,
+                                   struct timespec& futureTime,
+                                   LocTimerContainer* container)
     : mClient(&client),
       mLock(mClient->mLock->share()),
       mFutureTime(futureTime),
-      mContainer(LocTimerContainer::get(wakeOnExpire)) {
+      mContainer(container) {
     // adding the timer into the container
     mContainer->add(*this);
 }
@@ -557,8 +559,13 @@
             futureTime.tv_sec += futureTime.tv_nsec / 1000000000;
             futureTime.tv_nsec %= 1000000000;
         }
-        mTimer = new LocTimerDelegate(*this, futureTime, wakeOnExpire);
-        // if mTimer is non 0, success should be 0; or vice versa
+
+        LocTimerContainer* container;
+        container = LocTimerContainer::get(wakeOnExpire);
+        if (NULL != container) {
+            mTimer = new LocTimerDelegate(*this, futureTime, container);
+            // if mTimer is non 0, success should be 0; or vice versa
+        }
         success = (NULL != mTimer);
     }
     mLock->unlock();
diff --git a/sdm845/Android.mk b/sdm845/Android.mk
deleted file mode 100644
index e2c5a56..0000000
--- a/sdm845/Android.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),)
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-makefiles-under,$(LOCAL_PATH))
-endif
diff --git a/sdm845/CleanSpec.mk b/sdm845/CleanSpec.mk
deleted file mode 100644
index dd1849d..0000000
--- a/sdm845/CleanSpec.mk
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (C) 2007 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# If you don't need to do a full clean build but would like to touch
-# a file or delete some intermediate files, add a clean step to the end
-# of the list.  These steps will only be run once, if they haven't been
-# run before.
-#
-# E.g.:
-#     $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
-#     $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
-#
-# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
-# files that are missing or have been moved.
-#
-# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
-# Use $(OUT_DIR) to refer to the "out" directory.
-#
-# If you need to re-do something that's already mentioned, just copy
-# the command and add it to the bottom of the list.  E.g., if a change
-# that you made last week required touching a file and a change you
-# made today requires touching the same file, just copy the old
-# touch step and add it to the end of the list.
-#
-# ************************************************
-# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
-# ************************************************
-
-# For example:
-#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
-#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
-#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
-#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
-
-# ************************************************
-# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
-# ************************************************
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libloc_api*)
diff --git a/sdm845/Makefile.am b/sdm845/Makefile.am
deleted file mode 100644
index 7bc06b1..0000000
--- a/sdm845/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-# Makefile.am - Automake script for gps loc_api
-#
-
-ACLOCAL_AMFLAGS = -I m4
-
-SUBDIRS = core loc_api
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = loc-hal.pc
-EXTRA_DIST = $(pkgconfig_DATA)
diff --git a/sdm845/android/AGnss.cpp b/sdm845/android/AGnss.cpp
deleted file mode 100644
index c497ed4..0000000
--- a/sdm845/android/AGnss.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "LocSvc_AGnssInterface"
-
-#include <log_util.h>
-#include "Gnss.h"
-#include "AGnss.h"
-#include <gps_extended_c.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-sp<IAGnssCallback> AGnss::sAGnssCbIface = nullptr;
-
-AGnss::AGnss(Gnss* gnss) : mGnss(gnss) {
-}
-
-void AGnss::agnssStatusIpV4Cb(IAGnssCallback::AGnssStatusIpV4 status){
-
-    sAGnssCbIface->agnssStatusIpV4Cb(status);
-}
-
-Return<void> AGnss::setCallback(const sp<IAGnssCallback>& callback) {
-
-    if(mGnss == nullptr || mGnss->getGnssInterface() == nullptr){
-        LOC_LOGE("Null GNSS interface");
-        return Void();
-    }
-
-    // Save the interface
-    sAGnssCbIface = callback;
-
-    mGnss->getGnssInterface()->agpsInit((void*)agnssStatusIpV4Cb);
-    return Void();
-}
-
-Return<bool> AGnss::dataConnClosed() {
-
-    if(mGnss == nullptr || mGnss->getGnssInterface() == nullptr){
-        LOC_LOGE("Null GNSS interface");
-        return false;
-    }
-
-    mGnss->getGnssInterface()->agpsDataConnClosed(LOC_AGPS_TYPE_SUPL);
-    return true;
-}
-
-Return<bool> AGnss::dataConnFailed() {
-
-    if(mGnss == nullptr || mGnss->getGnssInterface() == nullptr){
-        LOC_LOGE("Null GNSS interface");
-        return false;
-    }
-
-    mGnss->getGnssInterface()->agpsDataConnFailed(LOC_AGPS_TYPE_SUPL);
-    return true;
-}
-
-Return<bool> AGnss::dataConnOpen(const hidl_string& apn,
-        IAGnss::ApnIpType apnIpType) {
-
-    if(mGnss == nullptr || mGnss->getGnssInterface() == nullptr){
-        LOC_LOGE("Null GNSS interface");
-        return false;
-    }
-
-    /* Validate */
-    if(apn.empty()){
-        LOC_LOGE("Invalid APN");
-        return false;
-    }
-
-    LOC_LOGD("dataConnOpen APN name = [%s]", apn.c_str());
-
-    mGnss->getGnssInterface()->agpsDataConnOpen(
-            LOC_AGPS_TYPE_SUPL, apn.c_str(), apn.size(), (int)apnIpType);
-    return true;
-}
-
-Return<bool> AGnss::setServer(IAGnssCallback::AGnssType type,
-                              const hidl_string& hostname,
-                              int32_t port) {
-    if (mGnss == nullptr) {
-        LOC_LOGE("%s]: mGnss is nullptr", __FUNCTION__);
-        return false;
-    }
-
-    GnssConfig config;
-    memset(&config, 0, sizeof(GnssConfig));
-    config.size = sizeof(GnssConfig);
-    config.flags = GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT;
-    config.assistanceServer.size = sizeof(GnssConfigSetAssistanceServer);
-    if (type == IAGnssCallback::AGnssType::TYPE_SUPL) {
-        config.assistanceServer.type = GNSS_ASSISTANCE_TYPE_SUPL;
-    } else if (type == IAGnssCallback::AGnssType::TYPE_C2K) {
-        config.assistanceServer.type = GNSS_ASSISTANCE_TYPE_C2K;
-    } else {
-        LOC_LOGE("%s]: invalid AGnssType: %d", __FUNCTION__, static_cast<int>(type));
-        return false;
-    }
-    config.assistanceServer.hostName = strdup(hostname.c_str());
-    config.assistanceServer.port = port;
-    return mGnss->updateConfiguration(config);
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/AGnss.h b/sdm845/android/AGnss.h
deleted file mode 100644
index f4216b0..0000000
--- a/sdm845/android/AGnss.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_HARDWARE_GNSS_V1_1_AGNSS_H
-#define ANDROID_HARDWARE_GNSS_V1_1_AGNSS_H
-
-#include <android/hardware/gnss/1.0/IAGnss.h>
-#include <hidl/Status.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::hardware::gnss::V1_0::IAGnss;
-using ::android::hardware::gnss::V1_0::IAGnssCallback;
-using ::android::hardware::Return;
-using ::android::hardware::Void;
-using ::android::hardware::hidl_vec;
-using ::android::hardware::hidl_string;
-using ::android::sp;
-
-struct Gnss;
-struct AGnss : public IAGnss {
-
-    AGnss(Gnss* gnss);
-    ~AGnss() = default;
-    /*
-     * Methods from ::android::hardware::gnss::V1_0::IAGnss interface follow.
-     * These declarations were generated from IAGnss.hal.
-     */
-    Return<void> setCallback(const sp<IAGnssCallback>& callback) override;
-
-    Return<bool> dataConnClosed() override;
-
-    Return<bool> dataConnFailed() override;
-
-    Return<bool> dataConnOpen(const hidl_string& apn,
-            IAGnss::ApnIpType apnIpType) override;
-
-    Return<bool> setServer(IAGnssCallback::AGnssType type,
-                         const hidl_string& hostname, int32_t port) override;
-
-    /* Data call setup callback passed down to GNSS HAL implementation */
-    static void agnssStatusIpV4Cb(IAGnssCallback::AGnssStatusIpV4 status);
-
- private:
-    Gnss* mGnss = nullptr;
-    static sp<IAGnssCallback> sAGnssCbIface;
-};
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-
-#endif  // ANDROID_HARDWARE_GNSS_V1_1_AGNSS_H
diff --git a/sdm845/android/AGnssRil.cpp b/sdm845/android/AGnssRil.cpp
deleted file mode 100644
index b19f55f..0000000
--- a/sdm845/android/AGnssRil.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "LocSvc__AGnssRilInterface"
-
-#include <log_util.h>
-#include <dlfcn.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <sstream>
-#include <string>
-#include "Gnss.h"
-#include "AGnssRil.h"
-typedef void* (getLocationInterface)();
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-static bool sendConnectionEvent(const bool connected, const uint8_t type);
-
-AGnssRil::AGnssRil(Gnss* gnss) : mGnss(gnss) {
-    ENTRY_LOG_CALLFLOW();
-}
-
-AGnssRil::~AGnssRil() {
-    ENTRY_LOG_CALLFLOW();
-}
-
-Return<bool> AGnssRil::updateNetworkState(bool connected, NetworkType type, bool roaming) {
-    ENTRY_LOG_CALLFLOW();
-
-    // for XTRA
-    sendConnectionEvent(connected, (uint8_t)type);
-
-    return true;
-}
-
-// for XTRA
-static inline int createSocket() {
-    int socketFd = -1;
-
-    if ((socketFd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
-        LOC_LOGe("create socket error. reason:%s", strerror(errno));
-
-     } else {
-        const char* socketPath = "/data/vendor/location/xtra/socket_hal_xtra";
-        struct sockaddr_un addr = { .sun_family = AF_UNIX };
-        snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", socketPath);
-
-        if (::connect(socketFd, (struct sockaddr*)&addr, sizeof(addr)) < 0) {
-            LOC_LOGe("cannot connect to XTRA. reason:%s", strerror(errno));
-            if (::close(socketFd)) {
-                LOC_LOGe("close socket error. reason:%s", strerror(errno));
-            }
-            socketFd = -1;
-        }
-    }
-
-    return socketFd;
-}
-
-static inline void closeSocket(const int socketFd) {
-    if (socketFd >= 0) {
-        if(::close(socketFd)) {
-            LOC_LOGe("close socket error. reason:%s", strerror(errno));
-        }
-    }
-}
-
-static inline bool sendConnectionEvent(const bool connected, const uint8_t type) {
-    int socketFd = createSocket();
-    if (socketFd < 0) {
-        LOC_LOGe("XTRA unreachable. sending failed.");
-        return false;
-    }
-
-    std::stringstream ss;
-    ss <<  "connection";
-    ss << " " << (connected ? "1" : "0");
-    ss << " " << (int)type;
-    ss << "\n"; // append seperator
-
-    const std::string& data = ss.str();
-    int remain = data.length();
-    ssize_t sent = 0;
-
-    while (remain > 0 &&
-          (sent = ::send(socketFd, data.c_str() + (data.length() - remain),
-                       remain, MSG_NOSIGNAL)) > 0) {
-        remain -= sent;
-    }
-
-    if (sent < 0) {
-        LOC_LOGe("sending error. reason:%s", strerror(errno));
-    }
-
-    closeSocket(socketFd);
-
-    return (remain == 0);
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/AGnssRil.h b/sdm845/android/AGnssRil.h
deleted file mode 100644
index 61216d8..0000000
--- a/sdm845/android/AGnssRil.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_HARDWARE_GNSS_V1_0_AGNSSRIL_H_
-#define ANDROID_HARDWARE_GNSS_V1_0_AGNSSRIL_H_
-
-#include <android/hardware/gnss/1.0/IAGnssRil.h>
-#include <hidl/Status.h>
-#include <location_interface.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::hardware::gnss::V1_0::IAGnssRil;
-using ::android::hardware::gnss::V1_0::IAGnssRilCallback;
-using ::android::hardware::Return;
-using ::android::hardware::Void;
-using ::android::hardware::hidl_vec;
-using ::android::hardware::hidl_string;
-using ::android::sp;
-
-struct Gnss;
-/*
- * Extended interface for AGNSS RIL support. An Assisted GNSS Radio Interface Layer interface
- * allows the GNSS chipset to request radio interface layer information from Android platform.
- * Examples of such information are reference location, unique subscriber ID, phone number string
- * and network availability changes. Also contains wrapper methods to allow methods from
- * IAGnssiRilCallback interface to be passed into the conventional implementation of the GNSS HAL.
- */
-struct AGnssRil : public IAGnssRil {
-    AGnssRil(Gnss* gnss);
-    ~AGnssRil();
-
-    /*
-     * Methods from ::android::hardware::gnss::V1_0::IAGnssRil follow.
-     * These declarations were generated from IAGnssRil.hal.
-     */
-    Return<void> setCallback(const sp<IAGnssRilCallback>& /*callback*/) override {
-        return Void();
-    }
-    Return<void> setRefLocation(const IAGnssRil::AGnssRefLocation& /*agnssReflocation*/) override {
-        return Void();
-    }
-    Return<bool> setSetId(IAGnssRil::SetIDType /*type*/, const hidl_string& /*setid*/) override {
-        return false;
-    }
-    Return<bool> updateNetworkAvailability(bool /*available*/,
-                                    const hidl_string& /*apn*/) override {
-        return false;
-    }
-    Return<bool> updateNetworkState(bool connected, NetworkType type, bool roaming) override;
-
- private:
-    Gnss* mGnss = nullptr;
-};
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-
-#endif  // ANDROID_HARDWARE_GNSS_V1_0_AGNSSRIL_H_
diff --git a/sdm845/android/Android.mk b/sdm845/android/Android.mk
deleted file mode 100644
index d3e33ab..0000000
--- a/sdm845/android/Android.mk
+++ /dev/null
@@ -1,88 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := android.hardware.gnss@1.0-impl-qti
-LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib
-LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR)/lib64
-LOCAL_MODULE_RELATIVE_PATH := hw
-LOCAL_SRC_FILES := \
-    AGnss.cpp \
-    Gnss.cpp \
-    GnssBatching.cpp \
-    GnssGeofencing.cpp \
-    GnssMeasurement.cpp \
-    GnssNi.cpp \
-    GnssConfiguration.cpp \
-    GnssDebug.cpp \
-    AGnssRil.cpp
-
-LOCAL_SRC_FILES += \
-    location_api/LocationUtil.cpp \
-    location_api/GnssAPIClient.cpp \
-    location_api/GeofenceAPIClient.cpp \
-    location_api/BatchingAPIClient.cpp \
-    location_api/MeasurementAPIClient.cpp \
-
-LOCAL_C_INCLUDES:= \
-    $(LOCAL_PATH)/location_api \
-    $(TARGET_OUT_HEADERS)/gps.utils \
-    $(TARGET_OUT_HEADERS)/libloc_core \
-    $(TARGET_OUT_HEADERS)/libloc_pla \
-    $(TARGET_OUT_HEADERS)/liblocation_api \
-
-LOCAL_SHARED_LIBRARIES := \
-    liblog \
-    libhidlbase \
-    libhidltransport \
-    libhwbinder \
-    libutils \
-    android.hardware.gnss@1.0 \
-
-LOCAL_SHARED_LIBRARIES += \
-    libloc_core \
-    libgps.utils \
-    libdl \
-    libloc_pla \
-    liblocation_api \
-
-include $(BUILD_SHARED_LIBRARY)
-
-BUILD_GNSS_HIDL_SERVICE := true
-ifneq ($(BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET), true)
-ifneq ($(LW_FEATURE_SET),true)
-BUILD_GNSS_HIDL_SERVICE := false
-endif # LW_FEATURE_SET
-endif # BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET
-
-ifeq ($(BUILD_GNSS_HIDL_SERVICE), true)
-include $(CLEAR_VARS)
-LOCAL_MODULE := android.hardware.gnss@1.0-service-qti
-LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
-LOCAL_MODULE_RELATIVE_PATH := hw
-LOCAL_INIT_RC := android.hardware.gnss@1.0-service-qti.rc
-LOCAL_SRC_FILES := \
-    service.cpp \
-
-LOCAL_C_INCLUDES:= \
-    $(LOCAL_PATH)/location_api \
-    $(TARGET_OUT_HEADERS)/gps.utils \
-    $(TARGET_OUT_HEADERS)/libloc_core \
-    $(TARGET_OUT_HEADERS)/libloc_pla \
-    $(TARGET_OUT_HEADERS)/liblocation_api \
-
-
-LOCAL_SHARED_LIBRARIES := \
-    liblog \
-    libcutils \
-    libdl \
-    libbase \
-    libutils \
-
-LOCAL_SHARED_LIBRARIES += \
-    libhwbinder \
-    libhidlbase \
-    libhidltransport \
-    android.hardware.gnss@1.0 \
-
-include $(BUILD_EXECUTABLE)
-endif # BUILD_GNSS_HIDL_SERVICE
diff --git a/sdm845/android/Gnss.cpp b/sdm845/android/Gnss.cpp
deleted file mode 100644
index 9b2e7dd..0000000
--- a/sdm845/android/Gnss.cpp
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "LocSvc_GnssInterface"
-
-#include <log_util.h>
-#include <dlfcn.h>
-#include "Gnss.h"
-typedef void* (getLocationInterface)();
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-void Gnss::GnssDeathRecipient::serviceDied(uint64_t cookie, const wp<IBase>& who) {
-    LOC_LOGE("%s] service died. cookie: %llu, who: %p",
-            __FUNCTION__, static_cast<unsigned long long>(cookie), &who);
-    if (mGnss != nullptr) {
-        mGnss->stop();
-        mGnss->cleanup();
-    }
-}
-
-Gnss::Gnss() {
-    ENTRY_LOG_CALLFLOW();
-    // clear pending GnssConfig
-    memset(&mPendingConfig, 0, sizeof(GnssConfig));
-
-    mGnssDeathRecipient = new GnssDeathRecipient(this);
-}
-
-Gnss::~Gnss() {
-    ENTRY_LOG_CALLFLOW();
-    if (mApi != nullptr) {
-        delete mApi;
-        mApi = nullptr;
-    }
-}
-
-GnssAPIClient* Gnss::getApi() {
-    if (mApi == nullptr && (mGnssCbIface != nullptr || mGnssNiCbIface != nullptr)) {
-        mApi = new GnssAPIClient(mGnssCbIface, mGnssNiCbIface);
-        if (mApi == nullptr) {
-            LOC_LOGE("%s] faild to create GnssAPIClient", __FUNCTION__);
-            return mApi;
-        }
-
-        if (mPendingConfig.size == sizeof(GnssConfig)) {
-            // we have pending GnssConfig
-            mApi->gnssConfigurationUpdate(mPendingConfig);
-            // clear size to invalid mPendingConfig
-            mPendingConfig.size = 0;
-            if (mPendingConfig.assistanceServer.hostName != nullptr) {
-                free((void*)mPendingConfig.assistanceServer.hostName);
-            }
-        }
-    }
-    if (mApi == nullptr) {
-        LOC_LOGW("%s] GnssAPIClient is not ready", __FUNCTION__);
-    }
-    return mApi;
-}
-
-GnssInterface* Gnss::getGnssInterface() {
-    static bool getGnssInterfaceFailed = false;
-    if (nullptr == mGnssInterface && !getGnssInterfaceFailed) {
-        LOC_LOGD("%s]: loading libgnss.so::getGnssInterface ...", __func__);
-        getLocationInterface* getter = NULL;
-        const char *error = NULL;
-        dlerror();
-        void *handle = dlopen("libgnss.so", RTLD_NOW);
-        if (NULL == handle || (error = dlerror()) != NULL)  {
-            LOC_LOGW("dlopen for libgnss.so failed, error = %s", error);
-        } else {
-            getter = (getLocationInterface*)dlsym(handle, "getGnssInterface");
-            if ((error = dlerror()) != NULL)  {
-                LOC_LOGW("dlsym for libgnss.so::getGnssInterface failed, error = %s", error);
-                getter = NULL;
-            }
-        }
-
-        if (NULL == getter) {
-            getGnssInterfaceFailed = true;
-        } else {
-            mGnssInterface = (GnssInterface*)(*getter)();
-        }
-    }
-    return mGnssInterface;
-}
-
-Return<bool> Gnss::setCallback(const sp<IGnssCallback>& callback)  {
-    ENTRY_LOG_CALLFLOW();
-    if (mGnssCbIface != nullptr) {
-        mGnssCbIface->unlinkToDeath(mGnssDeathRecipient);
-    }
-    mGnssCbIface = callback;
-    if (mGnssCbIface != nullptr) {
-        mGnssCbIface->linkToDeath(mGnssDeathRecipient, 0 /*cookie*/);
-    }
-
-    GnssAPIClient* api = getApi();
-    if (api != nullptr) {
-        api->gnssUpdateCallbacks(mGnssCbIface, mGnssNiCbIface);
-        api->locAPIEnable(LOCATION_TECHNOLOGY_TYPE_GNSS);
-        api->requestCapabilities();
-    }
-    return true;
-}
-
-Return<bool> Gnss::setGnssNiCb(const sp<IGnssNiCallback>& callback) {
-    ENTRY_LOG_CALLFLOW();
-    mGnssNiCbIface = callback;
-    GnssAPIClient* api = getApi();
-    if (api != nullptr) {
-        api->gnssUpdateCallbacks(mGnssCbIface, mGnssNiCbIface);
-    }
-    return true;
-}
-
-Return<bool> Gnss::updateConfiguration(GnssConfig& gnssConfig) {
-    ENTRY_LOG_CALLFLOW();
-    GnssAPIClient* api = getApi();
-    if (api) {
-        api->locAPIGnssUpdateConfig(gnssConfig);
-    } else if (gnssConfig.flags != 0) {
-        // api is not ready yet, update mPendingConfig with gnssConfig
-        mPendingConfig.size = sizeof(GnssConfig);
-
-        if (gnssConfig.flags & GNSS_CONFIG_FLAGS_GPS_LOCK_VALID_BIT) {
-            mPendingConfig.flags |= GNSS_CONFIG_FLAGS_GPS_LOCK_VALID_BIT;
-            mPendingConfig.gpsLock = gnssConfig.gpsLock;
-        }
-        if (gnssConfig.flags & GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT) {
-            mPendingConfig.flags |= GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT;
-            mPendingConfig.suplVersion = gnssConfig.suplVersion;
-        }
-        if (gnssConfig.flags & GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT) {
-            mPendingConfig.flags |= GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT;
-            mPendingConfig.assistanceServer.size = sizeof(GnssConfigSetAssistanceServer);
-            mPendingConfig.assistanceServer.type = gnssConfig.assistanceServer.type;
-            if (mPendingConfig.assistanceServer.hostName != nullptr) {
-                free((void*)mPendingConfig.assistanceServer.hostName);
-                mPendingConfig.assistanceServer.hostName =
-                    strdup(gnssConfig.assistanceServer.hostName);
-            }
-            mPendingConfig.assistanceServer.port = gnssConfig.assistanceServer.port;
-        }
-        if (gnssConfig.flags & GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT) {
-            mPendingConfig.flags |= GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT;
-            mPendingConfig.lppProfile = gnssConfig.lppProfile;
-        }
-        if (gnssConfig.flags & GNSS_CONFIG_FLAGS_LPPE_CONTROL_PLANE_VALID_BIT) {
-            mPendingConfig.flags |= GNSS_CONFIG_FLAGS_LPPE_CONTROL_PLANE_VALID_BIT;
-            mPendingConfig.lppeControlPlaneMask = gnssConfig.lppeControlPlaneMask;
-        }
-        if (gnssConfig.flags & GNSS_CONFIG_FLAGS_LPPE_USER_PLANE_VALID_BIT) {
-            mPendingConfig.flags |= GNSS_CONFIG_FLAGS_LPPE_USER_PLANE_VALID_BIT;
-            mPendingConfig.lppeUserPlaneMask = gnssConfig.lppeUserPlaneMask;
-        }
-        if (gnssConfig.flags & GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT) {
-            mPendingConfig.flags |= GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT;
-            mPendingConfig.aGlonassPositionProtocolMask = gnssConfig.aGlonassPositionProtocolMask;
-        }
-        if (gnssConfig.flags & GNSS_CONFIG_FLAGS_EM_PDN_FOR_EM_SUPL_VALID_BIT) {
-            mPendingConfig.flags |= GNSS_CONFIG_FLAGS_EM_PDN_FOR_EM_SUPL_VALID_BIT;
-            mPendingConfig.emergencyPdnForEmergencySupl = gnssConfig.emergencyPdnForEmergencySupl;
-        }
-        if (gnssConfig.flags & GNSS_CONFIG_FLAGS_SUPL_EM_SERVICES_BIT) {
-            mPendingConfig.flags |= GNSS_CONFIG_FLAGS_SUPL_EM_SERVICES_BIT;
-            mPendingConfig.suplEmergencyServices = gnssConfig.suplEmergencyServices;
-        }
-        if (gnssConfig.flags & GNSS_CONFIG_FLAGS_SUPL_MODE_BIT) {
-            mPendingConfig.flags |= GNSS_CONFIG_FLAGS_SUPL_MODE_BIT;
-            mPendingConfig.suplModeMask = gnssConfig.suplModeMask;
-        }
-    }
-    return true;
-}
-
-Return<bool> Gnss::start()  {
-    ENTRY_LOG_CALLFLOW();
-    bool retVal = false;
-    GnssAPIClient* api = getApi();
-    if (api) {
-        retVal = api->gnssStart();
-    }
-    return retVal;
-}
-
-Return<bool> Gnss::stop()  {
-    ENTRY_LOG_CALLFLOW();
-    bool retVal = false;
-    GnssAPIClient* api = getApi();
-    if (api) {
-        retVal = api->gnssStop();
-    }
-    return retVal;
-}
-
-Return<void> Gnss::cleanup()  {
-    ENTRY_LOG_CALLFLOW();
-
-    if (mApi != nullptr) {
-        mApi->locAPIDisable();
-    }
-
-    return Void();
-}
-
-Return<bool> Gnss::injectLocation(double latitudeDegrees,
-                                  double longitudeDegrees,
-                                  float accuracyMeters)  {
-    ENTRY_LOG_CALLFLOW();
-    GnssInterface* gnssInterface = getGnssInterface();
-    if (nullptr != gnssInterface) {
-        gnssInterface->injectLocation(latitudeDegrees, longitudeDegrees, accuracyMeters);
-        return true;
-    } else {
-        return false;
-    }
-}
-
-Return<bool> Gnss::injectTime(int64_t timeMs, int64_t timeReferenceMs,
-                              int32_t uncertaintyMs) {
-    ENTRY_LOG_CALLFLOW();
-    GnssInterface* gnssInterface = getGnssInterface();
-    if (nullptr != gnssInterface) {
-        gnssInterface->injectTime(timeMs, timeReferenceMs, uncertaintyMs);
-        return true;
-    } else {
-        return false;
-    }
-}
-
-Return<void> Gnss::deleteAidingData(IGnss::GnssAidingData aidingDataFlags)  {
-    ENTRY_LOG_CALLFLOW();
-    GnssAPIClient* api = getApi();
-    if (api) {
-        api->gnssDeleteAidingData(aidingDataFlags);
-    }
-    return Void();
-}
-
-Return<bool> Gnss::setPositionMode(IGnss::GnssPositionMode mode,
-                                   IGnss::GnssPositionRecurrence recurrence,
-                                   uint32_t minIntervalMs,
-                                   uint32_t preferredAccuracyMeters,
-                                   uint32_t preferredTimeMs)  {
-    ENTRY_LOG_CALLFLOW();
-    bool retVal = false;
-    GnssAPIClient* api = getApi();
-    if (api) {
-        retVal = api->gnssSetPositionMode(mode, recurrence, minIntervalMs,
-                preferredAccuracyMeters, preferredTimeMs);
-    }
-    return retVal;
-}
-
-Return<sp<IAGnss>> Gnss::getExtensionAGnss()  {
-    ENTRY_LOG_CALLFLOW();
-    mAGnssIface = new AGnss(this);
-    return mAGnssIface;
-}
-
-Return<sp<IGnssNi>> Gnss::getExtensionGnssNi()  {
-    ENTRY_LOG_CALLFLOW();
-    mGnssNi = new GnssNi(this);
-    return mGnssNi;
-}
-
-Return<sp<IGnssMeasurement>> Gnss::getExtensionGnssMeasurement() {
-    ENTRY_LOG_CALLFLOW();
-    mGnssMeasurement = new GnssMeasurement();
-    return mGnssMeasurement;
-}
-
-Return<sp<IGnssConfiguration>> Gnss::getExtensionGnssConfiguration()  {
-    ENTRY_LOG_CALLFLOW();
-    mGnssConfig = new GnssConfiguration(this);
-    return mGnssConfig;
-}
-
-Return<sp<IGnssGeofencing>> Gnss::getExtensionGnssGeofencing()  {
-    ENTRY_LOG_CALLFLOW();
-    mGnssGeofencingIface = new GnssGeofencing();
-    return mGnssGeofencingIface;
-}
-
-Return<sp<IGnssBatching>> Gnss::getExtensionGnssBatching()  {
-    mGnssBatching = new GnssBatching();
-    return mGnssBatching;
-}
-
-Return<sp<IGnssDebug>> Gnss::getExtensionGnssDebug() {
-    ENTRY_LOG_CALLFLOW();
-    mGnssDebug = new GnssDebug(this);
-    return mGnssDebug;
-}
-
-Return<sp<IAGnssRil>> Gnss::getExtensionAGnssRil() {
-    mGnssRil = new AGnssRil(this);
-    return mGnssRil;
-}
-
-IGnss* HIDL_FETCH_IGnss(const char* hal) {
-    ENTRY_LOG_CALLFLOW();
-    IGnss* iface = nullptr;
-    iface = new Gnss();
-    if (iface == nullptr) {
-        LOC_LOGE("%s]: failed to get %s", __FUNCTION__, hal);
-    }
-    return iface;
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/Gnss.h b/sdm845/android/Gnss.h
deleted file mode 100644
index e4589d6..0000000
--- a/sdm845/android/Gnss.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_HARDWARE_GNSS_V1_1_GNSS_H
-#define ANDROID_HARDWARE_GNSS_V1_1_GNSS_H
-
-#include <AGnss.h>
-#include <AGnssRil.h>
-#include <GnssBatching.h>
-#include <GnssConfiguration.h>
-#include <GnssGeofencing.h>
-#include <GnssMeasurement.h>
-#include <GnssNi.h>
-#include <GnssDebug.h>
-
-#include <android/hardware/gnss/1.0/IGnss.h>
-#include <hidl/Status.h>
-
-#include <GnssAPIClient.h>
-#include <location_interface.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::hardware::Return;
-using ::android::hardware::Void;
-using ::android::hardware::hidl_vec;
-using ::android::hardware::hidl_string;
-using ::android::sp;
-
-struct Gnss : public IGnss {
-    Gnss();
-    ~Gnss();
-
-    // registerAsService will call interfaceChain to determine the version of service
-    /* comment this out until we know really how to manipulate hidl version
-    using interfaceChain_cb = std::function<
-        void(const ::android::hardware::hidl_vec<::android::hardware::hidl_string>& descriptors)>;
-    virtual ::android::hardware::Return<void> interfaceChain(interfaceChain_cb _hidl_cb) override {
-        _hidl_cb({
-                "android.hardware.gnss@1.1::IGnss",
-                ::android::hidl::base::V1_0::IBase::descriptor,
-                });
-        return ::android::hardware::Void();
-    }
-    */
-
-    /*
-     * Methods from ::android::hardware::gnss::V1_0::IGnss follow.
-     * These declarations were generated from Gnss.hal.
-     */
-    Return<bool> setCallback(const sp<IGnssCallback>& callback)  override;
-    Return<bool> start()  override;
-    Return<bool> stop()  override;
-    Return<void> cleanup()  override;
-    Return<bool> injectLocation(double latitudeDegrees,
-                                double longitudeDegrees,
-                                float accuracyMeters)  override;
-    Return<bool> injectTime(int64_t timeMs,
-                            int64_t timeReferenceMs,
-                            int32_t uncertaintyMs) override;
-    Return<void> deleteAidingData(IGnss::GnssAidingData aidingDataFlags)  override;
-    Return<bool> setPositionMode(IGnss::GnssPositionMode mode,
-                                 IGnss::GnssPositionRecurrence recurrence,
-                                 uint32_t minIntervalMs,
-                                 uint32_t preferredAccuracyMeters,
-                                 uint32_t preferredTimeMs)  override;
-    Return<sp<IAGnss>> getExtensionAGnss() override;
-    Return<sp<IGnssNi>> getExtensionGnssNi() override;
-    Return<sp<IGnssMeasurement>> getExtensionGnssMeasurement() override;
-    Return<sp<IGnssConfiguration>> getExtensionGnssConfiguration() override;
-    Return<sp<IGnssGeofencing>> getExtensionGnssGeofencing() override;
-    Return<sp<IGnssBatching>> getExtensionGnssBatching() override;
-
-    Return<sp<IAGnssRil>> getExtensionAGnssRil() override;
-
-    inline Return<sp<IGnssNavigationMessage>> getExtensionGnssNavigationMessage() override {
-        return nullptr;
-    }
-
-    inline Return<sp<IGnssXtra>> getExtensionXtra() override {
-        return nullptr;
-    }
-
-    Return<sp<IGnssDebug>> getExtensionGnssDebug() override;
-
-    // These methods are not part of the IGnss base class.
-    GnssAPIClient* getApi();
-    Return<bool> setGnssNiCb(const sp<IGnssNiCallback>& niCb);
-    Return<bool> updateConfiguration(GnssConfig& gnssConfig);
-    GnssInterface* getGnssInterface();
-
- private:
-    struct GnssDeathRecipient : hidl_death_recipient {
-        GnssDeathRecipient(sp<Gnss> gnss) : mGnss(gnss) {
-        }
-        ~GnssDeathRecipient() = default;
-        virtual void serviceDied(uint64_t cookie, const wp<IBase>& who) override;
-        sp<Gnss> mGnss;
-    };
-
- private:
-    sp<GnssDeathRecipient> mGnssDeathRecipient = nullptr;
-
-    sp<AGnss> mAGnssIface = nullptr;
-    sp<GnssNi> mGnssNi = nullptr;
-    sp<GnssMeasurement> mGnssMeasurement = nullptr;
-    sp<GnssConfiguration> mGnssConfig = nullptr;
-    sp<GnssGeofencing> mGnssGeofencingIface = nullptr;
-    sp<GnssBatching> mGnssBatching = nullptr;
-    sp<IGnssDebug> mGnssDebug = nullptr;
-    sp<AGnssRil> mGnssRil = nullptr;
-
-    GnssAPIClient* mApi = nullptr;
-    sp<IGnssCallback> mGnssCbIface = nullptr;
-    sp<IGnssNiCallback> mGnssNiCbIface = nullptr;
-    GnssConfig mPendingConfig;
-    GnssInterface* mGnssInterface = nullptr;
-};
-
-extern "C" IGnss* HIDL_FETCH_IGnss(const char* name);
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-
-#endif  // ANDROID_HARDWARE_GNSS_V1_1_GNSS_H
diff --git a/sdm845/android/GnssBatching.cpp b/sdm845/android/GnssBatching.cpp
deleted file mode 100644
index 6ffadc9..0000000
--- a/sdm845/android/GnssBatching.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "LocSvc_GnssBatchingInterface"
-
-#include <log_util.h>
-#include <BatchingAPIClient.h>
-#include "GnssBatching.h"
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-void GnssBatching::GnssBatchingDeathRecipient::serviceDied(
-        uint64_t cookie, const wp<IBase>& who) {
-    LOC_LOGE("%s] service died. cookie: %llu, who: %p",
-            __FUNCTION__, static_cast<unsigned long long>(cookie), &who);
-    if (mGnssBatching != nullptr) {
-        mGnssBatching->stop();
-        mGnssBatching->cleanup();
-    }
-}
-
-GnssBatching::GnssBatching() : mApi(nullptr) {
-    mGnssBatchingDeathRecipient = new GnssBatchingDeathRecipient(this);
-}
-
-GnssBatching::~GnssBatching() {
-    if (mApi != nullptr) {
-        delete mApi;
-        mApi = nullptr;
-    }
-}
-
-
-// Methods from ::android::hardware::gnss::V1_0::IGnssBatching follow.
-Return<bool> GnssBatching::init(const sp<IGnssBatchingCallback>& callback) {
-    if (mApi != nullptr) {
-        LOC_LOGD("%s]: mApi is NOT nullptr, delete it first", __FUNCTION__);
-        delete mApi;
-        mApi = nullptr;
-    }
-
-    mApi = new BatchingAPIClient(callback);
-    if (mApi == nullptr) {
-        LOC_LOGE("%s]: failed to create mApi", __FUNCTION__);
-        return false;
-    }
-
-    if (mGnssBatchingCbIface != nullptr) {
-        mGnssBatchingCbIface->unlinkToDeath(mGnssBatchingDeathRecipient);
-    }
-    mGnssBatchingCbIface = callback;
-    if (mGnssBatchingCbIface != nullptr) {
-        mGnssBatchingCbIface->linkToDeath(mGnssBatchingDeathRecipient, 0 /*cookie*/);
-    }
-
-    return true;
-}
-
-Return<uint16_t> GnssBatching::getBatchSize() {
-    uint16_t ret = 0;
-    if (mApi == nullptr) {
-        LOC_LOGE("%s]: mApi is nullptr", __FUNCTION__);
-    } else {
-        ret = mApi->getBatchSize();
-    }
-    return ret;
-}
-
-Return<bool> GnssBatching::start(const IGnssBatching::Options& options) {
-    bool ret = false;
-    if (mApi == nullptr) {
-        LOC_LOGE("%s]: mApi is nullptr", __FUNCTION__);
-    } else {
-        ret = mApi->startSession(options);
-    }
-    return ret;
-}
-
-Return<void> GnssBatching::flush() {
-    if (mApi == nullptr) {
-        LOC_LOGE("%s]: mApi is nullptr", __FUNCTION__);
-    } else {
-        mApi->flushBatchedLocations();
-    }
-    return Void();
-}
-
-Return<bool> GnssBatching::stop() {
-    bool ret = false;
-    if (mApi == nullptr) {
-        LOC_LOGE("%s]: mApi is nullptr", __FUNCTION__);
-    } else {
-        ret = mApi->stopSession();
-    }
-    return ret;
-}
-
-Return<void> GnssBatching::cleanup() {
-    if (mGnssBatchingCbIface != nullptr) {
-        mGnssBatchingCbIface->unlinkToDeath(mGnssBatchingDeathRecipient);
-    }
-    return Void();
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/GnssBatching.h b/sdm845/android/GnssBatching.h
deleted file mode 100644
index de5d5c3..0000000
--- a/sdm845/android/GnssBatching.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_HARDWARE_GNSS_V1_1_GNSSBATCHING_H
-#define ANDROID_HARDWARE_GNSS_V1_1_GNSSBATCHING_H
-
-#include <android/hardware/gnss/1.0/IGnssBatching.h>
-#include <hidl/Status.h>
-
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::hardware::gnss::V1_0::IGnssBatching;
-using ::android::hardware::gnss::V1_0::IGnssBatchingCallback;
-using ::android::hidl::base::V1_0::IBase;
-using ::android::hardware::hidl_array;
-using ::android::hardware::hidl_memory;
-using ::android::hardware::hidl_string;
-using ::android::hardware::hidl_vec;
-using ::android::hardware::Return;
-using ::android::hardware::Void;
-using ::android::sp;
-
-class BatchingAPIClient;
-struct GnssBatching : public IGnssBatching {
-    GnssBatching();
-    ~GnssBatching();
-
-    // Methods from ::android::hardware::gnss::V1_0::IGnssBatching follow.
-    Return<bool> init(const sp<IGnssBatchingCallback>& callback) override;
-    Return<uint16_t> getBatchSize() override;
-    Return<bool> start(const IGnssBatching::Options& options ) override;
-    Return<void> flush() override;
-    Return<bool> stop() override;
-    Return<void> cleanup() override;
-
- private:
-    struct GnssBatchingDeathRecipient : hidl_death_recipient {
-        GnssBatchingDeathRecipient(sp<GnssBatching> gnssBatching) :
-            mGnssBatching(gnssBatching) {
-        }
-        ~GnssBatchingDeathRecipient() = default;
-        virtual void serviceDied(uint64_t cookie, const wp<IBase>& who) override;
-        sp<GnssBatching> mGnssBatching;
-    };
-
- private:
-    sp<GnssBatchingDeathRecipient> mGnssBatchingDeathRecipient = nullptr;
-    sp<IGnssBatchingCallback> mGnssBatchingCbIface = nullptr;
-    BatchingAPIClient* mApi = nullptr;
-};
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-
-#endif  // ANDROID_HARDWARE_GNSS_V1_1_GNSSBATCHING_H
diff --git a/sdm845/android/GnssConfiguration.cpp b/sdm845/android/GnssConfiguration.cpp
deleted file mode 100644
index 51ee892..0000000
--- a/sdm845/android/GnssConfiguration.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "LocSvc_GnssConfigurationInterface"
-
-#include <log_util.h>
-#include "Gnss.h"
-#include "GnssConfiguration.h"
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-GnssConfiguration::GnssConfiguration(Gnss* gnss) : mGnss(gnss) {
-}
-
-// Methods from ::android::hardware::gps::V1_0::IGnssConfiguration follow.
-Return<bool> GnssConfiguration::setSuplEs(bool enabled)  {
-    if (mGnss == nullptr) {
-        LOC_LOGE("%s]: mGnss is nullptr", __FUNCTION__);
-        return false;
-    }
-
-    GnssConfig config;
-    memset(&config, 0, sizeof(GnssConfig));
-    config.size = sizeof(GnssConfig);
-    config.flags = GNSS_CONFIG_FLAGS_SUPL_EM_SERVICES_BIT;
-    config.suplEmergencyServices = (enabled ?
-            GNSS_CONFIG_SUPL_EMERGENCY_SERVICES_YES :
-            GNSS_CONFIG_SUPL_EMERGENCY_SERVICES_NO);
-
-    return mGnss->updateConfiguration(config);
-}
-
-Return<bool> GnssConfiguration::setSuplVersion(uint32_t version)  {
-    if (mGnss == nullptr) {
-        LOC_LOGE("%s]: mGnss is nullptr", __FUNCTION__);
-        return false;
-    }
-
-    GnssConfig config;
-    memset(&config, 0, sizeof(GnssConfig));
-    config.size = sizeof(GnssConfig);
-    config.flags = GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT;
-    switch (version) {
-        case 0x00020002:
-            config.suplVersion = GNSS_CONFIG_SUPL_VERSION_2_0_2;
-            break;
-        case 0x00020000:
-            config.suplVersion = GNSS_CONFIG_SUPL_VERSION_2_0_0;
-            break;
-        case 0x00010000:
-            config.suplVersion = GNSS_CONFIG_SUPL_VERSION_1_0_0;
-            break;
-        default:
-            LOC_LOGE("%s]: invalid version: 0x%x.", __FUNCTION__, version);
-            return false;
-            break;
-    }
-
-    return mGnss->updateConfiguration(config);
-}
-
-Return<bool> GnssConfiguration::setSuplMode(uint8_t mode)  {
-    if (mGnss == nullptr) {
-        LOC_LOGE("%s]: mGnss is nullptr", __FUNCTION__);
-        return false;
-    }
-
-    GnssConfig config;
-    memset(&config, 0, sizeof(GnssConfig));
-    config.size = sizeof(GnssConfig);
-    config.flags = GNSS_CONFIG_FLAGS_SUPL_MODE_BIT;
-    switch (mode) {
-        case 0:
-            config.suplModeMask = 0; // STANDALONE ONLY
-            break;
-        case 1:
-            config.suplModeMask = GNSS_CONFIG_SUPL_MODE_MSB_BIT;
-            break;
-        case 2:
-            config.suplModeMask = GNSS_CONFIG_SUPL_MODE_MSA_BIT;
-            break;
-        case 3:
-            config.suplModeMask = GNSS_CONFIG_SUPL_MODE_MSB_BIT | GNSS_CONFIG_SUPL_MODE_MSA_BIT;
-            break;
-        default:
-            LOC_LOGE("%s]: invalid mode: %d.", __FUNCTION__, mode);
-            return false;
-            break;
-    }
-
-    return mGnss->updateConfiguration(config);
-}
-
-Return<bool> GnssConfiguration::setLppProfile(uint8_t lppProfile) {
-    if (mGnss == nullptr) {
-        LOC_LOGE("%s]: mGnss is nullptr", __FUNCTION__);
-        return false;
-    }
-
-    GnssConfig config;
-    memset(&config, 0, sizeof(GnssConfig));
-    config.size = sizeof(GnssConfig);
-    config.flags = GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT;
-    switch (lppProfile) {
-        case 0:
-            config.lppProfile = GNSS_CONFIG_LPP_PROFILE_RRLP_ON_LTE;
-            break;
-        case 1:
-            config.lppProfile = GNSS_CONFIG_LPP_PROFILE_USER_PLANE;
-            break;
-        case 2:
-            config.lppProfile = GNSS_CONFIG_LPP_PROFILE_CONTROL_PLANE;
-            break;
-        case 3:
-            config.lppProfile = GNSS_CONFIG_LPP_PROFILE_USER_PLANE_AND_CONTROL_PLANE;
-            break;
-        default:
-            LOC_LOGE("%s]: invalid lppProfile: %d.", __FUNCTION__, lppProfile);
-            return false;
-            break;
-    }
-
-    return mGnss->updateConfiguration(config);
-}
-
-Return<bool> GnssConfiguration::setGlonassPositioningProtocol(uint8_t protocol) {
-    if (mGnss == nullptr) {
-        LOC_LOGE("%s]: mGnss is nullptr", __FUNCTION__);
-        return false;
-    }
-
-    GnssConfig config;
-    memset(&config, 0, sizeof(GnssConfig));
-    config.size = sizeof(GnssConfig);
-
-    config.flags = GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT;
-    if (protocol & (1<<0)) {
-        config.aGlonassPositionProtocolMask |= GNSS_CONFIG_RRC_CONTROL_PLANE_BIT;
-    }
-    if (protocol & (1<<1)) {
-        config.aGlonassPositionProtocolMask |= GNSS_CONFIG_RRLP_USER_PLANE_BIT;
-    }
-    if (protocol & (1<<2)) {
-        config.aGlonassPositionProtocolMask |= GNSS_CONFIG_LLP_USER_PLANE_BIT;
-    }
-    if (protocol & (1<<3)) {
-        config.aGlonassPositionProtocolMask |= GNSS_CONFIG_LLP_CONTROL_PLANE_BIT;
-    }
-
-    return mGnss->updateConfiguration(config);
-}
-
-Return<bool> GnssConfiguration::setGpsLock(uint8_t lock) {
-    if (mGnss == nullptr) {
-        LOC_LOGE("%s]: mGnss is nullptr", __FUNCTION__);
-        return false;
-    }
-
-    GnssConfig config;
-    memset(&config, 0, sizeof(GnssConfig));
-    config.size = sizeof(GnssConfig);
-    config.flags = GNSS_CONFIG_FLAGS_GPS_LOCK_VALID_BIT;
-    switch (lock) {
-        case 0:
-            config.gpsLock = GNSS_CONFIG_GPS_LOCK_NONE;
-            break;
-        case 1:
-            config.gpsLock = GNSS_CONFIG_GPS_LOCK_MO;
-            break;
-        case 2:
-            config.gpsLock = GNSS_CONFIG_GPS_LOCK_NI;
-            break;
-        case 3:
-            config.gpsLock = GNSS_CONFIG_GPS_LOCK_MO_AND_NI;
-            break;
-        default:
-            LOC_LOGE("%s]: invalid lock: %d.", __FUNCTION__, lock);
-            return false;
-            break;
-    }
-
-    return mGnss->updateConfiguration(config);
-}
-
-Return<bool> GnssConfiguration::setEmergencySuplPdn(bool enabled) {
-    if (mGnss == nullptr) {
-        LOC_LOGE("%s]: mGnss is nullptr", __FUNCTION__);
-        return false;
-    }
-
-    GnssConfig config;
-    memset(&config, 0, sizeof(GnssConfig));
-    config.size = sizeof(GnssConfig);
-    config.flags = GNSS_CONFIG_FLAGS_EM_PDN_FOR_EM_SUPL_VALID_BIT;
-    config.emergencyPdnForEmergencySupl = (enabled ?
-            GNSS_CONFIG_EMERGENCY_PDN_FOR_EMERGENCY_SUPL_YES :
-            GNSS_CONFIG_EMERGENCY_PDN_FOR_EMERGENCY_SUPL_NO);
-
-    return mGnss->updateConfiguration(config);
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/GnssConfiguration.h b/sdm845/android/GnssConfiguration.h
deleted file mode 100644
index f9ea423..0000000
--- a/sdm845/android/GnssConfiguration.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-
- /* Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef ANDROID_HARDWARE_GNSS_V1_1_GNSSCONFIGURATION_H
-#define ANDROID_HARDWARE_GNSS_V1_1_GNSSCONFIGURATION_H
-
-#include <android/hardware/gnss/1.0/IGnssConfiguration.h>
-#include <hidl/Status.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::hardware::gnss::V1_0::IGnssConfiguration;
-using ::android::hardware::Return;
-using ::android::hardware::Void;
-using ::android::hardware::hidl_vec;
-using ::android::hardware::hidl_string;
-using ::android::sp;
-
-/*
- * Interface for passing GNSS configuration info from platform to HAL.
- */
-struct Gnss;
-struct GnssConfiguration : public IGnssConfiguration {
-    GnssConfiguration(Gnss* gnss);
-    ~GnssConfiguration() = default;
-
-    /*
-     * Methods from ::android::hardware::gnss::V1_0::IGnssConfiguration follow.
-     * These declarations were generated from IGnssConfiguration.hal.
-     */
-    Return<bool> setSuplVersion(uint32_t version) override;
-    Return<bool> setSuplMode(uint8_t mode) override;
-    Return<bool> setSuplEs(bool enabled) override;
-    Return<bool> setLppProfile(uint8_t lppProfile) override;
-    Return<bool> setGlonassPositioningProtocol(uint8_t protocol) override;
-    Return<bool> setEmergencySuplPdn(bool enable) override;
-    Return<bool> setGpsLock(uint8_t lock) override;
-
- private:
-    Gnss* mGnss = nullptr;
-};
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-
-#endif  // ANDROID_HARDWARE_GNSS_V1_1_GNSSCONFIGURATION_H
diff --git a/sdm845/android/GnssDebug.cpp b/sdm845/android/GnssDebug.cpp
deleted file mode 100644
index ff467d3..0000000
--- a/sdm845/android/GnssDebug.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "LocSvc_GnssDebugInterface"
-
-#include <log/log.h>
-#include <log_util.h>
-#include "Gnss.h"
-#include "GnssDebug.h"
-#include "LocationUtil.h"
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::hardware::hidl_vec;
-
-#define GNSS_DEBUG_UNKNOWN_UTC_TIME     (1483228800000ULL) // 1/1/2017 00:00 GMT
-#define GNSS_DEBUG_UNKNOWN_UTC_TIME_UNC (1.57783680E17) // 5 years in ns
-
-GnssDebug::GnssDebug(Gnss* gnss) : mGnss(gnss)
-{
-}
-
-/*
- * This methods requests position, time and satellite ephemeris debug information
- * from the HAL.
- *
- * @return void
-*/
-Return<void> GnssDebug::getDebugData(getDebugData_cb _hidl_cb)
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    DebugData data = { };
-
-    if((nullptr == mGnss) || (nullptr == mGnss->getGnssInterface())){
-        LOC_LOGE("GnssDebug - Null GNSS interface");
-        _hidl_cb(data);
-        return Void();
-    }
-
-    // get debug report snapshot via hal interface
-    GnssDebugReport reports = { };
-    mGnss->getGnssInterface()->getDebugReport(reports);
-
-    // location block
-    if (reports.mLocation.mValid) {
-        data.position.valid = true;
-        data.position.latitudeDegrees = reports.mLocation.mLocation.latitude;
-        data.position.longitudeDegrees = reports.mLocation.mLocation.longitude;
-        data.position.altitudeMeters = reports.mLocation.mLocation.altitude;
-
-        data.position.speedMetersPerSec =
-            (double)(reports.mLocation.mLocation.speed);
-        data.position.bearingDegrees =
-            (double)(reports.mLocation.mLocation.bearing);
-        data.position.horizontalAccuracyMeters =
-            (double)(reports.mLocation.mLocation.accuracy);
-        data.position.verticalAccuracyMeters =
-            reports.mLocation.verticalAccuracyMeters;
-        data.position.speedAccuracyMetersPerSecond =
-            reports.mLocation.speedAccuracyMetersPerSecond;
-        data.position.bearingAccuracyDegrees =
-            reports.mLocation.bearingAccuracyDegrees;
-
-        timeval tv_now, tv_report;
-        tv_report.tv_sec  = reports.mLocation.mUtcReported.tv_sec;
-        tv_report.tv_usec = reports.mLocation.mUtcReported.tv_nsec / 1000ULL;
-        gettimeofday(&tv_now, NULL);
-        data.position.ageSeconds =
-            (tv_now.tv_sec - tv_report.tv_sec) +
-            (float)((tv_now.tv_usec - tv_report.tv_usec)) / 1000000;
-    }
-    else {
-        data.position.valid = false;
-    }
-
-    // time block
-    if (reports.mTime.mValid) {
-        data.time.timeEstimate = reports.mTime.timeEstimate;
-        data.time.timeUncertaintyNs = reports.mTime.timeUncertaintyNs;
-        data.time.frequencyUncertaintyNsPerSec =
-            reports.mTime.frequencyUncertaintyNsPerSec;
-    }
-    else {
-        data.time.timeEstimate = GNSS_DEBUG_UNKNOWN_UTC_TIME;
-        data.time.timeUncertaintyNs = (float)(GNSS_DEBUG_UNKNOWN_UTC_TIME_UNC);
-        data.time.frequencyUncertaintyNsPerSec = 0;
-    }
-
-    // satellite data block
-    SatelliteData s = { };
-    std::vector<SatelliteData> s_array = { };
-
-    for (uint32_t i=0; i<reports.mSatelliteInfo.size(); i++) {
-        memset(&s, 0, sizeof(s));
-        s.svid = reports.mSatelliteInfo[i].svid;
-        convertGnssConstellationType(
-            reports.mSatelliteInfo[i].constellation, s.constellation);
-        convertGnssEphemerisType(
-            reports.mSatelliteInfo[i].mEphemerisType, s.ephemerisType);
-        convertGnssEphemerisSource(
-            reports.mSatelliteInfo[i].mEphemerisSource, s.ephemerisSource);
-        convertGnssEphemerisHealth(
-            reports.mSatelliteInfo[i].mEphemerisHealth, s.ephemerisHealth);
-
-        s.ephemerisAgeSeconds =
-            reports.mSatelliteInfo[i].ephemerisAgeSeconds;
-        s.serverPredictionIsAvailable =
-            reports.mSatelliteInfo[i].serverPredictionIsAvailable;
-        s.serverPredictionAgeSeconds =
-            reports.mSatelliteInfo[i].serverPredictionAgeSeconds;
-
-        s_array.push_back(s);
-    }
-    data.satelliteDataArray = s_array;
-
-    // callback HIDL with collected debug data
-    _hidl_cb(data);
-    return Void();
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/GnssDebug.h b/sdm845/android/GnssDebug.h
deleted file mode 100644
index 7d29131..0000000
--- a/sdm845/android/GnssDebug.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_HARDWARE_GNSS_V1_1_GNSSDEBUG_H
-#define ANDROID_HARDWARE_GNSS_V1_1_GNSSDEBUG_H
-
-
-#include <android/hardware/gnss/1.0/IGnssDebug.h>
-#include <hidl/Status.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::hardware::gnss::V1_0::IGnssDebug;
-using ::android::hardware::Return;
-using ::android::hardware::Void;
-using ::android::hardware::hidl_vec;
-using ::android::hardware::hidl_string;
-using ::android::sp;
-
-/* Interface for GNSS Debug support. */
-struct Gnss;
-struct GnssDebug : public IGnssDebug {
-    GnssDebug(Gnss* gnss);
-    ~GnssDebug() {};
-
-    /*
-     * Methods from ::android::hardware::gnss::V1_0::IGnssDebug follow.
-     * These declarations were generated from IGnssDebug.hal.
-     */
-    Return<void> getDebugData(getDebugData_cb _hidl_cb) override;
-
-private:
-    Gnss* mGnss = nullptr;
-};
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-
-#endif  // ANDROID_HARDWARE_GNSS_V1_1_GNSSDEBUG_H
diff --git a/sdm845/android/GnssGeofencing.cpp b/sdm845/android/GnssGeofencing.cpp
deleted file mode 100644
index 035a092..0000000
--- a/sdm845/android/GnssGeofencing.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "GnssHal_GnssGeofencing"
-
-#include <log_util.h>
-#include <GeofenceAPIClient.h>
-#include "GnssGeofencing.h"
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-void GnssGeofencing::GnssGeofencingDeathRecipient::serviceDied(
-        uint64_t cookie, const wp<IBase>& who) {
-    LOC_LOGE("%s] service died. cookie: %llu, who: %p",
-            __FUNCTION__, static_cast<unsigned long long>(cookie), &who);
-    if (mGnssGeofencing != nullptr) {
-        mGnssGeofencing->removeAllGeofences();
-    }
-}
-
-GnssGeofencing::GnssGeofencing() : mApi(nullptr) {
-    mGnssGeofencingDeathRecipient = new GnssGeofencingDeathRecipient(this);
-}
-
-GnssGeofencing::~GnssGeofencing() {
-    if (mApi != nullptr) {
-        delete mApi;
-        mApi = nullptr;
-    }
-}
-
-// Methods from ::android::hardware::gnss::V1_0::IGnssGeofencing follow.
-Return<void> GnssGeofencing::setCallback(const sp<IGnssGeofenceCallback>& callback)  {
-    if (mApi != nullptr) {
-        LOC_LOGE("%s]: mApi is NOT nullptr", __FUNCTION__);
-        return Void();
-    }
-
-    mApi = new GeofenceAPIClient(callback);
-    if (mApi == nullptr) {
-        LOC_LOGE("%s]: failed to create mApi", __FUNCTION__);
-    }
-
-    if (mGnssGeofencingCbIface != nullptr) {
-        mGnssGeofencingCbIface->unlinkToDeath(mGnssGeofencingDeathRecipient);
-    }
-    mGnssGeofencingCbIface = callback;
-    if (mGnssGeofencingCbIface != nullptr) {
-        mGnssGeofencingCbIface->linkToDeath(mGnssGeofencingDeathRecipient, 0 /*cookie*/);
-    }
-
-    return Void();
-}
-
-Return<void> GnssGeofencing::addGeofence(
-        int32_t geofenceId,
-        double latitudeDegrees,
-        double longitudeDegrees,
-        double radiusMeters,
-        IGnssGeofenceCallback::GeofenceTransition lastTransition,
-        int32_t monitorTransitions,
-        uint32_t notificationResponsivenessMs,
-        uint32_t unknownTimerMs)  {
-    if (mApi == nullptr) {
-        LOC_LOGE("%s]: mApi is nullptr", __FUNCTION__);
-    } else {
-        mApi->geofenceAdd(
-                geofenceId,
-                latitudeDegrees,
-                longitudeDegrees,
-                radiusMeters,
-                static_cast<int32_t>(lastTransition),
-                monitorTransitions,
-                notificationResponsivenessMs,
-                unknownTimerMs);
-    }
-    return Void();
-}
-
-Return<void> GnssGeofencing::pauseGeofence(int32_t geofenceId)  {
-    if (mApi == nullptr) {
-        LOC_LOGE("%s]: mApi is nullptr", __FUNCTION__);
-    } else {
-        mApi->geofencePause(geofenceId);
-    }
-    return Void();
-}
-
-Return<void> GnssGeofencing::resumeGeofence(int32_t geofenceId, int32_t monitorTransitions)  {
-    if (mApi == nullptr) {
-        LOC_LOGE("%s]: mApi is nullptr", __FUNCTION__);
-    } else {
-        mApi->geofenceResume(geofenceId, monitorTransitions);
-    }
-    return Void();
-}
-
-Return<void> GnssGeofencing::removeGeofence(int32_t geofenceId)  {
-    if (mApi == nullptr) {
-        LOC_LOGE("%s]: mApi is nullptr", __FUNCTION__);
-    } else {
-        mApi->geofenceRemove(geofenceId);
-    }
-    return Void();
-}
-
-Return<void> GnssGeofencing::removeAllGeofences()  {
-    if (mApi == nullptr) {
-        LOC_LOGD("%s]: mApi is nullptr, do nothing", __FUNCTION__);
-    } else {
-        mApi->geofenceRemoveAll();
-    }
-    return Void();
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/GnssGeofencing.h b/sdm845/android/GnssGeofencing.h
deleted file mode 100644
index 7af5f91..0000000
--- a/sdm845/android/GnssGeofencing.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_HARDWARE_GNSS_V1_1_GNSSGEOFENCING_H
-#define ANDROID_HARDWARE_GNSS_V1_1_GNSSGEOFENCING_H
-
-#include <android/hardware/gnss/1.0/IGnssGeofencing.h>
-#include <hidl/Status.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::hardware::gnss::V1_0::IGnssGeofenceCallback;
-using ::android::hardware::gnss::V1_0::IGnssGeofencing;
-using ::android::hardware::Return;
-using ::android::hardware::Void;
-using ::android::hardware::hidl_vec;
-using ::android::hardware::hidl_string;
-using ::android::sp;
-
-class GeofenceAPIClient;
-struct GnssGeofencing : public IGnssGeofencing {
-    GnssGeofencing();
-    ~GnssGeofencing();
-
-    /*
-     * Methods from ::android::hardware::gnss::V1_0::IGnssGeofencing follow.
-     * These declarations were generated from IGnssGeofencing.hal.
-     */
-    Return<void> setCallback(const sp<IGnssGeofenceCallback>& callback)  override;
-    Return<void> addGeofence(int32_t geofenceId,
-                             double latitudeDegrees,
-                             double longitudeDegrees,
-                             double radiusMeters,
-                             IGnssGeofenceCallback::GeofenceTransition lastTransition,
-                             int32_t monitorTransitions,
-                             uint32_t notificationResponsivenessMs,
-                             uint32_t unknownTimerMs)  override;
-
-    Return<void> pauseGeofence(int32_t geofenceId)  override;
-    Return<void> resumeGeofence(int32_t geofenceId, int32_t monitorTransitions)  override;
-    Return<void> removeGeofence(int32_t geofenceId)  override;
-
- private:
-    // This method is not part of the IGnss base class.
-    // It is called by GnssGeofencingDeathRecipient to remove all geofences added so far.
-    Return<void> removeAllGeofences();
-
- private:
-    struct GnssGeofencingDeathRecipient : hidl_death_recipient {
-        GnssGeofencingDeathRecipient(sp<GnssGeofencing> gnssGeofencing) :
-            mGnssGeofencing(gnssGeofencing) {
-        }
-        ~GnssGeofencingDeathRecipient() = default;
-        virtual void serviceDied(uint64_t cookie, const wp<IBase>& who) override;
-        sp<GnssGeofencing> mGnssGeofencing;
-    };
-
- private:
-    sp<GnssGeofencingDeathRecipient> mGnssGeofencingDeathRecipient = nullptr;
-    sp<IGnssGeofenceCallback> mGnssGeofencingCbIface = nullptr;
-    GeofenceAPIClient* mApi = nullptr;
-};
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-
-#endif  // ANDROID_HARDWARE_GNSS_V1_1_GNSSGEOFENCING_H
diff --git a/sdm845/android/GnssMeasurement.cpp b/sdm845/android/GnssMeasurement.cpp
deleted file mode 100644
index 8cbfabd..0000000
--- a/sdm845/android/GnssMeasurement.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "LocSvc_GnssMeasurementInterface"
-
-#include <log_util.h>
-#include <MeasurementAPIClient.h>
-#include "GnssMeasurement.h"
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-void GnssMeasurement::GnssMeasurementDeathRecipient::serviceDied(
-        uint64_t cookie, const wp<IBase>& who) {
-    LOC_LOGE("%s] service died. cookie: %llu, who: %p",
-            __FUNCTION__, static_cast<unsigned long long>(cookie), &who);
-    if (mGnssMeasurement != nullptr) {
-        mGnssMeasurement->close();
-    }
-}
-
-GnssMeasurement::GnssMeasurement() {
-    mGnssMeasurementDeathRecipient = new GnssMeasurementDeathRecipient(this);
-    mApi = new MeasurementAPIClient();
-}
-
-GnssMeasurement::~GnssMeasurement() {
-    if (mApi) {
-        delete mApi;
-        mApi = nullptr;
-    }
-}
-
-// Methods from ::android::hardware::gnss::V1_0::IGnssMeasurement follow.
-Return<IGnssMeasurement::GnssMeasurementStatus> GnssMeasurement::setCallback(
-        const sp<IGnssMeasurementCallback>& callback)  {
-
-    Return<IGnssMeasurement::GnssMeasurementStatus> ret =
-        IGnssMeasurement::GnssMeasurementStatus::ERROR_GENERIC;
-    if (mGnssMeasurementCbIface != nullptr) {
-        LOC_LOGE("%s]: GnssMeasurementCallback is already set", __FUNCTION__);
-        return IGnssMeasurement::GnssMeasurementStatus::ERROR_ALREADY_INIT;
-    }
-
-    if (callback == nullptr) {
-        LOC_LOGE("%s]: callback is nullptr", __FUNCTION__);
-        return ret;
-    }
-    if (mApi == nullptr) {
-        LOC_LOGE("%s]: mApi is nullptr", __FUNCTION__);
-        return ret;
-    }
-
-    mGnssMeasurementCbIface = callback;
-    mGnssMeasurementCbIface->linkToDeath(mGnssMeasurementDeathRecipient, 0 /*cookie*/);
-
-    return mApi->measurementSetCallback(callback);
-}
-
-Return<void> GnssMeasurement::close()  {
-    if (mApi == nullptr) {
-        LOC_LOGE("%s]: mApi is nullptr", __FUNCTION__);
-        return Void();
-    }
-
-    if (mGnssMeasurementCbIface != nullptr) {
-        mGnssMeasurementCbIface->unlinkToDeath(mGnssMeasurementDeathRecipient);
-        mGnssMeasurementCbIface = nullptr;
-    }
-    mApi->measurementClose();
-
-    return Void();
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/GnssMeasurement.h b/sdm845/android/GnssMeasurement.h
deleted file mode 100644
index 5073169..0000000
--- a/sdm845/android/GnssMeasurement.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_HARDWARE_GNSS_V1_1_GNSSMEASUREMENT_H
-#define ANDROID_HARDWARE_GNSS_V1_1_GNSSMEASUREMENT_H
-
-#include <android/hardware/gnss/1.0/IGnssMeasurement.h>
-#include <hidl/Status.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::hardware::gnss::V1_0::IGnssMeasurement;
-using ::android::hardware::gnss::V1_0::IGnssMeasurementCallback;
-using ::android::hardware::Return;
-using ::android::hardware::Void;
-using ::android::hardware::hidl_vec;
-using ::android::hardware::hidl_string;
-using ::android::sp;
-
-class MeasurementAPIClient;
-struct GnssMeasurement : public IGnssMeasurement {
-    GnssMeasurement();
-    ~GnssMeasurement();
-
-    /*
-     * Methods from ::android::hardware::gnss::V1_0::IGnssMeasurement follow.
-     * These declarations were generated from IGnssMeasurement.hal.
-     */
-    Return<GnssMeasurementStatus> setCallback(
-        const sp<IGnssMeasurementCallback>& callback) override;
-    Return<void> close() override;
-
- private:
-    struct GnssMeasurementDeathRecipient : hidl_death_recipient {
-        GnssMeasurementDeathRecipient(sp<GnssMeasurement> gnssMeasurement) :
-            mGnssMeasurement(gnssMeasurement) {
-        }
-        ~GnssMeasurementDeathRecipient() = default;
-        virtual void serviceDied(uint64_t cookie, const wp<IBase>& who) override;
-        sp<GnssMeasurement> mGnssMeasurement;
-    };
-
- private:
-    sp<GnssMeasurementDeathRecipient> mGnssMeasurementDeathRecipient = nullptr;
-    sp<IGnssMeasurementCallback> mGnssMeasurementCbIface = nullptr;
-    MeasurementAPIClient* mApi;
-};
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-
-#endif  // ANDROID_HARDWARE_GNSS_V1_1_GNSSMEASUREMENT_H
diff --git a/sdm845/android/GnssNi.cpp b/sdm845/android/GnssNi.cpp
deleted file mode 100644
index 4437932..0000000
--- a/sdm845/android/GnssNi.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "LocSvc_GnssNiInterface"
-
-#include <log_util.h>
-#include "Gnss.h"
-#include "GnssNi.h"
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-void GnssNi::GnssNiDeathRecipient::serviceDied(uint64_t cookie, const wp<IBase>& who) {
-    LOC_LOGE("%s] service died. cookie: %llu, who: %p",
-            __FUNCTION__, static_cast<unsigned long long>(cookie), &who);
-    // we do nothing here
-    // Gnss::GnssDeathRecipient will stop the session
-}
-
-GnssNi::GnssNi(Gnss* gnss) : mGnss(gnss) {
-    mGnssNiDeathRecipient = new GnssNiDeathRecipient(this);
-}
-
-// Methods from ::android::hardware::gnss::V1_0::IGnssNi follow.
-Return<void> GnssNi::setCallback(const sp<IGnssNiCallback>& callback)  {
-    if (mGnss == nullptr) {
-        LOC_LOGE("%s]: mGnss is nullptr", __FUNCTION__);
-        return Void();
-    }
-
-    mGnss->setGnssNiCb(callback);
-
-    if (mGnssNiCbIface != nullptr) {
-        mGnssNiCbIface->unlinkToDeath(mGnssNiDeathRecipient);
-    }
-    mGnssNiCbIface = callback;
-    if (mGnssNiCbIface != nullptr) {
-        mGnssNiCbIface->linkToDeath(mGnssNiDeathRecipient, 0 /*cookie*/);
-    }
-
-    return Void();
-}
-
-Return<void> GnssNi::respond(int32_t notifId, IGnssNiCallback::GnssUserResponseType userResponse)  {
-    if (mGnss == nullptr) {
-        LOC_LOGE("%s]: mGnss is nullptr", __FUNCTION__);
-        return Void();
-    }
-
-    GnssAPIClient* api = mGnss->getApi();
-    if (api == nullptr) {
-        LOC_LOGE("%s]: api is nullptr", __FUNCTION__);
-        return Void();
-    }
-
-    api->gnssNiRespond(notifId, userResponse);
-
-    return Void();
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/GnssNi.h b/sdm845/android/GnssNi.h
deleted file mode 100644
index f6fe0bb..0000000
--- a/sdm845/android/GnssNi.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_HARDWARE_GNSS_V1_1_GNSSNI_H
-#define ANDROID_HARDWARE_GNSS_V1_1_GNSSNI_H
-
-#include <android/hardware/gnss/1.0/IGnssNi.h>
-#include <hidl/Status.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::hardware::gnss::V1_0::IGnssNi;
-using ::android::hardware::gnss::V1_0::IGnssNiCallback;
-using ::android::hardware::Return;
-using ::android::hardware::Void;
-using ::android::hardware::hidl_vec;
-using ::android::hardware::hidl_string;
-using ::android::sp;
-
-struct Gnss;
-struct GnssNi : public IGnssNi {
-    GnssNi(Gnss* gnss);
-    ~GnssNi() = default;
-
-    /*
-     * Methods from ::android::hardware::gnss::V1_0::IGnssNi follow.
-     * These declarations were generated from IGnssNi.hal.
-     */
-    Return<void> setCallback(const sp<IGnssNiCallback>& callback) override;
-    Return<void> respond(int32_t notifId,
-                         IGnssNiCallback::GnssUserResponseType userResponse) override;
-
- private:
-    struct GnssNiDeathRecipient : hidl_death_recipient {
-        GnssNiDeathRecipient(sp<GnssNi> gnssNi) : mGnssNi(gnssNi) {
-        }
-        ~GnssNiDeathRecipient() = default;
-        virtual void serviceDied(uint64_t cookie, const wp<IBase>& who) override;
-        sp<GnssNi> mGnssNi;
-    };
-
- private:
-    sp<GnssNiDeathRecipient> mGnssNiDeathRecipient = nullptr;
-    sp<IGnssNiCallback> mGnssNiCbIface = nullptr;
-    Gnss* mGnss = nullptr;
-};
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-
-#endif  // ANDROID_HARDWARE_GNSS_V1_1_GNSSNI_H
diff --git a/sdm845/android/android.hardware.gnss@1.0-service-qti.rc b/sdm845/android/android.hardware.gnss@1.0-service-qti.rc
deleted file mode 100644
index d4d40fa..0000000
--- a/sdm845/android/android.hardware.gnss@1.0-service-qti.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-service gnss_service /vendor/bin/hw/android.hardware.gnss@1.0-service-qti
-    class main
-    user gps
-    group system gps radio
diff --git a/sdm845/android/location_api/BatchingAPIClient.cpp b/sdm845/android/location_api/BatchingAPIClient.cpp
deleted file mode 100644
index 2f3e8bd..0000000
--- a/sdm845/android/location_api/BatchingAPIClient.cpp
+++ /dev/null
@@ -1,186 +0,0 @@
-/* Copyright (c) 2017, 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 "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.
- *
- */
-
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_BatchingAPIClient"
-
-#include <log_util.h>
-#include <loc_cfg.h>
-
-#include "LocationUtil.h"
-#include "BatchingAPIClient.h"
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-static void convertBatchOption(const IGnssBatching::Options& in, LocationOptions& out,
-        LocationCapabilitiesMask mask);
-
-BatchingAPIClient::BatchingAPIClient(const sp<IGnssBatchingCallback>& callback) :
-    LocationAPIClientBase(),
-    mGnssBatchingCbIface(callback),
-    mDefaultId(42),
-    mLocationCapabilitiesMask(0)
-{
-    LOC_LOGD("%s]: (%p)", __FUNCTION__, &callback);
-
-    LocationCallbacks locationCallbacks;
-    locationCallbacks.size = sizeof(LocationCallbacks);
-
-    locationCallbacks.trackingCb = nullptr;
-    locationCallbacks.batchingCb = nullptr;
-    if (mGnssBatchingCbIface != nullptr) {
-        locationCallbacks.batchingCb = [this](size_t count, Location* location) {
-            onBatchingCb(count, location);
-        };
-    }
-    locationCallbacks.geofenceBreachCb = nullptr;
-    locationCallbacks.geofenceStatusCb = nullptr;
-    locationCallbacks.gnssLocationInfoCb = nullptr;
-    locationCallbacks.gnssNiCb = nullptr;
-    locationCallbacks.gnssSvCb = nullptr;
-    locationCallbacks.gnssNmeaCb = nullptr;
-    locationCallbacks.gnssMeasurementsCb = nullptr;
-
-    locAPISetCallbacks(locationCallbacks);
-}
-
-BatchingAPIClient::~BatchingAPIClient()
-{
-    LOC_LOGD("%s]: ()", __FUNCTION__);
-}
-
-int BatchingAPIClient::getBatchSize()
-{
-    LOC_LOGD("%s]: ()", __FUNCTION__);
-    return locAPIGetBatchSize();
-}
-
-int BatchingAPIClient::startSession(const IGnssBatching::Options& opts)
-{
-    LOC_LOGD("%s]: (%lld %d)", __FUNCTION__,
-            static_cast<long long>(opts.periodNanos), static_cast<uint8_t>(opts.flags));
-    int retVal = -1;
-    LocationOptions options;
-    convertBatchOption(opts, options, mLocationCapabilitiesMask);
-    uint32_t mode = 0;
-    if (opts.flags == static_cast<uint8_t>(IGnssBatching::Flag::WAKEUP_ON_FIFO_FULL)) {
-        mode = SESSION_MODE_ON_FULL;
-    }
-    if (locAPIStartSession(mDefaultId, mode, options) == LOCATION_ERROR_SUCCESS) {
-        retVal = 1;
-    }
-    return retVal;
-}
-
-int BatchingAPIClient::updateSessionOptions(const IGnssBatching::Options& opts)
-{
-    LOC_LOGD("%s]: (%lld %d)", __FUNCTION__,
-            static_cast<long long>(opts.periodNanos), static_cast<uint8_t>(opts.flags));
-    int retVal = -1;
-    LocationOptions options;
-    convertBatchOption(opts, options, mLocationCapabilitiesMask);
-
-    uint32_t mode = 0;
-    if (opts.flags == static_cast<uint8_t>(IGnssBatching::Flag::WAKEUP_ON_FIFO_FULL)) {
-        mode = SESSION_MODE_ON_FULL;
-    }
-    if (locAPIUpdateSessionOptions(mDefaultId, mode, options) == LOCATION_ERROR_SUCCESS) {
-        retVal = 1;
-    }
-    return retVal;
-}
-
-int BatchingAPIClient::stopSession()
-{
-    LOC_LOGD("%s]: ", __FUNCTION__);
-    int retVal = -1;
-    if (locAPIStopSession(mDefaultId) == LOCATION_ERROR_SUCCESS) {
-        retVal = 1;
-    }
-    return retVal;
-}
-
-void BatchingAPIClient::getBatchedLocation(int last_n_locations)
-{
-    LOC_LOGD("%s]: (%d)", __FUNCTION__, last_n_locations);
-    locAPIGetBatchedLocations(last_n_locations);
-}
-
-void BatchingAPIClient::flushBatchedLocations()
-{
-    LOC_LOGD("%s]: ()", __FUNCTION__);
-    locAPIGetBatchedLocations(SIZE_MAX);
-}
-
-void BatchingAPIClient::onCapabilitiesCb(LocationCapabilitiesMask capabilitiesMask)
-{
-    LOC_LOGD("%s]: (%02x)", __FUNCTION__, capabilitiesMask);
-    mLocationCapabilitiesMask = capabilitiesMask;
-}
-
-void BatchingAPIClient::onBatchingCb(size_t count, Location* location)
-{
-    LOC_LOGD("%s]: (count: %zu)", __FUNCTION__, count);
-    if (mGnssBatchingCbIface != nullptr && count > 0) {
-        hidl_vec<GnssLocation> locationVec;
-        locationVec.resize(count);
-        for (size_t i = 0; i < count; i++) {
-            convertGnssLocation(location[i], locationVec[i]);
-        }
-        auto r = mGnssBatchingCbIface->gnssLocationBatchCb(locationVec);
-        if (!r.isOk()) {
-            LOC_LOGE("%s] Error from gnssLocationBatchCb description=%s",
-                __func__, r.description().c_str());
-        }
-    }
-}
-
-static void convertBatchOption(const IGnssBatching::Options& in, LocationOptions& out,
-        LocationCapabilitiesMask mask)
-{
-    memset(&out, 0, sizeof(LocationOptions));
-    out.size = sizeof(LocationOptions);
-    out.minInterval = (uint32_t)(in.periodNanos / 1000000L);
-    out.minDistance = 0;
-    out.mode = GNSS_SUPL_MODE_STANDALONE;
-    if (mask & LOCATION_CAPABILITIES_GNSS_MSA_BIT)
-        out.mode = GNSS_SUPL_MODE_MSA;
-    if (mask & LOCATION_CAPABILITIES_GNSS_MSB_BIT)
-        out.mode = GNSS_SUPL_MODE_MSB;
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/location_api/BatchingAPIClient.h b/sdm845/android/location_api/BatchingAPIClient.h
deleted file mode 100644
index a34c211..0000000
--- a/sdm845/android/location_api/BatchingAPIClient.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (c) 2017, 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 "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 BATCHING_API_CLINET_H
-#define BATCHING_API_CLINET_H
-
-#include <android/hardware/gnss/1.0/IGnssBatching.h>
-#include <android/hardware/gnss/1.0/IGnssBatchingCallback.h>
-#include <pthread.h>
-
-#include <LocationAPIClientBase.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-class BatchingAPIClient : public LocationAPIClientBase
-{
-public:
-    BatchingAPIClient(const sp<IGnssBatchingCallback>& callback);
-    ~BatchingAPIClient();
-    int getBatchSize();
-    int startSession(const IGnssBatching::Options& options);
-    int updateSessionOptions(const IGnssBatching::Options& options);
-    int stopSession();
-    void getBatchedLocation(int last_n_locations);
-    void flushBatchedLocations();
-
-    inline LocationCapabilitiesMask getCapabilities() { return mLocationCapabilitiesMask; }
-
-    // callbacks
-    void onCapabilitiesCb(LocationCapabilitiesMask capabilitiesMask) final;
-    void onBatchingCb(size_t count, Location* location) final;
-
-private:
-    sp<IGnssBatchingCallback> mGnssBatchingCbIface;
-    uint32_t mDefaultId;
-    int mBatchSize;
-    LocationCapabilitiesMask mLocationCapabilitiesMask;
-};
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-#endif // BATCHING_API_CLINET_H
diff --git a/sdm845/android/location_api/GeofenceAPIClient.cpp b/sdm845/android/location_api/GeofenceAPIClient.cpp
deleted file mode 100644
index 7bd3bd4..0000000
--- a/sdm845/android/location_api/GeofenceAPIClient.cpp
+++ /dev/null
@@ -1,272 +0,0 @@
-/* Copyright (c) 2017, 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 "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.
- *
- */
-
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_GeofenceApiClient"
-
-#include <log_util.h>
-#include <loc_cfg.h>
-
-#include "LocationUtil.h"
-#include "GeofenceAPIClient.h"
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-
-GeofenceAPIClient::GeofenceAPIClient(const sp<IGnssGeofenceCallback>& callback) :
-    LocationAPIClientBase(),
-    mGnssGeofencingCbIface(callback)
-{
-    LOC_LOGD("%s]: (%p)", __FUNCTION__, &callback);
-
-    LocationCallbacks locationCallbacks;
-    locationCallbacks.size = sizeof(LocationCallbacks);
-
-    locationCallbacks.trackingCb = nullptr;
-    locationCallbacks.batchingCb = nullptr;
-
-    locationCallbacks.geofenceBreachCb = nullptr;
-    if (mGnssGeofencingCbIface != nullptr) {
-        locationCallbacks.geofenceBreachCb =
-            [this](GeofenceBreachNotification geofenceBreachNotification) {
-                onGeofenceBreachCb(geofenceBreachNotification);
-            };
-
-        locationCallbacks.geofenceStatusCb =
-            [this](GeofenceStatusNotification geofenceStatusNotification) {
-                onGeofenceStatusCb(geofenceStatusNotification);
-            };
-    }
-
-    locationCallbacks.gnssLocationInfoCb = nullptr;
-    locationCallbacks.gnssNiCb = nullptr;
-    locationCallbacks.gnssSvCb = nullptr;
-    locationCallbacks.gnssNmeaCb = nullptr;
-    locationCallbacks.gnssMeasurementsCb = nullptr;
-
-    locAPISetCallbacks(locationCallbacks);
-}
-
-void GeofenceAPIClient::geofenceAdd(uint32_t geofence_id, double latitude, double longitude,
-        double radius_meters, int32_t last_transition, int32_t monitor_transitions,
-        uint32_t notification_responsiveness_ms, uint32_t unknown_timer_ms)
-{
-    LOC_LOGD("%s]: (%d %f %f %f %d %d %d %d)", __FUNCTION__,
-            geofence_id, latitude, longitude, radius_meters,
-            last_transition, monitor_transitions, notification_responsiveness_ms, unknown_timer_ms);
-
-    GeofenceOption options;
-    memset(&options, 0, sizeof(GeofenceOption));
-    options.size = sizeof(GeofenceOption);
-    if (monitor_transitions & IGnssGeofenceCallback::GeofenceTransition::ENTERED)
-        options.breachTypeMask |= GEOFENCE_BREACH_ENTER_BIT;
-    if (monitor_transitions & IGnssGeofenceCallback::GeofenceTransition::EXITED)
-        options.breachTypeMask |=  GEOFENCE_BREACH_EXIT_BIT;
-    options.responsiveness = notification_responsiveness_ms;
-
-    GeofenceInfo data;
-    data.size = sizeof(GeofenceInfo);
-    data.latitude = latitude;
-    data.longitude = longitude;
-    data.radius = radius_meters;
-
-    LocationError err = (LocationError)locAPIAddGeofences(1, &geofence_id, &options, &data);
-    if (LOCATION_ERROR_SUCCESS != err) {
-        onAddGeofencesCb(1, &err, &geofence_id);
-    }
-}
-
-void GeofenceAPIClient::geofencePause(uint32_t geofence_id)
-{
-    LOC_LOGD("%s]: (%d)", __FUNCTION__, geofence_id);
-    locAPIPauseGeofences(1, &geofence_id);
-}
-
-void GeofenceAPIClient::geofenceResume(uint32_t geofence_id, int32_t monitor_transitions)
-{
-    LOC_LOGD("%s]: (%d %d)", __FUNCTION__, geofence_id, monitor_transitions);
-    GeofenceBreachTypeMask mask = 0;
-    if (monitor_transitions & IGnssGeofenceCallback::GeofenceTransition::ENTERED)
-        mask |= GEOFENCE_BREACH_ENTER_BIT;
-    if (monitor_transitions & IGnssGeofenceCallback::GeofenceTransition::EXITED)
-        mask |=  GEOFENCE_BREACH_EXIT_BIT;
-    locAPIResumeGeofences(1, &geofence_id, &mask);
-}
-
-void GeofenceAPIClient::geofenceRemove(uint32_t geofence_id)
-{
-    LOC_LOGD("%s]: (%d)", __FUNCTION__, geofence_id);
-    locAPIRemoveGeofences(1, &geofence_id);
-}
-
-void GeofenceAPIClient::geofenceRemoveAll()
-{
-    LOC_LOGD("%s]", __FUNCTION__);
-    // TODO locAPIRemoveAllGeofences();
-}
-
-// callbacks
-void GeofenceAPIClient::onGeofenceBreachCb(GeofenceBreachNotification geofenceBreachNotification)
-{
-    LOC_LOGD("%s]: (%zu)", __FUNCTION__, geofenceBreachNotification.count);
-    if (mGnssGeofencingCbIface != nullptr) {
-        for (size_t i = 0; i < geofenceBreachNotification.count; i++) {
-            GnssLocation gnssLocation;
-            convertGnssLocation(geofenceBreachNotification.location, gnssLocation);
-
-            IGnssGeofenceCallback::GeofenceTransition transition;
-            if (geofenceBreachNotification.type == GEOFENCE_BREACH_ENTER)
-                transition = IGnssGeofenceCallback::GeofenceTransition::ENTERED;
-            else if (geofenceBreachNotification.type == GEOFENCE_BREACH_EXIT)
-                transition = IGnssGeofenceCallback::GeofenceTransition::EXITED;
-            else {
-                // continue with other breach if transition is
-                // nether GPS_GEOFENCE_ENTERED nor GPS_GEOFENCE_EXITED
-                continue;
-            }
-
-            auto r = mGnssGeofencingCbIface->gnssGeofenceTransitionCb(
-                    geofenceBreachNotification.ids[i], gnssLocation, transition,
-                    static_cast<GnssUtcTime>(geofenceBreachNotification.timestamp));
-            if (!r.isOk()) {
-                LOC_LOGE("%s] Error from gnssGeofenceTransitionCb description=%s",
-                    __func__, r.description().c_str());
-            }
-        }
-    }
-}
-
-void GeofenceAPIClient::onGeofenceStatusCb(GeofenceStatusNotification geofenceStatusNotification)
-{
-    LOC_LOGD("%s]: (%d)", __FUNCTION__, geofenceStatusNotification.available);
-    if (mGnssGeofencingCbIface != nullptr) {
-        IGnssGeofenceCallback::GeofenceAvailability status =
-            IGnssGeofenceCallback::GeofenceAvailability::UNAVAILABLE;
-        if (geofenceStatusNotification.available == GEOFENCE_STATUS_AVAILABILE_YES) {
-            status = IGnssGeofenceCallback::GeofenceAvailability::AVAILABLE;
-        }
-        GnssLocation gnssLocation;
-        memset(&gnssLocation, 0, sizeof(GnssLocation));
-        auto r = mGnssGeofencingCbIface->gnssGeofenceStatusCb(status, gnssLocation);
-        if (!r.isOk()) {
-            LOC_LOGE("%s] Error from gnssGeofenceStatusCb description=%s",
-                __func__, r.description().c_str());
-        }
-    }
-}
-
-void GeofenceAPIClient::onAddGeofencesCb(size_t count, LocationError* errors, uint32_t* ids)
-{
-    LOC_LOGD("%s]: (%zu)", __FUNCTION__, count);
-    if (mGnssGeofencingCbIface != nullptr) {
-        for (size_t i = 0; i < count; i++) {
-            IGnssGeofenceCallback::GeofenceStatus status =
-                IGnssGeofenceCallback::GeofenceStatus::ERROR_GENERIC;
-            if (errors[i] == LOCATION_ERROR_SUCCESS)
-                status = IGnssGeofenceCallback::GeofenceStatus::OPERATION_SUCCESS;
-            else if (errors[i] == LOCATION_ERROR_ID_EXISTS)
-                status = IGnssGeofenceCallback::GeofenceStatus::ERROR_ID_EXISTS;
-            auto r = mGnssGeofencingCbIface->gnssGeofenceAddCb(ids[i], status);
-            if (!r.isOk()) {
-                LOC_LOGE("%s] Error from gnssGeofenceAddCb description=%s",
-                    __func__, r.description().c_str());
-            }
-        }
-    }
-}
-
-void GeofenceAPIClient::onRemoveGeofencesCb(size_t count, LocationError* errors, uint32_t* ids)
-{
-    LOC_LOGD("%s]: (%zu)", __FUNCTION__, count);
-    if (mGnssGeofencingCbIface != nullptr) {
-        for (size_t i = 0; i < count; i++) {
-            IGnssGeofenceCallback::GeofenceStatus status =
-                IGnssGeofenceCallback::GeofenceStatus::ERROR_GENERIC;
-            if (errors[i] == LOCATION_ERROR_SUCCESS)
-                status = IGnssGeofenceCallback::GeofenceStatus::OPERATION_SUCCESS;
-            else if (errors[i] == LOCATION_ERROR_ID_UNKNOWN)
-                status = IGnssGeofenceCallback::GeofenceStatus::ERROR_ID_UNKNOWN;
-            auto r = mGnssGeofencingCbIface->gnssGeofenceRemoveCb(ids[i], status);
-            if (!r.isOk()) {
-                LOC_LOGE("%s] Error from gnssGeofenceRemoveCb description=%s",
-                    __func__, r.description().c_str());
-            }
-        }
-    }
-}
-
-void GeofenceAPIClient::onPauseGeofencesCb(size_t count, LocationError* errors, uint32_t* ids)
-{
-    LOC_LOGD("%s]: (%zu)", __FUNCTION__, count);
-    if (mGnssGeofencingCbIface != nullptr) {
-        for (size_t i = 0; i < count; i++) {
-            IGnssGeofenceCallback::GeofenceStatus status =
-                IGnssGeofenceCallback::GeofenceStatus::ERROR_GENERIC;
-            if (errors[i] == LOCATION_ERROR_SUCCESS)
-                status = IGnssGeofenceCallback::GeofenceStatus::OPERATION_SUCCESS;
-            else if (errors[i] == LOCATION_ERROR_ID_UNKNOWN)
-                status = IGnssGeofenceCallback::GeofenceStatus::ERROR_ID_UNKNOWN;
-            auto r = mGnssGeofencingCbIface->gnssGeofencePauseCb(ids[i], status);
-            if (!r.isOk()) {
-                LOC_LOGE("%s] Error from gnssGeofencePauseCb description=%s",
-                    __func__, r.description().c_str());
-            }
-        }
-    }
-}
-
-void GeofenceAPIClient::onResumeGeofencesCb(size_t count, LocationError* errors, uint32_t* ids)
-{
-    LOC_LOGD("%s]: (%zu)", __FUNCTION__, count);
-    if (mGnssGeofencingCbIface != nullptr) {
-        for (size_t i = 0; i < count; i++) {
-            IGnssGeofenceCallback::GeofenceStatus status =
-                IGnssGeofenceCallback::GeofenceStatus::ERROR_GENERIC;
-            if (errors[i] == LOCATION_ERROR_SUCCESS)
-                status = IGnssGeofenceCallback::GeofenceStatus::OPERATION_SUCCESS;
-            else if (errors[i] == LOCATION_ERROR_ID_UNKNOWN)
-                status = IGnssGeofenceCallback::GeofenceStatus::ERROR_ID_UNKNOWN;
-            auto r = mGnssGeofencingCbIface->gnssGeofenceResumeCb(ids[i], status);
-            if (!r.isOk()) {
-                LOC_LOGE("%s] Error from gnssGeofenceResumeCb description=%s",
-                    __func__, r.description().c_str());
-            }
-        }
-    }
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/location_api/GeofenceAPIClient.h b/sdm845/android/location_api/GeofenceAPIClient.h
deleted file mode 100644
index f779bcb..0000000
--- a/sdm845/android/location_api/GeofenceAPIClient.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (c) 2017, 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 "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 GEOFENCE_API_CLINET_H
-#define GEOFENCE_API_CLINET_H
-
-
-#include <android/hardware/gnss/1.0/IGnssGeofenceCallback.h>
-#include <LocationAPIClientBase.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::sp;
-
-class GeofenceAPIClient : public LocationAPIClientBase
-{
-public:
-    GeofenceAPIClient(const sp<IGnssGeofenceCallback>& callback);
-    virtual ~GeofenceAPIClient() = default;
-
-    void geofenceAdd(uint32_t geofence_id, double latitude, double longitude,
-            double radius_meters, int32_t last_transition, int32_t monitor_transitions,
-            uint32_t notification_responsiveness_ms, uint32_t unknown_timer_ms);
-    void geofencePause(uint32_t geofence_id);
-    void geofenceResume(uint32_t geofence_id, int32_t monitor_transitions);
-    void geofenceRemove(uint32_t geofence_id);
-    void geofenceRemoveAll();
-
-    // callbacks
-    void onGeofenceBreachCb(GeofenceBreachNotification geofenceBreachNotification) final;
-    void onGeofenceStatusCb(GeofenceStatusNotification geofenceStatusNotification) final;
-    void onAddGeofencesCb(size_t count, LocationError* errors, uint32_t* ids) final;
-    void onRemoveGeofencesCb(size_t count, LocationError* errors, uint32_t* ids) final;
-    void onPauseGeofencesCb(size_t count, LocationError* errors, uint32_t* ids) final;
-    void onResumeGeofencesCb(size_t count, LocationError* errors, uint32_t* ids) final;
-
-private:
-    sp<IGnssGeofenceCallback> mGnssGeofencingCbIface;
-};
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-#endif // GEOFENCE_API_CLINET_H
diff --git a/sdm845/android/location_api/GnssAPIClient.cpp b/sdm845/android/location_api/GnssAPIClient.cpp
deleted file mode 100644
index 7acfbd7..0000000
--- a/sdm845/android/location_api/GnssAPIClient.cpp
+++ /dev/null
@@ -1,451 +0,0 @@
-/* Copyright (c) 2017, 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 "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.
- *
- */
-
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_GnssAPIClient"
-
-#include <log_util.h>
-#include <loc_cfg.h>
-
-#include "LocationUtil.h"
-#include "GnssAPIClient.h"
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-static void convertGnssSvStatus(GnssSvNotification& in, IGnssCallback::GnssSvStatus& out);
-
-GnssAPIClient::GnssAPIClient(const sp<IGnssCallback>& gpsCb,
-    const sp<IGnssNiCallback>& niCb) :
-    LocationAPIClientBase(),
-    mGnssCbIface(nullptr),
-    mGnssNiCbIface(nullptr),
-    mLocationCapabilitiesMask(0),
-    mLocationCapabilitiesCached(false)
-{
-    LOC_LOGD("%s]: (%p %p)", __FUNCTION__, &gpsCb, &niCb);
-
-    // set default LocationOptions.
-    memset(&mLocationOptions, 0, sizeof(LocationOptions));
-    mLocationOptions.size = sizeof(LocationOptions);
-    mLocationOptions.minInterval = 1000;
-    mLocationOptions.minDistance = 0;
-    mLocationOptions.mode = GNSS_SUPL_MODE_STANDALONE;
-
-    gnssUpdateCallbacks(gpsCb, niCb);
-}
-
-GnssAPIClient::~GnssAPIClient()
-{
-    LOC_LOGD("%s]: ()", __FUNCTION__);
-}
-
-// for GpsInterface
-void GnssAPIClient::gnssUpdateCallbacks(const sp<IGnssCallback>& gpsCb,
-    const sp<IGnssNiCallback>& niCb)
-{
-    LOC_LOGD("%s]: (%p %p)", __FUNCTION__, &gpsCb, &niCb);
-
-    mGnssCbIface = gpsCb;
-    mGnssNiCbIface = niCb;
-
-    LocationCallbacks locationCallbacks;
-    locationCallbacks.size = sizeof(LocationCallbacks);
-
-    locationCallbacks.trackingCb = nullptr;
-    if (mGnssCbIface != nullptr) {
-        locationCallbacks.trackingCb = [this](Location location) {
-            onTrackingCb(location);
-        };
-    }
-
-    locationCallbacks.batchingCb = nullptr;
-    locationCallbacks.geofenceBreachCb = nullptr;
-    locationCallbacks.geofenceStatusCb = nullptr;
-    locationCallbacks.gnssLocationInfoCb = nullptr;
-
-    locationCallbacks.gnssNiCb = nullptr;
-    if (mGnssNiCbIface != nullptr) {
-        locationCallbacks.gnssNiCb = [this](uint32_t id, GnssNiNotification gnssNiNotification) {
-            onGnssNiCb(id, gnssNiNotification);
-        };
-    }
-
-    locationCallbacks.gnssSvCb = nullptr;
-    if (mGnssCbIface != nullptr) {
-        locationCallbacks.gnssSvCb = [this](GnssSvNotification gnssSvNotification) {
-            onGnssSvCb(gnssSvNotification);
-        };
-    }
-
-    locationCallbacks.gnssNmeaCb = nullptr;
-    if (mGnssCbIface != nullptr) {
-        locationCallbacks.gnssNmeaCb = [this](GnssNmeaNotification gnssNmeaNotification) {
-            onGnssNmeaCb(gnssNmeaNotification);
-        };
-    }
-
-    locationCallbacks.gnssMeasurementsCb = nullptr;
-
-    locAPISetCallbacks(locationCallbacks);
-}
-
-bool GnssAPIClient::gnssStart()
-{
-    LOC_LOGD("%s]: ()", __FUNCTION__);
-    bool retVal = true;
-    locAPIStartTracking(mLocationOptions);
-    return retVal;
-}
-
-bool GnssAPIClient::gnssStop()
-{
-    LOC_LOGD("%s]: ()", __FUNCTION__);
-    bool retVal = true;
-    locAPIStopTracking();
-    return retVal;
-}
-
-void GnssAPIClient::gnssDeleteAidingData(IGnss::GnssAidingData aidingDataFlags)
-{
-    LOC_LOGD("%s]: (%02hx)", __FUNCTION__, aidingDataFlags);
-    GnssAidingData data;
-    memset(&data, 0, sizeof (GnssAidingData));
-    data.sv.svTypeMask = GNSS_AIDING_DATA_SV_TYPE_GPS_BIT |
-        GNSS_AIDING_DATA_SV_TYPE_GLONASS_BIT |
-        GNSS_AIDING_DATA_SV_TYPE_QZSS_BIT |
-        GNSS_AIDING_DATA_SV_TYPE_BEIDOU_BIT |
-        GNSS_AIDING_DATA_SV_TYPE_GALILEO_BIT;
-
-    if (aidingDataFlags == IGnss::GnssAidingData::DELETE_ALL)
-        data.deleteAll = true;
-    else {
-        if (aidingDataFlags & IGnss::GnssAidingData::DELETE_EPHEMERIS)
-            data.sv.svMask |= GNSS_AIDING_DATA_SV_EPHEMERIS_BIT;
-        if (aidingDataFlags & IGnss::GnssAidingData::DELETE_ALMANAC)
-            data.sv.svMask |= GNSS_AIDING_DATA_SV_ALMANAC_BIT;
-        if (aidingDataFlags & IGnss::GnssAidingData::DELETE_POSITION)
-            data.common.mask |= GNSS_AIDING_DATA_COMMON_POSITION_BIT;
-        if (aidingDataFlags & IGnss::GnssAidingData::DELETE_TIME)
-            data.common.mask |= GNSS_AIDING_DATA_COMMON_TIME_BIT;
-        if (aidingDataFlags & IGnss::GnssAidingData::DELETE_IONO)
-            data.sv.svMask |= GNSS_AIDING_DATA_SV_IONOSPHERE_BIT;
-        if (aidingDataFlags & IGnss::GnssAidingData::DELETE_UTC)
-            data.common.mask |= GNSS_AIDING_DATA_COMMON_UTC_BIT;
-        if (aidingDataFlags & IGnss::GnssAidingData::DELETE_HEALTH)
-            data.sv.svMask |= GNSS_AIDING_DATA_SV_HEALTH_BIT;
-        if (aidingDataFlags & IGnss::GnssAidingData::DELETE_SVDIR)
-            data.sv.svMask |= GNSS_AIDING_DATA_SV_DIRECTION_BIT;
-        if (aidingDataFlags & IGnss::GnssAidingData::DELETE_SVSTEER)
-            data.sv.svMask |= GNSS_AIDING_DATA_SV_STEER_BIT;
-        if (aidingDataFlags & IGnss::GnssAidingData::DELETE_SADATA)
-            data.sv.svMask |= GNSS_AIDING_DATA_SV_SA_DATA_BIT;
-        if (aidingDataFlags & IGnss::GnssAidingData::DELETE_RTI)
-            data.common.mask |= GNSS_AIDING_DATA_COMMON_RTI_BIT;
-        if (aidingDataFlags & IGnss::GnssAidingData::DELETE_CELLDB_INFO)
-            data.common.mask |= GNSS_AIDING_DATA_COMMON_CELLDB_BIT;
-    }
-    locAPIGnssDeleteAidingData(data);
-}
-
-bool GnssAPIClient::gnssSetPositionMode(IGnss::GnssPositionMode mode,
-        IGnss::GnssPositionRecurrence recurrence, uint32_t minIntervalMs,
-        uint32_t preferredAccuracyMeters, uint32_t preferredTimeMs)
-{
-    LOC_LOGD("%s]: (%d %d %d %d %d)", __FUNCTION__,
-            (int)mode, recurrence, minIntervalMs, preferredAccuracyMeters, preferredTimeMs);
-    bool retVal = true;
-    memset(&mLocationOptions, 0, sizeof(LocationOptions));
-    mLocationOptions.size = sizeof(LocationOptions);
-    mLocationOptions.minInterval = minIntervalMs;
-    mLocationOptions.minDistance = preferredAccuracyMeters;
-    if (mode == IGnss::GnssPositionMode::STANDALONE)
-        mLocationOptions.mode = GNSS_SUPL_MODE_STANDALONE;
-    else if (mode == IGnss::GnssPositionMode::MS_BASED)
-        mLocationOptions.mode = GNSS_SUPL_MODE_MSB;
-    else if (mode ==  IGnss::GnssPositionMode::MS_ASSISTED)
-        mLocationOptions.mode = GNSS_SUPL_MODE_MSA;
-    locAPIUpdateTrackingOptions(mLocationOptions);
-    return retVal;
-}
-
-// for GpsNiInterface
-void GnssAPIClient::gnssNiRespond(int32_t notifId,
-        IGnssNiCallback::GnssUserResponseType userResponse)
-{
-    LOC_LOGD("%s]: (%d %d)", __FUNCTION__, notifId, static_cast<int>(userResponse));
-    GnssNiResponse data = GNSS_NI_RESPONSE_IGNORE;
-    if (userResponse == IGnssNiCallback::GnssUserResponseType::RESPONSE_ACCEPT)
-        data = GNSS_NI_RESPONSE_ACCEPT;
-    else if (userResponse == IGnssNiCallback::GnssUserResponseType::RESPONSE_DENY)
-        data = GNSS_NI_RESPONSE_DENY;
-    else if (userResponse == IGnssNiCallback::GnssUserResponseType::RESPONSE_NORESP)
-        data = GNSS_NI_RESPONSE_NO_RESPONSE;
-    locAPIGnssNiResponse(notifId, data);
-}
-
-// for GnssConfigurationInterface
-void GnssAPIClient::gnssConfigurationUpdate(const GnssConfig& gnssConfig)
-{
-    LOC_LOGD("%s]: (%02x)", __FUNCTION__, gnssConfig.flags);
-    locAPIGnssUpdateConfig(gnssConfig);
-}
-
-void GnssAPIClient::requestCapabilities() {
-    // only send capablities if it's already cached, otherwise the first time LocationAPI
-    // is initialized, capabilities will be sent by LocationAPI
-    if (mLocationCapabilitiesCached) {
-        onCapabilitiesCb(mLocationCapabilitiesMask);
-    }
-}
-
-// callbacks
-void GnssAPIClient::onCapabilitiesCb(LocationCapabilitiesMask capabilitiesMask)
-{
-    LOC_LOGD("%s]: (%02x)", __FUNCTION__, capabilitiesMask);
-    mLocationCapabilitiesMask = capabilitiesMask;
-    mLocationCapabilitiesCached = true;
-    if (mGnssCbIface != nullptr) {
-        uint32_t data = 0;
-        if ((capabilitiesMask & LOCATION_CAPABILITIES_TIME_BASED_TRACKING_BIT) ||
-                (capabilitiesMask & LOCATION_CAPABILITIES_TIME_BASED_BATCHING_BIT) ||
-                (capabilitiesMask & LOCATION_CAPABILITIES_DISTANCE_BASED_TRACKING_BIT) ||
-                (capabilitiesMask & LOCATION_CAPABILITIES_DISTANCE_BASED_BATCHING_BIT))
-            data |= IGnssCallback::Capabilities::SCHEDULING;
-        if (capabilitiesMask & LOCATION_CAPABILITIES_GEOFENCE_BIT)
-            data |= IGnssCallback::Capabilities::GEOFENCING;
-        if (capabilitiesMask & LOCATION_CAPABILITIES_GNSS_MEASUREMENTS_BIT)
-            data |= IGnssCallback::Capabilities::MEASUREMENTS;
-        if (capabilitiesMask & LOCATION_CAPABILITIES_GNSS_MSB_BIT)
-            data |= IGnssCallback::Capabilities::MSB;
-        if (capabilitiesMask & LOCATION_CAPABILITIES_GNSS_MSA_BIT)
-            data |= IGnssCallback::Capabilities::MSA;
-        auto r = mGnssCbIface->gnssSetCapabilitesCb(data);
-        if (!r.isOk()) {
-            LOC_LOGE("%s] Error from gnssSetCapabilitesCb description=%s",
-                __func__, r.description().c_str());
-        }
-    }
-    if (mGnssCbIface != nullptr) {
-        IGnssCallback::GnssSystemInfo gnssInfo;
-        gnssInfo.yearOfHw = 2015;
-        if (capabilitiesMask & LOCATION_CAPABILITIES_GNSS_MEASUREMENTS_BIT) {
-            gnssInfo.yearOfHw = 2017;
-        }
-        LOC_LOGV("%s:%d] set_system_info_cb (%d)", __FUNCTION__, __LINE__, gnssInfo.yearOfHw);
-        auto r = mGnssCbIface->gnssSetSystemInfoCb(gnssInfo);
-        if (!r.isOk()) {
-            LOC_LOGE("%s] Error from gnssSetSystemInfoCb description=%s",
-                __func__, r.description().c_str());
-        }
-    }
-}
-
-void GnssAPIClient::onTrackingCb(Location location)
-{
-    LOC_LOGD("%s]: (flags: %02x)", __FUNCTION__, location.flags);
-    if (mGnssCbIface != nullptr) {
-        GnssLocation gnssLocation;
-        convertGnssLocation(location, gnssLocation);
-        auto r = mGnssCbIface->gnssLocationCb(gnssLocation);
-        if (!r.isOk()) {
-            LOC_LOGE("%s] Error from gnssLocationCb description=%s",
-                __func__, r.description().c_str());
-        }
-    }
-}
-
-void GnssAPIClient::onGnssNiCb(uint32_t id, GnssNiNotification gnssNiNotification)
-{
-    LOC_LOGD("%s]: (id: %d)", __FUNCTION__, id);
-
-    if (mGnssNiCbIface == nullptr) {
-        LOC_LOGE("%s]: mGnssNiCbIface is nullptr", __FUNCTION__);
-        return;
-    }
-
-    IGnssNiCallback::GnssNiNotification notificationGnss = {};
-
-    notificationGnss.notificationId = id;
-
-    if (gnssNiNotification.type == GNSS_NI_TYPE_VOICE)
-        notificationGnss.niType = IGnssNiCallback::GnssNiType::VOICE;
-    else if (gnssNiNotification.type == GNSS_NI_TYPE_SUPL)
-        notificationGnss.niType = IGnssNiCallback::GnssNiType::UMTS_SUPL;
-    else if (gnssNiNotification.type == GNSS_NI_TYPE_CONTROL_PLANE)
-        notificationGnss.niType = IGnssNiCallback::GnssNiType::UMTS_CTRL_PLANE;
-    else if (gnssNiNotification.type == GNSS_NI_TYPE_EMERGENCY_SUPL)
-        notificationGnss.niType = IGnssNiCallback::GnssNiType::EMERGENCY_SUPL;
-
-    if (gnssNiNotification.options & GNSS_NI_OPTIONS_NOTIFICATION_BIT)
-        notificationGnss.notifyFlags |= IGnssNiCallback::GnssNiNotifyFlags::NEED_NOTIFY;
-    if (gnssNiNotification.options & GNSS_NI_OPTIONS_VERIFICATION_BIT)
-        notificationGnss.notifyFlags |= IGnssNiCallback::GnssNiNotifyFlags::NEED_VERIFY;
-    if (gnssNiNotification.options & GNSS_NI_OPTIONS_PRIVACY_OVERRIDE_BIT)
-        notificationGnss.notifyFlags |= IGnssNiCallback::GnssNiNotifyFlags::PRIVACY_OVERRIDE;
-
-    notificationGnss.timeoutSec = gnssNiNotification.timeout;
-
-    if (gnssNiNotification.timeoutResponse == GNSS_NI_RESPONSE_ACCEPT)
-        notificationGnss.defaultResponse = IGnssNiCallback::GnssUserResponseType::RESPONSE_ACCEPT;
-    else if (gnssNiNotification.timeoutResponse == GNSS_NI_RESPONSE_DENY)
-        notificationGnss.defaultResponse = IGnssNiCallback::GnssUserResponseType::RESPONSE_DENY;
-    else if (gnssNiNotification.timeoutResponse == GNSS_NI_RESPONSE_NO_RESPONSE ||
-            gnssNiNotification.timeoutResponse == GNSS_NI_RESPONSE_IGNORE)
-        notificationGnss.defaultResponse = IGnssNiCallback::GnssUserResponseType::RESPONSE_NORESP;
-
-    notificationGnss.requestorId = gnssNiNotification.requestor;
-
-    notificationGnss.notificationMessage = gnssNiNotification.message;
-
-    if (gnssNiNotification.requestorEncoding == GNSS_NI_ENCODING_TYPE_NONE)
-        notificationGnss.requestorIdEncoding =
-            IGnssNiCallback::GnssNiEncodingType::ENC_NONE;
-    else if (gnssNiNotification.requestorEncoding == GNSS_NI_ENCODING_TYPE_GSM_DEFAULT)
-        notificationGnss.requestorIdEncoding =
-            IGnssNiCallback::GnssNiEncodingType::ENC_SUPL_GSM_DEFAULT;
-    else if (gnssNiNotification.requestorEncoding == GNSS_NI_ENCODING_TYPE_UTF8)
-        notificationGnss.requestorIdEncoding =
-            IGnssNiCallback::GnssNiEncodingType::ENC_SUPL_UTF8;
-    else if (gnssNiNotification.requestorEncoding == GNSS_NI_ENCODING_TYPE_UCS2)
-        notificationGnss.requestorIdEncoding =
-            IGnssNiCallback::GnssNiEncodingType::ENC_SUPL_UCS2;
-
-    if (gnssNiNotification.messageEncoding == GNSS_NI_ENCODING_TYPE_NONE)
-        notificationGnss.notificationIdEncoding =
-            IGnssNiCallback::GnssNiEncodingType::ENC_NONE;
-    else if (gnssNiNotification.messageEncoding == GNSS_NI_ENCODING_TYPE_GSM_DEFAULT)
-        notificationGnss.notificationIdEncoding =
-            IGnssNiCallback::GnssNiEncodingType::ENC_SUPL_GSM_DEFAULT;
-    else if (gnssNiNotification.messageEncoding == GNSS_NI_ENCODING_TYPE_UTF8)
-        notificationGnss.notificationIdEncoding =
-            IGnssNiCallback::GnssNiEncodingType::ENC_SUPL_UTF8;
-    else if (gnssNiNotification.messageEncoding == GNSS_NI_ENCODING_TYPE_UCS2)
-        notificationGnss.notificationIdEncoding =
-            IGnssNiCallback::GnssNiEncodingType::ENC_SUPL_UCS2;
-
-    mGnssNiCbIface->niNotifyCb(notificationGnss);
-}
-
-void GnssAPIClient::onGnssSvCb(GnssSvNotification gnssSvNotification)
-{
-    LOC_LOGD("%s]: (count: %zu)", __FUNCTION__, gnssSvNotification.count);
-    if (mGnssCbIface != nullptr) {
-        IGnssCallback::GnssSvStatus svStatus;
-        convertGnssSvStatus(gnssSvNotification, svStatus);
-        auto r = mGnssCbIface->gnssSvStatusCb(svStatus);
-        if (!r.isOk()) {
-            LOC_LOGE("%s] Error from gnssSvStatusCb description=%s",
-                __func__, r.description().c_str());
-        }
-    }
-}
-
-void GnssAPIClient::onGnssNmeaCb(GnssNmeaNotification gnssNmeaNotification)
-{
-    if (mGnssCbIface != nullptr) {
-        android::hardware::hidl_string nmeaString;
-        nmeaString.setToExternal(gnssNmeaNotification.nmea, gnssNmeaNotification.length);
-        auto r = mGnssCbIface->gnssNmeaCb(
-            static_cast<GnssUtcTime>(gnssNmeaNotification.timestamp), nmeaString);
-        if (!r.isOk()) {
-            LOC_LOGE("%s] Error from gnssNmeaCb nmea=%s length=%u description=%s", __func__,
-                gnssNmeaNotification.nmea, gnssNmeaNotification.length, r.description().c_str());
-        }
-    }
-}
-
-void GnssAPIClient::onStartTrackingCb(LocationError error)
-{
-    LOC_LOGD("%s]: (%d)", __FUNCTION__, error);
-    if (error == LOCATION_ERROR_SUCCESS && mGnssCbIface != nullptr) {
-        auto r = mGnssCbIface->gnssStatusCb(IGnssCallback::GnssStatusValue::ENGINE_ON);
-        if (!r.isOk()) {
-            LOC_LOGE("%s] Error from gnssStatusCb ENGINE_ON description=%s",
-                __func__, r.description().c_str());
-        }
-        r = mGnssCbIface->gnssStatusCb(IGnssCallback::GnssStatusValue::SESSION_BEGIN);
-        if (!r.isOk()) {
-            LOC_LOGE("%s] Error from gnssStatusCb SESSION_BEGIN description=%s",
-                __func__, r.description().c_str());
-        }
-    }
-}
-
-void GnssAPIClient::onStopTrackingCb(LocationError error)
-{
-    LOC_LOGD("%s]: (%d)", __FUNCTION__, error);
-    if (error == LOCATION_ERROR_SUCCESS && mGnssCbIface != nullptr) {
-        auto r = mGnssCbIface->gnssStatusCb(IGnssCallback::GnssStatusValue::SESSION_END);
-        if (!r.isOk()) {
-            LOC_LOGE("%s] Error from gnssStatusCb SESSION_END description=%s",
-                __func__, r.description().c_str());
-        }
-        r = mGnssCbIface->gnssStatusCb(IGnssCallback::GnssStatusValue::ENGINE_OFF);
-        if (!r.isOk()) {
-            LOC_LOGE("%s] Error from gnssStatusCb ENGINE_OFF description=%s",
-                __func__, r.description().c_str());
-        }
-    }
-}
-
-static void convertGnssSvStatus(GnssSvNotification& in, IGnssCallback::GnssSvStatus& out)
-{
-    memset(&out, 0, sizeof(IGnssCallback::GnssSvStatus));
-    out.numSvs = in.count;
-    if (out.numSvs > static_cast<uint32_t>(GnssMax::SVS_COUNT)) {
-        LOC_LOGW("%s]: Too many satellites %zd. Clamps to %d.",
-                __FUNCTION__,  out.numSvs, GnssMax::SVS_COUNT);
-        out.numSvs = static_cast<uint32_t>(GnssMax::SVS_COUNT);
-    }
-    for (size_t i = 0; i < out.numSvs; i++) {
-        IGnssCallback::GnssSvInfo& info = out.gnssSvList[i];
-        info.svid = in.gnssSvs[i].svId;
-        convertGnssConstellationType(in.gnssSvs[i].type, info.constellation);
-        info.cN0Dbhz = in.gnssSvs[i].cN0Dbhz;
-        info.elevationDegrees = in.gnssSvs[i].elevation;
-        info.azimuthDegrees = in.gnssSvs[i].azimuth;
-        info.svFlag = static_cast<uint8_t>(IGnssCallback::GnssSvFlags::NONE);
-        if (in.gnssSvs[i].gnssSvOptionsMask & GNSS_SV_OPTIONS_HAS_EPHEMER_BIT)
-            info.svFlag |= IGnssCallback::GnssSvFlags::HAS_EPHEMERIS_DATA;
-        if (in.gnssSvs[i].gnssSvOptionsMask & GNSS_SV_OPTIONS_HAS_ALMANAC_BIT)
-            info.svFlag |= IGnssCallback::GnssSvFlags::HAS_ALMANAC_DATA;
-        if (in.gnssSvs[i].gnssSvOptionsMask & GNSS_SV_OPTIONS_USED_IN_FIX_BIT)
-            info.svFlag |= IGnssCallback::GnssSvFlags::USED_IN_FIX;
-    }
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/location_api/GnssAPIClient.h b/sdm845/android/location_api/GnssAPIClient.h
deleted file mode 100644
index d447157..0000000
--- a/sdm845/android/location_api/GnssAPIClient.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright (c) 2017, 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 "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 GNSS_API_CLINET_H
-#define GNSS_API_CLINET_H
-
-
-#include <android/hardware/gnss/1.0/IGnss.h>
-#include <android/hardware/gnss/1.0/IGnssCallback.h>
-#include <android/hardware/gnss/1.0/IGnssNiCallback.h>
-#include <LocationAPIClientBase.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::sp;
-
-class GnssAPIClient : public LocationAPIClientBase
-{
-public:
-    GnssAPIClient(const sp<IGnssCallback>& gpsCb,
-            const sp<IGnssNiCallback>& niCb);
-    virtual ~GnssAPIClient();
-    GnssAPIClient(const GnssAPIClient&) = delete;
-    GnssAPIClient& operator=(const GnssAPIClient&) = delete;
-
-    // for GpsInterface
-    void gnssUpdateCallbacks(const sp<IGnssCallback>& gpsCb,
-            const sp<IGnssNiCallback>& niCb);
-    bool gnssStart();
-    bool gnssStop();
-    void gnssDeleteAidingData(IGnss::GnssAidingData aidingDataFlags);
-    bool gnssSetPositionMode(IGnss::GnssPositionMode mode,
-            IGnss::GnssPositionRecurrence recurrence,
-            uint32_t minIntervalMs,
-            uint32_t preferredAccuracyMeters,
-            uint32_t preferredTimeMs);
-
-    // for GpsNiInterface
-    void gnssNiRespond(int32_t notifId, IGnssNiCallback::GnssUserResponseType userResponse);
-
-    // for GnssConfigurationInterface
-    void gnssConfigurationUpdate(const GnssConfig& gnssConfig);
-
-    inline LocationCapabilitiesMask gnssGetCapabilities() const {
-        return mLocationCapabilitiesMask;
-    }
-    void requestCapabilities();
-
-    // callbacks we are interested in
-    void onCapabilitiesCb(LocationCapabilitiesMask capabilitiesMask) final;
-    void onTrackingCb(Location location) final;
-    void onGnssNiCb(uint32_t id, GnssNiNotification gnssNiNotification) final;
-    void onGnssSvCb(GnssSvNotification gnssSvNotification) final;
-    void onGnssNmeaCb(GnssNmeaNotification gnssNmeaNotification) final;
-
-    void onStartTrackingCb(LocationError error) final;
-    void onStopTrackingCb(LocationError error) final;
-
-private:
-    sp<IGnssCallback> mGnssCbIface;
-    sp<IGnssNiCallback> mGnssNiCbIface;
-
-    LocationCapabilitiesMask mLocationCapabilitiesMask;
-    bool mLocationCapabilitiesCached;
-
-    LocationOptions mLocationOptions;
-};
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-#endif // GNSS_API_CLINET_H
diff --git a/sdm845/android/location_api/LocationUtil.cpp b/sdm845/android/location_api/LocationUtil.cpp
deleted file mode 100644
index 311c0b2..0000000
--- a/sdm845/android/location_api/LocationUtil.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright (c) 2017, 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 "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 <LocationUtil.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-void convertGnssLocation(Location& in, GnssLocation& out)
-{
-    memset(&out, 0, sizeof(GnssLocation));
-    if (in.flags & LOCATION_HAS_LAT_LONG_BIT)
-        out.gnssLocationFlags |= GnssLocationFlags::HAS_LAT_LONG;
-    if (in.flags & LOCATION_HAS_ALTITUDE_BIT)
-        out.gnssLocationFlags |= GnssLocationFlags::HAS_ALTITUDE;
-    if (in.flags & LOCATION_HAS_SPEED_BIT)
-        out.gnssLocationFlags |= GnssLocationFlags::HAS_SPEED;
-    if (in.flags & LOCATION_HAS_BEARING_BIT)
-        out.gnssLocationFlags |= GnssLocationFlags::HAS_BEARING;
-    if (in.flags & LOCATION_HAS_ACCURACY_BIT)
-        out.gnssLocationFlags |= GnssLocationFlags::HAS_HORIZONTAL_ACCURACY;
-    if (in.flags & LOCATION_HAS_VERTICAL_ACCURACY_BIT)
-        out.gnssLocationFlags |= GnssLocationFlags::HAS_VERTICAL_ACCURACY;
-    if (in.flags & LOCATION_HAS_SPEED_ACCURACY_BIT)
-        out.gnssLocationFlags |= GnssLocationFlags::HAS_SPEED_ACCURACY;
-    if (in.flags & LOCATION_HAS_BEARING_ACCURACY_BIT)
-        out.gnssLocationFlags |= GnssLocationFlags::HAS_BEARING_ACCURACY;
-    out.latitudeDegrees = in.latitude;
-    out.longitudeDegrees = in.longitude;
-    out.altitudeMeters = in.altitude;
-    out.speedMetersPerSec = in.speed;
-    out.bearingDegrees = in.bearing;
-    out.horizontalAccuracyMeters = in.accuracy;
-    out.verticalAccuracyMeters = in.verticalAccuracy;
-    out.speedAccuracyMetersPerSecond = in.speedAccuracy;
-    out.bearingAccuracyDegrees = in.bearingAccuracy;
-    out.timestamp = static_cast<GnssUtcTime>(in.timestamp);
-}
-
-void convertGnssConstellationType(GnssSvType& in, GnssConstellationType& out)
-{
-    switch(in) {
-        case GNSS_SV_TYPE_GPS:
-            out = GnssConstellationType::GPS;
-            break;
-        case GNSS_SV_TYPE_SBAS:
-            out = GnssConstellationType::SBAS;
-            break;
-        case GNSS_SV_TYPE_GLONASS:
-            out = GnssConstellationType::GLONASS;
-            break;
-        case GNSS_SV_TYPE_QZSS:
-            out = GnssConstellationType::QZSS;
-            break;
-        case GNSS_SV_TYPE_BEIDOU:
-            out = GnssConstellationType::BEIDOU;
-            break;
-        case GNSS_SV_TYPE_GALILEO:
-            out = GnssConstellationType::GALILEO;
-            break;
-        case GNSS_SV_TYPE_UNKNOWN:
-        default:
-            out = GnssConstellationType::UNKNOWN;
-            break;
-    }
-}
-
-void convertGnssEphemerisType(GnssEphemerisType& in, GnssDebug::SatelliteEphemerisType& out)
-{
-    switch(in) {
-        case GNSS_EPH_TYPE_EPHEMERIS:
-            out = GnssDebug::SatelliteEphemerisType::EPHEMERIS;
-            break;
-        case GNSS_EPH_TYPE_ALMANAC:
-            out = GnssDebug::SatelliteEphemerisType::ALMANAC_ONLY;
-            break;
-        case GNSS_EPH_TYPE_UNKNOWN:
-        default:
-            out = GnssDebug::SatelliteEphemerisType::NOT_AVAILABLE;
-            break;
-    }
-}
-
-void convertGnssEphemerisSource(GnssEphemerisSource& in, GnssDebug::SatelliteEphemerisSource& out)
-{
-    switch(in) {
-        case GNSS_EPH_SOURCE_DEMODULATED:
-            out = GnssDebug::SatelliteEphemerisSource::DEMODULATED;
-            break;
-        case GNSS_EPH_SOURCE_SUPL_PROVIDED:
-            out = GnssDebug::SatelliteEphemerisSource::SUPL_PROVIDED;
-            break;
-        case GNSS_EPH_SOURCE_OTHER_SERVER_PROVIDED:
-            out = GnssDebug::SatelliteEphemerisSource::OTHER_SERVER_PROVIDED;
-            break;
-        case GNSS_EPH_SOURCE_LOCAL:
-        case GNSS_EPH_SOURCE_UNKNOWN:
-        default:
-            out = GnssDebug::SatelliteEphemerisSource::OTHER;
-            break;
-    }
-}
-
-void convertGnssEphemerisHealth(GnssEphemerisHealth& in, GnssDebug::SatelliteEphemerisHealth& out)
-{
-    switch(in) {
-        case GNSS_EPH_HEALTH_GOOD:
-            out = GnssDebug::SatelliteEphemerisHealth::GOOD;
-            break;
-        case GNSS_EPH_HEALTH_BAD:
-            out = GnssDebug::SatelliteEphemerisHealth::BAD;
-            break;
-        case GNSS_EPH_HEALTH_UNKNOWN:
-        default:
-            out = GnssDebug::SatelliteEphemerisHealth::UNKNOWN;
-            break;
-    }
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/location_api/LocationUtil.h b/sdm845/android/location_api/LocationUtil.h
deleted file mode 100644
index 44d5e02..0000000
--- a/sdm845/android/location_api/LocationUtil.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (c) 2017, 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 "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 LOCATION_UTIL_H
-#define LOCATION_UTIL_H
-
-#include <android/hardware/gnss/1.0/types.h>
-#include <LocationAPI.h>
-#include <GnssDebug.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-void convertGnssLocation(Location& in, GnssLocation& out);
-void convertGnssConstellationType(GnssSvType& in, GnssConstellationType& out);
-void convertGnssEphemerisType(GnssEphemerisType& in, GnssDebug::SatelliteEphemerisType& out);
-void convertGnssEphemerisSource(GnssEphemerisSource& in, GnssDebug::SatelliteEphemerisSource& out);
-void convertGnssEphemerisHealth(GnssEphemerisHealth& in, GnssDebug::SatelliteEphemerisHealth& out);
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-#endif // LOCATION_UTIL_H
diff --git a/sdm845/android/location_api/MeasurementAPIClient.cpp b/sdm845/android/location_api/MeasurementAPIClient.cpp
deleted file mode 100644
index 468c77a..0000000
--- a/sdm845/android/location_api/MeasurementAPIClient.cpp
+++ /dev/null
@@ -1,286 +0,0 @@
-/* Copyright (c) 2017, 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 "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.
- *
- */
-
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_MeasurementAPIClient"
-
-#include <log_util.h>
-#include <loc_cfg.h>
-
-#include "LocationUtil.h"
-#include "MeasurementAPIClient.h"
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-static void convertGnssData(GnssMeasurementsNotification& in,
-        IGnssMeasurementCallback::GnssData& out);
-static void convertGnssMeasurement(GnssMeasurementsData& in,
-        IGnssMeasurementCallback::GnssMeasurement& out);
-static void convertGnssClock(GnssMeasurementsClock& in, IGnssMeasurementCallback::GnssClock& out);
-
-MeasurementAPIClient::MeasurementAPIClient() :
-    mGnssMeasurementCbIface(nullptr),
-    mLocationCapabilitiesMask(0)
-{
-    LOC_LOGD("%s]: ()", __FUNCTION__);
-    pthread_mutex_init(&mLock, nullptr);
-    pthread_cond_init (&mCond, nullptr);
-
-    // set default LocationOptions.
-    memset(&mLocationOptions, 0, sizeof(LocationOptions));
-    mLocationOptions.size = sizeof(LocationOptions);
-    mLocationOptions.minInterval = 1000;
-    mLocationOptions.minDistance = 0;
-    mLocationOptions.mode = GNSS_SUPL_MODE_STANDALONE;
-}
-
-MeasurementAPIClient::~MeasurementAPIClient()
-{
-    LOC_LOGD("%s]: ()", __FUNCTION__);
-    pthread_cond_destroy(&mCond);
-    pthread_mutex_destroy(&mLock);
-}
-
-// for GpsInterface
-Return<IGnssMeasurement::GnssMeasurementStatus>
-MeasurementAPIClient::measurementSetCallback(const sp<IGnssMeasurementCallback>& callback)
-{
-    LOC_LOGD("%s]: (%p)", __FUNCTION__, &callback);
-
-    mGnssMeasurementCbIface = callback;
-
-    LocationCallbacks locationCallbacks;
-    locationCallbacks.size = sizeof(LocationCallbacks);
-
-    locationCallbacks.trackingCb = nullptr;
-    locationCallbacks.batchingCb = nullptr;
-    locationCallbacks.geofenceBreachCb = nullptr;
-    locationCallbacks.geofenceStatusCb = nullptr;
-    locationCallbacks.gnssLocationInfoCb = nullptr;
-    locationCallbacks.gnssNiCb = nullptr;
-    locationCallbacks.gnssSvCb = nullptr;
-    locationCallbacks.gnssNmeaCb = nullptr;
-
-    locationCallbacks.gnssMeasurementsCb = nullptr;
-    if (mGnssMeasurementCbIface != nullptr) {
-        locationCallbacks.gnssMeasurementsCb =
-            [this](GnssMeasurementsNotification gnssMeasurementsNotification) {
-                onGnssMeasurementsCb(gnssMeasurementsNotification);
-            };
-    }
-
-    locAPISetCallbacks(locationCallbacks);
-
-    while (!mLocationCapabilitiesMask) {
-        LOC_LOGD("%s]: wait for capabilities...", __FUNCTION__);
-        pthread_mutex_lock(&mLock);
-        pthread_cond_wait(&mCond, &mLock);
-        pthread_mutex_unlock(&mLock);
-    }
-    if (mLocationCapabilitiesMask & LOCATION_CAPABILITIES_GNSS_MSB_BIT)
-        mLocationOptions.mode = GNSS_SUPL_MODE_MSB;
-    else
-        mLocationOptions.mode = GNSS_SUPL_MODE_STANDALONE;
-    LOC_LOGD("%s]: start tracking session", __FUNCTION__);
-    locAPIStartTracking(mLocationOptions);
-
-    return IGnssMeasurement::GnssMeasurementStatus::SUCCESS;
-}
-
-// for GpsMeasurementInterface
-void MeasurementAPIClient::measurementClose() {
-    LOC_LOGD("%s]: ()", __FUNCTION__);
-    pthread_mutex_lock(&mLock);
-    mGnssMeasurementCbIface = nullptr;
-    pthread_mutex_unlock(&mLock);
-    locAPIStopTracking();
-}
-
-// callbacks
-void MeasurementAPIClient::onCapabilitiesCb(LocationCapabilitiesMask capabilitiesMask)
-{
-    LOC_LOGD("%s]: (%02x)", __FUNCTION__, capabilitiesMask);
-    mLocationCapabilitiesMask = capabilitiesMask;
-    pthread_mutex_lock(&mLock);
-    pthread_cond_signal(&mCond);
-    pthread_mutex_unlock(&mLock);
-}
-
-void MeasurementAPIClient::onGnssMeasurementsCb(
-        GnssMeasurementsNotification gnssMeasurementsNotification)
-{
-    LOC_LOGD("%s]: (count: %zu)", __FUNCTION__, gnssMeasurementsNotification.count);
-    // we don't need to lock the mutext
-    // if mGnssMeasurementCbIface is set to nullptr
-    if (mGnssMeasurementCbIface != nullptr) {
-        pthread_mutex_lock(&mLock);
-        if (mGnssMeasurementCbIface != nullptr) {
-            IGnssMeasurementCallback::GnssData gnssData;
-            convertGnssData(gnssMeasurementsNotification, gnssData);
-            auto r = mGnssMeasurementCbIface->GnssMeasurementCb(gnssData);
-            if (!r.isOk()) {
-                LOC_LOGE("%s] Error from GnssMeasurementCb description=%s",
-                    __func__, r.description().c_str());
-            }
-        }
-        pthread_mutex_unlock(&mLock);
-    }
-}
-
-static void convertGnssMeasurement(GnssMeasurementsData& in,
-        IGnssMeasurementCallback::GnssMeasurement& out)
-{
-    memset(&out, 0, sizeof(IGnssMeasurementCallback::GnssMeasurement));
-    if (in.flags & GNSS_MEASUREMENTS_DATA_SIGNAL_TO_NOISE_RATIO_BIT)
-        out.flags |= IGnssMeasurementCallback::GnssMeasurementFlags::HAS_SNR;
-    if (in.flags & GNSS_MEASUREMENTS_DATA_CARRIER_FREQUENCY_BIT)
-        out.flags |= IGnssMeasurementCallback::GnssMeasurementFlags::HAS_CARRIER_FREQUENCY;
-    if (in.flags & GNSS_MEASUREMENTS_DATA_CARRIER_CYCLES_BIT)
-        out.flags |= IGnssMeasurementCallback::GnssMeasurementFlags::HAS_CARRIER_CYCLES;
-    if (in.flags & GNSS_MEASUREMENTS_DATA_CARRIER_PHASE_BIT)
-        out.flags |= IGnssMeasurementCallback::GnssMeasurementFlags::HAS_CARRIER_PHASE;
-    if (in.flags & GNSS_MEASUREMENTS_DATA_CARRIER_PHASE_UNCERTAINTY_BIT)
-        out.flags |= IGnssMeasurementCallback::GnssMeasurementFlags::HAS_CARRIER_PHASE_UNCERTAINTY;
-    if (in.flags & GNSS_MEASUREMENTS_DATA_AUTOMATIC_GAIN_CONTROL_BIT)
-        out.flags |= IGnssMeasurementCallback::GnssMeasurementFlags::HAS_AUTOMATIC_GAIN_CONTROL;
-    out.svid = in.svId;
-    convertGnssConstellationType(in.svType, out.constellation);
-    out.timeOffsetNs = in.timeOffsetNs;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_CODE_LOCK_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_CODE_LOCK;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_BIT_SYNC_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_BIT_SYNC;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_SUBFRAME_SYNC_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_SUBFRAME_SYNC;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_TOW_DECODED_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_TOW_DECODED;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_MSEC_AMBIGUOUS_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_MSEC_AMBIGUOUS;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_SYMBOL_SYNC_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_SYMBOL_SYNC;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_GLO_STRING_SYNC_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_GLO_STRING_SYNC;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_GLO_TOD_DECODED_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_GLO_TOD_DECODED;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_BDS_D2_BIT_SYNC_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_BDS_D2_BIT_SYNC;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_BDS_D2_SUBFRAME_SYNC_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_BDS_D2_SUBFRAME_SYNC;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_GAL_E1BC_CODE_LOCK_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_GAL_E1BC_CODE_LOCK;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_GAL_E1C_2ND_CODE_LOCK_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_GAL_E1C_2ND_CODE_LOCK;
-    if (in.stateMask & GNSS_MEASUREMENTS_STATE_GAL_E1B_PAGE_SYNC_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_GAL_E1B_PAGE_SYNC;
-    if (in.stateMask &  GNSS_MEASUREMENTS_STATE_SBAS_SYNC_BIT)
-        out.state |= IGnssMeasurementCallback::GnssMeasurementState::STATE_SBAS_SYNC;
-    out.receivedSvTimeInNs = in.receivedSvTimeNs;
-    out.receivedSvTimeUncertaintyInNs = in.receivedSvTimeUncertaintyNs;
-    out.cN0DbHz = in.carrierToNoiseDbHz;
-    out.pseudorangeRateMps = in.pseudorangeRateMps;
-    out.pseudorangeRateUncertaintyMps = in.pseudorangeRateUncertaintyMps;
-    if (in.adrStateMask & GNSS_MEASUREMENTS_ACCUMULATED_DELTA_RANGE_STATE_VALID_BIT)
-        out.accumulatedDeltaRangeState |=
-            IGnssMeasurementCallback::GnssAccumulatedDeltaRangeState::ADR_STATE_VALID;
-    if (in.adrStateMask & GNSS_MEASUREMENTS_ACCUMULATED_DELTA_RANGE_STATE_RESET_BIT)
-        out.accumulatedDeltaRangeState |=
-            IGnssMeasurementCallback::GnssAccumulatedDeltaRangeState::ADR_STATE_RESET;
-    if (in.adrStateMask & GNSS_MEASUREMENTS_ACCUMULATED_DELTA_RANGE_STATE_CYCLE_SLIP_BIT)
-        out.accumulatedDeltaRangeState |=
-            IGnssMeasurementCallback::GnssAccumulatedDeltaRangeState::ADR_STATE_CYCLE_SLIP;
-    out.accumulatedDeltaRangeM = in.adrMeters;
-    out.accumulatedDeltaRangeUncertaintyM = in.adrUncertaintyMeters;
-    out.carrierFrequencyHz = in.carrierFrequencyHz;
-    out.carrierCycles = in.carrierCycles;
-    out.carrierPhase = in.carrierPhase;
-    out.carrierPhaseUncertainty = in.carrierPhaseUncertainty;
-    uint8_t indicator =
-        static_cast<uint8_t>(IGnssMeasurementCallback::GnssMultipathIndicator::INDICATOR_UNKNOWN);
-    if (in.multipathIndicator & GNSS_MEASUREMENTS_MULTIPATH_INDICATOR_PRESENT)
-        indicator |= IGnssMeasurementCallback::GnssMultipathIndicator::INDICATOR_PRESENT;
-    if (in.multipathIndicator & GNSS_MEASUREMENTS_MULTIPATH_INDICATOR_NOT_PRESENT)
-        indicator |= IGnssMeasurementCallback::GnssMultipathIndicator::INDICATIOR_NOT_PRESENT;
-    out.multipathIndicator =
-        static_cast<IGnssMeasurementCallback::GnssMultipathIndicator>(indicator);
-    out.snrDb = in.signalToNoiseRatioDb;
-    out.agcLevelDb = in.agcLevelDb;
-}
-
-static void convertGnssClock(GnssMeasurementsClock& in, IGnssMeasurementCallback::GnssClock& out)
-{
-    memset(&out, 0, sizeof(IGnssMeasurementCallback::GnssClock));
-    if (in.flags & GNSS_MEASUREMENTS_CLOCK_FLAGS_LEAP_SECOND_BIT)
-        out.gnssClockFlags |= IGnssMeasurementCallback::GnssClockFlags::HAS_LEAP_SECOND;
-    if (in.flags & GNSS_MEASUREMENTS_CLOCK_FLAGS_TIME_UNCERTAINTY_BIT)
-        out.gnssClockFlags |= IGnssMeasurementCallback::GnssClockFlags::HAS_TIME_UNCERTAINTY;
-    if (in.flags & GNSS_MEASUREMENTS_CLOCK_FLAGS_FULL_BIAS_BIT)
-        out.gnssClockFlags |= IGnssMeasurementCallback::GnssClockFlags::HAS_FULL_BIAS;
-    if (in.flags & GNSS_MEASUREMENTS_CLOCK_FLAGS_BIAS_BIT)
-        out.gnssClockFlags |= IGnssMeasurementCallback::GnssClockFlags::HAS_BIAS;
-    if (in.flags & GNSS_MEASUREMENTS_CLOCK_FLAGS_BIAS_UNCERTAINTY_BIT)
-        out.gnssClockFlags |= IGnssMeasurementCallback::GnssClockFlags::HAS_BIAS_UNCERTAINTY;
-    if (in.flags & GNSS_MEASUREMENTS_CLOCK_FLAGS_DRIFT_BIT)
-        out.gnssClockFlags |= IGnssMeasurementCallback::GnssClockFlags::HAS_DRIFT;
-    if (in.flags & GNSS_MEASUREMENTS_CLOCK_FLAGS_DRIFT_UNCERTAINTY_BIT)
-        out.gnssClockFlags |= IGnssMeasurementCallback::GnssClockFlags::HAS_DRIFT_UNCERTAINTY;
-    out.leapSecond = in.leapSecond;
-    out.timeNs = in.timeNs;
-    out.timeUncertaintyNs = in.timeUncertaintyNs;
-    out.fullBiasNs = in.fullBiasNs;
-    out.biasNs = in.biasNs;
-    out.biasUncertaintyNs = in.biasUncertaintyNs;
-    out.driftNsps = in.driftNsps;
-    out.driftUncertaintyNsps = in.driftUncertaintyNsps;
-    out.hwClockDiscontinuityCount = in.hwClockDiscontinuityCount;
-}
-
-static void convertGnssData(GnssMeasurementsNotification& in,
-        IGnssMeasurementCallback::GnssData& out)
-{
-    out.measurementCount = in.count;
-    if (out.measurementCount > static_cast<uint32_t>(GnssMax::SVS_COUNT)) {
-        LOC_LOGW("%s]: Too many measurement %zd. Clamps to %d.",
-                __FUNCTION__,  out.measurementCount, GnssMax::SVS_COUNT);
-        out.measurementCount = static_cast<uint32_t>(GnssMax::SVS_COUNT);
-    }
-    for (size_t i = 0; i < out.measurementCount; i++) {
-        convertGnssMeasurement(in.measurements[i], out.measurements[i]);
-    }
-    convertGnssClock(in.clock, out.clock);
-}
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/sdm845/android/location_api/MeasurementAPIClient.h b/sdm845/android/location_api/MeasurementAPIClient.h
deleted file mode 100644
index e202192..0000000
--- a/sdm845/android/location_api/MeasurementAPIClient.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (c) 2017, 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 "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 MEASUREMENT_API_CLINET_H
-#define MEASUREMENT_API_CLINET_H
-
-
-#include <android/hardware/gnss/1.0/IGnssMeasurement.h>
-#include <android/hardware/gnss/1.0/IGnssMeasurementCallback.h>
-#include <LocationAPIClientBase.h>
-#include <hidl/Status.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::hardware::gnss::V1_0::IGnssMeasurement;
-using ::android::sp;
-
-class MeasurementAPIClient : public LocationAPIClientBase
-{
-public:
-    MeasurementAPIClient();
-    virtual ~MeasurementAPIClient();
-    MeasurementAPIClient(const MeasurementAPIClient&) = delete;
-    MeasurementAPIClient& operator=(const MeasurementAPIClient&) = delete;
-
-    // for GpsMeasurementInterface
-    Return<IGnssMeasurement::GnssMeasurementStatus> measurementSetCallback(
-            const sp<IGnssMeasurementCallback>& callback);
-    void measurementClose();
-
-    // callbacks we are interested in
-    void onCapabilitiesCb(LocationCapabilitiesMask capabilitiesMask) final;
-    void onGnssMeasurementsCb(GnssMeasurementsNotification gnssMeasurementsNotification) final;
-
-private:
-    pthread_mutex_t mLock;
-    pthread_cond_t mCond;
-
-    sp<IGnssMeasurementCallback> mGnssMeasurementCbIface;
-
-    LocationCapabilitiesMask mLocationCapabilitiesMask;
-
-    LocationOptions mLocationOptions;
-};
-
-}  // namespace implementation
-}  // namespace V1_0
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-#endif // MEASUREMENT_API_CLINET_H
diff --git a/sdm845/android/service.cpp b/sdm845/android/service.cpp
deleted file mode 100644
index 5779e67..0000000
--- a/sdm845/android/service.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
- * Not a Contribution
- */
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "android.hardware.gnss@1.0-service-qti"
-
-#include <android/hardware/gnss/1.0/IGnss.h>
-#include <hidl/LegacySupport.h>
-
-using android::hardware::gnss::V1_0::IGnss;
-using android::hardware::defaultPassthroughServiceImplementation;
-
-int main() {
-    return defaultPassthroughServiceImplementation<IGnss>();
-}
diff --git a/sdm845/configure.ac b/sdm845/configure.ac
deleted file mode 100644
index cf991c6..0000000
--- a/sdm845/configure.ac
+++ /dev/null
@@ -1,91 +0,0 @@
-# configure.ac -- Autoconf script for gps loc_hal
-#
-# Process this file with autoconf to produce a configure script
-
-# Requires autoconf tool later than 2.61
-AC_PREREQ(2.61)
-# Initialize the gps loc-hal package version 1.0.0
-AC_INIT([loc-hal],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([utils/loc_cfg.cpp])
-# 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([QMI], [qmi])
-AC_SUBST([QMI_CFLAGS])
-AC_SUBST([QMI_LIBS])
-
-PKG_CHECK_MODULES([QMIF], [qmi-framework])
-AC_SUBST([QMIF_CFLAGS])
-AC_SUBST([QMIF_LIBS])
-
-PKG_CHECK_MODULES([DATA], [data])
-AC_SUBST([DATA_CFLAGS])
-AC_SUBST([DATA_LIBS])
-
-PKG_CHECK_MODULES([LOCPLA], [loc-pla])
-AC_SUBST([LOCPLA_CFLAGS])
-AC_SUBST([LOCPLA_LIBS])
-
-PKG_CHECK_MODULES([GPSUTILS], [gps-utils])
-AC_SUBST([GPSUTILS_CFLAGS])
-AC_SUBST([GPSUTILS_LIBS])
-
-AC_ARG_WITH([core_includes],
-      AC_HELP_STRING([--with-core-includes=@<:@dir@:>@],
-         [Specify the location of the core headers]),
-      [core_incdir=$withval],
-      with_core_includes=no)
-
-if test "x$with_core_includes" != "xno"; then
-   CPPFLAGS="${CPPFLAGS} -I${core_incdir}"
-fi
-
-AC_SUBST([CPPFLAGS])
-
-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 \
-        utils/Makefile \
-        core/Makefile \
-        loc_api/Makefile \
-        loc-hal.pc \
-        ])
-
-AC_OUTPUT
diff --git a/sdm845/core/Android.mk b/sdm845/core/Android.mk
deleted file mode 100644
index 313ee25..0000000
--- a/sdm845/core/Android.mk
+++ /dev/null
@@ -1,60 +0,0 @@
-ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),)
-ifneq ($(BUILD_TINY_ANDROID),true)
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libloc_core
-LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib
-LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR)/lib64
-LOCAL_MODULE_TAGS := optional
-
-ifeq ($(TARGET_DEVICE),apq8026_lw)
-LOCAL_CFLAGS += -DPDK_FEATURE_SET
-else ifeq ($(BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET),true)
-LOCAL_CFLAGS += -DPDK_FEATURE_SET
-endif
-
-LOCAL_SHARED_LIBRARIES := \
-    liblog \
-    libutils \
-    libcutils \
-    libgps.utils \
-    libdl \
-    liblog \
-    libloc_pla
-
-LOCAL_SRC_FILES += \
-    LocApiBase.cpp \
-    LocAdapterBase.cpp \
-    ContextBase.cpp \
-    LocDualContext.cpp \
-    loc_core_log.cpp \
-    SystemStatus.cpp
-
-LOCAL_CFLAGS += \
-     -fno-short-enums \
-     -D_ANDROID_
-
-LOCAL_C_INCLUDES:= \
-    $(TARGET_OUT_HEADERS)/gps.utils \
-    $(TARGET_OUT_HEADERS)/libloc_pla \
-    $(TARGET_OUT_HEADERS)/liblocation_api
-
-LOCAL_COPY_HEADERS_TO:= libloc_core/
-LOCAL_COPY_HEADERS:= \
-    LocApiBase.h \
-    LocAdapterBase.h \
-    ContextBase.h \
-    LocDualContext.h \
-    LBSProxyBase.h \
-    UlpProxyBase.h \
-    loc_core_log.h \
-    LocAdapterProxyBase.h \
-    SystemStatus.h
-
-include $(BUILD_SHARED_LIBRARY)
-
-endif # not BUILD_TINY_ANDROID
-endif # BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE
diff --git a/sdm845/core/ContextBase.cpp b/sdm845/core/ContextBase.cpp
deleted file mode 100644
index 8af48fc..0000000
--- a/sdm845/core/ContextBase.cpp
+++ /dev/null
@@ -1,248 +0,0 @@
-/* Copyright (c) 2011-2014,2016-2017 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 "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.
- *
- */
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_CtxBase"
-
-#include <dlfcn.h>
-#include <cutils/sched_policy.h>
-#include <unistd.h>
-#include <ContextBase.h>
-#include <msg_q.h>
-#include <loc_target.h>
-#include <platform_lib_includes.h>
-#include <loc_log.h>
-
-namespace loc_core {
-
-loc_gps_cfg_s_type ContextBase::mGps_conf {};
-loc_sap_cfg_s_type ContextBase::mSap_conf {};
-
-const loc_param_s_type ContextBase::mGps_conf_table[] =
-{
-  {"GPS_LOCK",                       &mGps_conf.GPS_LOCK,                       NULL, 'n'},
-  {"SUPL_VER",                       &mGps_conf.SUPL_VER,                       NULL, 'n'},
-  {"LPP_PROFILE",                    &mGps_conf.LPP_PROFILE,                    NULL, 'n'},
-  {"A_GLONASS_POS_PROTOCOL_SELECT",  &mGps_conf.A_GLONASS_POS_PROTOCOL_SELECT,  NULL, 'n'},
-  {"LPPE_CP_TECHNOLOGY",             &mGps_conf.LPPE_CP_TECHNOLOGY,             NULL, 'n'},
-  {"LPPE_UP_TECHNOLOGY",             &mGps_conf.LPPE_UP_TECHNOLOGY,             NULL, 'n'},
-  {"AGPS_CERT_WRITABLE_MASK",        &mGps_conf.AGPS_CERT_WRITABLE_MASK,        NULL, 'n'},
-  {"SUPL_MODE",                      &mGps_conf.SUPL_MODE,                      NULL, 'n'},
-  {"SUPL_ES",                        &mGps_conf.SUPL_ES,                        NULL, 'n'},
-  {"INTERMEDIATE_POS",               &mGps_conf.INTERMEDIATE_POS,               NULL, 'n'},
-  {"ACCURACY_THRES",                 &mGps_conf.ACCURACY_THRES,                 NULL, 'n'},
-  {"NMEA_PROVIDER",                  &mGps_conf.NMEA_PROVIDER,                  NULL, 'n'},
-  {"CAPABILITIES",                   &mGps_conf.CAPABILITIES,                   NULL, 'n'},
-  {"XTRA_VERSION_CHECK",             &mGps_conf.XTRA_VERSION_CHECK,             NULL, 'n'},
-  {"XTRA_SERVER_1",                  &mGps_conf.XTRA_SERVER_1,                  NULL, 's'},
-  {"XTRA_SERVER_2",                  &mGps_conf.XTRA_SERVER_2,                  NULL, 's'},
-  {"XTRA_SERVER_3",                  &mGps_conf.XTRA_SERVER_3,                  NULL, 's'},
-  {"USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL",  &mGps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL,          NULL, 'n'},
-  {"AGPS_CONFIG_INJECT",             &mGps_conf.AGPS_CONFIG_INJECT,             NULL, 'n'},
-  {"EXTERNAL_DR_ENABLED",            &mGps_conf.EXTERNAL_DR_ENABLED,                  NULL, 'n'},
-};
-
-const loc_param_s_type ContextBase::mSap_conf_table[] =
-{
-  {"GYRO_BIAS_RANDOM_WALK",          &mSap_conf.GYRO_BIAS_RANDOM_WALK,          &mSap_conf.GYRO_BIAS_RANDOM_WALK_VALID, 'f'},
-  {"ACCEL_RANDOM_WALK_SPECTRAL_DENSITY",     &mSap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY,    &mSap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID, 'f'},
-  {"ANGLE_RANDOM_WALK_SPECTRAL_DENSITY",     &mSap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY,    &mSap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID, 'f'},
-  {"RATE_RANDOM_WALK_SPECTRAL_DENSITY",      &mSap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY,     &mSap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY_VALID, 'f'},
-  {"VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY",  &mSap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY, &mSap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID, 'f'},
-  {"SENSOR_ACCEL_BATCHES_PER_SEC",   &mSap_conf.SENSOR_ACCEL_BATCHES_PER_SEC,   NULL, 'n'},
-  {"SENSOR_ACCEL_SAMPLES_PER_BATCH", &mSap_conf.SENSOR_ACCEL_SAMPLES_PER_BATCH, NULL, 'n'},
-  {"SENSOR_GYRO_BATCHES_PER_SEC",    &mSap_conf.SENSOR_GYRO_BATCHES_PER_SEC,    NULL, 'n'},
-  {"SENSOR_GYRO_SAMPLES_PER_BATCH",  &mSap_conf.SENSOR_GYRO_SAMPLES_PER_BATCH,  NULL, 'n'},
-  {"SENSOR_ACCEL_BATCHES_PER_SEC_HIGH",   &mSap_conf.SENSOR_ACCEL_BATCHES_PER_SEC_HIGH,   NULL, 'n'},
-  {"SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH", &mSap_conf.SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH, NULL, 'n'},
-  {"SENSOR_GYRO_BATCHES_PER_SEC_HIGH",    &mSap_conf.SENSOR_GYRO_BATCHES_PER_SEC_HIGH,    NULL, 'n'},
-  {"SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH",  &mSap_conf.SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH,  NULL, 'n'},
-  {"SENSOR_CONTROL_MODE",            &mSap_conf.SENSOR_CONTROL_MODE,            NULL, 'n'},
-  {"SENSOR_USAGE",                   &mSap_conf.SENSOR_USAGE,                   NULL, 'n'},
-  {"SENSOR_ALGORITHM_CONFIG_MASK",   &mSap_conf.SENSOR_ALGORITHM_CONFIG_MASK,   NULL, 'n'},
-  {"SENSOR_PROVIDER",                &mSap_conf.SENSOR_PROVIDER,                NULL, 'n'}
-};
-
-void ContextBase::readConfig()
-{
-   /*Defaults for gps.conf*/
-   mGps_conf.INTERMEDIATE_POS = 0;
-   mGps_conf.ACCURACY_THRES = 0;
-   mGps_conf.NMEA_PROVIDER = 0;
-   mGps_conf.GPS_LOCK = 0;
-   mGps_conf.SUPL_VER = 0x10000;
-   mGps_conf.SUPL_MODE = 0x1;
-   mGps_conf.SUPL_ES = 0;
-   mGps_conf.CAPABILITIES = 0x7;
-   /* LTE Positioning Profile configuration is disable by default*/
-   mGps_conf.LPP_PROFILE = 0;
-   /*By default no positioning protocol is selected on A-GLONASS system*/
-   mGps_conf.A_GLONASS_POS_PROTOCOL_SELECT = 0;
-   /*XTRA version check is disabled by default*/
-   mGps_conf.XTRA_VERSION_CHECK=0;
-   /*Use emergency PDN by default*/
-   mGps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL = 1;
-   /* By default no LPPe CP technology is enabled*/
-   mGps_conf.LPPE_CP_TECHNOLOGY = 0;
-   /* By default no LPPe UP technology is enabled*/
-   mGps_conf.LPPE_UP_TECHNOLOGY = 0;
-
-   /*Defaults for sap.conf*/
-   mSap_conf.GYRO_BIAS_RANDOM_WALK = 0;
-   mSap_conf.SENSOR_ACCEL_BATCHES_PER_SEC = 2;
-   mSap_conf.SENSOR_ACCEL_SAMPLES_PER_BATCH = 5;
-   mSap_conf.SENSOR_GYRO_BATCHES_PER_SEC = 2;
-   mSap_conf.SENSOR_GYRO_SAMPLES_PER_BATCH = 5;
-   mSap_conf.SENSOR_ACCEL_BATCHES_PER_SEC_HIGH = 4;
-   mSap_conf.SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH = 25;
-   mSap_conf.SENSOR_GYRO_BATCHES_PER_SEC_HIGH = 4;
-   mSap_conf.SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH = 25;
-   mSap_conf.SENSOR_CONTROL_MODE = 0; /* AUTO */
-   mSap_conf.SENSOR_USAGE = 0; /* Enabled */
-   mSap_conf.SENSOR_ALGORITHM_CONFIG_MASK = 0; /* INS Disabled = FALSE*/
-   /* Values MUST be set by OEMs in configuration for sensor-assisted
-      navigation to work. There are NO default values */
-   mSap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY = 0;
-   mSap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY = 0;
-   mSap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY = 0;
-   mSap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY = 0;
-   mSap_conf.GYRO_BIAS_RANDOM_WALK_VALID = 0;
-   mSap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID = 0;
-   mSap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID = 0;
-   mSap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY_VALID = 0;
-   mSap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID = 0;
-   /* default provider is SSC */
-   mSap_conf.SENSOR_PROVIDER = 1;
-
-   /* None of the 10 slots for agps certificates are writable by default */
-   mGps_conf.AGPS_CERT_WRITABLE_MASK = 0;
-
-   /* inject supl config to modem with config values from config.xml or gps.conf, default 1 */
-   mGps_conf.AGPS_CONFIG_INJECT = 1;
-
-   UTIL_READ_CONF(LOC_PATH_GPS_CONF, mGps_conf_table);
-   UTIL_READ_CONF(LOC_PATH_SAP_CONF, mSap_conf_table);
-}
-
-uint32_t ContextBase::getCarrierCapabilities() {
-    #define carrierMSA (uint32_t)0x2
-    #define carrierMSB (uint32_t)0x1
-    #define gpsConfMSA (uint32_t)0x4
-    #define gpsConfMSB (uint32_t)0x2
-    uint32_t capabilities = mGps_conf.CAPABILITIES;
-    if ((mGps_conf.SUPL_MODE & carrierMSA) != carrierMSA) {
-        capabilities &= ~gpsConfMSA;
-    }
-    if ((mGps_conf.SUPL_MODE & carrierMSB) != carrierMSB) {
-        capabilities &= ~gpsConfMSB;
-    }
-
-    LOC_LOGV("getCarrierCapabilities: CAPABILITIES %x, SUPL_MODE %x, carrier capabilities %x",
-             mGps_conf.CAPABILITIES, mGps_conf.SUPL_MODE, capabilities);
-    return capabilities;
-}
-
-LBSProxyBase* ContextBase::getLBSProxy(const char* libName)
-{
-    LBSProxyBase* proxy = NULL;
-    LOC_LOGD("%s:%d]: getLBSProxy libname: %s\n", __func__, __LINE__, libName);
-    void* lib = dlopen(libName, RTLD_NOW);
-
-    if ((void*)NULL != lib) {
-        getLBSProxy_t* getter = (getLBSProxy_t*)dlsym(lib, "getLBSProxy");
-        if (NULL != getter) {
-            proxy = (*getter)();
-        }
-    }
-    else
-    {
-        LOC_LOGW("%s:%d]: FAILED TO LOAD libname: %s\n", __func__, __LINE__, libName);
-    }
-    if (NULL == proxy) {
-        proxy = new LBSProxyBase();
-    }
-    LOC_LOGD("%s:%d]: Exiting\n", __func__, __LINE__);
-    return proxy;
-}
-
-LocApiBase* ContextBase::createLocApi(LOC_API_ADAPTER_EVENT_MASK_T exMask)
-{
-    LocApiBase* locApi = NULL;
-
-    // Check the target
-    if (TARGET_NO_GNSS != loc_get_target()){
-
-        if (NULL == (locApi = mLBSProxy->getLocApi(mMsgTask, exMask, this))) {
-            void *handle = NULL;
-            //try to see if LocApiV02 is present
-            if ((handle = dlopen("libloc_api_v02.so", RTLD_NOW)) != NULL) {
-                LOC_LOGD("%s:%d]: libloc_api_v02.so is present", __func__, __LINE__);
-                getLocApi_t* getter = (getLocApi_t*) dlsym(handle, "getLocApi");
-                if (getter != NULL) {
-                    LOC_LOGD("%s:%d]: getter is not NULL for LocApiV02", __func__,
-                            __LINE__);
-                    locApi = (*getter)(mMsgTask, exMask, this);
-                }
-            }
-            // only RPC is the option now
-            else {
-                LOC_LOGD("%s:%d]: libloc_api_v02.so is NOT present. Trying RPC",
-                        __func__, __LINE__);
-                handle = dlopen("libloc_api-rpc-qc.so", RTLD_NOW);
-                if (NULL != handle) {
-                    getLocApi_t* getter = (getLocApi_t*) dlsym(handle, "getLocApi");
-                    if (NULL != getter) {
-                        LOC_LOGD("%s:%d]: getter is not NULL in RPC", __func__,
-                                __LINE__);
-                        locApi = (*getter)(mMsgTask, exMask, this);
-                    }
-                }
-            }
-        }
-    }
-
-    // locApi could still be NULL at this time
-    // we would then create a dummy one
-    if (NULL == locApi) {
-        locApi = new LocApiBase(mMsgTask, exMask, this);
-    }
-
-    return locApi;
-}
-
-ContextBase::ContextBase(const MsgTask* msgTask,
-                         LOC_API_ADAPTER_EVENT_MASK_T exMask,
-                         const char* libName) :
-    mLBSProxy(getLBSProxy(libName)),
-    mMsgTask(msgTask),
-    mLocApi(createLocApi(exMask)),
-    mLocApiProxy(mLocApi->getLocApiProxy())
-{
-}
-
-}
diff --git a/sdm845/core/ContextBase.h b/sdm845/core/ContextBase.h
deleted file mode 100644
index 83de999..0000000
--- a/sdm845/core/ContextBase.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Copyright (c) 2011-2017, 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 "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 __LOC_CONTEXT_BASE__
-#define __LOC_CONTEXT_BASE__
-
-#include <stdbool.h>
-#include <ctype.h>
-#include <MsgTask.h>
-#include <LocApiBase.h>
-#include <LBSProxyBase.h>
-#include <loc_cfg.h>
-
-#define MAX_XTRA_SERVER_URL_LENGTH 256
-
-/* GPS.conf support */
-/* NOTE: the implementaiton of the parser casts number
-   fields to 32 bit. To ensure all 'n' fields working,
-   they must all be 32 bit fields. */
-typedef struct loc_gps_cfg_s
-{
-    uint32_t       INTERMEDIATE_POS;
-    uint32_t       ACCURACY_THRES;
-    uint32_t       SUPL_VER;
-    uint32_t       SUPL_MODE;
-    uint32_t       SUPL_ES;
-    uint32_t       CAPABILITIES;
-    uint32_t       LPP_PROFILE;
-    uint32_t       XTRA_VERSION_CHECK;
-    char           XTRA_SERVER_1[MAX_XTRA_SERVER_URL_LENGTH];
-    char           XTRA_SERVER_2[MAX_XTRA_SERVER_URL_LENGTH];
-    char           XTRA_SERVER_3[MAX_XTRA_SERVER_URL_LENGTH];
-    uint32_t       USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL;
-    uint32_t       NMEA_PROVIDER;
-    uint32_t       GPS_LOCK;
-    uint32_t       A_GLONASS_POS_PROTOCOL_SELECT;
-    uint32_t       AGPS_CERT_WRITABLE_MASK;
-    uint32_t       AGPS_CONFIG_INJECT;
-    uint32_t       LPPE_CP_TECHNOLOGY;
-    uint32_t       LPPE_UP_TECHNOLOGY;
-    uint32_t       EXTERNAL_DR_ENABLED;
-} loc_gps_cfg_s_type;
-
-/* NOTE: the implementaiton of the parser casts number
-   fields to 32 bit. To ensure all 'n' fields working,
-   they must all be 32 bit fields. */
-/* Meanwhile, *_valid fields are 8 bit fields, and 'f'
-   fields are double. Rigid as they are, it is the
-   the status quo, until the parsing mechanism is
-   change, that is. */
-typedef struct
-{
-    uint8_t        GYRO_BIAS_RANDOM_WALK_VALID;
-    double         GYRO_BIAS_RANDOM_WALK;
-    uint32_t       SENSOR_ACCEL_BATCHES_PER_SEC;
-    uint32_t       SENSOR_ACCEL_SAMPLES_PER_BATCH;
-    uint32_t       SENSOR_GYRO_BATCHES_PER_SEC;
-    uint32_t       SENSOR_GYRO_SAMPLES_PER_BATCH;
-    uint32_t       SENSOR_ACCEL_BATCHES_PER_SEC_HIGH;
-    uint32_t       SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH;
-    uint32_t       SENSOR_GYRO_BATCHES_PER_SEC_HIGH;
-    uint32_t       SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH;
-    uint32_t       SENSOR_CONTROL_MODE;
-    uint32_t       SENSOR_USAGE;
-    uint32_t       SENSOR_ALGORITHM_CONFIG_MASK;
-    uint8_t        ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
-    double         ACCEL_RANDOM_WALK_SPECTRAL_DENSITY;
-    uint8_t        ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
-    double         ANGLE_RANDOM_WALK_SPECTRAL_DENSITY;
-    uint8_t        RATE_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
-    double         RATE_RANDOM_WALK_SPECTRAL_DENSITY;
-    uint8_t        VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID;
-    double         VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY;
-    uint32_t       SENSOR_PROVIDER;
-} loc_sap_cfg_s_type;
-
-namespace loc_core {
-
-class LocAdapterBase;
-
-class ContextBase {
-    static LBSProxyBase* getLBSProxy(const char* libName);
-    LocApiBase* createLocApi(LOC_API_ADAPTER_EVENT_MASK_T excludedMask);
-    static const loc_param_s_type mGps_conf_table[];
-    static const loc_param_s_type mSap_conf_table[];
-protected:
-    const LBSProxyBase* mLBSProxy;
-    const MsgTask* mMsgTask;
-    LocApiBase* mLocApi;
-    LocApiProxyBase *mLocApiProxy;
-public:
-    ContextBase(const MsgTask* msgTask,
-                LOC_API_ADAPTER_EVENT_MASK_T exMask,
-                const char* libName);
-    inline virtual ~ContextBase() { delete mLocApi; delete mLBSProxy; }
-
-    inline const MsgTask* getMsgTask() { return mMsgTask; }
-    inline LocApiBase* getLocApi() { return mLocApi; }
-    inline LocApiProxyBase* getLocApiProxy() { return mLocApiProxy; }
-    inline bool hasAgpsExtendedCapabilities() { return mLBSProxy->hasAgpsExtendedCapabilities(); }
-    inline bool hasCPIExtendedCapabilities() { return mLBSProxy->hasCPIExtendedCapabilities(); }
-    inline bool hasNativeXtraClient() { return mLBSProxy->hasNativeXtraClient(); }
-    inline void modemPowerVote(bool power) const { return mLBSProxy->modemPowerVote(power); }
-    inline void requestUlp(LocAdapterBase* adapter,
-                           unsigned long capabilities) {
-        mLBSProxy->requestUlp(adapter, capabilities);
-    }
-    inline IzatDevId_t getIzatDevId() const {
-        return mLBSProxy->getIzatDevId();
-    }
-    inline void sendMsg(const LocMsg *msg) { getMsgTask()->sendMsg(msg); }
-
-    static loc_gps_cfg_s_type mGps_conf;
-    static loc_sap_cfg_s_type mSap_conf;
-
-    void readConfig();
-    static uint32_t getCarrierCapabilities();
-
-};
-
-} // namespace loc_core
-
-#endif //__LOC_CONTEXT_BASE__
diff --git a/sdm845/core/LBSProxyBase.h b/sdm845/core/LBSProxyBase.h
deleted file mode 100644
index 94ddd0f..0000000
--- a/sdm845/core/LBSProxyBase.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright (c) 2013-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 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 "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 IZAT_PROXY_BASE_H
-#define IZAT_PROXY_BASE_H
-#include <gps_extended.h>
-#include <MsgTask.h>
-
-namespace loc_core {
-
-class LocApiBase;
-class LocAdapterBase;
-class ContextBase;
-
-class LBSProxyBase {
-    friend class ContextBase;
-    inline virtual LocApiBase*
-        getLocApi(const MsgTask* msgTask,
-                  LOC_API_ADAPTER_EVENT_MASK_T exMask,
-                  ContextBase* context) const {
-
-        (void)msgTask;
-        (void)exMask;
-        (void)context;
-        return NULL;
-    }
-protected:
-    inline LBSProxyBase() {}
-public:
-    inline virtual ~LBSProxyBase() {}
-    inline virtual void requestUlp(LocAdapterBase* adapter,
-                                   unsigned long capabilities) const {
-
-        (void)adapter;
-        (void)capabilities;
-    }
-    inline virtual bool hasAgpsExtendedCapabilities() const { return false; }
-    inline virtual bool hasCPIExtendedCapabilities() const { return false; }
-    inline virtual void modemPowerVote(bool power) const {
-
-        (void)power;
-    }
-    virtual void injectFeatureConfig(ContextBase* context) const {
-
-        (void)context;
-    }
-    inline virtual bool hasNativeXtraClient() const { return false; }
-    inline virtual IzatDevId_t getIzatDevId() const { return 0; }
-};
-
-typedef LBSProxyBase* (getLBSProxy_t)();
-
-} // namespace loc_core
-
-#endif // IZAT_PROXY_BASE_H
diff --git a/sdm845/core/LocAdapterBase.cpp b/sdm845/core/LocAdapterBase.cpp
deleted file mode 100644
index 7cb4086..0000000
--- a/sdm845/core/LocAdapterBase.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright (c) 2011-2014, 2016-2017The 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 "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.
- *
- */
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_LocAdapterBase"
-
-#include <dlfcn.h>
-#include <LocAdapterBase.h>
-#include <loc_target.h>
-#include <platform_lib_log_util.h>
-#include <LocAdapterProxyBase.h>
-
-namespace loc_core {
-
-// This is the top level class, so the constructor will
-// always gets called. Here we prepare for the default.
-// But if getLocApi(targetEnumType target) is overriden,
-// the right locApi should get created.
-LocAdapterBase::LocAdapterBase(const LOC_API_ADAPTER_EVENT_MASK_T mask,
-                               ContextBase* context, LocAdapterProxyBase *adapterProxyBase) :
-    mEvtMask(mask), mContext(context),
-    mLocApi(context->getLocApi()), mLocAdapterProxyBase(adapterProxyBase),
-    mMsgTask(context->getMsgTask())
-{
-    mLocApi->addAdapter(this);
-}
-
-uint32_t LocAdapterBase::mSessionIdCounter(1);
-
-uint32_t LocAdapterBase::generateSessionId()
-{
-    if (++mSessionIdCounter == 0xFFFFFFFF)
-        mSessionIdCounter = 1;
-
-     return mSessionIdCounter;
-}
-
-void LocAdapterBase::handleEngineUpEvent()
-{
-    if (mLocAdapterProxyBase) {
-        mLocAdapterProxyBase->handleEngineUpEvent();
-    }
-}
-
-void LocAdapterBase::handleEngineDownEvent()
-{
-    if (mLocAdapterProxyBase) {
-        mLocAdapterProxyBase->handleEngineDownEvent();
-    }
-}
-
-void LocAdapterBase::
-    reportPositionEvent(const UlpLocation& location,
-                        const GpsLocationExtended& locationExtended,
-                        enum loc_sess_status status,
-                        LocPosTechMask loc_technology_mask,
-                        bool fromUlp) {
-    if (mLocAdapterProxyBase != NULL) {
-        mLocAdapterProxyBase->reportPositionEvent((UlpLocation&)location,
-                                                   (GpsLocationExtended&)locationExtended,
-                                                   status,
-                                                   loc_technology_mask);
-    } else {
-        DEFAULT_IMPL()
-    }
-}
-
-void LocAdapterBase::
-    reportSvEvent(const GnssSvNotification& svNotify, bool fromUlp)
-DEFAULT_IMPL()
-
-void LocAdapterBase::
-    reportSvMeasurementEvent(GnssSvMeasurementSet &svMeasurementSet)
-DEFAULT_IMPL()
-
-void LocAdapterBase::
-    reportSvPolynomialEvent(GnssSvPolynomial &svPolynomial)
-DEFAULT_IMPL()
-
-void LocAdapterBase::
-    reportStatus(LocGpsStatusValue status)
-DEFAULT_IMPL()
-
-
-void LocAdapterBase::
-    reportNmeaEvent(const char* nmea, size_t length, bool fromUlp)
-DEFAULT_IMPL()
-
-bool LocAdapterBase::
-    reportXtraServer(const char* url1, const char* url2,
-                     const char* url3, const int maxlength)
-DEFAULT_IMPL(false)
-
-bool LocAdapterBase::
-    requestXtraData()
-DEFAULT_IMPL(false)
-
-bool LocAdapterBase::
-    requestTime()
-DEFAULT_IMPL(false)
-
-bool LocAdapterBase::
-    requestLocation()
-DEFAULT_IMPL(false)
-
-bool LocAdapterBase::
-    requestATL(int connHandle, LocAGpsType agps_type)
-DEFAULT_IMPL(false)
-
-bool LocAdapterBase::
-    releaseATL(int connHandle)
-DEFAULT_IMPL(false)
-
-bool LocAdapterBase::
-    requestSuplES(int connHandle)
-DEFAULT_IMPL(false)
-
-bool LocAdapterBase::
-    reportDataCallOpened()
-DEFAULT_IMPL(false)
-
-bool LocAdapterBase::
-    reportDataCallClosed()
-DEFAULT_IMPL(false)
-
-bool LocAdapterBase::
-    requestNiNotifyEvent(const GnssNiNotification &notify, const void* data)
-DEFAULT_IMPL(false)
-
-void LocAdapterBase::
-    reportGnssMeasurementDataEvent(const GnssMeasurementsNotification& measurementsNotify)
-DEFAULT_IMPL()
-
-bool LocAdapterBase::
-    reportWwanZppFix(LocGpsLocation &zppLoc)
-DEFAULT_IMPL(false)
-
-} // namespace loc_core
diff --git a/sdm845/core/LocAdapterBase.h b/sdm845/core/LocAdapterBase.h
deleted file mode 100644
index 5c471fd..0000000
--- a/sdm845/core/LocAdapterBase.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/* Copyright (c) 2011-2014, 2016-2017 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 "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 LOC_API_ADAPTER_BASE_H
-#define LOC_API_ADAPTER_BASE_H
-
-#include <gps_extended.h>
-#include <UlpProxyBase.h>
-#include <ContextBase.h>
-#include <LocationAPI.h>
-#include <map>
-
-typedef struct LocationSessionKey {
-    LocationAPI* client;
-    uint32_t id;
-    inline LocationSessionKey(LocationAPI* _client, uint32_t _id) :
-        client(_client), id(_id) {}
-} LocationSessionKey;
-inline bool operator <(LocationSessionKey const& left, LocationSessionKey const& right) {
-    return left.id < right.id || (left.id == right.id && left.client < right.client);
-}
-inline bool operator ==(LocationSessionKey const& left, LocationSessionKey const& right) {
-    return left.id == right.id && left.client == right.client;
-}
-inline bool operator !=(LocationSessionKey const& left, LocationSessionKey const& right) {
-    return left.id != right.id || left.client != right.client;
-}
-typedef std::map<LocationSessionKey, LocationOptions> LocationSessionMap;
-
-namespace loc_core {
-
-class LocAdapterProxyBase;
-
-class LocAdapterBase {
-private:
-    static uint32_t mSessionIdCounter;
-protected:
-    LOC_API_ADAPTER_EVENT_MASK_T mEvtMask;
-    ContextBase* mContext;
-    LocApiBase* mLocApi;
-    LocAdapterProxyBase* mLocAdapterProxyBase;
-    const MsgTask* mMsgTask;
-    inline LocAdapterBase(const MsgTask* msgTask) :
-        mEvtMask(0), mContext(NULL), mLocApi(NULL),
-        mLocAdapterProxyBase(NULL), mMsgTask(msgTask) {}
-public:
-    inline virtual ~LocAdapterBase() { mLocApi->removeAdapter(this); }
-    LocAdapterBase(const LOC_API_ADAPTER_EVENT_MASK_T mask,
-                   ContextBase* context, LocAdapterProxyBase *adapterProxyBase = NULL);
-    inline LOC_API_ADAPTER_EVENT_MASK_T
-        checkMask(LOC_API_ADAPTER_EVENT_MASK_T mask) const {
-        return mEvtMask & mask;
-    }
-
-    inline LOC_API_ADAPTER_EVENT_MASK_T getEvtMask() const {
-        return mEvtMask;
-    }
-
-    inline void sendMsg(const LocMsg* msg) const {
-        mMsgTask->sendMsg(msg);
-    }
-
-    inline void sendMsg(const LocMsg* msg) {
-        mMsgTask->sendMsg(msg);
-    }
-
-    inline void updateEvtMask(LOC_API_ADAPTER_EVENT_MASK_T event,
-                              loc_registration_mask_status status)
-    {
-        switch(status) {
-            case (LOC_REGISTRATION_MASK_ENABLED):
-                mEvtMask = mEvtMask | event;
-                break;
-            case (LOC_REGISTRATION_MASK_DISABLED):
-                mEvtMask = mEvtMask &~ event;
-                break;
-            case (LOC_REGISTRATION_MASK_SET):
-                mEvtMask = event;
-                break;
-        }
-        mLocApi->updateEvtMask();
-    }
-
-    inline bool isFeatureSupported(uint8_t featureVal) {
-        return mLocApi->isFeatureSupported(featureVal);
-    }
-
-    uint32_t generateSessionId();
-
-    // This will be overridden by the individual adapters
-    // if necessary.
-    inline virtual void setUlpProxyCommand(UlpProxyBase* ulp) {
-
-        (void)ulp;
-    }
-    virtual void handleEngineUpEvent();
-    virtual void handleEngineDownEvent();
-    inline virtual void setPositionModeCommand(LocPosMode& posMode) {
-
-        (void)posMode;
-    }
-    virtual void startTrackingCommand() {}
-    virtual void stopTrackingCommand() {}
-    virtual void getZppCommand() {}
-    virtual void reportPositionEvent(const UlpLocation& location,
-                                     const GpsLocationExtended& locationExtended,
-                                     enum loc_sess_status status,
-                                     LocPosTechMask loc_technology_mask,
-                                     bool fromUlp=false);
-    virtual void reportSvEvent(const GnssSvNotification& svNotify, bool fromUlp=false);
-    virtual void reportNmeaEvent(const char* nmea, size_t length, bool fromUlp=false);
-    virtual void reportSvMeasurementEvent(GnssSvMeasurementSet &svMeasurementSet);
-    virtual void reportSvPolynomialEvent(GnssSvPolynomial &svPolynomial);
-    virtual void reportStatus(LocGpsStatusValue status);
-    virtual bool reportXtraServer(const char* url1, const char* url2,
-                                  const char* url3, const int maxlength);
-    virtual bool requestXtraData();
-    virtual bool requestTime();
-    virtual bool requestLocation();
-    virtual bool requestATL(int connHandle, LocAGpsType agps_type);
-    virtual bool releaseATL(int connHandle);
-    virtual bool requestSuplES(int connHandle);
-    virtual bool reportDataCallOpened();
-    virtual bool reportDataCallClosed();
-    virtual bool requestNiNotifyEvent(const GnssNiNotification &notify, const void* data);
-    inline virtual bool isInSession() { return false; }
-    ContextBase* getContext() const { return mContext; }
-    virtual void reportGnssMeasurementDataEvent(const GnssMeasurementsNotification& measurementsNotify);
-    virtual bool reportWwanZppFix(LocGpsLocation &zppLoc);
-};
-
-} // namespace loc_core
-
-#endif //LOC_API_ADAPTER_BASE_H
diff --git a/sdm845/core/LocAdapterProxyBase.h b/sdm845/core/LocAdapterProxyBase.h
deleted file mode 100644
index 044f59b..0000000
--- a/sdm845/core/LocAdapterProxyBase.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (c) 2014, 2016-2017 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 "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 LOC_ADAPTER_PROXY_BASE_H
-#define LOC_ADAPTER_PROXY_BASE_H
-
-#include <ContextBase.h>
-#include <gps_extended.h>
-
-namespace loc_core {
-
-class LocAdapterProxyBase {
-private:
-    LocAdapterBase *mLocAdapterBase;
-protected:
-    inline LocAdapterProxyBase(const LOC_API_ADAPTER_EVENT_MASK_T mask,
-                   ContextBase* context):
-                   mLocAdapterBase(new LocAdapterBase(mask, context, this)) {
-    }
-    inline virtual ~LocAdapterProxyBase() {
-        delete mLocAdapterBase;
-    }
-    inline void updateEvtMask(LOC_API_ADAPTER_EVENT_MASK_T event,
-                              loc_registration_mask_status isEnabled) {
-        mLocAdapterBase->updateEvtMask(event,isEnabled);
-    }
-
-    inline uint32_t generateSessionId() {
-        return mLocAdapterBase->generateSessionId();
-    }
-public:
-    inline ContextBase* getContext() const {
-        return mLocAdapterBase->getContext();
-    }
-
-    inline virtual void handleEngineUpEvent() {};
-    inline virtual void handleEngineDownEvent() {};
-    inline virtual void reportPositionEvent(UlpLocation &location,
-                                            GpsLocationExtended &locationExtended,
-                                            enum loc_sess_status status,
-                                            LocPosTechMask loc_technology_mask) {
-
-        (void)location;
-        (void)locationExtended;
-        (void)status;
-        (void)loc_technology_mask;
-    }
-};
-
-} // namespace loc_core
-
-#endif //LOC_ADAPTER_PROXY_BASE_H
diff --git a/sdm845/core/LocApiBase.cpp b/sdm845/core/LocApiBase.cpp
deleted file mode 100644
index 2dcd4cd..0000000
--- a/sdm845/core/LocApiBase.cpp
+++ /dev/null
@@ -1,603 +0,0 @@
-/* Copyright (c) 2011-2014, 2016-2017 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 "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.
- *
- */
-#define LOG_NDEBUG 0 //Define to enable LOGV
-#define LOG_TAG "LocSvc_LocApiBase"
-
-#include <dlfcn.h>
-#include <LocApiBase.h>
-#include <LocAdapterBase.h>
-#include <platform_lib_log_util.h>
-#include <LocDualContext.h>
-
-namespace loc_core {
-
-#define TO_ALL_LOCADAPTERS(call) TO_ALL_ADAPTERS(mLocAdapters, (call))
-#define TO_1ST_HANDLING_LOCADAPTERS(call) TO_1ST_HANDLING_ADAPTER(mLocAdapters, (call))
-
-int hexcode(char *hexstring, int string_size,
-            const char *data, int data_size)
-{
-   int i;
-   for (i = 0; i < data_size; i++)
-   {
-      char ch = data[i];
-      if (i*2 + 3 <= string_size)
-      {
-         snprintf(&hexstring[i*2], 3, "%02X", ch);
-      }
-      else {
-         break;
-      }
-   }
-   return i;
-}
-
-int decodeAddress(char *addr_string, int string_size,
-                   const char *data, int data_size)
-{
-    const char addr_prefix = 0x91;
-    int i, idxOutput = 0;
-
-    if (!data || !addr_string) { return 0; }
-
-    if (data[0] != addr_prefix)
-    {
-        LOC_LOGW("decodeAddress: address prefix is not 0x%x but 0x%x", addr_prefix, data[0]);
-        addr_string[0] = '\0';
-        return 0; // prefix not correct
-    }
-
-    for (i = 1; i < data_size; i++)
-    {
-        unsigned char ch = data[i], low = ch & 0x0F, hi = ch >> 4;
-        if (low <= 9 && idxOutput < string_size - 1) { addr_string[idxOutput++] = low + '0'; }
-        if (hi <= 9 && idxOutput < string_size - 1) { addr_string[idxOutput++] = hi + '0'; }
-    }
-
-    addr_string[idxOutput] = '\0'; // Terminates the string
-
-    return idxOutput;
-}
-
-struct LocSsrMsg : public LocMsg {
-    LocApiBase* mLocApi;
-    inline LocSsrMsg(LocApiBase* locApi) :
-        LocMsg(), mLocApi(locApi)
-    {
-        locallog();
-    }
-    inline virtual void proc() const {
-        mLocApi->close();
-        mLocApi->open(mLocApi->getEvtMask());
-    }
-    inline void locallog() {
-        LOC_LOGV("LocSsrMsg");
-    }
-    inline virtual void log() {
-        locallog();
-    }
-};
-
-struct LocOpenMsg : public LocMsg {
-    LocApiBase* mLocApi;
-    LOC_API_ADAPTER_EVENT_MASK_T mMask;
-    inline LocOpenMsg(LocApiBase* locApi,
-                      LOC_API_ADAPTER_EVENT_MASK_T mask) :
-        LocMsg(), mLocApi(locApi), mMask(mask)
-    {
-        locallog();
-    }
-    inline virtual void proc() const {
-        mLocApi->open(mMask);
-    }
-    inline void locallog() {
-        LOC_LOGV("%s:%d]: LocOpen Mask: %x\n",
-                 __func__, __LINE__, mMask);
-    }
-    inline virtual void log() {
-        locallog();
-    }
-};
-
-LocApiBase::LocApiBase(const MsgTask* msgTask,
-                       LOC_API_ADAPTER_EVENT_MASK_T excludedMask,
-                       ContextBase* context) :
-    mExcludedMask(excludedMask), mMsgTask(msgTask),
-    mMask(0), mSupportedMsg(0), mContext(context)
-{
-    memset(mLocAdapters, 0, sizeof(mLocAdapters));
-    memset(mFeaturesSupported, 0, sizeof(mFeaturesSupported));
-}
-
-LOC_API_ADAPTER_EVENT_MASK_T LocApiBase::getEvtMask()
-{
-    LOC_API_ADAPTER_EVENT_MASK_T mask = 0;
-
-    TO_ALL_LOCADAPTERS(mask |= mLocAdapters[i]->getEvtMask());
-
-    return mask & ~mExcludedMask;
-}
-
-bool LocApiBase::isInSession()
-{
-    bool inSession = false;
-
-    for (int i = 0;
-         !inSession && i < MAX_ADAPTERS && NULL != mLocAdapters[i];
-         i++) {
-        inSession = mLocAdapters[i]->isInSession();
-    }
-
-    return inSession;
-}
-
-void LocApiBase::addAdapter(LocAdapterBase* adapter)
-{
-    for (int i = 0; i < MAX_ADAPTERS && mLocAdapters[i] != adapter; i++) {
-        if (mLocAdapters[i] == NULL) {
-            mLocAdapters[i] = adapter;
-            mMsgTask->sendMsg(new LocOpenMsg(this,
-                                             (adapter->getEvtMask())));
-            break;
-        }
-    }
-}
-
-void LocApiBase::removeAdapter(LocAdapterBase* adapter)
-{
-    for (int i = 0;
-         i < MAX_ADAPTERS && NULL != mLocAdapters[i];
-         i++) {
-        if (mLocAdapters[i] == adapter) {
-            mLocAdapters[i] = NULL;
-
-            // shift the rest of the adapters up so that the pointers
-            // in the array do not have holes.  This should be more
-            // performant, because the array maintenance is much much
-            // less frequent than event handlings, which need to linear
-            // search all the adapters
-            int j = i;
-            while (++i < MAX_ADAPTERS && mLocAdapters[i] != NULL);
-
-            // i would be MAX_ADAPTERS or point to a NULL
-            i--;
-            // i now should point to a none NULL adapter within valid
-            // range although i could be equal to j, but it won't hurt.
-            // No need to check it, as it gains nothing.
-            mLocAdapters[j] = mLocAdapters[i];
-            // this makes sure that we exit the for loop
-            mLocAdapters[i] = NULL;
-
-            // if we have an empty list of adapters
-            if (0 == i) {
-                close();
-            } else {
-                // else we need to remove the bit
-                mMsgTask->sendMsg(new LocOpenMsg(this, getEvtMask()));
-            }
-        }
-    }
-}
-
-void LocApiBase::updateEvtMask()
-{
-    mMsgTask->sendMsg(new LocOpenMsg(this, getEvtMask()));
-}
-
-void LocApiBase::handleEngineUpEvent()
-{
-    // This will take care of renegotiating the loc handle
-    mMsgTask->sendMsg(new LocSsrMsg(this));
-
-    LocDualContext::injectFeatureConfig(mContext);
-
-    // loop through adapters, and deliver to all adapters.
-    TO_ALL_LOCADAPTERS(mLocAdapters[i]->handleEngineUpEvent());
-}
-
-void LocApiBase::handleEngineDownEvent()
-{
-    // loop through adapters, and deliver to all adapters.
-    TO_ALL_LOCADAPTERS(mLocAdapters[i]->handleEngineDownEvent());
-}
-
-void LocApiBase::reportPosition(UlpLocation& location,
-                                GpsLocationExtended& locationExtended,
-                                enum loc_sess_status status,
-                                LocPosTechMask loc_technology_mask)
-{
-    // print the location info before delivering
-    LOC_LOGD("flags: %d\n  source: %d\n  latitude: %f\n  longitude: %f\n  "
-             "altitude: %f\n  speed: %f\n  bearing: %f\n  accuracy: %f\n  "
-             "timestamp: %lld\n  rawDataSize: %d\n  rawData: %p\n  "
-             "Session status: %d\n Technology mask: %u\n "
-             "SV used in fix (gps/glo/bds/gal/qzss) : (%x/%x/%x/%x/%x)",
-             location.gpsLocation.flags, location.position_source,
-             location.gpsLocation.latitude, location.gpsLocation.longitude,
-             location.gpsLocation.altitude, location.gpsLocation.speed,
-             location.gpsLocation.bearing, location.gpsLocation.accuracy,
-             location.gpsLocation.timestamp, location.rawDataSize,
-             location.rawData, status, loc_technology_mask,
-             locationExtended.gnss_sv_used_ids.gps_sv_used_ids_mask,
-             locationExtended.gnss_sv_used_ids.glo_sv_used_ids_mask,
-             locationExtended.gnss_sv_used_ids.bds_sv_used_ids_mask,
-             locationExtended.gnss_sv_used_ids.gal_sv_used_ids_mask,
-             locationExtended.gnss_sv_used_ids.qzss_sv_used_ids_mask);
-    // loop through adapters, and deliver to all adapters.
-    TO_ALL_LOCADAPTERS(
-        mLocAdapters[i]->reportPositionEvent(location, locationExtended,
-                                             status, loc_technology_mask)
-    );
-}
-
-void LocApiBase::reportWwanZppFix(LocGpsLocation &zppLoc)
-{
-    // loop through adapters, and deliver to the first handling adapter.
-    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->reportWwanZppFix(zppLoc));
-}
-
-void LocApiBase::reportSv(GnssSvNotification& svNotify)
-{
-    const char* constellationString[] = { "Unknown", "GPS", "SBAS", "GLONASS",
-        "QZSS", "BEIDOU", "GALILEO" };
-
-    // print the SV info before delivering
-    LOC_LOGV("num sv: %d\n"
-        "      sv: constellation svid         cN0"
-        "    elevation    azimuth    flags",
-        svNotify.count);
-    for (int i = 0; i < svNotify.count && i < LOC_GNSS_MAX_SVS; i++) {
-        if (svNotify.gnssSvs[i].type >
-            sizeof(constellationString) / sizeof(constellationString[0]) - 1) {
-            svNotify.gnssSvs[i].type = GNSS_SV_TYPE_UNKNOWN;
-        }
-        LOC_LOGV("   %03d: %*s  %02d    %f    %f    %f   0x%02X",
-            i,
-            13,
-            constellationString[svNotify.gnssSvs[i].type],
-            svNotify.gnssSvs[i].svId,
-            svNotify.gnssSvs[i].cN0Dbhz,
-            svNotify.gnssSvs[i].elevation,
-            svNotify.gnssSvs[i].azimuth,
-            svNotify.gnssSvs[i].gnssSvOptionsMask);
-    }
-    // loop through adapters, and deliver to all adapters.
-    TO_ALL_LOCADAPTERS(
-        mLocAdapters[i]->reportSvEvent(svNotify)
-        );
-}
-
-void LocApiBase::reportSvMeasurement(GnssSvMeasurementSet &svMeasurementSet)
-{
-    // loop through adapters, and deliver to all adapters.
-    TO_ALL_LOCADAPTERS(
-        mLocAdapters[i]->reportSvMeasurementEvent(svMeasurementSet)
-    );
-}
-
-void LocApiBase::reportSvPolynomial(GnssSvPolynomial &svPolynomial)
-{
-    // loop through adapters, and deliver to all adapters.
-    TO_ALL_LOCADAPTERS(
-        mLocAdapters[i]->reportSvPolynomialEvent(svPolynomial)
-    );
-}
-
-void LocApiBase::reportStatus(LocGpsStatusValue status)
-{
-    // loop through adapters, and deliver to all adapters.
-    TO_ALL_LOCADAPTERS(mLocAdapters[i]->reportStatus(status));
-}
-
-void LocApiBase::reportNmea(const char* nmea, int length)
-{
-    // loop through adapters, and deliver to all adapters.
-    TO_ALL_LOCADAPTERS(mLocAdapters[i]->reportNmeaEvent(nmea, length));
-}
-
-void LocApiBase::reportXtraServer(const char* url1, const char* url2,
-                                  const char* url3, const int maxlength)
-{
-    // loop through adapters, and deliver to the first handling adapter.
-    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->reportXtraServer(url1, url2, url3, maxlength));
-
-}
-
-void LocApiBase::requestXtraData()
-{
-    // loop through adapters, and deliver to the first handling adapter.
-    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->requestXtraData());
-}
-
-void LocApiBase::requestTime()
-{
-    // loop through adapters, and deliver to the first handling adapter.
-    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->requestTime());
-}
-
-void LocApiBase::requestLocation()
-{
-    // loop through adapters, and deliver to the first handling adapter.
-    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->requestLocation());
-}
-
-void LocApiBase::requestATL(int connHandle, LocAGpsType agps_type)
-{
-    // loop through adapters, and deliver to the first handling adapter.
-    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->requestATL(connHandle, agps_type));
-}
-
-void LocApiBase::releaseATL(int connHandle)
-{
-    // loop through adapters, and deliver to the first handling adapter.
-    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->releaseATL(connHandle));
-}
-
-void LocApiBase::requestSuplES(int connHandle)
-{
-    // loop through adapters, and deliver to the first handling adapter.
-    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->requestSuplES(connHandle));
-}
-
-void LocApiBase::reportDataCallOpened()
-{
-    // loop through adapters, and deliver to the first handling adapter.
-    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->reportDataCallOpened());
-}
-
-void LocApiBase::reportDataCallClosed()
-{
-    // loop through adapters, and deliver to the first handling adapter.
-    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->reportDataCallClosed());
-}
-
-void LocApiBase::requestNiNotify(GnssNiNotification &notify, const void* data)
-{
-    // loop through adapters, and deliver to the first handling adapter.
-    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->requestNiNotifyEvent(notify, data));
-}
-
-void LocApiBase::saveSupportedMsgList(uint64_t supportedMsgList)
-{
-    mSupportedMsg = supportedMsgList;
-}
-
-void LocApiBase::saveSupportedFeatureList(uint8_t *featureList)
-{
-    memcpy((void *)mFeaturesSupported, (void *)featureList, sizeof(mFeaturesSupported));
-}
-
-void* LocApiBase :: getSibling()
-    DEFAULT_IMPL(NULL)
-
-LocApiProxyBase* LocApiBase :: getLocApiProxy()
-    DEFAULT_IMPL(NULL)
-
-void LocApiBase::reportGnssMeasurementData(GnssMeasurementsNotification& measurementsNotify)
-{
-    // loop through adapters, and deliver to all adapters.
-    TO_ALL_LOCADAPTERS(mLocAdapters[i]->reportGnssMeasurementDataEvent(measurementsNotify));
-}
-
-enum loc_api_adapter_err LocApiBase::
-   open(LOC_API_ADAPTER_EVENT_MASK_T mask)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    close()
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    startFix(const LocPosMode& posMode)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    stopFix()
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-LocationError LocApiBase::
-    deleteAidingData(const GnssAidingData& data)
-DEFAULT_IMPL(LOCATION_ERROR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    enableData(int enable)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    setAPN(char* apn, int len)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    injectPosition(double latitude, double longitude, float accuracy)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    setTime(LocGpsUtcTime time, int64_t timeReference, int uncertainty)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    setXtraData(char* data, int length)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    requestXtraServer()
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-   atlOpenStatus(int handle, int is_succ, char* apn,
-                 AGpsBearerType bear, LocAGpsType agpsType)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    atlCloseStatus(int handle, int is_succ)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    setPositionMode(const LocPosMode& posMode)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-LocationError LocApiBase::
-    setServer(const char* url, int len)
-DEFAULT_IMPL(LOCATION_ERROR_SUCCESS)
-
-LocationError LocApiBase::
-    setServer(unsigned int ip, int port, LocServerType type)
-DEFAULT_IMPL(LOCATION_ERROR_SUCCESS)
-
-LocationError LocApiBase::
-    informNiResponse(GnssNiResponse userResponse, const void* passThroughData)
-DEFAULT_IMPL(LOCATION_ERROR_SUCCESS)
-
-LocationError LocApiBase::
-    setSUPLVersion(GnssConfigSuplVersion version)
-DEFAULT_IMPL(LOCATION_ERROR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    setNMEATypes (uint32_t typesMask)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-LocationError LocApiBase::
-    setLPPConfig(GnssConfigLppProfile profile)
-DEFAULT_IMPL(LOCATION_ERROR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    setSensorControlConfig(int sensorUsage,
-                           int sensorProvider)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    setSensorProperties(bool gyroBiasVarianceRandomWalk_valid,
-                        float gyroBiasVarianceRandomWalk,
-                        bool accelBiasVarianceRandomWalk_valid,
-                        float accelBiasVarianceRandomWalk,
-                        bool angleBiasVarianceRandomWalk_valid,
-                        float angleBiasVarianceRandomWalk,
-                        bool rateBiasVarianceRandomWalk_valid,
-                        float rateBiasVarianceRandomWalk,
-                        bool velocityBiasVarianceRandomWalk_valid,
-                        float velocityBiasVarianceRandomWalk)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-    setSensorPerfControlConfig(int controlMode,
-                               int accelSamplesPerBatch,
-                               int accelBatchesPerSec,
-                               int gyroSamplesPerBatch,
-                               int gyroBatchesPerSec,
-                               int accelSamplesPerBatchHigh,
-                               int accelBatchesPerSecHigh,
-                               int gyroSamplesPerBatchHigh,
-                               int gyroBatchesPerSecHigh,
-                               int algorithmConfig)
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-LocationError LocApiBase::
-    setAGLONASSProtocol(GnssConfigAGlonassPositionProtocolMask aGlonassProtocol)
-DEFAULT_IMPL(LOCATION_ERROR_SUCCESS)
-
-LocationError LocApiBase::
-    setLPPeProtocolCp(GnssConfigLppeControlPlaneMask lppeCP)
-DEFAULT_IMPL(LOCATION_ERROR_SUCCESS)
-
-LocationError LocApiBase::
-    setLPPeProtocolUp(GnssConfigLppeUserPlaneMask lppeUP)
-DEFAULT_IMPL(LOCATION_ERROR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-   getWwanZppFix()
-DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-
-enum loc_api_adapter_err LocApiBase::
-   getBestAvailableZppFix(LocGpsLocation& zppLoc)
-{
-   memset(&zppLoc, 0, sizeof(zppLoc));
-   DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-}
-
-enum loc_api_adapter_err LocApiBase::
-   getBestAvailableZppFix(LocGpsLocation & zppLoc, LocPosTechMask & tech_mask)
-{
-   memset(&zppLoc, 0, sizeof(zppLoc));
-   memset(&tech_mask, 0, sizeof(tech_mask));
-   DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
-}
-
-int LocApiBase::
-    initDataServiceClient(bool isDueToSsr)
-DEFAULT_IMPL(-1)
-
-int LocApiBase::
-    openAndStartDataCall()
-DEFAULT_IMPL(-1)
-
-void LocApiBase::
-    stopDataCall()
-DEFAULT_IMPL()
-
-void LocApiBase::
-    closeDataCall()
-DEFAULT_IMPL()
-
-void LocApiBase::
-    releaseDataServiceClient()
-DEFAULT_IMPL()
-
-LocationError LocApiBase::
-    setGpsLock(GnssConfigGpsLock lock)
-DEFAULT_IMPL(LOCATION_ERROR_SUCCESS)
-
-void LocApiBase::
-    installAGpsCert(const LocDerEncodedCertificate* pData,
-                    size_t length,
-                    uint32_t slotBitMask)
-DEFAULT_IMPL()
-
-int LocApiBase::
-    getGpsLock()
-DEFAULT_IMPL(-1)
-
-LocationError LocApiBase::
-    setXtraVersionCheck(uint32_t check)
-DEFAULT_IMPL(LOCATION_ERROR_SUCCESS)
-
-bool LocApiBase::
-    gnssConstellationConfig()
-DEFAULT_IMPL(false)
-
-bool LocApiBase::
-    isFeatureSupported(uint8_t featureVal)
-{
-    uint8_t arrayIndex = featureVal >> 3;
-    uint8_t bitPos = featureVal & 7;
-
-    if (arrayIndex >= MAX_FEATURE_LENGTH) return false;
-    return ((mFeaturesSupported[arrayIndex] >> bitPos ) & 0x1);
-}
-
-} // namespace loc_core
diff --git a/sdm845/core/LocApiBase.h b/sdm845/core/LocApiBase.h
deleted file mode 100644
index 86610e7..0000000
--- a/sdm845/core/LocApiBase.h
+++ /dev/null
@@ -1,265 +0,0 @@
-/* Copyright (c) 2011-2014, 2016-2017 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 "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 LOC_API_BASE_H
-#define LOC_API_BASE_H
-
-#include <stddef.h>
-#include <ctype.h>
-#include <gps_extended.h>
-#include <LocationAPI.h>
-#include <MsgTask.h>
-#include <platform_lib_log_util.h>
-
-namespace loc_core {
-class ContextBase;
-
-int hexcode(char *hexstring, int string_size,
-            const char *data, int data_size);
-int decodeAddress(char *addr_string, int string_size,
-                  const char *data, int data_size);
-
-#define MAX_ADAPTERS          10
-#define MAX_FEATURE_LENGTH    100
-
-#define TO_ALL_ADAPTERS(adapters, call)                                \
-    for (int i = 0; i < MAX_ADAPTERS && NULL != (adapters)[i]; i++) {  \
-        call;                                                          \
-    }
-
-#define TO_1ST_HANDLING_ADAPTER(adapters, call)                              \
-    for (int i = 0; i <MAX_ADAPTERS && NULL != (adapters)[i] && !(call); i++);
-
-enum xtra_version_check {
-    DISABLED,
-    AUTO,
-    XTRA2,
-    XTRA3
-};
-
-class LocAdapterBase;
-struct LocSsrMsg;
-struct LocOpenMsg;
-
-class LocApiProxyBase {
-public:
-    inline LocApiProxyBase() {}
-    inline virtual ~LocApiProxyBase() {}
-    inline virtual void* getSibling2() { return NULL; }
-};
-
-class LocApiBase {
-    friend struct LocSsrMsg;
-    //LocOpenMsg calls open() which makes it necessary to declare
-    //it as a friend
-    friend struct LocOpenMsg;
-    friend class ContextBase;
-    const MsgTask* mMsgTask;
-    ContextBase *mContext;
-    LocAdapterBase* mLocAdapters[MAX_ADAPTERS];
-    uint64_t mSupportedMsg;
-    uint8_t mFeaturesSupported[MAX_FEATURE_LENGTH];
-
-protected:
-    virtual enum loc_api_adapter_err
-        open(LOC_API_ADAPTER_EVENT_MASK_T mask);
-    virtual enum loc_api_adapter_err
-        close();
-    LOC_API_ADAPTER_EVENT_MASK_T getEvtMask();
-    LOC_API_ADAPTER_EVENT_MASK_T mMask;
-    LocApiBase(const MsgTask* msgTask,
-               LOC_API_ADAPTER_EVENT_MASK_T excludedMask,
-               ContextBase* context = NULL);
-    inline virtual ~LocApiBase() { close(); }
-    bool isInSession();
-    const LOC_API_ADAPTER_EVENT_MASK_T mExcludedMask;
-
-public:
-    inline void sendMsg(const LocMsg* msg) const {
-        mMsgTask->sendMsg(msg);
-    }
-    void addAdapter(LocAdapterBase* adapter);
-    void removeAdapter(LocAdapterBase* adapter);
-
-    // upward calls
-    void handleEngineUpEvent();
-    void handleEngineDownEvent();
-    void reportPosition(UlpLocation& location,
-                        GpsLocationExtended& locationExtended,
-                        enum loc_sess_status status,
-                        LocPosTechMask loc_technology_mask =
-                                  LOC_POS_TECH_MASK_DEFAULT);
-    void reportSv(GnssSvNotification& svNotify);
-    void reportSvMeasurement(GnssSvMeasurementSet &svMeasurementSet);
-    void reportSvPolynomial(GnssSvPolynomial &svPolynomial);
-    void reportStatus(LocGpsStatusValue status);
-    void reportNmea(const char* nmea, int length);
-    void reportXtraServer(const char* url1, const char* url2,
-                          const char* url3, const int maxlength);
-    void requestXtraData();
-    void requestTime();
-    void requestLocation();
-    void requestATL(int connHandle, LocAGpsType agps_type);
-    void releaseATL(int connHandle);
-    void requestSuplES(int connHandle);
-    void reportDataCallOpened();
-    void reportDataCallClosed();
-    void requestNiNotify(GnssNiNotification &notify, const void* data);
-    void saveSupportedMsgList(uint64_t supportedMsgList);
-    void reportGnssMeasurementData(GnssMeasurementsNotification& measurementsNotify);
-    void saveSupportedFeatureList(uint8_t *featureList);
-    void reportWwanZppFix(LocGpsLocation &zppLoc);
-
-    // downward calls
-    // All below functions are to be defined by adapter specific modules:
-    // RPC, QMI, etc.  The default implementation is empty.
-
-    virtual void* getSibling();
-    virtual LocApiProxyBase* getLocApiProxy();
-    virtual enum loc_api_adapter_err
-        startFix(const LocPosMode& posMode);
-    virtual enum loc_api_adapter_err
-        stopFix();
-    virtual LocationError
-        deleteAidingData(const GnssAidingData& data);
-    virtual enum loc_api_adapter_err
-        enableData(int enable);
-    virtual enum loc_api_adapter_err
-        setAPN(char* apn, int len);
-    virtual enum loc_api_adapter_err
-        injectPosition(double latitude, double longitude, float accuracy);
-    virtual enum loc_api_adapter_err
-        setTime(LocGpsUtcTime time, int64_t timeReference, int uncertainty);
-    virtual enum loc_api_adapter_err
-        setXtraData(char* data, int length);
-    virtual enum loc_api_adapter_err
-        requestXtraServer();
-    virtual enum loc_api_adapter_err
-        atlOpenStatus(int handle, int is_succ, char* apn, AGpsBearerType bear, LocAGpsType agpsType);
-    virtual enum loc_api_adapter_err
-        atlCloseStatus(int handle, int is_succ);
-    virtual enum loc_api_adapter_err
-        setPositionMode(const LocPosMode& posMode);
-    virtual LocationError
-        setServer(const char* url, int len);
-    virtual LocationError
-        setServer(unsigned int ip, int port,
-                  LocServerType type);
-    virtual LocationError
-        informNiResponse(GnssNiResponse userResponse, const void* passThroughData);
-    virtual LocationError setSUPLVersion(GnssConfigSuplVersion version);
-    virtual enum loc_api_adapter_err
-        setNMEATypes (uint32_t typesMask);
-    virtual LocationError setLPPConfig(GnssConfigLppProfile profile);
-    virtual enum loc_api_adapter_err
-        setSensorControlConfig(int sensorUsage, int sensorProvider);
-    virtual enum loc_api_adapter_err
-        setSensorProperties(bool gyroBiasVarianceRandomWalk_valid,
-                            float gyroBiasVarianceRandomWalk,
-                            bool accelBiasVarianceRandomWalk_valid,
-                            float accelBiasVarianceRandomWalk,
-                            bool angleBiasVarianceRandomWalk_valid,
-                            float angleBiasVarianceRandomWalk,
-                            bool rateBiasVarianceRandomWalk_valid,
-                            float rateBiasVarianceRandomWalk,
-                            bool velocityBiasVarianceRandomWalk_valid,
-                            float velocityBiasVarianceRandomWalk);
-    virtual enum loc_api_adapter_err
-        setSensorPerfControlConfig(int controlMode,
-                               int accelSamplesPerBatch,
-                               int accelBatchesPerSec,
-                               int gyroSamplesPerBatch,
-                               int gyroBatchesPerSec,
-                               int accelSamplesPerBatchHigh,
-                               int accelBatchesPerSecHigh,
-                               int gyroSamplesPerBatchHigh,
-                               int gyroBatchesPerSecHigh,
-                               int algorithmConfig);
-    virtual LocationError
-        setAGLONASSProtocol(GnssConfigAGlonassPositionProtocolMask aGlonassProtocol);
-    virtual LocationError setLPPeProtocolCp(GnssConfigLppeControlPlaneMask lppeCP);
-    virtual LocationError setLPPeProtocolUp(GnssConfigLppeUserPlaneMask lppeUP);
-    virtual enum loc_api_adapter_err
-        getWwanZppFix();
-    virtual enum loc_api_adapter_err
-        getBestAvailableZppFix(LocGpsLocation & zppLoc);
-    virtual enum loc_api_adapter_err
-        getBestAvailableZppFix(LocGpsLocation & zppLoc, LocPosTechMask & tech_mask);
-    virtual int initDataServiceClient(bool isDueToSsr);
-    virtual int openAndStartDataCall();
-    virtual void stopDataCall();
-    virtual void closeDataCall();
-    virtual void releaseDataServiceClient();
-    virtual void installAGpsCert(const LocDerEncodedCertificate* pData,
-                                 size_t length,
-                                 uint32_t slotBitMask);
-    inline virtual void setInSession(bool inSession) {
-
-        (void)inSession;
-    }
-    inline bool isMessageSupported (LocCheckingMessagesID msgID) const {
-
-        // confirm if msgID is not larger than the number of bits in
-        // mSupportedMsg
-        if ((uint64_t)msgID > (sizeof(mSupportedMsg) << 3)) {
-            return false;
-        } else {
-            uint32_t messageChecker = 1 << msgID;
-            return (messageChecker & mSupportedMsg) == messageChecker;
-        }
-    }
-
-    void updateEvtMask();
-
-    virtual LocationError setGpsLock(GnssConfigGpsLock lock);
-    /*
-      Returns
-      Current value of GPS Lock on success
-      -1 on failure
-     */
-    virtual int getGpsLock(void);
-
-    virtual LocationError setXtraVersionCheck(uint32_t check);
-    /*
-      Check if the modem support the service
-     */
-    virtual bool gnssConstellationConfig();
-
-    /*
-       Check if a feature is supported
-      */
-    bool isFeatureSupported(uint8_t featureVal);
-};
-
-typedef LocApiBase* (getLocApi_t)(const MsgTask* msgTask,
-                                  LOC_API_ADAPTER_EVENT_MASK_T exMask,
-                                  ContextBase *context);
-
-} // namespace loc_core
-
-#endif //LOC_API_BASE_H
diff --git a/sdm845/core/LocDualContext.cpp b/sdm845/core/LocDualContext.cpp
deleted file mode 100644
index 90eacff..0000000
--- a/sdm845/core/LocDualContext.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-/* Copyright (c) 2011-2014, 2016-2017 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 "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.
- *
- */
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_DualCtx"
-
-#include <cutils/sched_policy.h>
-#include <unistd.h>
-#include <LocDualContext.h>
-#include <msg_q.h>
-#include <platform_lib_log_util.h>
-#include <loc_log.h>
-#include <SystemStatus.h>
-
-namespace loc_core {
-
-// nothing exclude for foreground
-const LOC_API_ADAPTER_EVENT_MASK_T
-LocDualContext::mFgExclMask = 0;
-// excluded events for background clients
-const LOC_API_ADAPTER_EVENT_MASK_T
-LocDualContext::mBgExclMask =
-    (LOC_API_ADAPTER_BIT_SATELLITE_REPORT |
-     LOC_API_ADAPTER_BIT_NMEA_1HZ_REPORT |
-     LOC_API_ADAPTER_BIT_NMEA_POSITION_REPORT |
-     LOC_API_ADAPTER_BIT_IOCTL_REPORT |
-     LOC_API_ADAPTER_BIT_STATUS_REPORT |
-     LOC_API_ADAPTER_BIT_GEOFENCE_GEN_ALERT |
-     LOC_API_ADAPTER_BIT_GNSS_MEASUREMENT);
-
-const MsgTask* LocDualContext::mMsgTask = NULL;
-ContextBase* LocDualContext::mFgContext = NULL;
-ContextBase* LocDualContext::mBgContext = NULL;
-ContextBase* LocDualContext::mInjectContext = NULL;
-SystemStatus* LocDualContext::mSystemStatus = NULL;
-// the name must be shorter than 15 chars
-const char* LocDualContext::mLocationHalName = "Loc_hal_worker";
-#ifndef USE_GLIB
-const char* LocDualContext::mLBSLibName = "liblbs_core.so";
-#else
-const char* LocDualContext::mLBSLibName = "liblbs_core.so.1";
-#endif
-
-pthread_mutex_t LocDualContext::mGetLocContextMutex = PTHREAD_MUTEX_INITIALIZER;
-
-const MsgTask* LocDualContext::getMsgTask(LocThread::tCreate tCreator,
-                                          const char* name, bool joinable)
-{
-    if (NULL == mMsgTask) {
-        mMsgTask = new MsgTask(tCreator, name, joinable);
-    }
-    return mMsgTask;
-}
-
-inline
-const MsgTask* LocDualContext::getMsgTask(const char* name, bool joinable) {
-    return getMsgTask((LocThread::tCreate)NULL, name, joinable);
-}
-
-ContextBase* LocDualContext::getLocFgContext(LocThread::tCreate tCreator,
-            LocMsg* firstMsg, const char* name, bool joinable)
-{
-    pthread_mutex_lock(&LocDualContext::mGetLocContextMutex);
-    LOC_LOGD("%s:%d]: querying ContextBase with tCreator", __func__, __LINE__);
-    if (NULL == mFgContext) {
-        LOC_LOGD("%s:%d]: creating msgTask with tCreator", __func__, __LINE__);
-        const MsgTask* msgTask = getMsgTask(tCreator, name, joinable);
-        mFgContext = new LocDualContext(msgTask,
-                                        mFgExclMask);
-    }
-    if(NULL == mInjectContext) {
-        LOC_LOGD("%s:%d]: mInjectContext is FgContext", __func__, __LINE__);
-        mInjectContext = mFgContext;
-        injectFeatureConfig(mInjectContext);
-    }
-    pthread_mutex_unlock(&LocDualContext::mGetLocContextMutex);
-
-    if (firstMsg) {
-        mFgContext->sendMsg(firstMsg);
-    }
-
-    return mFgContext;
-}
-
-ContextBase* LocDualContext::getLocBgContext(LocThread::tCreate tCreator,
-            LocMsg* firstMsg, const char* name, bool joinable)
-{
-    pthread_mutex_lock(&LocDualContext::mGetLocContextMutex);
-    LOC_LOGD("%s:%d]: querying ContextBase with tCreator", __func__, __LINE__);
-    if (NULL == mBgContext) {
-        LOC_LOGD("%s:%d]: creating msgTask with tCreator", __func__, __LINE__);
-        const MsgTask* msgTask = getMsgTask(tCreator, name, joinable);
-        mBgContext = new LocDualContext(msgTask,
-                                        mBgExclMask);
-    }
-    if(NULL == mInjectContext) {
-        LOC_LOGD("%s:%d]: mInjectContext is BgContext", __func__, __LINE__);
-        mInjectContext = mBgContext;
-        injectFeatureConfig(mInjectContext);
-    }
-    pthread_mutex_unlock(&LocDualContext::mGetLocContextMutex);
-
-    if (firstMsg) {
-        mBgContext->sendMsg(firstMsg);
-    }
-
-    return mBgContext;
-}
-
-void LocDualContext :: injectFeatureConfig(ContextBase *curContext)
-{
-    LOC_LOGD("%s:%d]: Enter", __func__, __LINE__);
-    if(curContext == mInjectContext) {
-        LOC_LOGD("%s:%d]: Calling LBSProxy (%p) to inject feature config",
-                 __func__, __LINE__, ((LocDualContext *)mInjectContext)->mLBSProxy);
-        ((LocDualContext *)mInjectContext)->mLBSProxy->injectFeatureConfig(curContext);
-    }
-    LOC_LOGD("%s:%d]: Exit", __func__, __LINE__);
-}
-
-LocDualContext::LocDualContext(const MsgTask* msgTask,
-                               LOC_API_ADAPTER_EVENT_MASK_T exMask) :
-    ContextBase(msgTask, exMask, mLBSLibName)
-{
-}
-
-SystemStatus* LocDualContext::getSystemStatus(void)
-{
-    pthread_mutex_lock(&LocDualContext::mGetLocContextMutex);
-    if (NULL == mSystemStatus) {
-        mSystemStatus = new SystemStatus();
-    }
-    pthread_mutex_unlock(&LocDualContext::mGetLocContextMutex);
-    return  mSystemStatus;
-}
-
-}
diff --git a/sdm845/core/LocDualContext.h b/sdm845/core/LocDualContext.h
deleted file mode 100644
index 7642152..0000000
--- a/sdm845/core/LocDualContext.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright (c) 2011-2014, 2017 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 "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 __LOC_ENG_CONTEXT__
-#define __LOC_ENG_CONTEXT__
-
-#include <stdbool.h>
-#include <ctype.h>
-#include <dlfcn.h>
-#include <ContextBase.h>
-
-namespace loc_core {
-
-class SystemStatus;
-
-class LocDualContext : public ContextBase {
-    static const MsgTask* mMsgTask;
-    static ContextBase* mFgContext;
-    static ContextBase* mBgContext;
-    static ContextBase* mInjectContext;
-    static const MsgTask* getMsgTask(LocThread::tCreate tCreator,
-                                     const char* name, bool joinable = true);
-    static const MsgTask* getMsgTask(const char* name, bool joinable = true);
-    static pthread_mutex_t mGetLocContextMutex;
-    static SystemStatus* mSystemStatus;
-
-protected:
-    LocDualContext(const MsgTask* msgTask,
-                   LOC_API_ADAPTER_EVENT_MASK_T exMask);
-    inline virtual ~LocDualContext() {}
-
-public:
-    static const char* mLBSLibName;
-    static const LOC_API_ADAPTER_EVENT_MASK_T mFgExclMask;
-    static const LOC_API_ADAPTER_EVENT_MASK_T mBgExclMask;
-    static const char* mLocationHalName;
-
-    static ContextBase* getLocFgContext(LocThread::tCreate tCreator, LocMsg* firstMsg,
-                                        const char* name, bool joinable = true);
-    inline static ContextBase* getLocFgContext(const char* name, bool joinable = true) {
-        return getLocFgContext(NULL, NULL, name, joinable);
-    }
-    static ContextBase* getLocBgContext(LocThread::tCreate tCreator, LocMsg* firstMsg,
-                                        const char* name, bool joinable = true);
-    inline static ContextBase* getLocBgContext(const char* name, bool joinable = true) {
-        return getLocBgContext(NULL, NULL, name, joinable);
-    }
-
-    static void injectFeatureConfig(ContextBase *context);
-    static SystemStatus* getSystemStatus(void);
-};
-
-}
-
-#endif //__LOC_ENG_CONTEXT__
diff --git a/sdm845/core/Makefile.am b/sdm845/core/Makefile.am
deleted file mode 100644
index 61abac4..0000000
--- a/sdm845/core/Makefile.am
+++ /dev/null
@@ -1,47 +0,0 @@
-AM_CFLAGS = -I./ \
-            -I../utils \
-            $(LOCPLA_CFLAGS) \
-            $(GPSUTILS_CFLAGS) \
-            -I$(WORKSPACE)/gps-noship/flp \
-            -D__func__=__PRETTY_FUNCTION__ \
-            -fno-short-enums
-
-libloc_core_la_h_sources = \
-           LocApiBase.h \
-           LocAdapterBase.h \
-           ContextBase.h \
-           LocDualContext.h \
-           LBSProxyBase.h \
-           UlpProxyBase.h \
-           loc_core_log.h \
-           LocAdapterProxyBase.h \
-           SystemStatus.h
-
-libloc_core_la_c_sources = \
-           LocApiBase.cpp \
-           LocAdapterBase.cpp \
-           ContextBase.cpp \
-           LocDualContext.cpp \
-           loc_core_log.cpp \
-           SystemStatus.cpp
-
-library_includedir = $(pkgincludedir)/core
-
-library_include_HEADERS = $(libloc_core_la_h_sources)
-
-libloc_core_la_SOURCES = $(libloc_core_la_c_sources)
-
-if USE_GLIB
-libloc_core_la_CFLAGS = -DUSE_GLIB $(AM_CFLAGS) @GLIB_CFLAGS@
-libloc_core_la_LDFLAGS = -lstdc++ -Wl,-z,defs -lpthread @GLIB_LIBS@ -shared -version-info 1:0:0
-libloc_core_la_CPPFLAGS = -DUSE_GLIB $(AM_CFLAGS) $(AM_CPPFLAGS) @GLIB_CFLAGS@
-else
-libloc_core_la_CFLAGS = $(AM_CFLAGS)
-libloc_core_la_LDFLAGS = -Wl,-z,defs -lpthread -shared -version-info 1:0:0
-libloc_core_la_CPPFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS)
-endif
-
-libloc_core_la_LIBADD = -lstdc++ -ldl $(LOCPLA_LIBS) $(GPSUTILS_LIBS)
-
-#Create and Install libraries
-lib_LTLIBRARIES = libloc_core.la
diff --git a/sdm845/core/SystemStatus.cpp b/sdm845/core/SystemStatus.cpp
deleted file mode 100644
index 939005d..0000000
--- a/sdm845/core/SystemStatus.cpp
+++ /dev/null
@@ -1,1674 +0,0 @@
-/* Copyright (c) 2017, 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 "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.
- *
- */
-#define LOG_TAG "LocSvc_SystemStatus"
-
-#include <string>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-#include <pthread.h>
-#include <platform_lib_log_util.h>
-#include <loc_nmea.h>
-#include <SystemStatus.h>
-
-namespace loc_core
-{
-
-/******************************************************************************
- SystemStatusNmeaBase - base class for all NMEA parsers
-******************************************************************************/
-class SystemStatusNmeaBase
-{
-protected:
-    std::vector<std::string> mField;
-
-    SystemStatusNmeaBase(const char *str_in, uint32_t len_in)
-    {
-        // check size and talker
-        if (!loc_nmea_is_debug(str_in, len_in)) {
-            return;
-        }
-
-        std::string parser(str_in);
-        std::string::size_type index = 0;
-
-        // verify checksum field
-        index = parser.find("*");
-        if (index == std::string::npos) {
-            return;
-        }
-        parser[index] = ',';
-
-        // tokenize parser
-        while (1) {
-            std::string str;
-            index = parser.find(",");
-            if (index == std::string::npos) {
-                break;
-            }
-            str = parser.substr(0, index);
-            parser = parser.substr(index + 1);
-            mField.push_back(str);
-        }
-    }
-
-    virtual ~SystemStatusNmeaBase() { }
-
-public:
-    static const uint32_t NMEA_MINSIZE = DEBUG_NMEA_MINSIZE;
-    static const uint32_t NMEA_MAXSIZE = DEBUG_NMEA_MAXSIZE;
-};
-
-/******************************************************************************
- SystemStatusPQWM1
-******************************************************************************/
-class SystemStatusPQWM1
-{
-public:
-    uint16_t mGpsWeek;    // x1
-    uint32_t mGpsTowMs;   // x2
-    uint8_t  mTimeValid;  // x3
-    uint8_t  mTimeSource; // x4
-    int32_t  mTimeUnc;    // x5
-    int32_t  mClockFreqBias; // x6
-    int32_t  mClockFreqBiasUnc; // x7
-    uint8_t  mXoState;    // x8
-    int32_t  mPgaGain;    // x9
-    uint32_t mGpsBpAmpI;  // xA
-    uint32_t mGpsBpAmpQ;  // xB
-    uint32_t mAdcI;       // xC
-    uint32_t mAdcQ;       // xD
-    uint32_t mJammerGps;  // xE
-    uint32_t mJammerGlo;  // xF
-    uint32_t mJammerBds;  // x10
-    uint32_t mJammerGal;  // x11
-    uint32_t mRecErrorRecovery; // x12
-    double   mAgcGps;     // x13
-    double   mAgcGlo;     // x14
-    double   mAgcBds;     // x15
-    double   mAgcGal;     // x16
-    int32_t  mLeapSeconds;// x17
-    int32_t  mLeapSecUnc; // x18
-};
-
-// parser
-class SystemStatusPQWM1parser : public SystemStatusNmeaBase
-{
-private:
-    enum
-    {
-        eTalker = 0,
-        eGpsWeek = 1,
-        eGpsTowMs = 2,
-        eTimeValid = 3,
-        eTimeSource = 4,
-        eTimeUnc = 5,
-        eClockFreqBias = 6,
-        eClockFreqBiasUnc = 7,
-        eXoState = 8,
-        ePgaGain = 9,
-        eGpsBpAmpI = 10,
-        eGpsBpAmpQ = 11,
-        eAdcI = 12,
-        eAdcQ = 13,
-        eJammerGps = 14,
-        eJammerGlo = 15,
-        eJammerBds = 16,
-        eJammerGal = 17,
-        eRecErrorRecovery = 18,
-        eAgcGps = 19,
-        eAgcGlo = 20,
-        eAgcBds = 21,
-        eAgcGal = 22,
-        eLeapSeconds = 23,
-        eLeapSecUnc = 24,
-        eMax
-    };
-    SystemStatusPQWM1 mM1;
-
-public:
-    inline uint16_t   getGpsWeek()    { return mM1.mGpsWeek; }
-    inline uint32_t   getGpsTowMs()   { return mM1.mGpsTowMs; }
-    inline uint8_t    getTimeValid()  { return mM1.mTimeValid; }
-    inline uint8_t    getTimeSource() { return mM1.mTimeSource; }
-    inline int32_t    getTimeUnc()    { return mM1.mTimeUnc; }
-    inline int32_t    getClockFreqBias() { return mM1.mClockFreqBias; }
-    inline int32_t    getClockFreqBiasUnc() { return mM1.mClockFreqBiasUnc; }
-    inline uint8_t    getXoState()    { return mM1.mXoState;}
-    inline int32_t    getPgaGain()    { return mM1.mPgaGain;          }
-    inline uint32_t   getGpsBpAmpI()  { return mM1.mGpsBpAmpI;        }
-    inline uint32_t   getGpsBpAmpQ()  { return mM1.mGpsBpAmpQ;        }
-    inline uint32_t   getAdcI()       { return mM1.mAdcI;             }
-    inline uint32_t   getAdcQ()       { return mM1.mAdcQ;             }
-    inline uint32_t   getJammerGps()  { return mM1.mJammerGps;        }
-    inline uint32_t   getJammerGlo()  { return mM1.mJammerGlo;        }
-    inline uint32_t   getJammerBds()  { return mM1.mJammerBds;        }
-    inline uint32_t   getJammerGal()  { return mM1.mJammerGal;        }
-    inline uint32_t   getAgcGps()     { return mM1.mAgcGps;           }
-    inline uint32_t   getAgcGlo()     { return mM1.mAgcGlo;           }
-    inline uint32_t   getAgcBds()     { return mM1.mAgcBds;           }
-    inline uint32_t   getAgcGal()     { return mM1.mAgcGal;           }
-    inline uint32_t   getRecErrorRecovery() { return mM1.mRecErrorRecovery; }
-    inline int32_t    getLeapSeconds(){ return mM1.mLeapSeconds; }
-    inline int32_t    getLeapSecUnc() { return mM1.mLeapSecUnc; }
-
-    SystemStatusPQWM1parser(const char *str_in, uint32_t len_in)
-        : SystemStatusNmeaBase(str_in, len_in)
-    {
-        memset(&mM1, 0, sizeof(mM1));
-        if (mField.size() < eMax) {
-            LOC_LOGE("PQWM1parser - invalid size=%d", mField.size());
-            mM1.mTimeValid = 0;
-            return;
-        }
-        mM1.mGpsWeek = atoi(mField[eGpsWeek].c_str());
-        mM1.mGpsTowMs = atoi(mField[eGpsTowMs].c_str());
-        mM1.mTimeValid = atoi(mField[eTimeValid].c_str());
-        mM1.mTimeSource = atoi(mField[eTimeSource].c_str());
-        mM1.mTimeUnc = atoi(mField[eTimeUnc].c_str());
-        mM1.mClockFreqBias = atoi(mField[eClockFreqBias].c_str());
-        mM1.mClockFreqBiasUnc = atoi(mField[eClockFreqBiasUnc].c_str());
-        mM1.mXoState = atoi(mField[eXoState].c_str());
-        mM1.mPgaGain = atoi(mField[ePgaGain].c_str());
-        mM1.mGpsBpAmpI = atoi(mField[eGpsBpAmpI].c_str());
-        mM1.mGpsBpAmpQ = atoi(mField[eGpsBpAmpQ].c_str());
-        mM1.mAdcI = atoi(mField[eAdcI].c_str());
-        mM1.mAdcQ = atoi(mField[eAdcQ].c_str());
-        mM1.mJammerGps = atoi(mField[eJammerGps].c_str());
-        mM1.mJammerGlo = atoi(mField[eJammerGlo].c_str());
-        mM1.mJammerBds = atoi(mField[eJammerBds].c_str());
-        mM1.mJammerGal = atoi(mField[eJammerGal].c_str());
-        mM1.mRecErrorRecovery = atoi(mField[eRecErrorRecovery].c_str());
-        mM1.mAgcGps = atof(mField[eAgcGps].c_str());
-        mM1.mAgcGlo = atof(mField[eAgcGlo].c_str());
-        mM1.mAgcBds = atof(mField[eAgcBds].c_str());
-        mM1.mAgcGal = atof(mField[eAgcGal].c_str());
-        mM1.mLeapSeconds = atoi(mField[eLeapSeconds].c_str());
-        mM1.mLeapSecUnc = atoi(mField[eLeapSecUnc].c_str());
-    }
-
-    inline SystemStatusPQWM1& get() { return mM1;} //getparser
-};
-
-/******************************************************************************
- SystemStatusPQWP1
-******************************************************************************/
-class SystemStatusPQWP1
-{
-public:
-    uint8_t  mEpiValidity; // x4
-    float    mEpiLat;    // x5
-    float    mEpiLon;    // x6
-    float    mEpiAlt;    // x7
-    float    mEpiHepe;   // x8
-    float    mEpiAltUnc; // x9
-    uint8_t  mEpiSrc;    // x10
-};
-
-class SystemStatusPQWP1parser : public SystemStatusNmeaBase
-{
-private:
-    enum
-    {
-        eTalker = 0,
-        eUtcTime = 1,
-        eEpiValidity = 2,
-        eEpiLat = 3,
-        eEpiLon = 4,
-        eEpiAlt = 5,
-        eEpiHepe = 6,
-        eEpiAltUnc = 7,
-        eEpiSrc = 8,
-        eMax
-    };
-    SystemStatusPQWP1 mP1;
-
-public:
-    inline uint8_t    getEpiValidity() { return mP1.mEpiValidity;      }
-    inline float      getEpiLat() { return mP1.mEpiLat;           }
-    inline float      getEpiLon() { return mP1.mEpiLon;           }
-    inline float      getEpiAlt() { return mP1.mEpiAlt;           }
-    inline float      getEpiHepe() { return mP1.mEpiHepe;          }
-    inline float      getEpiAltUnc() { return mP1.mEpiAltUnc;        }
-    inline uint8_t    getEpiSrc() { return mP1.mEpiSrc;           }
-
-    SystemStatusPQWP1parser(const char *str_in, uint32_t len_in)
-        : SystemStatusNmeaBase(str_in, len_in)
-    {
-        if (mField.size() < eMax) {
-            return;
-        }
-        memset(&mP1, 0, sizeof(mP1));
-        mP1.mEpiValidity = strtol(mField[eEpiValidity].c_str(), NULL, 16);
-        mP1.mEpiLat = atof(mField[eEpiLat].c_str());
-        mP1.mEpiLon = atof(mField[eEpiLon].c_str());
-        mP1.mEpiAlt = atof(mField[eEpiAlt].c_str());
-        mP1.mEpiHepe = atoi(mField[eEpiHepe].c_str());
-        mP1.mEpiAltUnc = atof(mField[eEpiAltUnc].c_str());
-        mP1.mEpiSrc = atoi(mField[eEpiSrc].c_str());
-    }
-
-    inline SystemStatusPQWP1& get() { return mP1;}
-};
-
-/******************************************************************************
- SystemStatusPQWP2
-******************************************************************************/
-class SystemStatusPQWP2
-{
-public:
-    float    mBestLat;   // x4
-    float    mBestLon;   // x5
-    float    mBestAlt;   // x6
-    float    mBestHepe;  // x7
-    float    mBestAltUnc; // x8
-};
-
-class SystemStatusPQWP2parser : public SystemStatusNmeaBase
-{
-private:
-    enum
-    {
-        eTalker = 0,
-        eUtcTime = 1,
-        eBestLat = 2,
-        eBestLon = 3,
-        eBestAlt = 4,
-        eBestHepe = 5,
-        eBestAltUnc = 6,
-        eMax
-    };
-    SystemStatusPQWP2 mP2;
-
-public:
-    inline float      getBestLat() { return mP2.mBestLat;          }
-    inline float      getBestLon() { return mP2.mBestLon;          }
-    inline float      getBestAlt() { return mP2.mBestAlt;          }
-    inline float      getBestHepe() { return mP2.mBestHepe;         }
-    inline float      getBestAltUnc() { return mP2.mBestAltUnc;       }
-
-    SystemStatusPQWP2parser(const char *str_in, uint32_t len_in)
-        : SystemStatusNmeaBase(str_in, len_in)
-    {
-        if (mField.size() < eMax) {
-            return;
-        }
-        memset(&mP2, 0, sizeof(mP2));
-        mP2.mBestLat = atof(mField[eBestLat].c_str());
-        mP2.mBestLon = atof(mField[eBestLon].c_str());
-        mP2.mBestAlt = atof(mField[eBestAlt].c_str());
-        mP2.mBestHepe = atof(mField[eBestHepe].c_str());
-        mP2.mBestAltUnc = atof(mField[eBestAltUnc].c_str());
-    }
-
-    inline SystemStatusPQWP2& get() { return mP2;}
-};
-
-/******************************************************************************
- SystemStatusPQWP3
-******************************************************************************/
-class SystemStatusPQWP3
-{
-public:
-    uint8_t   mXtraValidMask;
-    uint32_t  mGpsXtraAge;
-    uint32_t  mGloXtraAge;
-    uint32_t  mBdsXtraAge;
-    uint32_t  mGalXtraAge;
-    uint32_t  mQzssXtraAge;
-    uint32_t  mGpsXtraValid;
-    uint32_t  mGloXtraValid;
-    uint64_t  mBdsXtraValid;
-    uint64_t  mGalXtraValid;
-    uint8_t   mQzssXtraValid;
-};
-
-class SystemStatusPQWP3parser : public SystemStatusNmeaBase
-{
-private:
-    enum
-    {
-        eTalker = 0,
-        eUtcTime = 1,
-        eXtraValidMask = 2,
-        eGpsXtraAge = 3,
-        eGloXtraAge = 4,
-        eBdsXtraAge = 5,
-        eGalXtraAge = 6,
-        eQzssXtraAge = 7,
-        eGpsXtraValid = 8,
-        eGloXtraValid = 9,
-        eBdsXtraValid = 10,
-        eGalXtraValid = 11,
-        eQzssXtraValid = 12,
-        eMax
-    };
-    SystemStatusPQWP3 mP3;
-
-public:
-    inline uint8_t    getXtraValid() { return mP3.mXtraValidMask;   }
-    inline uint32_t   getGpsXtraAge() { return mP3.mGpsXtraAge;       }
-    inline uint32_t   getGloXtraAge() { return mP3.mGloXtraAge;       }
-    inline uint32_t   getBdsXtraAge() { return mP3.mBdsXtraAge;       }
-    inline uint32_t   getGalXtraAge() { return mP3.mGalXtraAge;       }
-    inline uint32_t   getQzssXtraAge() { return mP3.mQzssXtraAge;      }
-    inline uint32_t   getGpsXtraValid() { return mP3.mGpsXtraValid;     }
-    inline uint32_t   getGloXtraValid() { return mP3.mGloXtraValid;     }
-    inline uint64_t   getBdsXtraValid() { return mP3.mBdsXtraValid;     }
-    inline uint64_t   getGalXtraValid() { return mP3.mGalXtraValid;     }
-    inline uint8_t    getQzssXtraValid() { return mP3.mQzssXtraValid;    }
-
-    SystemStatusPQWP3parser(const char *str_in, uint32_t len_in)
-        : SystemStatusNmeaBase(str_in, len_in)
-    {
-        if (mField.size() < eMax) {
-            return;
-        }
-        memset(&mP3, 0, sizeof(mP3));
-        mP3.mXtraValidMask = strtol(mField[eXtraValidMask].c_str(), NULL, 16);
-        mP3.mGpsXtraAge = atoi(mField[eGpsXtraAge].c_str());
-        mP3.mGloXtraAge = atoi(mField[eGloXtraAge].c_str());
-        mP3.mBdsXtraAge = atoi(mField[eBdsXtraAge].c_str());
-        mP3.mGalXtraAge = atoi(mField[eGalXtraAge].c_str());
-        mP3.mQzssXtraAge = atoi(mField[eQzssXtraAge].c_str());
-        mP3.mGpsXtraValid = strtol(mField[eGpsXtraValid].c_str(), NULL, 16);
-        mP3.mGloXtraValid = strtol(mField[eGloXtraValid].c_str(), NULL, 16);
-        mP3.mBdsXtraValid = strtol(mField[eBdsXtraValid].c_str(), NULL, 16);
-        mP3.mGalXtraValid = strtol(mField[eGalXtraValid].c_str(), NULL, 16);
-        mP3.mQzssXtraValid = strtol(mField[eQzssXtraValid].c_str(), NULL, 16);
-    }
-
-    inline SystemStatusPQWP3& get() { return mP3;}
-};
-
-/******************************************************************************
- SystemStatusPQWP4
-******************************************************************************/
-class SystemStatusPQWP4
-{
-public:
-    uint32_t  mGpsEpheValid;
-    uint32_t  mGloEpheValid;
-    uint64_t  mBdsEpheValid;
-    uint64_t  mGalEpheValid;
-    uint8_t   mQzssEpheValid;
-};
-
-class SystemStatusPQWP4parser : public SystemStatusNmeaBase
-{
-private:
-    enum
-    {
-        eTalker = 0,
-        eUtcTime = 1,
-        eGpsEpheValid = 2,
-        eGloEpheValid = 3,
-        eBdsEpheValid = 4,
-        eGalEpheValid = 5,
-        eQzssEpheValid = 6,
-        eMax
-    };
-    SystemStatusPQWP4 mP4;
-
-public:
-    inline uint32_t   getGpsEpheValid() { return mP4.mGpsEpheValid;     }
-    inline uint32_t   getGloEpheValid() { return mP4.mGloEpheValid;     }
-    inline uint64_t   getBdsEpheValid() { return mP4.mBdsEpheValid;     }
-    inline uint64_t   getGalEpheValid() { return mP4.mGalEpheValid;     }
-    inline uint8_t    getQzssEpheValid() { return mP4.mQzssEpheValid;    }
-
-    SystemStatusPQWP4parser(const char *str_in, uint32_t len_in)
-        : SystemStatusNmeaBase(str_in, len_in)
-    {
-        if (mField.size() < eMax) {
-            return;
-        }
-        memset(&mP4, 0, sizeof(mP4));
-        mP4.mGpsEpheValid = strtol(mField[eGpsEpheValid].c_str(), NULL, 16);
-        mP4.mGloEpheValid = strtol(mField[eGloEpheValid].c_str(), NULL, 16);
-        mP4.mBdsEpheValid = strtol(mField[eBdsEpheValid].c_str(), NULL, 16);
-        mP4.mGalEpheValid = strtol(mField[eGalEpheValid].c_str(), NULL, 16);
-        mP4.mQzssEpheValid = strtol(mField[eQzssEpheValid].c_str(), NULL, 16);
-    }
-
-    inline SystemStatusPQWP4& get() { return mP4;}
-};
-
-/******************************************************************************
- SystemStatusPQWP5
-******************************************************************************/
-class SystemStatusPQWP5
-{
-public:
-    uint32_t  mGpsUnknownMask;
-    uint32_t  mGloUnknownMask;
-    uint64_t  mBdsUnknownMask;
-    uint64_t  mGalUnknownMask;
-    uint8_t   mQzssUnknownMask;
-    uint32_t  mGpsGoodMask;
-    uint32_t  mGloGoodMask;
-    uint64_t  mBdsGoodMask;
-    uint64_t  mGalGoodMask;
-    uint8_t   mQzssGoodMask;
-    uint32_t  mGpsBadMask;
-    uint32_t  mGloBadMask;
-    uint64_t  mBdsBadMask;
-    uint64_t  mGalBadMask;
-    uint8_t   mQzssBadMask;
-};
-
-class SystemStatusPQWP5parser : public SystemStatusNmeaBase
-{
-private:
-    enum
-    {
-        eTalker = 0,
-        eUtcTime = 1,
-        eGpsUnknownMask = 2,
-        eGloUnknownMask = 3,
-        eBdsUnknownMask = 4,
-        eGalUnknownMask = 5,
-        eQzssUnknownMask = 6,
-        eGpsGoodMask = 7,
-        eGloGoodMask = 8,
-        eBdsGoodMask = 9,
-        eGalGoodMask = 10,
-        eQzssGoodMask = 11,
-        eGpsBadMask = 12,
-        eGloBadMask = 13,
-        eBdsBadMask = 14,
-        eGalBadMask = 15,
-        eQzssBadMask = 16,
-        eMax
-    };
-    SystemStatusPQWP5 mP5;
-
-public:
-    inline uint32_t   getGpsUnknownMask() { return mP5.mGpsUnknownMask;   }
-    inline uint32_t   getGloUnknownMask() { return mP5.mGloUnknownMask;   }
-    inline uint64_t   getBdsUnknownMask() { return mP5.mBdsUnknownMask;   }
-    inline uint64_t   getGalUnknownMask() { return mP5.mGalUnknownMask;   }
-    inline uint8_t    getQzssUnknownMask() { return mP5.mQzssUnknownMask;  }
-    inline uint32_t   getGpsGoodMask() { return mP5.mGpsGoodMask;      }
-    inline uint32_t   getGloGoodMask() { return mP5.mGloGoodMask;      }
-    inline uint64_t   getBdsGoodMask() { return mP5.mBdsGoodMask;      }
-    inline uint64_t   getGalGoodMask() { return mP5.mGalGoodMask;      }
-    inline uint8_t    getQzssGoodMask() { return mP5.mQzssGoodMask;     }
-    inline uint32_t   getGpsBadMask() { return mP5.mGpsBadMask;       }
-    inline uint32_t   getGloBadMask() { return mP5.mGloBadMask;       }
-    inline uint64_t   getBdsBadMask() { return mP5.mBdsBadMask;       }
-    inline uint64_t   getGalBadMask() { return mP5.mGalBadMask;       }
-    inline uint8_t    getQzssBadMask() { return mP5.mQzssBadMask;      }
-
-    SystemStatusPQWP5parser(const char *str_in, uint32_t len_in)
-        : SystemStatusNmeaBase(str_in, len_in)
-    {
-        if (mField.size() < eMax) {
-            return;
-        }
-        memset(&mP5, 0, sizeof(mP5));
-        mP5.mGpsUnknownMask = strtol(mField[eGpsUnknownMask].c_str(), NULL, 16);
-        mP5.mGloUnknownMask = strtol(mField[eGloUnknownMask].c_str(), NULL, 16);
-        mP5.mBdsUnknownMask = strtol(mField[eBdsUnknownMask].c_str(), NULL, 16);
-        mP5.mGalUnknownMask = strtol(mField[eGalUnknownMask].c_str(), NULL, 16);
-        mP5.mQzssUnknownMask = strtol(mField[eQzssUnknownMask].c_str(), NULL, 16);
-        mP5.mGpsGoodMask = strtol(mField[eGpsGoodMask].c_str(), NULL, 16);
-        mP5.mGloGoodMask = strtol(mField[eGloGoodMask].c_str(), NULL, 16);
-        mP5.mBdsGoodMask = strtol(mField[eBdsGoodMask].c_str(), NULL, 16);
-        mP5.mGalGoodMask = strtol(mField[eGalGoodMask].c_str(), NULL, 16);
-        mP5.mQzssGoodMask = strtol(mField[eQzssGoodMask].c_str(), NULL, 16);
-        mP5.mGpsBadMask = strtol(mField[eGpsBadMask].c_str(), NULL, 16);
-        mP5.mGloBadMask = strtol(mField[eGloBadMask].c_str(), NULL, 16);
-        mP5.mBdsBadMask = strtol(mField[eBdsBadMask].c_str(), NULL, 16);
-        mP5.mGalBadMask = strtol(mField[eGalBadMask].c_str(), NULL, 16);
-        mP5.mQzssBadMask = strtol(mField[eQzssBadMask].c_str(), NULL, 16);
-    }
-
-    inline SystemStatusPQWP5& get() { return mP5;}
-};
-
-/******************************************************************************
- SystemStatusPQWP6parser
-******************************************************************************/
-class SystemStatusPQWP6
-{
-public:
-    uint32_t  mFixInfoMask;
-};
-
-class SystemStatusPQWP6parser : public SystemStatusNmeaBase
-{
-private:
-    enum
-    {
-        eTalker = 0,
-        eUtcTime = 1,
-        eFixInfoMask = 2,
-        eMax
-    };
-    SystemStatusPQWP6 mP6;
-
-public:
-    inline uint32_t   getFixInfoMask() { return mP6.mFixInfoMask;      }
-
-    SystemStatusPQWP6parser(const char *str_in, uint32_t len_in)
-        : SystemStatusNmeaBase(str_in, len_in)
-    {
-        if (mField.size() < eMax) {
-            return;
-        }
-        memset(&mP6, 0, sizeof(mP6));
-        mP6.mFixInfoMask = strtol(mField[eFixInfoMask].c_str(), NULL, 16);
-    }
-
-    inline SystemStatusPQWP6& get() { return mP6;}
-};
-
-/******************************************************************************
- SystemStatusPQWP7parser
-******************************************************************************/
-class SystemStatusPQWP7
-{
-public:
-    SystemStatusNav mNav[SV_ALL_NUM];
-};
-
-class SystemStatusPQWP7parser : public SystemStatusNmeaBase
-{
-private:
-    enum
-    {
-        eTalker = 0,
-        eUtcTime = 1,
-        eMax = 2 + SV_ALL_NUM*3
-    };
-    SystemStatusPQWP7 mP7;
-
-public:
-    SystemStatusPQWP7parser(const char *str_in, uint32_t len_in)
-        : SystemStatusNmeaBase(str_in, len_in)
-    {
-        if (mField.size() < eMax) {
-            LOC_LOGE("PQWP7parser - invalid size=%d", mField.size());
-            return;
-        }
-        for (uint32_t i=0; i<SV_ALL_NUM; i++) {
-            mP7.mNav[i].mType   = GnssEphemerisType(atoi(mField[i*3+2].c_str()));
-            mP7.mNav[i].mSource = GnssEphemerisSource(atoi(mField[i*3+3].c_str()));
-            mP7.mNav[i].mAgeSec = atoi(mField[i*3+4].c_str());
-        }
-    }
-
-    inline SystemStatusPQWP7& get() { return mP7;}
-};
-
-/******************************************************************************
- SystemStatusPQWS1parser
-******************************************************************************/
-class SystemStatusPQWS1
-{
-public:
-    uint32_t  mFixInfoMask;
-    uint32_t  mHepeLimit;
-};
-
-class SystemStatusPQWS1parser : public SystemStatusNmeaBase
-{
-private:
-    enum
-    {
-        eTalker = 0,
-        eUtcTime = 1,
-        eFixInfoMask = 2,
-        eHepeLimit = 3,
-        eMax
-    };
-    SystemStatusPQWS1 mS1;
-
-public:
-    inline uint16_t   getFixInfoMask() { return mS1.mFixInfoMask;      }
-    inline uint32_t   getHepeLimit()   { return mS1.mHepeLimit;      }
-
-    SystemStatusPQWS1parser(const char *str_in, uint32_t len_in)
-        : SystemStatusNmeaBase(str_in, len_in)
-    {
-        if (mField.size() < eMax) {
-            return;
-        }
-        memset(&mS1, 0, sizeof(mS1));
-        mS1.mFixInfoMask = atoi(mField[eFixInfoMask].c_str());
-        mS1.mHepeLimit = atoi(mField[eHepeLimit].c_str());
-    }
-
-    inline SystemStatusPQWS1& get() { return mS1;}
-};
-
-/******************************************************************************
- SystemStatusTimeAndClock
-******************************************************************************/
-SystemStatusTimeAndClock::SystemStatusTimeAndClock(const SystemStatusPQWM1& nmea) :
-    mGpsWeek(nmea.mGpsWeek),
-    mGpsTowMs(nmea.mGpsTowMs),
-    mTimeValid(nmea.mTimeValid),
-    mTimeSource(nmea.mTimeSource),
-    mTimeUnc(nmea.mTimeUnc),
-    mClockFreqBias(nmea.mClockFreqBias),
-    mClockFreqBiasUnc(nmea.mClockFreqBiasUnc),
-    mLeapSeconds(nmea.mLeapSeconds),
-    mLeapSecUnc(nmea.mLeapSecUnc)
-{
-}
-
-bool SystemStatusTimeAndClock::equals(SystemStatusTimeAndClock& peer)
-{
-    if ((mGpsWeek != peer.mGpsWeek) ||
-        (mGpsTowMs != peer.mGpsTowMs) ||
-        (mTimeValid != peer.mTimeValid) ||
-        (mTimeSource != peer.mTimeSource) ||
-        (mTimeUnc != peer.mTimeUnc) ||
-        (mClockFreqBias != peer.mClockFreqBias) ||
-        (mClockFreqBiasUnc != peer.mClockFreqBiasUnc) ||
-        (mLeapSeconds != peer.mLeapSeconds) ||
-        (mLeapSecUnc != peer.mLeapSecUnc)) {
-        return false;
-    }
-    return true;
-}
-
-void SystemStatusTimeAndClock::dump()
-{
-    LOC_LOGV("TimeAndClock: u=%ld:%ld g=%d:%d v=%d ts=%d tu=%d b=%d bu=%d ls=%d lu=%d",
-             mUtcTime.tv_sec, mUtcTime.tv_nsec,
-             mGpsWeek,
-             mGpsTowMs,
-             mTimeValid,
-             mTimeSource,
-             mTimeUnc,
-             mClockFreqBias,
-             mClockFreqBiasUnc,
-             mLeapSeconds,
-             mLeapSecUnc);
-    return;
-}
-
-/******************************************************************************
- SystemStatusXoState
-******************************************************************************/
-SystemStatusXoState::SystemStatusXoState(const SystemStatusPQWM1& nmea) :
-    mXoState(nmea.mXoState)
-{
-}
-
-bool SystemStatusXoState::equals(SystemStatusXoState& peer)
-{
-    if (mXoState != peer.mXoState) {
-        return false;
-    }
-    return true;
-}
-
-void SystemStatusXoState::dump()
-{
-    LOC_LOGV("XoState: u=%ld:%ld x=%d",
-             mUtcTime.tv_sec, mUtcTime.tv_nsec,
-             mXoState);
-    return;
-}
-
-/******************************************************************************
- SystemStatusRfAndParams
-******************************************************************************/
-SystemStatusRfAndParams::SystemStatusRfAndParams(const SystemStatusPQWM1& nmea) :
-    mPgaGain(nmea.mPgaGain),
-    mGpsBpAmpI(nmea.mGpsBpAmpI),
-    mGpsBpAmpQ(nmea.mGpsBpAmpQ),
-    mAdcI(nmea.mAdcI),
-    mAdcQ(nmea.mAdcQ),
-    mJammerGps(nmea.mJammerGps),
-    mJammerGlo(nmea.mJammerGlo),
-    mJammerBds(nmea.mJammerBds),
-    mJammerGal(nmea.mJammerGal),
-    mAgcGps(nmea.mAgcGps),
-    mAgcGlo(nmea.mAgcGlo),
-    mAgcBds(nmea.mAgcBds),
-    mAgcGal(nmea.mAgcGal)
-{
-}
-
-bool SystemStatusRfAndParams::equals(SystemStatusRfAndParams& peer)
-{
-    if ((mPgaGain != peer.mPgaGain) ||
-        (mGpsBpAmpI != peer.mGpsBpAmpI) ||
-        (mGpsBpAmpQ != peer.mGpsBpAmpQ) ||
-        (mAdcI != peer.mAdcI) ||
-        (mAdcQ != peer.mAdcQ) ||
-        (mJammerGps != peer.mJammerGps) ||
-        (mJammerGlo != peer.mJammerGlo) ||
-        (mJammerBds != peer.mJammerBds) ||
-        (mJammerGal != peer.mJammerGal) ||
-        (mAgcGps != peer.mAgcGps) ||
-        (mAgcGlo != peer.mAgcGlo) ||
-        (mAgcBds != peer.mAgcBds) ||
-        (mAgcGal != peer.mAgcGal)) {
-        return false;
-    }
-    return true;
-}
-
-void SystemStatusRfAndParams::dump()
-{
-    LOC_LOGV("RfAndParams: u=%ld:%ld p=%d bi=%d bq=%d ai=%d aq=%d "
-             "jgp=%d jgl=%d jbd=%d jga=%d "
-             "agp=%lf agl=%lf abd=%lf aga=%lf",
-             mUtcTime.tv_sec, mUtcTime.tv_nsec,
-             mPgaGain,
-             mGpsBpAmpI,
-             mGpsBpAmpQ,
-             mAdcI,
-             mAdcQ,
-             mJammerGps,
-             mJammerGlo,
-             mJammerBds,
-             mJammerGal,
-             mAgcGps,
-             mAgcGlo,
-             mAgcBds,
-             mAgcGal);
-    return;
-}
-
-/******************************************************************************
- SystemStatusErrRecovery
-******************************************************************************/
-SystemStatusErrRecovery::SystemStatusErrRecovery(const SystemStatusPQWM1& nmea) :
-    mRecErrorRecovery(nmea.mRecErrorRecovery)
-{
-}
-
-bool SystemStatusErrRecovery::equals(SystemStatusErrRecovery& peer)
-{
-    if (mRecErrorRecovery != peer.mRecErrorRecovery) {
-        return false;
-    }
-    return true;
-}
-
-void SystemStatusErrRecovery::dump()
-{
-    LOC_LOGV("ErrRecovery: u=%ld:%ld e=%d",
-             mUtcTime.tv_sec, mUtcTime.tv_nsec,
-             mRecErrorRecovery);
-    return;
-}
-
-/******************************************************************************
- SystemStatusInjectedPosition
-******************************************************************************/
-SystemStatusInjectedPosition::SystemStatusInjectedPosition(const SystemStatusPQWP1& nmea) :
-    mEpiValidity(nmea.mEpiValidity),
-    mEpiLat(nmea.mEpiLat),
-    mEpiLon(nmea.mEpiLon),
-    mEpiAlt(nmea.mEpiAlt),
-    mEpiHepe(nmea.mEpiHepe),
-    mEpiAltUnc(nmea.mEpiAltUnc),
-    mEpiSrc(nmea.mEpiSrc)
-{
-}
-
-bool SystemStatusInjectedPosition::equals(SystemStatusInjectedPosition& peer)
-{
-    if ((mEpiValidity != peer.mEpiValidity) ||
-        (mEpiLat != peer.mEpiLat) ||
-        (mEpiLon != peer.mEpiLon) ||
-        (mEpiAlt != peer.mEpiAlt) ||
-        (mEpiHepe != peer.mEpiHepe) ||
-        (mEpiAltUnc != peer.mEpiAltUnc) ||
-        (mEpiSrc != peer.mEpiSrc)) {
-        return false;
-    }
-    return true;
-}
-
-void SystemStatusInjectedPosition::dump()
-{
-    LOC_LOGV("InjectedPosition: u=%ld:%ld v=%x la=%f lo=%f al=%f he=%f au=%f es=%d",
-             mUtcTime.tv_sec, mUtcTime.tv_nsec,
-             mEpiValidity,
-             mEpiLat,
-             mEpiLon,
-             mEpiAlt,
-             mEpiHepe,
-             mEpiAltUnc,
-             mEpiSrc);
-    return;
-}
-
-/******************************************************************************
- SystemStatusBestPosition
-******************************************************************************/
-SystemStatusBestPosition::SystemStatusBestPosition(const SystemStatusPQWP2& nmea) :
-    mValid(true),
-    mBestLat(nmea.mBestLat),
-    mBestLon(nmea.mBestLon),
-    mBestAlt(nmea.mBestAlt),
-    mBestHepe(nmea.mBestHepe),
-    mBestAltUnc(nmea.mBestAltUnc)
-{
-}
-
-bool SystemStatusBestPosition::equals(SystemStatusBestPosition& peer)
-{
-    if ((mBestLat != peer.mBestLat) ||
-        (mBestLon != peer.mBestLon) ||
-        (mBestAlt != peer.mBestAlt) ||
-        (mBestHepe != peer.mBestHepe) ||
-        (mBestAltUnc != peer.mBestAltUnc)) {
-        return false;
-    }
-    return true;
-}
-
-void SystemStatusBestPosition::dump()
-{
-    LOC_LOGV("BestPosition: u=%ld:%ld la=%f lo=%f al=%f he=%f au=%f",
-             mUtcTime.tv_sec, mUtcTime.tv_nsec,
-             mBestLat,
-             mBestLon,
-             mBestAlt,
-             mBestHepe,
-             mBestAltUnc);
-    return;
-}
-
-/******************************************************************************
- SystemStatusXtra
-******************************************************************************/
-SystemStatusXtra::SystemStatusXtra(const SystemStatusPQWP3& nmea) :
-    mXtraValidMask(nmea.mXtraValidMask),
-    mGpsXtraAge(nmea.mGpsXtraAge),
-    mGloXtraAge(nmea.mGloXtraAge),
-    mBdsXtraAge(nmea.mBdsXtraAge),
-    mGalXtraAge(nmea.mGalXtraAge),
-    mQzssXtraAge(nmea.mQzssXtraAge),
-    mGpsXtraValid(nmea.mGpsXtraValid),
-    mGloXtraValid(nmea.mGloXtraValid),
-    mBdsXtraValid(nmea.mBdsXtraValid),
-    mGalXtraValid(nmea.mGalXtraValid),
-    mQzssXtraValid(nmea.mQzssXtraValid)
-{
-}
-
-bool SystemStatusXtra::equals(SystemStatusXtra& peer)
-{
-    if ((mXtraValidMask != peer.mXtraValidMask) ||
-        (mGpsXtraAge != peer.mGpsXtraAge) ||
-        (mGloXtraAge != peer.mGloXtraAge) ||
-        (mBdsXtraAge != peer.mBdsXtraAge) ||
-        (mGalXtraAge != peer.mGalXtraAge) ||
-        (mQzssXtraAge != peer.mQzssXtraAge) ||
-        (mGpsXtraValid != peer.mGpsXtraValid) ||
-        (mGloXtraValid != peer.mGloXtraValid) ||
-        (mBdsXtraValid != peer.mBdsXtraValid) ||
-        (mGalXtraValid != peer.mGalXtraValid) ||
-        (mQzssXtraValid != peer.mQzssXtraValid)) {
-        return false;
-    }
-    return true;
-}
-
-void SystemStatusXtra::dump()
-{
-    LOC_LOGV("SystemStatusXtra: u=%ld:%ld m=%x a=%d:%d:%d:%d:%d v=%x:%x:%x:%x:%x",
-             mUtcTime.tv_sec, mUtcTime.tv_nsec,
-             mXtraValidMask,
-             mGpsXtraAge,
-             mGloXtraAge,
-             mBdsXtraAge,
-             mGalXtraAge,
-             mQzssXtraAge,
-             mGpsXtraValid,
-             mGloXtraValid,
-             mBdsXtraValid,
-             mGalXtraValid,
-             mQzssXtraValid);
-    return;
-}
-
-/******************************************************************************
- SystemStatusEphemeris
-******************************************************************************/
-SystemStatusEphemeris::SystemStatusEphemeris(const SystemStatusPQWP4& nmea) :
-    mGpsEpheValid(nmea.mGpsEpheValid),
-    mGloEpheValid(nmea.mGloEpheValid),
-    mBdsEpheValid(nmea.mBdsEpheValid),
-    mGalEpheValid(nmea.mGalEpheValid),
-    mQzssEpheValid(nmea.mQzssEpheValid)
-{
-}
-
-bool SystemStatusEphemeris::equals(SystemStatusEphemeris& peer)
-{
-    if ((mGpsEpheValid != peer.mGpsEpheValid) ||
-        (mGloEpheValid != peer.mGloEpheValid) ||
-        (mBdsEpheValid != peer.mBdsEpheValid) ||
-        (mGalEpheValid != peer.mGalEpheValid) ||
-        (mQzssEpheValid != peer.mQzssEpheValid)) {
-        return false;
-    }
-    return true;
-}
-
-void SystemStatusEphemeris::dump()
-{
-    LOC_LOGV("Ephemeris: u=%ld:%ld ev=%x:%x:%x:%x:%x",
-             mUtcTime.tv_sec, mUtcTime.tv_nsec,
-             mGpsEpheValid,
-             mGloEpheValid,
-             mBdsEpheValid,
-             mGalEpheValid,
-             mQzssEpheValid);
-    return;
-}
-
-/******************************************************************************
- SystemStatusSvHealth
-******************************************************************************/
-SystemStatusSvHealth::SystemStatusSvHealth(const SystemStatusPQWP5& nmea) :
-    mGpsUnknownMask(nmea.mGpsUnknownMask),
-    mGloUnknownMask(nmea.mGloUnknownMask),
-    mBdsUnknownMask(nmea.mBdsUnknownMask),
-    mGalUnknownMask(nmea.mGalUnknownMask),
-    mQzssUnknownMask(nmea.mQzssUnknownMask),
-    mGpsGoodMask(nmea.mGpsGoodMask),
-    mGloGoodMask(nmea.mGloGoodMask),
-    mBdsGoodMask(nmea.mBdsGoodMask),
-    mGalGoodMask(nmea.mGalGoodMask),
-    mQzssGoodMask(nmea.mQzssGoodMask),
-    mGpsBadMask(nmea.mGpsBadMask),
-    mGloBadMask(nmea.mGloBadMask),
-    mBdsBadMask(nmea.mBdsBadMask),
-    mGalBadMask(nmea.mGalBadMask),
-    mQzssBadMask(nmea.mQzssBadMask)
-{
-}
-
-bool SystemStatusSvHealth::equals(SystemStatusSvHealth& peer)
-{
-    if ((mGpsUnknownMask != peer.mGpsUnknownMask) ||
-        (mGloUnknownMask != peer.mGloUnknownMask) ||
-        (mBdsUnknownMask != peer.mBdsUnknownMask) ||
-        (mGalUnknownMask != peer.mGalUnknownMask) ||
-        (mQzssUnknownMask != peer.mQzssUnknownMask) ||
-        (mGpsGoodMask != peer.mGpsGoodMask) ||
-        (mGloGoodMask != peer.mGloGoodMask) ||
-        (mBdsGoodMask != peer.mBdsGoodMask) ||
-        (mGalGoodMask != peer.mGalGoodMask) ||
-        (mQzssGoodMask != peer.mQzssGoodMask) ||
-        (mGpsBadMask != peer.mGpsBadMask) ||
-        (mGloBadMask != peer.mGloBadMask) ||
-        (mBdsBadMask != peer.mBdsBadMask) ||
-        (mGalBadMask != peer.mGalBadMask) ||
-        (mQzssBadMask != peer.mQzssBadMask)) {
-        return false;
-    }
-    return true;
-}
-
-void SystemStatusSvHealth::dump()
-{
-    LOC_LOGV("SvHealth: u=%ld:%ld u=%x:%x:%x:%x:%x g=%x:%x:%x:%x:%x b=%x:%x:%x:%x:%x",
-             mUtcTime.tv_sec, mUtcTime.tv_nsec,
-             mGpsUnknownMask,
-             mGloUnknownMask,
-             mBdsUnknownMask,
-             mGalUnknownMask,
-             mQzssUnknownMask,
-             mGpsGoodMask,
-             mGloGoodMask,
-             mBdsGoodMask,
-             mGalGoodMask,
-             mQzssGoodMask,
-             mGpsBadMask,
-             mGloBadMask,
-             mBdsBadMask,
-             mGalBadMask,
-             mQzssBadMask);
-    return;
-}
-
-/******************************************************************************
- SystemStatusPdr
-******************************************************************************/
-SystemStatusPdr::SystemStatusPdr(const SystemStatusPQWP6& nmea) :
-    mFixInfoMask(nmea.mFixInfoMask)
-{
-}
-
-bool SystemStatusPdr::equals(SystemStatusPdr& peer)
-{
-    if (mFixInfoMask != peer.mFixInfoMask) {
-        return false;
-    }
-    return true;
-}
-
-void SystemStatusPdr::dump()
-{
-    LOC_LOGV("Pdr: u=%ld:%ld m=%x",
-             mUtcTime.tv_sec, mUtcTime.tv_nsec,
-             mFixInfoMask);
-    return;
-}
-
-/******************************************************************************
- SystemStatusNavData
-******************************************************************************/
-SystemStatusNavData::SystemStatusNavData(const SystemStatusPQWP7& nmea)
-{
-    for (uint32_t i=0; i<SV_ALL_NUM; i++) {
-        mNav[i] = nmea.mNav[i];
-    }
-}
-
-bool SystemStatusNavData::equals(SystemStatusNavData& peer)
-{
-    for (uint32_t i=0; i<SV_ALL_NUM; i++) {
-        if ((mNav[i].mType != peer.mNav[i].mType) ||
-            (mNav[i].mSource != peer.mNav[i].mSource) ||
-            (mNav[i].mAgeSec != peer.mNav[i].mAgeSec)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-void SystemStatusNavData::dump()
-{
-    LOC_LOGV("NavData: u=%ld:%ld",
-            mUtcTime.tv_sec, mUtcTime.tv_nsec);
-    for (uint32_t i=0; i<SV_ALL_NUM; i++) {
-        LOC_LOGV("i=%d type=%d src=%d age=%d",
-            i, mNav[i].mType, mNav[i].mSource, mNav[i].mAgeSec);
-    }
-    return;
-}
-
-/******************************************************************************
- SystemStatusPositionFailure
-******************************************************************************/
-SystemStatusPositionFailure::SystemStatusPositionFailure(const SystemStatusPQWS1& nmea) :
-    mFixInfoMask(nmea.mFixInfoMask),
-    mHepeLimit(nmea.mHepeLimit)
-{
-}
-
-bool SystemStatusPositionFailure::equals(SystemStatusPositionFailure& peer)
-{
-    if ((mFixInfoMask != peer.mFixInfoMask) ||
-        (mHepeLimit != peer.mHepeLimit)) {
-        return false;
-    }
-    return true;
-}
-
-void SystemStatusPositionFailure::dump()
-{
-    LOC_LOGV("PositionFailure: u=%ld:%ld m=%d h=%d",
-             mUtcTime.tv_sec, mUtcTime.tv_nsec,
-             mFixInfoMask,
-             mHepeLimit);
-    return;
-}
-
-/******************************************************************************
- SystemStatusLocation
-******************************************************************************/
-bool SystemStatusLocation::equals(SystemStatusLocation& peer)
-{
-    if ((mLocation.gpsLocation.latitude != peer.mLocation.gpsLocation.latitude) ||
-        (mLocation.gpsLocation.longitude != peer.mLocation.gpsLocation.longitude) ||
-        (mLocation.gpsLocation.altitude != peer.mLocation.gpsLocation.altitude)) {
-        return false;
-    }
-    return true;
-}
-
-void SystemStatusLocation::dump()
-{
-    LOC_LOGV("Location: lat=%f lon=%f alt=%f spd=%f",
-             mLocation.gpsLocation.latitude,
-             mLocation.gpsLocation.longitude,
-             mLocation.gpsLocation.altitude,
-             mLocation.gpsLocation.speed);
-    return;
-}
-
-/******************************************************************************
- SystemStatus
-******************************************************************************/
-pthread_mutex_t SystemStatus::mMutexSystemStatus = PTHREAD_MUTEX_INITIALIZER;
-
-SystemStatus::SystemStatus()
-{
-    mCache.mLocation.clear();
-
-    mCache.mTimeAndClock.clear();
-    mCache.mXoState.clear();
-    mCache.mRfAndParams.clear();
-    mCache.mErrRecovery.clear();
-
-    mCache.mInjectedPosition.clear();
-    mCache.mBestPosition.clear();
-    mCache.mXtra.clear();
-    mCache.mEphemeris.clear();
-    mCache.mSvHealth.clear();
-    mCache.mPdr.clear();
-    mCache.mNavData.clear();
-
-    mCache.mPositionFailure.clear();
-}
-
-/******************************************************************************
- SystemStatus - M1 functions
-******************************************************************************/
-bool SystemStatus::setTimeAndCLock(const SystemStatusPQWM1& nmea)
-{
-    SystemStatusTimeAndClock s(nmea);
-    if (!mCache.mTimeAndClock.empty() && mCache.mTimeAndClock.back().equals(s)) {
-        mCache.mTimeAndClock.back().mUtcReported = s.mUtcReported;
-    } else {
-        mCache.mTimeAndClock.push_back(s);
-        if (mCache.mTimeAndClock.size() > maxTimeAndClock) {
-            mCache.mTimeAndClock.erase(mCache.mTimeAndClock.begin());
-        }
-    }
-    return true;
-}
-
-bool SystemStatus::setXoState(const SystemStatusPQWM1& nmea)
-{
-    SystemStatusXoState s(nmea);
-    if (!mCache.mXoState.empty() && mCache.mXoState.back().equals(s)) {
-        mCache.mXoState.back().mUtcReported = s.mUtcReported;
-    } else {
-        mCache.mXoState.push_back(s);
-        if (mCache.mXoState.size() > maxXoState) {
-            mCache.mXoState.erase(mCache.mXoState.begin());
-        }
-    }
-    return true;
-}
-
-bool SystemStatus::setRfAndParams(const SystemStatusPQWM1& nmea)
-{
-    SystemStatusRfAndParams s(nmea);
-    if (!mCache.mRfAndParams.empty() && mCache.mRfAndParams.back().equals(s)) {
-        mCache.mRfAndParams.back().mUtcReported = s.mUtcReported;
-    } else {
-        mCache.mRfAndParams.push_back(s);
-        if (mCache.mRfAndParams.size() > maxRfAndParams) {
-            mCache.mRfAndParams.erase(mCache.mRfAndParams.begin());
-        }
-    }
-    return true;
-}
-
-bool SystemStatus::setErrRecovery(const SystemStatusPQWM1& nmea)
-{
-    SystemStatusErrRecovery s(nmea);
-    if (!mCache.mErrRecovery.empty() && mCache.mErrRecovery.back().equals(s)) {
-        mCache.mErrRecovery.back().mUtcReported = s.mUtcReported;
-    } else {
-        mCache.mErrRecovery.push_back(s);
-        if (mCache.mErrRecovery.size() > maxErrRecovery) {
-            mCache.mErrRecovery.erase(mCache.mErrRecovery.begin());
-        }
-    }
-    return true;
-}
-
-/******************************************************************************
- SystemStatus - Px functions
-******************************************************************************/
-bool SystemStatus::setInjectedPosition(const SystemStatusPQWP1& nmea)
-{
-    SystemStatusInjectedPosition s(nmea);
-    if (!mCache.mInjectedPosition.empty() && mCache.mInjectedPosition.back().equals(s)) {
-        mCache.mInjectedPosition.back().mUtcReported = s.mUtcReported;
-    } else {
-        mCache.mInjectedPosition.push_back(s);
-        if (mCache.mInjectedPosition.size() > maxInjectedPosition) {
-            mCache.mInjectedPosition.erase(mCache.mInjectedPosition.begin());
-        }
-    }
-    return true;
-}
-
-bool SystemStatus::setBestPosition(const SystemStatusPQWP2& nmea)
-{
-    SystemStatusBestPosition s(nmea);
-    if (!mCache.mBestPosition.empty() && mCache.mBestPosition.back().equals(s)) {
-        mCache.mBestPosition.back().mUtcReported = s.mUtcReported;
-    } else {
-        mCache.mBestPosition.push_back(s);
-        if (mCache.mBestPosition.size() > maxBestPosition) {
-            mCache.mBestPosition.erase(mCache.mBestPosition.begin());
-        }
-    }
-    return true;
-}
-
-bool SystemStatus::setXtra(const SystemStatusPQWP3& nmea)
-{
-    SystemStatusXtra s(nmea);
-    if (!mCache.mXtra.empty() && mCache.mXtra.back().equals(s)) {
-        mCache.mXtra.back().mUtcReported = s.mUtcReported;
-    } else {
-        mCache.mXtra.push_back(s);
-        if (mCache.mXtra.size() > maxXtra) {
-            mCache.mXtra.erase(mCache.mXtra.begin());
-        }
-    }
-    return true;
-}
-
-bool SystemStatus::setEphemeris(const SystemStatusPQWP4& nmea)
-{
-    SystemStatusEphemeris s(nmea);
-    if (!mCache.mEphemeris.empty() && mCache.mEphemeris.back().equals(s)) {
-        mCache.mEphemeris.back().mUtcReported = s.mUtcReported;
-    } else {
-        mCache.mEphemeris.push_back(s);
-        if (mCache.mEphemeris.size() > maxEphemeris) {
-            mCache.mEphemeris.erase(mCache.mEphemeris.begin());
-        }
-    }
-    return true;
-}
-
-bool SystemStatus::setSvHealth(const SystemStatusPQWP5& nmea)
-{
-    SystemStatusSvHealth s(nmea);
-    if (!mCache.mSvHealth.empty() && mCache.mSvHealth.back().equals(s)) {
-        mCache.mSvHealth.back().mUtcReported = s.mUtcReported;
-    } else {
-        mCache.mSvHealth.push_back(s);
-        if (mCache.mSvHealth.size() > maxSvHealth) {
-            mCache.mSvHealth.erase(mCache.mSvHealth.begin());
-        }
-    }
-    return true;
-}
-
-bool SystemStatus::setPdr(const SystemStatusPQWP6& nmea)
-{
-    SystemStatusPdr s(nmea);
-    if (!mCache.mPdr.empty() && mCache.mPdr.back().equals(s)) {
-        mCache.mPdr.back().mUtcReported = s.mUtcReported;
-    } else {
-        mCache.mPdr.push_back(s);
-        if (mCache.mPdr.size() > maxPdr) {
-            mCache.mPdr.erase(mCache.mPdr.begin());
-        }
-    }
-    return true;
-}
-
-bool SystemStatus::setNavData(const SystemStatusPQWP7& nmea)
-{
-    SystemStatusNavData s(nmea);
-    if (!mCache.mNavData.empty() && mCache.mNavData.back().equals(s)) {
-        mCache.mNavData.back().mUtcReported = s.mUtcReported;
-    } else {
-        mCache.mNavData.push_back(s);
-        if (mCache.mNavData.size() > maxNavData) {
-            mCache.mNavData.erase(mCache.mNavData.begin());
-        }
-    }
-    return true;
-}
-
-/******************************************************************************
- SystemStatus - Sx functions
-******************************************************************************/
-bool SystemStatus::setPositionFailure(const SystemStatusPQWS1& nmea)
-{
-    SystemStatusPositionFailure s(nmea);
-    if (!mCache.mPositionFailure.empty() && mCache.mPositionFailure.back().equals(s)) {
-        mCache.mPositionFailure.back().mUtcReported = s.mUtcReported;
-    } else {
-        mCache.mPositionFailure.push_back(s);
-        if (mCache.mPositionFailure.size() > maxPositionFailure) {
-            mCache.mPositionFailure.erase(mCache.mPositionFailure.begin());
-        }
-    }
-    return true;
-}
-
-/******************************************************************************
-@brief      API to set report data into internal buffer
-
-@param[In]  data pointer to the NMEA string
-@param[In]  len  length of the NMEA string
-
-@return     true when successfully done
-******************************************************************************/
-static uint32_t cnt = 0;
-static uint32_t cnt_m1 = 0;
-static uint32_t cnt_p1 = 0;
-static uint32_t cnt_p2 = 0;
-static uint32_t cnt_p3 = 0;
-static uint32_t cnt_p4 = 0;
-static uint32_t cnt_p5 = 0;
-static uint32_t cnt_p6 = 0;
-static uint32_t cnt_p7 = 0;
-static uint32_t cnt_s1 = 0;
-
-bool SystemStatus::setNmeaString(const char *data, uint32_t len)
-{
-    bool ret = false;
-    if (!loc_nmea_is_debug(data, len)) {
-        return false;
-    }
-
-    char buf[SystemStatusNmeaBase::NMEA_MAXSIZE + 1] = { 0 };
-    strlcpy(buf, data, sizeof(buf));
-
-    pthread_mutex_lock(&mMutexSystemStatus);
-
-    // parse the received nmea strings here
-    if      (0 == strncmp(data, "$PQWM1", SystemStatusNmeaBase::NMEA_MINSIZE)) {
-        SystemStatusPQWM1 s = SystemStatusPQWM1parser(buf, len).get();
-        ret  = setTimeAndCLock(s);
-        ret |= setXoState(s);
-        ret |= setRfAndParams(s);
-        ret |= setErrRecovery(s);
-        cnt_m1++;
-    }
-    else if (0 == strncmp(data, "$PQWP1", SystemStatusNmeaBase::NMEA_MINSIZE)) {
-        ret = setInjectedPosition(SystemStatusPQWP1parser(buf, len).get());
-        cnt_p1++;
-    }
-    else if (0 == strncmp(data, "$PQWP2", SystemStatusNmeaBase::NMEA_MINSIZE)) {
-        ret = setBestPosition(SystemStatusPQWP2parser(buf, len).get());
-        cnt_p2++;
-    }
-    else if (0 == strncmp(data, "$PQWP3", SystemStatusNmeaBase::NMEA_MINSIZE)) {
-        ret = setXtra(SystemStatusPQWP3parser(buf, len).get());
-        cnt_p3++;
-    }
-    else if (0 == strncmp(data, "$PQWP4", SystemStatusNmeaBase::NMEA_MINSIZE)) {
-        ret = setEphemeris(SystemStatusPQWP4parser(buf, len).get());
-        cnt_p4++;
-    }
-    else if (0 == strncmp(data, "$PQWP5", SystemStatusNmeaBase::NMEA_MINSIZE)) {
-        ret = setSvHealth(SystemStatusPQWP5parser(buf, len).get());
-        cnt_p5++;
-    }
-    else if (0 == strncmp(data, "$PQWP6", SystemStatusNmeaBase::NMEA_MINSIZE)) {
-        ret = setPdr(SystemStatusPQWP6parser(buf, len).get());
-        cnt_p6++;
-    }
-    else if (0 == strncmp(data, "$PQWP7", SystemStatusNmeaBase::NMEA_MINSIZE)) {
-        ret = setNavData(SystemStatusPQWP7parser(buf, len).get());
-        cnt_p7++;
-    }
-    else if (0 == strncmp(data, "$PQWS1", SystemStatusNmeaBase::NMEA_MINSIZE)) {
-        ret = setPositionFailure(SystemStatusPQWS1parser(buf, len).get());
-        cnt_s1++;
-    }
-    else {
-        // do nothing
-    }
-    cnt++;
-    LOC_LOGV("setNmeaString: cnt=%d M:%d 1:%d 2:%d 3:%d 4:%d 5:%d 6:%d 7:%d S:%d",
-             cnt,
-             cnt_m1,
-             cnt_p1,
-             cnt_p2,
-             cnt_p3,
-             cnt_p4,
-             cnt_p5,
-             cnt_p6,
-             cnt_p7,
-             cnt_s1);
-
-    pthread_mutex_unlock(&mMutexSystemStatus);
-    return ret;
-}
-
-/******************************************************************************
-@brief      API to set report position data into internal buffer
-
-@param[In]  UlpLocation
-
-@return     true when successfully done
-******************************************************************************/
-bool SystemStatus::eventPosition(const UlpLocation& location,
-                                 const GpsLocationExtended& locationEx)
-{
-    SystemStatusLocation s(location, locationEx);
-    if (!mCache.mLocation.empty() && mCache.mLocation.back().equals(s)) {
-        mCache.mLocation.back().mUtcReported = s.mUtcReported;
-    }
-    else {
-        mCache.mLocation.push_back(s);
-        if (mCache.mLocation.size() > maxLocation) {
-            mCache.mLocation.erase(mCache.mLocation.begin());
-        }
-    }
-    LOC_LOGV("eventPosition - lat=%f lon=%f alt=%f speed=%f",
-             s.mLocation.gpsLocation.latitude,
-             s.mLocation.gpsLocation.longitude,
-             s.mLocation.gpsLocation.altitude,
-             s.mLocation.gpsLocation.speed);
-    return true;
-}
-
-/******************************************************************************
-@brief      API to get report data into a given buffer
-
-@param[In]  reference to report buffer
-@param[In]  bool flag to identify latest only or entire buffer
-
-@return     true when successfully done
-******************************************************************************/
-bool SystemStatus::getReport(SystemStatusReports& report, bool isLatestOnly) const
-{
-    pthread_mutex_lock(&mMutexSystemStatus);
-
-    if (isLatestOnly) {
-        // push back only the latest report and return it
-        report.mLocation.clear();
-        if (mCache.mLocation.size() >= 1) {
-            report.mLocation.push_back(mCache.mLocation.back());
-            report.mLocation.back().dump();
-        }
-
-        report.mTimeAndClock.clear();
-        if (mCache.mTimeAndClock.size() >= 1) {
-            report.mTimeAndClock.push_back(mCache.mTimeAndClock.back());
-            report.mTimeAndClock.back().dump();
-        }
-        report.mXoState.clear();
-        if (mCache.mXoState.size() >= 1) {
-            report.mXoState.push_back(mCache.mXoState.back());
-            report.mXoState.back().dump();
-        }
-        report.mRfAndParams.clear();
-        if (mCache.mRfAndParams.size() >= 1) {
-            report.mRfAndParams.push_back(mCache.mRfAndParams.back());
-            report.mRfAndParams.back().dump();
-        }
-        report.mErrRecovery.clear();
-        if (mCache.mErrRecovery.size() >= 1) {
-            report.mErrRecovery.push_back(mCache.mErrRecovery.back());
-            report.mErrRecovery.back().dump();
-        }
-
-        report.mInjectedPosition.clear();
-        if (mCache.mInjectedPosition.size() >= 1) {
-            report.mInjectedPosition.push_back(mCache.mInjectedPosition.back());
-            report.mInjectedPosition.back().dump();
-        }
-        report.mBestPosition.clear();
-        if (mCache.mBestPosition.size() >= 1) {
-            report.mBestPosition.push_back(mCache.mBestPosition.back());
-            report.mBestPosition.back().dump();
-        }
-        report.mXtra.clear();
-        if (mCache.mXtra.size() >= 1) {
-            report.mXtra.push_back(mCache.mXtra.back());
-            report.mXtra.back().dump();
-        }
-        report.mEphemeris.clear();
-        if (mCache.mEphemeris.size() >= 1) {
-            report.mEphemeris.push_back(mCache.mEphemeris.back());
-            report.mEphemeris.back().dump();
-        }
-        report.mSvHealth.clear();
-        if (mCache.mSvHealth.size() >= 1) {
-            report.mSvHealth.push_back(mCache.mSvHealth.back());
-            report.mSvHealth.back().dump();
-        }
-        report.mPdr.clear();
-        if (mCache.mPdr.size() >= 1) {
-            report.mPdr.push_back(mCache.mPdr.back());
-            report.mPdr.back().dump();
-        }
-        report.mNavData.clear();
-        if (mCache.mNavData.size() >= 1) {
-            report.mNavData.push_back(mCache.mNavData.back());
-            report.mNavData.back().dump();
-        }
-
-        report.mPositionFailure.clear();
-        if (mCache.mPositionFailure.size() >= 1) {
-            report.mPositionFailure.push_back(mCache.mPositionFailure.back());
-            report.mPositionFailure.back().dump();
-        }
-    }
-    else {
-        // copy entire reports and return them
-        report.mLocation.clear();
-
-        report.mTimeAndClock.clear();
-        report.mXoState.clear();
-        report.mRfAndParams.clear();
-        report.mErrRecovery.clear();
-
-        report.mInjectedPosition.clear();
-        report.mBestPosition.clear();
-        report.mXtra.clear();
-        report.mEphemeris.clear();
-        report.mSvHealth.clear();
-        report.mPdr.clear();
-        report.mNavData.clear();
-
-        report.mPositionFailure.clear();
-        report = mCache;
-    }
-
-    pthread_mutex_unlock(&mMutexSystemStatus);
-    return true;
-}
-
-/******************************************************************************
-@brief      API to set default report data
-
-@param[In]  none
-
-@return     true when successfully done
-******************************************************************************/
-bool SystemStatus::setDefaultReport(void)
-{
-    pthread_mutex_lock(&mMutexSystemStatus);
-
-    mCache.mLocation.push_back(SystemStatusLocation());
-    if (mCache.mLocation.size() > maxLocation) {
-        mCache.mLocation.erase(mCache.mLocation.begin());
-    }
-
-    mCache.mTimeAndClock.push_back(SystemStatusTimeAndClock());
-    if (mCache.mTimeAndClock.size() > maxTimeAndClock) {
-        mCache.mTimeAndClock.erase(mCache.mTimeAndClock.begin());
-    }
-    mCache.mXoState.push_back(SystemStatusXoState());
-    if (mCache.mXoState.size() > maxXoState) {
-        mCache.mXoState.erase(mCache.mXoState.begin());
-    }
-    mCache.mRfAndParams.push_back(SystemStatusRfAndParams());
-    if (mCache.mRfAndParams.size() > maxRfAndParams) {
-        mCache.mRfAndParams.erase(mCache.mRfAndParams.begin());
-    }
-    mCache.mErrRecovery.push_back(SystemStatusErrRecovery());
-    if (mCache.mErrRecovery.size() > maxErrRecovery) {
-        mCache.mErrRecovery.erase(mCache.mErrRecovery.begin());
-    }
-
-    mCache.mInjectedPosition.push_back(SystemStatusInjectedPosition());
-    if (mCache.mInjectedPosition.size() > maxInjectedPosition) {
-        mCache.mInjectedPosition.erase(mCache.mInjectedPosition.begin());
-    }
-    mCache.mBestPosition.push_back(SystemStatusBestPosition());
-    if (mCache.mBestPosition.size() > maxBestPosition) {
-        mCache.mBestPosition.erase(mCache.mBestPosition.begin());
-    }
-    mCache.mXtra.push_back(SystemStatusXtra());
-    if (mCache.mXtra.size() > maxXtra) {
-        mCache.mXtra.erase(mCache.mXtra.begin());
-    }
-    mCache.mEphemeris.push_back(SystemStatusEphemeris());
-    if (mCache.mEphemeris.size() > maxEphemeris) {
-        mCache.mEphemeris.erase(mCache.mEphemeris.begin());
-    }
-    mCache.mSvHealth.push_back(SystemStatusSvHealth());
-    if (mCache.mSvHealth.size() > maxSvHealth) {
-        mCache.mSvHealth.erase(mCache.mSvHealth.begin());
-    }
-    mCache.mPdr.push_back(SystemStatusPdr());
-    if (mCache.mPdr.size() > maxPdr) {
-        mCache.mPdr.erase(mCache.mPdr.begin());
-    }
-    mCache.mNavData.push_back(SystemStatusNavData());
-    if (mCache.mNavData.size() > maxNavData) {
-        mCache.mNavData.erase(mCache.mNavData.begin());
-    }
-
-    mCache.mPositionFailure.push_back(SystemStatusPositionFailure());
-    if (mCache.mPositionFailure.size() > maxPositionFailure) {
-        mCache.mPositionFailure.erase(mCache.mPositionFailure.begin());
-    }
-
-    pthread_mutex_unlock(&mMutexSystemStatus);
-    return true;
-}
-
-} // namespace loc_core
-
diff --git a/sdm845/core/SystemStatus.h b/sdm845/core/SystemStatus.h
deleted file mode 100644
index 78fc6f8..0000000
--- a/sdm845/core/SystemStatus.h
+++ /dev/null
@@ -1,444 +0,0 @@
-/* Copyright (c) 2017, 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 "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 __SYSTEM_STATUS__
-#define __SYSTEM_STATUS__
-
-#include <stdint.h>
-#include <vector>
-#include <gps_extended_c.h>
-
-#define GPS_MIN  (1)   //1-32
-#define SBAS_MIN (33)
-#define GLO_MIN  (65)  //65-88
-#define QZSS_MIN (193) //193-197
-#define BDS_MIN  (201) //201-237
-#define GAL_MIN  (301) //301-336
-
-#define GPS_NUM  (32)
-#define SBAS_NUM (32)
-#define GLO_NUM  (24)
-#define QZSS_NUM (5)
-#define BDS_NUM  (37)
-#define GAL_NUM  (36)
-#define SV_ALL_NUM  (GPS_NUM+GLO_NUM+QZSS_NUM+BDS_NUM+GAL_NUM) //=134
-
-namespace loc_core
-{
-
-/******************************************************************************
- SystemStatus report data structure
-******************************************************************************/
-class SystemStatusItemBase
-{
-public:
-    timespec mUtcTime;     // UTC timestamp when this info was last updated
-    timespec mUtcReported; // UTC timestamp when this info was reported
-
-    SystemStatusItemBase() {
-        timeval tv;
-        gettimeofday(&tv, NULL);
-        mUtcTime.tv_sec  = tv.tv_sec;
-        mUtcTime.tv_nsec = tv.tv_usec *1000ULL;
-        mUtcReported = mUtcTime;
-    };
-    virtual ~SystemStatusItemBase() { };
-    virtual void dump(void) { };
-};
-
-class SystemStatusLocation : public SystemStatusItemBase
-{
-public:
-    bool mValid;
-    UlpLocation mLocation;
-    GpsLocationExtended mLocationEx;
-    inline SystemStatusLocation() :
-        mValid(false) {}
-    inline SystemStatusLocation(const UlpLocation& location,
-                         const GpsLocationExtended& locationEx) :
-        mValid(true),
-        mLocation(location),
-        mLocationEx(locationEx) { }
-    bool equals(SystemStatusLocation& peer);
-    void dump(void);
-};
-
-class SystemStatusPQWM1;
-class SystemStatusTimeAndClock : public SystemStatusItemBase
-{
-public:
-    uint16_t mGpsWeek;
-    uint32_t mGpsTowMs;
-    uint8_t  mTimeValid;
-    uint8_t  mTimeSource;
-    int32_t  mTimeUnc;
-    int32_t  mClockFreqBias;
-    int32_t  mClockFreqBiasUnc;
-    int32_t  mLeapSeconds;
-    int32_t  mLeapSecUnc;
-    inline SystemStatusTimeAndClock() :
-        mGpsWeek(0),
-        mGpsTowMs(0),
-        mTimeValid(0),
-        mTimeSource(0),
-        mTimeUnc(0),
-        mClockFreqBias(0),
-        mClockFreqBiasUnc(0),
-        mLeapSeconds(0),
-        mLeapSecUnc(0) {}
-    inline SystemStatusTimeAndClock(const SystemStatusPQWM1& nmea);
-    bool equals(SystemStatusTimeAndClock& peer);
-    void dump(void);
-};
-
-class SystemStatusXoState : public SystemStatusItemBase
-{
-public:
-    uint8_t  mXoState;
-    inline SystemStatusXoState() :
-        mXoState(0) {}
-    inline SystemStatusXoState(const SystemStatusPQWM1& nmea);
-    bool equals(SystemStatusXoState& peer);
-    void dump(void);
-};
-
-class SystemStatusRfAndParams : public SystemStatusItemBase
-{
-public:
-    int32_t  mPgaGain;
-    uint32_t mGpsBpAmpI;
-    uint32_t mGpsBpAmpQ;
-    uint32_t mAdcI;
-    uint32_t mAdcQ;
-    uint32_t mJammerGps;
-    uint32_t mJammerGlo;
-    uint32_t mJammerBds;
-    uint32_t mJammerGal;
-    double   mAgcGps;
-    double   mAgcGlo;
-    double   mAgcBds;
-    double   mAgcGal;
-    inline SystemStatusRfAndParams() :
-        mPgaGain(0),
-        mGpsBpAmpI(0),
-        mGpsBpAmpQ(0),
-        mAdcI(0),
-        mAdcQ(0),
-        mJammerGps(0),
-        mJammerGlo(0),
-        mJammerBds(0),
-        mJammerGal(0),
-        mAgcGps(0),
-        mAgcGlo(0),
-        mAgcBds(0),
-        mAgcGal(0) {}
-    inline SystemStatusRfAndParams(const SystemStatusPQWM1& nmea);
-    bool equals(SystemStatusRfAndParams& peer);
-    void dump(void);
-};
-
-class SystemStatusErrRecovery : public SystemStatusItemBase
-{
-public:
-    uint32_t mRecErrorRecovery;
-    inline SystemStatusErrRecovery() :
-        mRecErrorRecovery(0) {};
-    inline SystemStatusErrRecovery(const SystemStatusPQWM1& nmea);
-    bool equals(SystemStatusErrRecovery& peer);
-    void dump(void);
-};
-
-class SystemStatusPQWP1;
-class SystemStatusInjectedPosition : public SystemStatusItemBase
-{
-public:
-    uint8_t  mEpiValidity;
-    float    mEpiLat;
-    float    mEpiLon;
-    float    mEpiAlt;
-    float    mEpiHepe;
-    float    mEpiAltUnc;
-    uint8_t  mEpiSrc;
-    inline SystemStatusInjectedPosition() :
-        mEpiValidity(0),
-        mEpiLat(0),
-        mEpiLon(0),
-        mEpiAlt(0),
-        mEpiHepe(0),
-        mEpiAltUnc(0),
-        mEpiSrc(0) {}
-    inline SystemStatusInjectedPosition(const SystemStatusPQWP1& nmea);
-    bool equals(SystemStatusInjectedPosition& peer);
-    void dump(void);
-};
-
-class SystemStatusPQWP2;
-class SystemStatusBestPosition : public SystemStatusItemBase
-{
-public:
-    bool     mValid;
-    float    mBestLat;
-    float    mBestLon;
-    float    mBestAlt;
-    float    mBestHepe;
-    float    mBestAltUnc;
-    inline SystemStatusBestPosition() :
-        mValid(false),
-        mBestLat(0),
-        mBestLon(0),
-        mBestAlt(0),
-        mBestHepe(0),
-        mBestAltUnc(0) {}
-    inline SystemStatusBestPosition(const SystemStatusPQWP2& nmea);
-    bool equals(SystemStatusBestPosition& peer);
-    void dump(void);
-};
-
-class SystemStatusPQWP3;
-class SystemStatusXtra : public SystemStatusItemBase
-{
-public:
-    uint8_t   mXtraValidMask;
-    uint32_t  mGpsXtraAge;
-    uint32_t  mGloXtraAge;
-    uint32_t  mBdsXtraAge;
-    uint32_t  mGalXtraAge;
-    uint32_t  mQzssXtraAge;
-    uint32_t  mGpsXtraValid;
-    uint32_t  mGloXtraValid;
-    uint64_t  mBdsXtraValid;
-    uint64_t  mGalXtraValid;
-    uint8_t   mQzssXtraValid;
-    inline SystemStatusXtra() :
-        mXtraValidMask(0),
-        mGpsXtraAge(0),
-        mGloXtraAge(0),
-        mBdsXtraAge(0),
-        mGalXtraAge(0),
-        mQzssXtraAge(0),
-        mGpsXtraValid(0),
-        mGloXtraValid(0),
-        mBdsXtraValid(0ULL),
-        mGalXtraValid(0ULL),
-        mQzssXtraValid(0) {}
-    inline SystemStatusXtra(const SystemStatusPQWP3& nmea);
-    bool equals(SystemStatusXtra& peer);
-    void dump(void);
-};
-
-class SystemStatusPQWP4;
-class SystemStatusEphemeris : public SystemStatusItemBase
-{
-public:
-    uint32_t  mGpsEpheValid;
-    uint32_t  mGloEpheValid;
-    uint64_t  mBdsEpheValid;
-    uint64_t  mGalEpheValid;
-    uint8_t   mQzssEpheValid;
-    inline SystemStatusEphemeris() :
-        mGpsEpheValid(0),
-        mGloEpheValid(0),
-        mBdsEpheValid(0ULL),
-        mGalEpheValid(0ULL),
-        mQzssEpheValid(0) {}
-    inline SystemStatusEphemeris(const SystemStatusPQWP4& nmea);
-    bool equals(SystemStatusEphemeris& peer);
-    void dump(void);
-};
-
-class SystemStatusPQWP5;
-class SystemStatusSvHealth : public SystemStatusItemBase
-{
-public:
-    uint32_t  mGpsUnknownMask;
-    uint32_t  mGloUnknownMask;
-    uint64_t  mBdsUnknownMask;
-    uint64_t  mGalUnknownMask;
-    uint8_t   mQzssUnknownMask;
-    uint32_t  mGpsGoodMask;
-    uint32_t  mGloGoodMask;
-    uint64_t  mBdsGoodMask;
-    uint64_t  mGalGoodMask;
-    uint8_t   mQzssGoodMask;
-    uint32_t  mGpsBadMask;
-    uint32_t  mGloBadMask;
-    uint64_t  mBdsBadMask;
-    uint64_t  mGalBadMask;
-    uint8_t   mQzssBadMask;
-    inline SystemStatusSvHealth() :
-        mGpsUnknownMask(0),
-        mGloUnknownMask(0),
-        mBdsUnknownMask(0ULL),
-        mGalUnknownMask(0ULL),
-        mQzssUnknownMask(0),
-        mGpsGoodMask(0),
-        mGloGoodMask(0),
-        mBdsGoodMask(0ULL),
-        mGalGoodMask(0ULL),
-        mQzssGoodMask(0),
-        mGpsBadMask(0),
-        mGloBadMask(0),
-        mBdsBadMask(0ULL),
-        mGalBadMask(0ULL),
-        mQzssBadMask(0) {}
-    inline SystemStatusSvHealth(const SystemStatusPQWP5& nmea);
-    bool equals(SystemStatusSvHealth& peer);
-    void dump(void);
-};
-
-class SystemStatusPQWP6;
-class SystemStatusPdr : public SystemStatusItemBase
-{
-public:
-    uint32_t  mFixInfoMask;
-    inline SystemStatusPdr() :
-        mFixInfoMask(0) {}
-    inline SystemStatusPdr(const SystemStatusPQWP6& nmea);
-    bool equals(SystemStatusPdr& peer);
-    void dump(void);
-};
-
-class SystemStatusPQWP7;
-struct SystemStatusNav
-{
-    GnssEphemerisType   mType;
-    GnssEphemerisSource mSource;
-    int32_t             mAgeSec;
-};
-
-class SystemStatusNavData : public SystemStatusItemBase
-{
-public:
-    SystemStatusNav mNav[SV_ALL_NUM];
-    inline SystemStatusNavData() {
-        for (uint32_t i=0; i<SV_ALL_NUM; i++) {
-            mNav[i].mType = GNSS_EPH_TYPE_UNKNOWN;
-            mNav[i].mSource = GNSS_EPH_SOURCE_UNKNOWN;
-            mNav[i].mAgeSec = 0;
-        }
-    }
-    inline SystemStatusNavData(const SystemStatusPQWP7& nmea);
-    bool equals(SystemStatusNavData& peer);
-    void dump(void);
-};
-
-class SystemStatusPQWS1;
-class SystemStatusPositionFailure : public SystemStatusItemBase
-{
-public:
-    uint32_t  mFixInfoMask;
-    uint32_t  mHepeLimit;
-    inline SystemStatusPositionFailure() :
-        mFixInfoMask(0),
-        mHepeLimit(0) {}
-    inline SystemStatusPositionFailure(const SystemStatusPQWS1& nmea);
-    bool equals(SystemStatusPositionFailure& peer);
-    void dump(void);
-};
-
-/******************************************************************************
- SystemStatusReports
-******************************************************************************/
-class SystemStatusReports
-{
-public:
-    std::vector<SystemStatusLocation>         mLocation;
-
-    std::vector<SystemStatusTimeAndClock>     mTimeAndClock;
-    std::vector<SystemStatusXoState>          mXoState;
-    std::vector<SystemStatusRfAndParams>      mRfAndParams;
-    std::vector<SystemStatusErrRecovery>      mErrRecovery;
-
-    std::vector<SystemStatusInjectedPosition> mInjectedPosition;
-    std::vector<SystemStatusBestPosition>     mBestPosition;
-    std::vector<SystemStatusXtra>             mXtra;
-    std::vector<SystemStatusEphemeris>        mEphemeris;
-    std::vector<SystemStatusSvHealth>         mSvHealth;
-    std::vector<SystemStatusPdr>              mPdr;
-    std::vector<SystemStatusNavData>          mNavData;
-
-    std::vector<SystemStatusPositionFailure>  mPositionFailure;
-};
-
-/******************************************************************************
- SystemStatus
-******************************************************************************/
-class SystemStatus
-{
-    static pthread_mutex_t mMutexSystemStatus;
-
-    static const uint32_t                     maxLocation = 5;
-
-    static const uint32_t                     maxTimeAndClock = 5;
-    static const uint32_t                     maxXoState = 5;
-    static const uint32_t                     maxRfAndParams = 5;
-    static const uint32_t                     maxErrRecovery = 5;
-
-    static const uint32_t                     maxInjectedPosition = 5;
-    static const uint32_t                     maxBestPosition = 5;
-    static const uint32_t                     maxXtra = 5;
-    static const uint32_t                     maxEphemeris = 5;
-    static const uint32_t                     maxSvHealth = 5;
-    static const uint32_t                     maxPdr = 5;
-    static const uint32_t                     maxNavData = 5;
-
-    static const uint32_t                     maxPositionFailure = 5;
-
-    SystemStatusReports mCache;
-
-    bool setLocation(const UlpLocation& location);
-
-    bool setTimeAndCLock(const SystemStatusPQWM1& nmea);
-    bool setXoState(const SystemStatusPQWM1& nmea);
-    bool setRfAndParams(const SystemStatusPQWM1& nmea);
-    bool setErrRecovery(const SystemStatusPQWM1& nmea);
-
-    bool setInjectedPosition(const SystemStatusPQWP1& nmea);
-    bool setBestPosition(const SystemStatusPQWP2& nmea);
-    bool setXtra(const SystemStatusPQWP3& nmea);
-    bool setEphemeris(const SystemStatusPQWP4& nmea);
-    bool setSvHealth(const SystemStatusPQWP5& nmea);
-    bool setPdr(const SystemStatusPQWP6& nmea);
-    bool setNavData(const SystemStatusPQWP7& nmea);
-
-    bool setPositionFailure(const SystemStatusPQWS1& nmea);
-
-public:
-    SystemStatus();
-    ~SystemStatus() { }
-
-    bool eventPosition(const UlpLocation& location,const GpsLocationExtended& locationEx);
-    bool setNmeaString(const char *data, uint32_t len);
-    bool getReport(SystemStatusReports& reports, bool isLatestonly = false) const;
-    bool setDefaultReport(void);
-};
-
-} // namespace loc_core
-
-#endif //__SYSTEM_STATUS__
-
diff --git a/sdm845/core/UlpProxyBase.h b/sdm845/core/UlpProxyBase.h
deleted file mode 100644
index 8863b66..0000000
--- a/sdm845/core/UlpProxyBase.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright (c) 2013-2017, 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 "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 ULP_PROXY_BASE_H
-#define ULP_PROXY_BASE_H
-
-#include <gps_extended.h>
-#include <LocationAPI.h>
-
-namespace loc_core {
-
-class LocAdapterBase;
-
-class UlpProxyBase {
-public:
-    LocPosMode mPosMode;
-    bool mFixSet;
-    inline UlpProxyBase() {
-        mPosMode.mode = LOC_POSITION_MODE_INVALID;
-        mFixSet = false;
-    }
-    inline virtual ~UlpProxyBase() {}
-    inline virtual bool sendStartFix() { mFixSet = true; return false; }
-    inline virtual bool sendStopFix() { mFixSet = false; return false; }
-    inline virtual bool sendFixMode(LocPosMode &params) {
-        mPosMode = params;
-        return false;
-    }
-
-    inline virtual bool reportPosition(const UlpLocation &location,
-                                       const GpsLocationExtended &locationExtended,
-                                       enum loc_sess_status status,
-                                       LocPosTechMask loc_technology_mask) {
-        (void)location;
-        (void)locationExtended;
-        (void)status;
-        (void)loc_technology_mask;
-        return false;
-    }
-    inline virtual bool reportSv(const GnssSvNotification& svNotify) {
-        (void)svNotify;
-        return false;
-    }
-    inline virtual bool reportSvMeasurement(GnssSvMeasurementSet &svMeasurementSet) {
-        (void)svMeasurementSet;
-        return false;
-    }
-
-    inline virtual bool reportSvPolynomial(GnssSvPolynomial &svPolynomial)
-    {
-       (void)svPolynomial;
-       return false;
-    }
-    inline virtual bool reportStatus(LocGpsStatusValue status) {
-
-        (void)status;
-        return false;
-    }
-    inline virtual void setAdapter(LocAdapterBase* adapter) {
-
-        (void)adapter;
-    }
-    inline virtual void setCapabilities(unsigned long capabilities) {
-
-        (void)capabilities;
-    }
-    inline virtual bool reportBatchingSession(const LocationOptions& options, bool active)
-    {
-         (void)options;
-         (void)active;
-         return false;
-    }
-    inline virtual bool reportPositions(const UlpLocation* ulpLocations,
-                                        const GpsLocationExtended* extendedLocations,
-                                        const uint32_t* techMasks,
-                                        const size_t count)
-    {
-        (void)ulpLocations;
-        (void)extendedLocations;
-        (void)techMasks;
-        (void)count;
-        return false;
-    }
-    inline virtual bool reportDeleteAidingData(LocGpsAidingData aidingData)
-    {
-       (void)aidingData;
-       return false;
-    }
-    inline virtual bool reportNmea(const char* nmea, int length)
-    {
-        (void)nmea;
-        (void)length;
-        return false;
-    }
-};
-
-} // namespace loc_core
-
-#endif // ULP_PROXY_BASE_H
diff --git a/sdm845/core/loc_core_log.cpp b/sdm845/core/loc_core_log.cpp
deleted file mode 100644
index ae5948d..0000000
--- a/sdm845/core/loc_core_log.cpp
+++ /dev/null
@@ -1,243 +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 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 "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.
- *
- */
-
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_core_log"
-
-#include <loc_log.h>
-#include <loc_core_log.h>
-#include <platform_lib_includes.h>
-
-void LocPosMode::logv() const
-{
-    LOC_LOGV ("Position mode: %s\n  Position recurrence: %s\n  "
-              "min interval: %d\n  preferred accuracy: %d\n  "
-              "preferred time: %d\n  credentials: %s  provider: %s",
-              loc_get_position_mode_name(mode),
-              loc_get_position_recurrence_name(recurrence),
-              min_interval,
-              preferred_accuracy,
-              preferred_time,
-              credentials,
-              provider);
-}
-
-/* GPS status names */
-static const loc_name_val_s_type gps_status_name[] =
-{
-    NAME_VAL( LOC_GPS_STATUS_NONE ),
-    NAME_VAL( LOC_GPS_STATUS_SESSION_BEGIN ),
-    NAME_VAL( LOC_GPS_STATUS_SESSION_END ),
-    NAME_VAL( LOC_GPS_STATUS_ENGINE_ON ),
-    NAME_VAL( LOC_GPS_STATUS_ENGINE_OFF ),
-};
-static const int gps_status_num = sizeof(gps_status_name) / sizeof(loc_name_val_s_type);
-
-/* Find Android GPS status name */
-const char* loc_get_gps_status_name(LocGpsStatusValue gps_status)
-{
-   return loc_get_name_from_val(gps_status_name, gps_status_num,
-         (long) gps_status);
-}
-
-
-
-static const loc_name_val_s_type loc_eng_position_modes[] =
-{
-    NAME_VAL( LOC_POSITION_MODE_STANDALONE ),
-    NAME_VAL( LOC_POSITION_MODE_MS_BASED ),
-    NAME_VAL( LOC_POSITION_MODE_MS_ASSISTED ),
-    NAME_VAL( LOC_POSITION_MODE_RESERVED_1 ),
-    NAME_VAL( LOC_POSITION_MODE_RESERVED_2 ),
-    NAME_VAL( LOC_POSITION_MODE_RESERVED_3 ),
-    NAME_VAL( LOC_POSITION_MODE_RESERVED_4 ),
-    NAME_VAL( LOC_POSITION_MODE_RESERVED_5 )
-};
-static const int loc_eng_position_mode_num = sizeof(loc_eng_position_modes) / sizeof(loc_name_val_s_type);
-
-const char* loc_get_position_mode_name(LocGpsPositionMode mode)
-{
-    return loc_get_name_from_val(loc_eng_position_modes, loc_eng_position_mode_num, (long) mode);
-}
-
-
-
-static const loc_name_val_s_type loc_eng_position_recurrences[] =
-{
-    NAME_VAL( LOC_GPS_POSITION_RECURRENCE_PERIODIC ),
-    NAME_VAL( LOC_GPS_POSITION_RECURRENCE_SINGLE )
-};
-static const int loc_eng_position_recurrence_num = sizeof(loc_eng_position_recurrences) / sizeof(loc_name_val_s_type);
-
-const char* loc_get_position_recurrence_name(LocGpsPositionRecurrence recur)
-{
-    return loc_get_name_from_val(loc_eng_position_recurrences, loc_eng_position_recurrence_num, (long) recur);
-}
-
-
-
-static const loc_name_val_s_type loc_eng_aiding_data_bits[] =
-{
-    NAME_VAL( LOC_GPS_DELETE_EPHEMERIS ),
-    NAME_VAL( LOC_GPS_DELETE_ALMANAC ),
-    NAME_VAL( LOC_GPS_DELETE_POSITION ),
-    NAME_VAL( LOC_GPS_DELETE_TIME ),
-    NAME_VAL( LOC_GPS_DELETE_IONO ),
-    NAME_VAL( LOC_GPS_DELETE_UTC ),
-    NAME_VAL( LOC_GPS_DELETE_HEALTH ),
-    NAME_VAL( LOC_GPS_DELETE_SVDIR ),
-    NAME_VAL( LOC_GPS_DELETE_SVSTEER ),
-    NAME_VAL( LOC_GPS_DELETE_SADATA ),
-    NAME_VAL( LOC_GPS_DELETE_RTI ),
-    NAME_VAL( LOC_GPS_DELETE_CELLDB_INFO ),
-    NAME_VAL( LOC_GPS_DELETE_ALL)
-};
-static const int loc_eng_aiding_data_bit_num = sizeof(loc_eng_aiding_data_bits) / sizeof(loc_name_val_s_type);
-
-const char* loc_get_aiding_data_mask_names(LocGpsAidingData data)
-{
-    return NULL;
-}
-
-
-static const loc_name_val_s_type loc_eng_agps_types[] =
-{
-    NAME_VAL( LOC_AGPS_TYPE_INVALID ),
-    NAME_VAL( LOC_AGPS_TYPE_ANY ),
-    NAME_VAL( LOC_AGPS_TYPE_SUPL ),
-    NAME_VAL( LOC_AGPS_TYPE_C2K ),
-    NAME_VAL( LOC_AGPS_TYPE_WWAN_ANY )
-};
-static const int loc_eng_agps_type_num = sizeof(loc_eng_agps_types) / sizeof(loc_name_val_s_type);
-
-const char* loc_get_agps_type_name(LocAGpsType type)
-{
-    return loc_get_name_from_val(loc_eng_agps_types, loc_eng_agps_type_num, (long) type);
-}
-
-
-static const loc_name_val_s_type loc_eng_ni_types[] =
-{
-    NAME_VAL( LOC_GPS_NI_TYPE_VOICE ),
-    NAME_VAL( LOC_GPS_NI_TYPE_UMTS_SUPL ),
-    NAME_VAL( LOC_GPS_NI_TYPE_UMTS_CTRL_PLANE ),
-    NAME_VAL( LOC_GPS_NI_TYPE_EMERGENCY_SUPL )
-};
-static const int loc_eng_ni_type_num = sizeof(loc_eng_ni_types) / sizeof(loc_name_val_s_type);
-
-const char* loc_get_ni_type_name(LocGpsNiType type)
-{
-    return loc_get_name_from_val(loc_eng_ni_types, loc_eng_ni_type_num, (long) type);
-}
-
-
-static const loc_name_val_s_type loc_eng_ni_responses[] =
-{
-    NAME_VAL( LOC_GPS_NI_RESPONSE_ACCEPT ),
-    NAME_VAL( LOC_GPS_NI_RESPONSE_DENY ),
-    NAME_VAL( LOC_GPS_NI_RESPONSE_DENY )
-};
-static const int loc_eng_ni_reponse_num = sizeof(loc_eng_ni_responses) / sizeof(loc_name_val_s_type);
-
-const char* loc_get_ni_response_name(LocGpsUserResponseType response)
-{
-    return loc_get_name_from_val(loc_eng_ni_responses, loc_eng_ni_reponse_num, (long) response);
-}
-
-
-static const loc_name_val_s_type loc_eng_ni_encodings[] =
-{
-    NAME_VAL( LOC_GPS_ENC_NONE ),
-    NAME_VAL( LOC_GPS_ENC_SUPL_GSM_DEFAULT ),
-    NAME_VAL( LOC_GPS_ENC_SUPL_UTF8 ),
-    NAME_VAL( LOC_GPS_ENC_SUPL_UCS2 ),
-    NAME_VAL( LOC_GPS_ENC_UNKNOWN )
-};
-static const int loc_eng_ni_encoding_num = sizeof(loc_eng_ni_encodings) / sizeof(loc_name_val_s_type);
-
-const char* loc_get_ni_encoding_name(LocGpsNiEncodingType encoding)
-{
-    return loc_get_name_from_val(loc_eng_ni_encodings, loc_eng_ni_encoding_num, (long) encoding);
-}
-
-static const loc_name_val_s_type loc_eng_agps_bears[] =
-{
-    NAME_VAL( AGPS_APN_BEARER_INVALID ),
-    NAME_VAL( AGPS_APN_BEARER_IPV4 ),
-    NAME_VAL( AGPS_APN_BEARER_IPV6 ),
-    NAME_VAL( AGPS_APN_BEARER_IPV4V6 )
-};
-static const int loc_eng_agps_bears_num = sizeof(loc_eng_agps_bears) / sizeof(loc_name_val_s_type);
-
-const char* loc_get_agps_bear_name(AGpsBearerType bearer)
-{
-    return loc_get_name_from_val(loc_eng_agps_bears, loc_eng_agps_bears_num, (long) bearer);
-}
-
-static const loc_name_val_s_type loc_eng_server_types[] =
-{
-    NAME_VAL( LOC_AGPS_CDMA_PDE_SERVER ),
-    NAME_VAL( LOC_AGPS_CUSTOM_PDE_SERVER ),
-    NAME_VAL( LOC_AGPS_MPC_SERVER ),
-    NAME_VAL( LOC_AGPS_SUPL_SERVER )
-};
-static const int loc_eng_server_types_num = sizeof(loc_eng_server_types) / sizeof(loc_name_val_s_type);
-
-const char* loc_get_server_type_name(LocServerType type)
-{
-    return loc_get_name_from_val(loc_eng_server_types, loc_eng_server_types_num, (long) type);
-}
-
-static const loc_name_val_s_type loc_eng_position_sess_status_types[] =
-{
-    NAME_VAL( LOC_SESS_SUCCESS ),
-    NAME_VAL( LOC_SESS_INTERMEDIATE ),
-    NAME_VAL( LOC_SESS_FAILURE )
-};
-static const int loc_eng_position_sess_status_num = sizeof(loc_eng_position_sess_status_types) / sizeof(loc_name_val_s_type);
-
-const char* loc_get_position_sess_status_name(enum loc_sess_status status)
-{
-    return loc_get_name_from_val(loc_eng_position_sess_status_types, loc_eng_position_sess_status_num, (long) status);
-}
-
-static const loc_name_val_s_type loc_eng_agps_status_names[] =
-{
-    NAME_VAL( LOC_GPS_REQUEST_AGPS_DATA_CONN ),
-    NAME_VAL( LOC_GPS_RELEASE_AGPS_DATA_CONN ),
-    NAME_VAL( LOC_GPS_AGPS_DATA_CONNECTED ),
-    NAME_VAL( LOC_GPS_AGPS_DATA_CONN_DONE ),
-    NAME_VAL( LOC_GPS_AGPS_DATA_CONN_FAILED )
-};
-static const int loc_eng_agps_status_num = sizeof(loc_eng_agps_status_names) / sizeof(loc_name_val_s_type);
-
-const char* loc_get_agps_status_name(LocAGpsStatusValue status)
-{
-    return loc_get_name_from_val(loc_eng_agps_status_names, loc_eng_agps_status_num, (long) status);
-}
diff --git a/sdm845/core/loc_core_log.h b/sdm845/core/loc_core_log.h
deleted file mode 100644
index 2beb687..0000000
--- a/sdm845/core/loc_core_log.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright (c) 2011-2013, 2016-2017 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 "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 LOC_CORE_LOG_H
-#define LOC_CORE_LOG_H
-
-#include <ctype.h>
-#include <gps_extended.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-const char* loc_get_gps_status_name(LocGpsStatusValue gps_status);
-const char* loc_get_position_mode_name(LocGpsPositionMode mode);
-const char* loc_get_position_recurrence_name(LocGpsPositionRecurrence recur);
-const char* loc_get_aiding_data_mask_names(LocGpsAidingData data);
-const char* loc_get_agps_type_name(LocAGpsType type);
-const char* loc_get_ni_type_name(LocGpsNiType type);
-const char* loc_get_ni_response_name(LocGpsUserResponseType response);
-const char* loc_get_ni_encoding_name(LocGpsNiEncodingType encoding);
-const char* loc_get_agps_bear_name(AGpsBearerType bear);
-const char* loc_get_server_type_name(LocServerType type);
-const char* loc_get_position_sess_status_name(enum loc_sess_status status);
-const char* loc_get_agps_status_name(LocAGpsStatusValue status);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LOC_CORE_LOG_H */
diff --git a/sdm845/etc/Android.mk b/sdm845/etc/Android.mk
deleted file mode 100644
index d9eb0e1..0000000
--- a/sdm845/etc/Android.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := gps.conf
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_PATH  := $(TARGET_OUT_VENDOR)/etc/
-LOCAL_SRC_FILES := gps.conf
-
-include $(BUILD_PREBUILT)
-
diff --git a/sdm845/etc/gps.conf b/sdm845/etc/gps.conf
deleted file mode 100644
index 1027d76..0000000
--- a/sdm845/etc/gps.conf
+++ /dev/null
@@ -1,207 +0,0 @@
-#Uncommenting these urls would only enable
-#the power up auto injection and force injection(test case).
-#XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra2.bin
-#XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra2.bin
-#XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra2.bin
-
-#Version check for XTRA
-#DISABLE = 0
-#AUTO    = 1
-#XTRA2   = 2
-#XTRA3   = 3
-XTRA_VERSION_CHECK=0
-
-# Error Estimate
-# _SET = 1
-# _CLEAR = 0
-ERR_ESTIMATE=0
-
-#NTP server
-NTP_SERVER=time.izatcloud.net
-
-#XTRA CA path
-XTRA_CA_PATH=/system/etc/security/cacerts
-
-# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info
-#               4 - Debug, 5 - Verbose
-# If DEBUG_LEVEL is commented, Android's logging levels will be used
-DEBUG_LEVEL = 3
-
-# Intermediate position report, 1=enable, 0=disable
-INTERMEDIATE_POS=0
-
-# Below bit mask configures how GPS functionalities
-# should be locked when user turns off GPS on Settings
-# Set bit 0x1 if MO GPS functionalities are to be locked
-# Set bit 0x2 if NI GPS functionalities are to be locked
-# default - non is locked for backward compatibility
-#GPS_LOCK = 0
-
-# supl version 1.0
-SUPL_VER=0x10000
-
-# Emergency SUPL, 1=enable, 0=disable
-#SUPL_ES=0
-
-#Choose PDN for Emergency SUPL
-#1 - Use emergency PDN
-#0 - Use regular SUPL PDN for Emergency SUPL
-#USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=0
-
-#SUPL_MODE is a bit mask set in config.xml per carrier by default.
-#If it is uncommented here, this value will overwrite the value from
-#config.xml.
-#MSA=0X2
-#MSB=0X1
-#SUPL_MODE=
-
-# GPS Capabilities bit mask
-# SCHEDULING = 0x01
-# MSB = 0x02
-# MSA = 0x04
-# ON_DEMAND_TIME = 0x10
-# GEOFENCE = 0x20
-# default = ON_DEMAND_TIME | MSA | MSB | SCHEDULING | GEOFENCE
-CAPABILITIES=0x37
-
-# Accuracy threshold for intermediate positions
-# less accurate positions are ignored, 0 for passing all positions
-# ACCURACY_THRES=5000
-
-################################
-##### AGPS server settings #####
-################################
-
-# FOR SUPL SUPPORT, set the following
-# SUPL_HOST=supl.host.com or IP
-# SUPL_PORT=1234
-
-# FOR C2K PDE SUPPORT, set the following
-# C2K_HOST=c2k.pde.com or IP
-# C2K_PORT=1234
-
-# Bitmask of slots that are available
-# for write/install to, where 1s indicate writable,
-# and the default value is 0 where no slots
-# are writable. For example, AGPS_CERT_WRITABLE_MASK
-# of b1000001010 makes 3 slots available
-# and the remaining 7 slots unwritable.
-#AGPS_CERT_WRITABLE_MASK=0
-
-####################################
-#  LTE Positioning Profile Settings
-####################################
-# 0: Enable RRLP on LTE(Default)
-# 1: Enable LPP_User_Plane on LTE
-# 2: Enable LPP_Control_Plane
-# 3: Enable both LPP_User_Plane and LPP_Control_Plane
-LPP_PROFILE = 2
-
-################################
-# EXTRA SETTINGS
-################################
-# NMEA provider (1=Modem Processor, 0=Application Processor)
-NMEA_PROVIDER=0
-# Mark if it is a SGLTE target (1=SGLTE, 0=nonSGLTE)
-SGLTE_TARGET=0
-
-##################################################
-# Select Positioning Protocol on A-GLONASS system
-##################################################
-# 0x1: RRC CPlane
-# 0x2: RRLP UPlane
-# 0x4: LLP Uplane
-A_GLONASS_POS_PROTOCOL_SELECT = 0
-
-##################################################
-# Select technology for LPPe Control Plane
-##################################################
-# 0x1: DBH for LPPe CP
-# 0x2: WLAN AP Measurements for LPPe CP
-# 0x4: SRN AP measurement for CP
-# 0x8: Sensor Barometer Measurement LPPe CP
-LPPE_CP_TECHNOLOGY = 0
-
-##################################################
-# Select technology for LPPe User Plane
-##################################################
-# 0x1: DBH for LPPe UP
-# 0x2: WLAN AP Measurements for LPPe UP
-# 0x4: SRN AP measurement for UP
-# 0x8: Sensor Barometer Measurement LPPe UP
-LPPE_UP_TECHNOLOGY = 0
-
-##################################################
-# AGPS_CONFIG_INJECT
-##################################################
-# enable/disable injection of AGPS configurations:
-#     SUPL_VER
-#     SUPL_HOST
-#     SUPL_PORT
-#     C2K_HOST
-#     C2K_PORT
-#     LPP_PROFILE
-#     A_GLONASS_POS_PROTOCOL_SELECT
-# 0: disable
-# 1: enable
-AGPS_CONFIG_INJECT = 1
-
-##################################################
-# GNSS settings for automotive use cases
-# Configurations in following section are
-# specific to automotive use cases, others
-# please do not change, keep the default values
-##################################################
-
-# AP Coarse Timestamp Uncertainty
-##################################################
-# default : 10
-# AP time stamp uncertainty, until GNSS receiver
-# is able to acquire better timing information
-AP_TIMESTAMP_UNCERTAINTY = 10
-
-##################################################
-# QDR engine availability status
-##################################################
-# 0 : NO QDR (default)
-# 1 : QDR enabled
-# This settings enables QDR Configuration for
-# automotive use case, if enabled then
-# DR_AP_Service needs to be enabled in izat.conf
-#EXTERNAL_DR_ENABLED = 0
-
-#####################################
-# DR_SYNC Pulse Availability
-#####################################
-# 0 : DR_SYNC pulse not available (default)
-# 1 : DR_SYNC pulse available
-# This configuration enables the driver to make use
-# of PPS events generated by DR_SYNC pulse
-# Standard Linux PPS driver needs to be enabled
-DR_SYNC_ENABLED = 0
-
-#####################################
-# PPS Device name
-#####################################
-PPS_DEVICENAME = /dev/pps0
-
-#####################################
-# AP Clock Accuracy
-#####################################
-# Quality of APPS processor clock (in PPM).
-# Value specified is used for calculation of
-# APPS time stamp uncertainty
-AP_CLOCK_PPM = 100
-
-#####################################
-# MAX ms difference to detect missing pulse
-#####################################
-# Specifies time threshold in ms to validate any missing PPS pulses
-MISSING_PULSE_TIME_DELTA = 900
-
-#####################################
-# Propagation time uncertainty
-#####################################
-# This settings enables time uncertainty propagation
-# logic incase of missing PPS pulse
-PROPAGATION_TIME_UNCERTAINTY = 1
diff --git a/sdm845/gnss/Agps.cpp b/sdm845/gnss/Agps.cpp
deleted file mode 100644
index dcb9ad2..0000000
--- a/sdm845/gnss/Agps.cpp
+++ /dev/null
@@ -1,965 +0,0 @@
-/* Copyright (c) 2012-2017, 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 "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.
- *
- */
-
-#define LOG_TAG "LocSvc_Agps"
-
-#include <Agps.h>
-#include <platform_lib_includes.h>
-#include <ContextBase.h>
-#include <loc_timer.h>
-
-/* --------------------------------------------------------------------
- *   AGPS State Machine Methods
- * -------------------------------------------------------------------*/
-void AgpsStateMachine::processAgpsEvent(AgpsEvent event){
-
-    LOC_LOGD("processAgpsEvent(): SM %p, Event %d, State %d",
-               this, event, mState);
-
-    switch (event){
-
-        case AGPS_EVENT_SUBSCRIBE:
-            processAgpsEventSubscribe();
-            break;
-
-        case AGPS_EVENT_UNSUBSCRIBE:
-            processAgpsEventUnsubscribe();
-            break;
-
-        case AGPS_EVENT_GRANTED:
-            processAgpsEventGranted();
-            break;
-
-        case AGPS_EVENT_RELEASED:
-            processAgpsEventReleased();
-            break;
-
-        case AGPS_EVENT_DENIED:
-            processAgpsEventDenied();
-            break;
-
-        default:
-            LOC_LOGE("Invalid Loc Agps Event");
-    }
-}
-
-void AgpsStateMachine::processAgpsEventSubscribe(){
-
-    switch (mState){
-
-        case AGPS_STATE_RELEASED:
-            /* Add subscriber to list
-             * No notifications until we get RSRC_GRANTED */
-            addSubscriber(mCurrentSubscriber);
-
-            /* Send data request
-             * The if condition below is added so that if the data call setup
-             * fails for DS State Machine, we want to retry in released state.
-             * for Agps State Machine, sendRsrcRequest() will always return
-             * success. */
-            if(requestOrReleaseDataConn(true) == 0){
-                // If data request successful, move to pending state
-                transitionState(AGPS_STATE_PENDING);
-            }
-            break;
-
-        case AGPS_STATE_PENDING:
-            /* Already requested for data connection,
-             * do nothing until we get RSRC_GRANTED event;
-             * Just add this subscriber to the list, for notifications */
-            addSubscriber(mCurrentSubscriber);
-            break;
-
-        case AGPS_STATE_ACQUIRED:
-            /* We already have the data connection setup,
-             * Notify current subscriber with GRANTED event,
-             * And add it to the subscriber list for further notifications. */
-            notifyEventToSubscriber(AGPS_EVENT_GRANTED, mCurrentSubscriber, false);
-            addSubscriber(mCurrentSubscriber);
-            break;
-
-        case AGPS_STATE_RELEASING:
-            addSubscriber(mCurrentSubscriber);
-            break;
-
-        default:
-            LOC_LOGE("Invalid state: %d", mState);
-    }
-}
-
-void AgpsStateMachine::processAgpsEventUnsubscribe(){
-
-    switch (mState){
-
-        case AGPS_STATE_RELEASED:
-            notifyEventToSubscriber(
-                    AGPS_EVENT_UNSUBSCRIBE, mCurrentSubscriber, false);
-            break;
-
-        case AGPS_STATE_PENDING:
-        case AGPS_STATE_ACQUIRED:
-            /* If the subscriber wishes to wait for connection close,
-             * before being removed from list, move to inactive state
-             * and notify */
-            if(mCurrentSubscriber->mWaitForCloseComplete){
-                mCurrentSubscriber->mIsInactive = true;
-                notifyEventToSubscriber(
-                        AGPS_EVENT_UNSUBSCRIBE, mCurrentSubscriber, false);
-            }
-            else{
-                /* Notify only current subscriber and then delete it from
-                 * subscriberList */
-                notifyEventToSubscriber(
-                        AGPS_EVENT_UNSUBSCRIBE, mCurrentSubscriber, true);
-            }
-
-            /* If no subscribers in list, release data connection */
-            if(mSubscriberList.empty()){
-                transitionState(AGPS_STATE_RELEASED);
-                requestOrReleaseDataConn(false);
-            }
-            /* Some subscribers in list, but all inactive;
-             * Release data connection */
-            else if(!anyActiveSubscribers()){
-                transitionState(AGPS_STATE_RELEASING);
-                requestOrReleaseDataConn(false);
-            }
-            break;
-
-        case AGPS_STATE_RELEASING:
-            /* If the subscriber wishes to wait for connection close,
-             * before being removed from list, move to inactive state
-             * and notify */
-            if(mCurrentSubscriber->mWaitForCloseComplete){
-                mCurrentSubscriber->mIsInactive = true;
-                notifyEventToSubscriber(
-                        AGPS_EVENT_UNSUBSCRIBE, mCurrentSubscriber, false);
-            }
-            else{
-                /* Notify only current subscriber and then delete it from
-                 * subscriberList */
-                notifyEventToSubscriber(
-                        AGPS_EVENT_UNSUBSCRIBE, mCurrentSubscriber, true);
-            }
-
-            /* If no subscribers in list, just move the state.
-             * Request for releasing data connection should already have been
-             * sent */
-            if(mSubscriberList.empty()){
-                transitionState(AGPS_STATE_RELEASED);
-            }
-            break;
-
-        default:
-            LOC_LOGE("Invalid state: %d", mState);
-    }
-}
-
-void AgpsStateMachine::processAgpsEventGranted(){
-
-    switch (mState){
-
-        case AGPS_STATE_RELEASED:
-        case AGPS_STATE_ACQUIRED:
-        case AGPS_STATE_RELEASING:
-            LOC_LOGE("Unexpected event GRANTED in state %d", mState);
-            break;
-
-        case AGPS_STATE_PENDING:
-            // Move to acquired state
-            transitionState(AGPS_STATE_ACQUIRED);
-            notifyAllSubscribers(
-                    AGPS_EVENT_GRANTED, false,
-                    AGPS_NOTIFICATION_TYPE_FOR_ACTIVE_SUBSCRIBERS);
-            break;
-
-        default:
-            LOC_LOGE("Invalid state: %d", mState);
-    }
-}
-
-void AgpsStateMachine::processAgpsEventReleased(){
-
-    switch (mState){
-
-        case AGPS_STATE_RELEASED:
-            LOC_LOGE("Unexpected event RELEASED in state %d", mState);
-            break;
-
-        case AGPS_STATE_ACQUIRED:
-            /* Force release received */
-            LOC_LOGW("Force RELEASED event in ACQUIRED state");
-            transitionState(AGPS_STATE_RELEASED);
-            notifyAllSubscribers(
-                    AGPS_EVENT_RELEASED, true,
-                    AGPS_NOTIFICATION_TYPE_FOR_ALL_SUBSCRIBERS);
-            break;
-
-        case AGPS_STATE_RELEASING:
-            /* Notify all inactive subscribers about the event */
-            notifyAllSubscribers(
-                    AGPS_EVENT_RELEASED, true,
-                    AGPS_NOTIFICATION_TYPE_FOR_INACTIVE_SUBSCRIBERS);
-
-            /* If we have active subscribers now, they must be waiting for
-             * data conn setup */
-            if(anyActiveSubscribers()){
-                transitionState(AGPS_STATE_PENDING);
-                requestOrReleaseDataConn(true);
-            }
-            /* No active subscribers, move to released state */
-            else{
-                transitionState(AGPS_STATE_RELEASED);
-            }
-            break;
-
-        case AGPS_STATE_PENDING:
-            /* NOOP */
-            break;
-
-        default:
-            LOC_LOGE("Invalid state: %d", mState);
-    }
-}
-
-void AgpsStateMachine::processAgpsEventDenied(){
-
-    switch (mState){
-
-        case AGPS_STATE_RELEASED:
-            LOC_LOGE("Unexpected event DENIED in state %d", mState);
-            break;
-
-        case AGPS_STATE_ACQUIRED:
-            /* NOOP */
-            break;
-
-        case AGPS_STATE_RELEASING:
-            /* Notify all inactive subscribers about the event */
-            notifyAllSubscribers(
-                    AGPS_EVENT_RELEASED, true,
-                    AGPS_NOTIFICATION_TYPE_FOR_INACTIVE_SUBSCRIBERS);
-
-            /* If we have active subscribers now, they must be waiting for
-             * data conn setup */
-            if(anyActiveSubscribers()){
-                transitionState(AGPS_STATE_PENDING);
-                requestOrReleaseDataConn(true);
-            }
-            /* No active subscribers, move to released state */
-            else{
-                transitionState(AGPS_STATE_RELEASED);
-            }
-            break;
-
-        case AGPS_STATE_PENDING:
-            transitionState(AGPS_STATE_RELEASED);
-            notifyAllSubscribers(
-                    AGPS_EVENT_DENIED, true,
-                    AGPS_NOTIFICATION_TYPE_FOR_ALL_SUBSCRIBERS);
-            break;
-
-        default:
-            LOC_LOGE("Invalid state: %d", mState);
-    }
-}
-
-/* Request or Release data connection
- * bool request :
- *      true  = Request data connection
- *      false = Release data connection */
-int AgpsStateMachine::requestOrReleaseDataConn(bool request){
-
-    AgpsFrameworkInterface::AGnssStatusIpV4 nifRequest;
-    memset(&nifRequest, 0, sizeof(nifRequest));
-
-    nifRequest.type = (AgpsFrameworkInterface::AGnssType)mAgpsType;
-
-    if(request){
-        LOC_LOGD("AGPS Data Conn Request");
-        nifRequest.status = (AgpsFrameworkInterface::AGnssStatusValue)
-                                LOC_GPS_REQUEST_AGPS_DATA_CONN;
-    }
-    else{
-        LOC_LOGD("AGPS Data Conn Release");
-        nifRequest.status = (AgpsFrameworkInterface::AGnssStatusValue)
-                                LOC_GPS_RELEASE_AGPS_DATA_CONN;
-    }
-
-    mAgpsManager->mFrameworkStatusV4Cb(nifRequest);
-    return 0;
-}
-
-void AgpsStateMachine::notifyAllSubscribers(
-        AgpsEvent event, bool deleteSubscriberPostNotify,
-        AgpsNotificationType notificationType){
-
-    LOC_LOGD("notifyAllSubscribers(): "
-            "SM %p, Event %d Delete %d Notification Type %d",
-            this, event, deleteSubscriberPostNotify, notificationType);
-
-    std::list<AgpsSubscriber*>::const_iterator it = mSubscriberList.begin();
-    while ( it != mSubscriberList.end() ){
-
-        AgpsSubscriber* subscriber = *it;
-
-        if(notificationType == AGPS_NOTIFICATION_TYPE_FOR_ALL_SUBSCRIBERS ||
-                (notificationType == AGPS_NOTIFICATION_TYPE_FOR_INACTIVE_SUBSCRIBERS &&
-                        subscriber->mIsInactive) ||
-                (notificationType == AGPS_NOTIFICATION_TYPE_FOR_ACTIVE_SUBSCRIBERS &&
-                        !subscriber->mIsInactive)) {
-
-            /* Deleting via this call would require another traversal
-             * through subscriber list, inefficient; hence pass in false*/
-            notifyEventToSubscriber(event, subscriber, false);
-
-            if(deleteSubscriberPostNotify){
-                it = mSubscriberList.erase(it);
-                delete subscriber;
-            } else{
-                it++;
-            }
-        } else{
-            it++;
-        }
-    }
-}
-
-void AgpsStateMachine::notifyEventToSubscriber(
-        AgpsEvent event, AgpsSubscriber* subscriberToNotify,
-        bool deleteSubscriberPostNotify) {
-
-    LOC_LOGD("notifyEventToSubscriber(): "
-            "SM %p, Event %d Subscriber %p Delete %d",
-            this, event, subscriberToNotify, deleteSubscriberPostNotify);
-
-    switch (event){
-
-        case AGPS_EVENT_GRANTED:
-            mAgpsManager->mAtlOpenStatusCb(
-                    subscriberToNotify->mConnHandle, 1, getAPN(),
-                    getBearer(), mAgpsType);
-            break;
-
-        case AGPS_EVENT_DENIED:
-            mAgpsManager->mAtlOpenStatusCb(
-                    subscriberToNotify->mConnHandle, 0, getAPN(),
-                    getBearer(), mAgpsType);
-            break;
-
-        case AGPS_EVENT_UNSUBSCRIBE:
-        case AGPS_EVENT_RELEASED:
-            mAgpsManager->mAtlCloseStatusCb(subscriberToNotify->mConnHandle, 1);
-            break;
-
-        default:
-            LOC_LOGE("Invalid event %d", event);
-    }
-
-    /* Search this subscriber in list and delete */
-    if (deleteSubscriberPostNotify) {
-        deleteSubscriber(subscriberToNotify);
-    }
-}
-
-void AgpsStateMachine::transitionState(AgpsState newState){
-
-    LOC_LOGD("transitionState(): SM %p, old %d, new %d",
-               this, mState, newState);
-
-    mState = newState;
-
-    // notify state transitions to all subscribers ?
-}
-
-void AgpsStateMachine::addSubscriber(AgpsSubscriber* subscriberToAdd){
-
-    LOC_LOGD("addSubscriber(): SM %p, Subscriber %p",
-               this, subscriberToAdd);
-
-    // Check if subscriber is already present in the current list
-    // If not, then add
-    std::list<AgpsSubscriber*>::const_iterator it = mSubscriberList.begin();
-    for(; it != mSubscriberList.end(); it++){
-        AgpsSubscriber* subscriber = *it;
-        if(subscriber->equals(subscriberToAdd)){
-            LOC_LOGE("Subscriber already in list");
-            return;
-        }
-    }
-
-    AgpsSubscriber* cloned = subscriberToAdd->clone();
-    LOC_LOGD("addSubscriber(): cloned subscriber: %p", cloned);
-    mSubscriberList.push_back(cloned);
-}
-
-void AgpsStateMachine::deleteSubscriber(AgpsSubscriber* subscriberToDelete){
-
-    LOC_LOGD("deleteSubscriber(): SM %p, Subscriber %p",
-               this, subscriberToDelete);
-
-    std::list<AgpsSubscriber*>::const_iterator it = mSubscriberList.begin();
-    while ( it != mSubscriberList.end() ) {
-
-        AgpsSubscriber* subscriber = *it;
-        if(subscriber && subscriber->equals(subscriberToDelete)){
-
-            it = mSubscriberList.erase(it);
-            delete subscriber;
-        }else{
-            it++;
-        }
-    }
-}
-
-bool AgpsStateMachine::anyActiveSubscribers(){
-
-    std::list<AgpsSubscriber*>::const_iterator it = mSubscriberList.begin();
-    for(; it != mSubscriberList.end(); it++){
-        AgpsSubscriber* subscriber = *it;
-        if(!subscriber->mIsInactive){
-            return true;
-        }
-    }
-    return false;
-}
-
-void AgpsStateMachine::setAPN(char* apn, unsigned int len){
-
-    if (NULL != mAPN) {
-        delete mAPN;
-    }
-
-    if(apn == NULL || len <= 0){
-        LOC_LOGD("Invalid apn len (%d) or null apn", len);
-        mAPN = NULL;
-        mAPNLen = 0;
-    }
-
-    if (NULL != apn) {
-        mAPN = new char[len+1];
-        memcpy(mAPN, apn, len);
-        mAPN[len] = '\0';
-        mAPNLen = len;
-    }
-}
-
-AgpsSubscriber* AgpsStateMachine::getSubscriber(int connHandle){
-
-    /* Go over the subscriber list */
-    std::list<AgpsSubscriber*>::const_iterator it = mSubscriberList.begin();
-    for(; it != mSubscriberList.end(); it++){
-        AgpsSubscriber* subscriber = *it;
-        if(subscriber->mConnHandle == connHandle){
-            return subscriber;
-        }
-    }
-
-    /* Not found, return NULL */
-    return NULL;
-}
-
-AgpsSubscriber* AgpsStateMachine::getFirstSubscriber(bool isInactive){
-
-    /* Go over the subscriber list */
-    std::list<AgpsSubscriber*>::const_iterator it = mSubscriberList.begin();
-    for(; it != mSubscriberList.end(); it++){
-        AgpsSubscriber* subscriber = *it;
-        if(subscriber->mIsInactive == isInactive){
-            return subscriber;
-        }
-    }
-
-    /* Not found, return NULL */
-    return NULL;
-}
-
-void AgpsStateMachine::dropAllSubscribers(){
-
-    LOC_LOGD("dropAllSubscribers(): SM %p", this);
-
-    /* Go over the subscriber list */
-    std::list<AgpsSubscriber*>::const_iterator it = mSubscriberList.begin();
-    while ( it != mSubscriberList.end() ){
-        AgpsSubscriber* subscriber = *it;
-        it = mSubscriberList.erase(it);
-        delete subscriber;
-    }
-}
-
-/* --------------------------------------------------------------------
- *   DS State Machine Methods
- * -------------------------------------------------------------------*/
-const int DSStateMachine::MAX_START_DATA_CALL_RETRIES = 4;
-const int DSStateMachine::DATA_CALL_RETRY_DELAY_MSEC = 500;
-
-/* Overridden method
- * DS SM needs to handle one scenario differently */
-void DSStateMachine::processAgpsEvent(AgpsEvent event){
-
-    LOC_LOGD("DSStateMachine::processAgpsEvent() %d", event);
-
-    /* DS Client call setup APIs don't return failure/closure separately.
-     * Hence we receive RELEASED event in both cases.
-     * If we are in pending, we should consider RELEASED as DENIED */
-    if(event == AGPS_EVENT_RELEASED && mState == AGPS_STATE_PENDING){
-
-        LOC_LOGD("Translating RELEASED to DENIED event");
-        event = AGPS_EVENT_DENIED;
-    }
-
-    /* Redirect process to base class */
-    AgpsStateMachine::processAgpsEvent(event);
-}
-
-/* Timer Callback
- * For the retry timer started in case of DS Client call setup failure */
-void delay_callback(void *callbackData, int result)
-{
-    LOC_LOGD("delay_callback(): cbData %p", callbackData);
-
-    (void)result;
-
-    if(callbackData == NULL) {
-        LOC_LOGE("delay_callback(): NULL argument received !");
-        return;
-    }
-    DSStateMachine* dsStateMachine = (DSStateMachine *)callbackData;
-    dsStateMachine->retryCallback();
-}
-
-/* Invoked from Timer Callback
- * For the retry timer started in case of DS Client call setup failure */
-void DSStateMachine :: retryCallback()
-{
-    LOC_LOGD("DSStateMachine::retryCallback()");
-
-    /* Request SUPL ES
-     * There must be at least one active subscriber in list */
-    AgpsSubscriber* subscriber = getFirstSubscriber(false);
-    if(subscriber == NULL) {
-
-        LOC_LOGE("No active subscriber for DS Client call setup");
-        return;
-    }
-
-    /* Send message to retry */
-    mAgpsManager->mSendMsgToAdapterQueueFn(
-            new AgpsMsgRequestATL(
-                    mAgpsManager, subscriber->mConnHandle,
-                    LOC_AGPS_TYPE_SUPL_ES));
-}
-
-/* Overridden method
- * Request or Release data connection
- * bool request :
- *      true  = Request data connection
- *      false = Release data connection */
-int DSStateMachine::requestOrReleaseDataConn(bool request){
-
-    LOC_LOGD("DSStateMachine::requestOrReleaseDataConn(): "
-             "request %d", request);
-
-    /* Release data connection required ? */
-    if(!request && mAgpsManager->mDSClientStopDataCallFn){
-
-        mAgpsManager->mDSClientStopDataCallFn();
-        LOC_LOGD("DS Client release data call request sent !");
-        return 0;
-    }
-
-    /* Setup data connection request
-     * There must be at least one active subscriber in list */
-    AgpsSubscriber* subscriber = getFirstSubscriber(false);
-    if(subscriber == NULL) {
-
-        LOC_LOGE("No active subscriber for DS Client call setup");
-        return -1;
-    }
-
-    /* DS Client Fn registered ? */
-    if(!mAgpsManager->mDSClientOpenAndStartDataCallFn){
-
-        LOC_LOGE("DS Client start fn not registered, fallback to SUPL ATL");
-        notifyEventToSubscriber(AGPS_EVENT_DENIED, subscriber, false);
-        return -1;
-    }
-
-    /* Setup the call */
-    int ret = mAgpsManager->mDSClientOpenAndStartDataCallFn();
-
-    /* Check if data call start failed */
-    switch (ret) {
-
-        case LOC_API_ADAPTER_ERR_ENGINE_BUSY:
-            LOC_LOGE("DS Client open call failed, err: %d", ret);
-            mRetries++;
-            if(mRetries > MAX_START_DATA_CALL_RETRIES) {
-
-                LOC_LOGE("DS Client call retries exhausted, "
-                         "falling back to normal SUPL ATL");
-                notifyEventToSubscriber(AGPS_EVENT_DENIED, subscriber, false);
-            }
-            /* Retry DS Client call setup after some delay */
-            else if(loc_timer_start(
-                        DATA_CALL_RETRY_DELAY_MSEC, delay_callback, this)) {
-                    LOC_LOGE("Error: Could not start delay thread\n");
-                    return -1;
-                }
-            break;
-
-        case LOC_API_ADAPTER_ERR_UNSUPPORTED:
-            LOC_LOGE("No emergency profile found. Fall back to normal SUPL ATL");
-            notifyEventToSubscriber(AGPS_EVENT_DENIED, subscriber, false);
-            break;
-
-        case LOC_API_ADAPTER_ERR_SUCCESS:
-            LOC_LOGD("Request to start data call sent");
-            break;
-
-        default:
-            LOC_LOGE("Unrecognized return value: %d", ret);
-    }
-
-    return ret;
-}
-
-void DSStateMachine::notifyEventToSubscriber(
-        AgpsEvent event, AgpsSubscriber* subscriberToNotify,
-        bool deleteSubscriberPostNotify) {
-
-    LOC_LOGD("DSStateMachine::notifyEventToSubscriber(): "
-             "SM %p, Event %d Subscriber %p Delete %d",
-             this, event, subscriberToNotify, deleteSubscriberPostNotify);
-
-    switch (event){
-
-        case AGPS_EVENT_GRANTED:
-            mAgpsManager->mAtlOpenStatusCb(
-                    subscriberToNotify->mConnHandle, 1, NULL,
-                    AGPS_APN_BEARER_INVALID, LOC_AGPS_TYPE_SUPL_ES);
-            break;
-
-        case AGPS_EVENT_DENIED:
-            /* Now try with regular SUPL
-             * We need to send request via message queue */
-            mRetries = 0;
-            mAgpsManager->mSendMsgToAdapterQueueFn(
-                    new AgpsMsgRequestATL(
-                            mAgpsManager, subscriberToNotify->mConnHandle,
-                            LOC_AGPS_TYPE_SUPL));
-            break;
-
-        case AGPS_EVENT_UNSUBSCRIBE:
-            mAgpsManager->mAtlCloseStatusCb(subscriberToNotify->mConnHandle, 1);
-            break;
-
-        case AGPS_EVENT_RELEASED:
-            mAgpsManager->mDSClientCloseDataCallFn();
-            break;
-
-        default:
-            LOC_LOGE("Invalid event %d", event);
-    }
-
-    /* Search this subscriber in list and delete */
-    if (deleteSubscriberPostNotify) {
-        deleteSubscriber(subscriberToNotify);
-    }
-}
-
-/* --------------------------------------------------------------------
- *   Loc AGPS Manager Methods
- * -------------------------------------------------------------------*/
-
-/* CREATE AGPS STATE MACHINES
- * Must be invoked in Msg Handler context */
-void AgpsManager::createAgpsStateMachines() {
-
-    LOC_LOGD("AgpsManager::createAgpsStateMachines");
-
-    bool agpsCapable =
-            ((loc_core::ContextBase::mGps_conf.CAPABILITIES & LOC_GPS_CAPABILITY_MSA) ||
-                    (loc_core::ContextBase::mGps_conf.CAPABILITIES & LOC_GPS_CAPABILITY_MSB));
-
-    if (NULL == mInternetNif) {
-        mInternetNif = new AgpsStateMachine(this, LOC_AGPS_TYPE_WWAN_ANY);
-        LOC_LOGD("Internet NIF: %p", mInternetNif);
-    }
-    if (agpsCapable) {
-        if (NULL == mAgnssNif) {
-            mAgnssNif = new AgpsStateMachine(this, LOC_AGPS_TYPE_SUPL);
-            LOC_LOGD("AGNSS NIF: %p", mAgnssNif);
-        }
-        if (NULL == mDsNif &&
-                loc_core::ContextBase::mGps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL){
-
-            if(!mDSClientInitFn){
-
-                LOC_LOGE("DS Client Init Fn not registered !");
-                return;
-            }
-            if(mDSClientInitFn(false) != 0){
-
-                LOC_LOGE("Failed to init data service client");
-                return;
-            }
-            mDsNif = new DSStateMachine(this);
-            LOC_LOGD("DS NIF: %p", mDsNif);
-        }
-    }
-}
-
-AgpsStateMachine* AgpsManager::getAgpsStateMachine(AGpsExtType agpsType) {
-
-    LOC_LOGD("AgpsManager::getAgpsStateMachine(): agpsType %d", agpsType);
-
-    switch (agpsType) {
-
-        case LOC_AGPS_TYPE_INVALID:
-        case LOC_AGPS_TYPE_SUPL:
-            if(mAgnssNif == NULL){
-                LOC_LOGE("NULL AGNSS NIF !");
-            }
-            return mAgnssNif;
-
-        case LOC_AGPS_TYPE_SUPL_ES:
-            if (loc_core::ContextBase::mGps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL) {
-                if (mDsNif == NULL) {
-                    createAgpsStateMachines();
-                }
-                return mDsNif;
-            } else {
-                return mAgnssNif;
-            }
-
-        default:
-            return mInternetNif;
-    }
-
-    LOC_LOGE("No SM found !");
-    return NULL;
-}
-
-void AgpsManager::requestATL(int connHandle, AGpsExtType agpsType){
-
-    LOC_LOGD("AgpsManager::requestATL(): connHandle %d, agpsType %d",
-               connHandle, agpsType);
-
-    AgpsStateMachine* sm = getAgpsStateMachine(agpsType);
-
-    if(sm == NULL){
-
-        LOC_LOGE("No AGPS State Machine for agpsType: %d", agpsType);
-        mAtlOpenStatusCb(
-                connHandle, 0, NULL, AGPS_APN_BEARER_INVALID, agpsType);
-        return;
-    }
-
-    /* Invoke AGPS SM processing */
-    AgpsSubscriber subscriber(connHandle, false, false);
-    sm->setCurrentSubscriber(&subscriber);
-
-    /* If DS State Machine, wait for close complete */
-    if(agpsType == LOC_AGPS_TYPE_SUPL_ES){
-        subscriber.mWaitForCloseComplete = true;
-    }
-
-    /* Send subscriber event */
-    sm->processAgpsEvent(AGPS_EVENT_SUBSCRIBE);
-}
-
-void AgpsManager::releaseATL(int connHandle){
-
-    LOC_LOGD("AgpsManager::releaseATL(): connHandle %d", connHandle);
-
-    /* First find the subscriber with specified handle.
-     * We need to search in all state machines. */
-    AgpsStateMachine* sm = NULL;
-    AgpsSubscriber* subscriber = NULL;
-
-    if (mAgnssNif &&
-            (subscriber = mAgnssNif->getSubscriber(connHandle)) != NULL) {
-        sm = mAgnssNif;
-    }
-    else if (mInternetNif &&
-            (subscriber = mInternetNif->getSubscriber(connHandle)) != NULL) {
-        sm = mInternetNif;
-    }
-    else if (mDsNif &&
-            (subscriber = mDsNif->getSubscriber(connHandle)) != NULL) {
-        sm = mDsNif;
-    }
-
-    if(sm == NULL){
-        LOC_LOGE("Subscriber with connHandle %d not found in any SM",
-                    connHandle);
-        mAtlCloseStatusCb(connHandle, 0);
-        return;
-    }
-
-    /* Now send unsubscribe event */
-    sm->setCurrentSubscriber(subscriber);
-    sm->processAgpsEvent(AGPS_EVENT_UNSUBSCRIBE);
-}
-
-void AgpsManager::reportDataCallOpened(){
-
-    LOC_LOGD("AgpsManager::reportDataCallOpened");
-
-    if (mDsNif) {
-        mDsNif->processAgpsEvent(AGPS_EVENT_GRANTED);
-    }
-}
-
-void AgpsManager::reportDataCallClosed(){
-
-    LOC_LOGD("AgpsManager::reportDataCallClosed");
-
-    if (mDsNif) {
-        mDsNif->processAgpsEvent(AGPS_EVENT_RELEASED);
-    }
-}
-
-void AgpsManager::reportAtlOpenSuccess(
-        AGpsExtType agpsType, char* apnName, int apnLen,
-        LocApnIpType ipType){
-
-    LOC_LOGD("AgpsManager::reportAtlOpenSuccess(): "
-             "AgpsType %d, APN [%s], Len %d, IPType %d",
-             agpsType, apnName, apnLen, ipType);
-
-    /* Find the state machine instance */
-    AgpsStateMachine* sm = getAgpsStateMachine(agpsType);
-
-    /* Convert LocApnIpType sent by framework to AGpsBearerType */
-    AGpsBearerType bearerType;
-    switch (ipType) {
-        case LOC_APN_IP_IPV4:
-            bearerType = AGPS_APN_BEARER_IPV4;
-            break;
-        case LOC_APN_IP_IPV6:
-            bearerType = AGPS_APN_BEARER_IPV6;
-            break;
-        case LOC_APN_IP_IPV4V6:
-            bearerType = AGPS_APN_BEARER_IPV4V6;
-            break;
-        default:
-            bearerType = AGPS_APN_BEARER_IPV4;
-            break;
-    }
-
-    /* Set bearer and apn info in state machine instance */
-    sm->setBearer(bearerType);
-    sm->setAPN(apnName, apnLen);
-
-    /* Send GRANTED event to state machine */
-    sm->processAgpsEvent(AGPS_EVENT_GRANTED);
-}
-
-void AgpsManager::reportAtlOpenFailed(AGpsExtType agpsType){
-
-    LOC_LOGD("AgpsManager::reportAtlOpenFailed(): AgpsType %d", agpsType);
-
-    /* Fetch SM and send DENIED event */
-    AgpsStateMachine* sm = getAgpsStateMachine(agpsType);
-    sm->processAgpsEvent(AGPS_EVENT_DENIED);
-}
-
-void AgpsManager::reportAtlClosed(AGpsExtType agpsType){
-
-    LOC_LOGD("AgpsManager::reportAtlClosed(): AgpsType %d", agpsType);
-
-    /* Fetch SM and send RELEASED event */
-    AgpsStateMachine* sm = getAgpsStateMachine(agpsType);
-    sm->processAgpsEvent(AGPS_EVENT_RELEASED);
-}
-
-void AgpsManager::handleModemSSR(){
-
-    LOC_LOGD("AgpsManager::handleModemSSR");
-
-    /* Drop subscribers from all state machines */
-    if (mAgnssNif){
-        mAgnssNif->dropAllSubscribers();
-    }
-    if (mInternetNif){
-        mInternetNif->dropAllSubscribers();
-    }
-    if(mDsNif){
-        mDsNif->dropAllSubscribers();
-    }
-
-    // reinitialize DS client in SSR mode
-    if(loc_core::ContextBase::mGps_conf.
-            USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL){
-
-        mDSClientStopDataCallFn();
-        mDSClientCloseDataCallFn();
-        mDSClientReleaseFn();
-
-        mDSClientInitFn(true);
-    }
-}
-
-AGpsBearerType AgpsUtils::ipTypeToBearerType(LocApnIpType ipType) {
-
-    switch (ipType) {
-
-        case LOC_APN_IP_IPV4:
-            return AGPS_APN_BEARER_IPV4;
-
-        case LOC_APN_IP_IPV6:
-            return AGPS_APN_BEARER_IPV6;
-
-        case LOC_APN_IP_IPV4V6:
-            return AGPS_APN_BEARER_IPV4V6;
-
-        default:
-            return AGPS_APN_BEARER_IPV4;
-    }
-}
-
-LocApnIpType AgpsUtils::bearerTypeToIpType(AGpsBearerType bearerType){
-
-    switch (bearerType) {
-
-        case AGPS_APN_BEARER_IPV4:
-            return LOC_APN_IP_IPV4;
-
-        case AGPS_APN_BEARER_IPV6:
-            return LOC_APN_IP_IPV6;
-
-        case AGPS_APN_BEARER_IPV4V6:
-            return LOC_APN_IP_IPV4V6;
-
-        default:
-            return LOC_APN_IP_IPV4;
-    }
-}
diff --git a/sdm845/gnss/Agps.h b/sdm845/gnss/Agps.h
deleted file mode 100644
index d3fc362..0000000
--- a/sdm845/gnss/Agps.h
+++ /dev/null
@@ -1,449 +0,0 @@
-/* Copyright (c) 2012-2017, 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 "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 AGPS_H
-#define AGPS_H
-
-#include <functional>
-#include <list>
-#include <MsgTask.h>
-#include <gps_extended_c.h>
-#include <platform_lib_log_util.h>
-
-/* ATL callback function pointers
- * Passed in by Adapter to AgpsManager */
-typedef std::function<void(
-        int handle, int isSuccess, char* apn,
-        AGpsBearerType bearerType, AGpsExtType agpsType)>  AgpsAtlOpenStatusCb;
-
-typedef std::function<void(int handle, int isSuccess)>     AgpsAtlCloseStatusCb;
-
-/* DS Client control APIs
- * Passed in by Adapter to AgpsManager */
-typedef std::function<int(bool isDueToSSR)>  AgpsDSClientInitFn;
-typedef std::function<int()>                 AgpsDSClientOpenAndStartDataCallFn;
-typedef std::function<void()>                AgpsDSClientStopDataCallFn;
-typedef std::function<void()>                AgpsDSClientCloseDataCallFn;
-typedef std::function<void()>                AgpsDSClientReleaseFn;
-
-/* Post message to adapter's message queue */
-typedef std::function<void(LocMsg* msg)>     SendMsgToAdapterMsgQueueFn;
-
-/* AGPS States */
-typedef enum {
-    AGPS_STATE_INVALID = 0,
-    AGPS_STATE_RELEASED,
-    AGPS_STATE_PENDING,
-    AGPS_STATE_ACQUIRED,
-    AGPS_STATE_RELEASING
-} AgpsState;
-
-typedef enum {
-    AGPS_EVENT_INVALID = 0,
-    AGPS_EVENT_SUBSCRIBE,
-    AGPS_EVENT_UNSUBSCRIBE,
-    AGPS_EVENT_GRANTED,
-    AGPS_EVENT_RELEASED,
-    AGPS_EVENT_DENIED
-} AgpsEvent;
-
-/* Notification Types sent to subscribers */
-typedef enum {
-    AGPS_NOTIFICATION_TYPE_INVALID = 0,
-
-    /* Meant for all subscribers, either active or inactive */
-    AGPS_NOTIFICATION_TYPE_FOR_ALL_SUBSCRIBERS,
-
-    /* Meant for only inactive subscribers */
-    AGPS_NOTIFICATION_TYPE_FOR_INACTIVE_SUBSCRIBERS,
-
-    /* Meant for only active subscribers */
-    AGPS_NOTIFICATION_TYPE_FOR_ACTIVE_SUBSCRIBERS
-} AgpsNotificationType;
-
-/* Framework AGNSS interface
- * This interface is defined in IAGnssCallback provided by
- * Android Framework.
- * Must be kept in sync with that interface. */
-namespace AgpsFrameworkInterface {
-
-    /** AGNSS type **/
-    enum AGnssType : uint8_t {
-        TYPE_SUPL         = 1,
-        TYPE_C2K          = 2
-    };
-
-    enum AGnssStatusValue : uint8_t {
-        /** GNSS requests data connection for AGNSS. */
-        REQUEST_AGNSS_DATA_CONN  = 1,
-        /** GNSS releases the AGNSS data connection. */
-        RELEASE_AGNSS_DATA_CONN  = 2,
-        /** AGNSS data connection initiated */
-        AGNSS_DATA_CONNECTED     = 3,
-        /** AGNSS data connection completed */
-        AGNSS_DATA_CONN_DONE     = 4,
-        /** AGNSS data connection failed */
-        AGNSS_DATA_CONN_FAILED   = 5
-    };
-
-    /*
-     * Represents the status of AGNSS augmented to support IPv4.
-     */
-    struct AGnssStatusIpV4 {
-        AGnssType type;
-        AGnssStatusValue status;
-        /*
-         * 32-bit IPv4 address.
-         */
-        unsigned int ipV4Addr;
-    };
-
-    /*
-     * Represents the status of AGNSS augmented to support IPv6.
-     */
-    struct AGnssStatusIpV6 {
-        AGnssType type;
-        AGnssStatusValue status;
-        /*
-         * 128-bit IPv6 address.
-         */
-        unsigned char ipV6Addr[16];
-    };
-
-    /*
-     * Callback with AGNSS(IpV4) status information.
-     *
-     * @param status Will be of type AGnssStatusIpV4.
-     */
-    typedef void (*AgnssStatusIpV4Cb)(AGnssStatusIpV4 status);
-
-    /*
-     * Callback with AGNSS(IpV6) status information.
-     *
-     * @param status Will be of type AGnssStatusIpV6.
-     */
-    typedef void (*AgnssStatusIpV6Cb)(AGnssStatusIpV6 status);
-}
-
-/* Classes in this header */
-class AgpsSubscriber;
-class AgpsManager;
-class AgpsStateMachine;
-class DSStateMachine;
-
-
-/* SUBSCRIBER
- * Each Subscriber instance corresponds to one AGPS request,
- * received by the AGPS state machine */
-class AgpsSubscriber {
-
-public:
-    int mConnHandle;
-
-    /* Does this subscriber wait for data call close complete,
-     * before being notified ATL close ?
-     * While waiting for data call close, subscriber will be in
-     * inactive state. */
-    bool mWaitForCloseComplete;
-    bool mIsInactive;
-
-    inline AgpsSubscriber(
-            int connHandle, bool waitForCloseComplete, bool isInactive) :
-            mConnHandle(connHandle),
-            mWaitForCloseComplete(waitForCloseComplete),
-            mIsInactive(isInactive) {}
-    inline virtual ~AgpsSubscriber() {}
-
-    inline virtual bool equals(const AgpsSubscriber *s) const
-    { return (mConnHandle == s->mConnHandle); }
-
-    inline virtual AgpsSubscriber* clone()
-    { return new AgpsSubscriber(
-            mConnHandle, mWaitForCloseComplete, mIsInactive); }
-};
-
-/* AGPS STATE MACHINE */
-class AgpsStateMachine {
-protected:
-    /* AGPS Manager instance, from where this state machine is created */
-    AgpsManager* mAgpsManager;
-
-    /* List of all subscribers for this State Machine.
-     * Once a subscriber is notified for ATL open/close status,
-     * it is deleted */
-    std::list<AgpsSubscriber*> mSubscriberList;
-
-    /* Current subscriber, whose request this State Machine is
-     * currently processing */
-    AgpsSubscriber* mCurrentSubscriber;
-
-    /* Current state for this state machine */
-    AgpsState mState;
-
-private:
-    /* AGPS Type for this state machine
-       LOC_AGPS_TYPE_ANY           0
-       LOC_AGPS_TYPE_SUPL          1
-       LOC_AGPS_TYPE_WWAN_ANY      3
-       LOC_AGPS_TYPE_SUPL_ES       5 */
-    AGpsExtType mAgpsType;
-
-    /* APN and IP Type info for AGPS Call */
-    char* mAPN;
-    unsigned int mAPNLen;
-    AGpsBearerType mBearer;
-
-public:
-    /* CONSTRUCTOR */
-    AgpsStateMachine(AgpsManager* agpsManager, AGpsExtType agpsType):
-        mAgpsManager(agpsManager), mSubscriberList(),
-        mCurrentSubscriber(NULL), mState(AGPS_STATE_RELEASED),
-        mAgpsType(agpsType), mAPN(NULL), mAPNLen(0),
-        mBearer(AGPS_APN_BEARER_INVALID) {};
-
-    virtual ~AgpsStateMachine() { if(NULL != mAPN) delete[] mAPN; };
-
-    /* Getter/Setter methods */
-    void setAPN(char* apn, unsigned int len);
-    inline char* getAPN() const { return (char*)mAPN; }
-    inline void setBearer(AGpsBearerType bearer) { mBearer = bearer; }
-    inline AGpsBearerType getBearer() const { return mBearer; }
-    inline AGpsExtType getType() const { return mAgpsType; }
-    inline void setCurrentSubscriber(AgpsSubscriber* subscriber)
-    { mCurrentSubscriber = subscriber; }
-
-    /* Fetch subscriber with specified handle */
-    AgpsSubscriber* getSubscriber(int connHandle);
-
-    /* Fetch first active or inactive subscriber in list
-     * isInactive = true : fetch first inactive subscriber
-     * isInactive = false : fetch first active subscriber */
-    AgpsSubscriber* getFirstSubscriber(bool isInactive);
-
-    /* Process LOC AGPS Event being passed in
-     * onRsrcEvent */
-    virtual void processAgpsEvent(AgpsEvent event);
-
-    /* Drop all subscribers, in case of Modem SSR */
-    void dropAllSubscribers();
-
-protected:
-    /* Remove the specified subscriber from list if present.
-     * Also delete the subscriber instance. */
-    void deleteSubscriber(AgpsSubscriber* subscriber);
-
-private:
-    /* Send call setup request to framework
-     * sendRsrcRequest(LOC_GPS_REQUEST_AGPS_DATA_CONN)
-     * sendRsrcRequest(LOC_GPS_RELEASE_AGPS_DATA_CONN) */
-    virtual int requestOrReleaseDataConn(bool request);
-
-    /* Individual event processing methods */
-    void processAgpsEventSubscribe();
-    void processAgpsEventUnsubscribe();
-    void processAgpsEventGranted();
-    void processAgpsEventReleased();
-    void processAgpsEventDenied();
-
-    /* Clone the passed in subscriber and add to the subscriber list
-     * if not already present */
-    void addSubscriber(AgpsSubscriber* subscriber);
-
-    /* Notify subscribers about AGPS events */
-    void notifyAllSubscribers(
-            AgpsEvent event, bool deleteSubscriberPostNotify,
-            AgpsNotificationType notificationType);
-    virtual void notifyEventToSubscriber(
-            AgpsEvent event, AgpsSubscriber* subscriber,
-            bool deleteSubscriberPostNotify);
-
-    /* Do we have any subscribers in active state */
-    bool anyActiveSubscribers();
-
-    /* Transition state */
-    void transitionState(AgpsState newState);
-};
-
-/* DS STATE MACHINE */
-class DSStateMachine : public AgpsStateMachine {
-
-private:
-    static const int MAX_START_DATA_CALL_RETRIES;
-    static const int DATA_CALL_RETRY_DELAY_MSEC;
-
-    int mRetries;
-
-public:
-    /* CONSTRUCTOR */
-    DSStateMachine(AgpsManager* agpsManager):
-        AgpsStateMachine(agpsManager, LOC_AGPS_TYPE_SUPL_ES), mRetries(0) {}
-
-    /* Overridden method
-     * DS SM needs to handle one event differently */
-    void processAgpsEvent(AgpsEvent event);
-
-    /* Retry callback, used in case call failure */
-    void retryCallback();
-
-private:
-    /* Overridden method, different functionality for DS SM
-     * Send call setup request to framework
-     * sendRsrcRequest(LOC_GPS_REQUEST_AGPS_DATA_CONN)
-     * sendRsrcRequest(LOC_GPS_RELEASE_AGPS_DATA_CONN) */
-    int requestOrReleaseDataConn(bool request);
-
-    /* Overridden method, different functionality for DS SM */
-    void notifyEventToSubscriber(
-            AgpsEvent event, AgpsSubscriber* subscriber,
-            bool deleteSubscriberPostNotify);
-};
-
-/* LOC AGPS MANAGER */
-class AgpsManager {
-
-    friend class AgpsStateMachine;
-    friend class DSStateMachine;
-
-public:
-    /* CONSTRUCTOR */
-    AgpsManager():
-        mFrameworkStatusV4Cb(NULL),
-        mAtlOpenStatusCb(), mAtlCloseStatusCb(),
-        mDSClientInitFn(), mDSClientOpenAndStartDataCallFn(),
-        mDSClientStopDataCallFn(), mDSClientCloseDataCallFn(), mDSClientReleaseFn(),
-        mSendMsgToAdapterQueueFn(),
-        mAgnssNif(NULL), mInternetNif(NULL), mDsNif(NULL) {}
-
-    /* Register callbacks */
-    void registerCallbacks(
-            AgpsFrameworkInterface::AgnssStatusIpV4Cb
-                                                frameworkStatusV4Cb,
-
-            AgpsAtlOpenStatusCb                 atlOpenStatusCb,
-            AgpsAtlCloseStatusCb                atlCloseStatusCb,
-
-            AgpsDSClientInitFn                  dsClientInitFn,
-            AgpsDSClientOpenAndStartDataCallFn  dsClientOpenAndStartDataCallFn,
-            AgpsDSClientStopDataCallFn          dsClientStopDataCallFn,
-            AgpsDSClientCloseDataCallFn         dsClientCloseDataCallFn,
-            AgpsDSClientReleaseFn               dsClientReleaseFn,
-
-            SendMsgToAdapterMsgQueueFn          sendMsgToAdapterQueueFn ){
-
-        mFrameworkStatusV4Cb = frameworkStatusV4Cb;
-
-        mAtlOpenStatusCb = atlOpenStatusCb;
-        mAtlCloseStatusCb = atlCloseStatusCb;
-
-        mDSClientInitFn = dsClientInitFn;
-        mDSClientOpenAndStartDataCallFn = dsClientOpenAndStartDataCallFn;
-        mDSClientStopDataCallFn = dsClientStopDataCallFn;
-        mDSClientCloseDataCallFn = dsClientCloseDataCallFn;
-        mDSClientReleaseFn = dsClientReleaseFn;
-
-        mSendMsgToAdapterQueueFn = sendMsgToAdapterQueueFn;
-    }
-
-    /* Create all AGPS state machines */
-    void createAgpsStateMachines();
-
-    /* Process incoming ATL requests */
-    void requestATL(int connHandle, AGpsExtType agpsType);
-    void releaseATL(int connHandle);
-
-    /* Process incoming DS Client data call events */
-    void reportDataCallOpened();
-    void reportDataCallClosed();
-
-    /* Process incoming framework data call events */
-    void reportAtlOpenSuccess(
-            AGpsExtType agpsType, char* apnName, int apnLen,
-            LocApnIpType ipType);
-    void reportAtlOpenFailed(AGpsExtType agpsType);
-    void reportAtlClosed(AGpsExtType agpsType);
-
-    /* Handle Modem SSR */
-    void handleModemSSR();
-
-protected:
-    AgpsFrameworkInterface::AgnssStatusIpV4Cb mFrameworkStatusV4Cb;
-
-    AgpsAtlOpenStatusCb   mAtlOpenStatusCb;
-    AgpsAtlCloseStatusCb  mAtlCloseStatusCb;
-
-    AgpsDSClientInitFn                  mDSClientInitFn;
-    AgpsDSClientOpenAndStartDataCallFn  mDSClientOpenAndStartDataCallFn;
-    AgpsDSClientStopDataCallFn          mDSClientStopDataCallFn;
-    AgpsDSClientCloseDataCallFn         mDSClientCloseDataCallFn;
-    AgpsDSClientReleaseFn               mDSClientReleaseFn;
-
-    SendMsgToAdapterMsgQueueFn          mSendMsgToAdapterQueueFn;
-
-    AgpsStateMachine*   mAgnssNif;
-    AgpsStateMachine*   mInternetNif;
-    AgpsStateMachine*   mDsNif;
-
-private:
-    /* Fetch state machine for handling request ATL call */
-    AgpsStateMachine* getAgpsStateMachine(AGpsExtType agpsType);
-};
-
-/* Request SUPL/INTERNET/SUPL_ES ATL
- * This LocMsg is defined in this header since it has to be used from more
- * than one place, other Agps LocMsg are restricted to GnssAdapter and
- * declared inline */
-struct AgpsMsgRequestATL: public LocMsg {
-
-    AgpsManager* mAgpsManager;
-    int mConnHandle;
-    AGpsExtType mAgpsType;
-
-    inline AgpsMsgRequestATL(AgpsManager* agpsManager, int connHandle,
-            AGpsExtType agpsType) :
-            LocMsg(), mAgpsManager(agpsManager), mConnHandle(connHandle), mAgpsType(
-                    agpsType) {
-
-        LOC_LOGV("AgpsMsgRequestATL");
-    }
-
-    inline virtual void proc() const {
-
-        LOC_LOGV("AgpsMsgRequestATL::proc()");
-        mAgpsManager->requestATL(mConnHandle, mAgpsType);
-    }
-};
-
-namespace AgpsUtils {
-
-AGpsBearerType ipTypeToBearerType(LocApnIpType ipType);
-LocApnIpType bearerTypeToIpType(AGpsBearerType bearerType);
-
-}
-
-#endif /* AGPS_H */
diff --git a/sdm845/gnss/Android.mk b/sdm845/gnss/Android.mk
deleted file mode 100644
index ea36208..0000000
--- a/sdm845/gnss/Android.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),)
-ifneq ($(BUILD_TINY_ANDROID),true)
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libgnss
-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 \
-    libdl \
-    liblog \
-    libloc_core \
-    libgps.utils
-
-LOCAL_SRC_FILES += \
-    location_gnss.cpp \
-    GnssAdapter.cpp \
-    Agps.cpp
-
-LOCAL_CFLAGS += \
-     -fno-short-enums \
-
-ifeq ($(TARGET_BUILD_VARIANT),user)
-   LOCAL_CFLAGS += -DTARGET_BUILD_VARIANT_USER
-endif
-
-LOCAL_C_INCLUDES:= \
-    $(TARGET_OUT_HEADERS)/gps.utils \
-    $(TARGET_OUT_HEADERS)/libloc_core \
-    $(TARGET_OUT_HEADERS)/libloc_pla \
-    $(TARGET_OUT_HEADERS)/liblocation_api
-
-LOCAL_PRELINK_MODULE := false
-
-include $(BUILD_SHARED_LIBRARY)
-
-endif # not BUILD_TINY_ANDROID
-endif # BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE
diff --git a/sdm845/gnss/GnssAdapter.cpp b/sdm845/gnss/GnssAdapter.cpp
deleted file mode 100644
index ca34d8c..0000000
--- a/sdm845/gnss/GnssAdapter.cpp
+++ /dev/null
@@ -1,2876 +0,0 @@
-/* Copyright (c) 2017, 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 "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.
- *
- */
-#define LOG_TAG "LocSvc_GnssAdapter"
-
-#include <sys/stat.h>
-#include <errno.h>
-#include <ctype.h>
-#include <cutils/properties.h>
-#include <math.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <GnssAdapter.h>
-#include <string>
-#include <loc_log.h>
-#include <loc_nmea.h>
-#include <Agps.h>
-#include <SystemStatus.h>
-
-#include <loc_nmea.h>
-#include <vector>
-#include <string>
-
-using namespace loc_core;
-
-GnssAdapter::GnssAdapter() :
-    LocAdapterBase(0,
-                   LocDualContext::getLocFgContext(NULL,
-                                                   NULL,
-                                                   LocDualContext::mLocationHalName,
-                                                   false)),
-    mUlpProxy(new UlpProxyBase()),
-    mUlpPositionMode(),
-    mGnssSvIdUsedInPosition(),
-    mGnssSvIdUsedInPosAvail(false),
-    mControlCallbacks(),
-    mPowerVoteId(0),
-    mNiData(),
-    mAgpsManager()
-{
-    LOC_LOGD("%s]: Constructor %p", __func__, this);
-    mUlpPositionMode.mode = LOC_POSITION_MODE_INVALID;
-    readConfigCommand();
-    setConfigCommand();
-
-}
-
-inline
-GnssAdapter::~GnssAdapter()
-{
-    LOC_LOGD("%s]: Destructor", __func__);
-    delete mUlpProxy;
-}
-
-void
-GnssAdapter::setControlCallbacksCommand(LocationControlCallbacks& controlCallbacks)
-{
-    struct MsgSetControlCallbacks : public LocMsg {
-        GnssAdapter& mAdapter;
-        const LocationControlCallbacks mControlCallbacks;
-        inline MsgSetControlCallbacks(GnssAdapter& adapter,
-                                      LocationControlCallbacks& controlCallbacks) :
-            LocMsg(),
-            mAdapter(adapter),
-            mControlCallbacks(controlCallbacks) {}
-        inline virtual void proc() const {
-            mAdapter.setControlCallbacks(mControlCallbacks);
-        }
-    };
-
-    sendMsg(new MsgSetControlCallbacks(*this, controlCallbacks));
-}
-
-void
-GnssAdapter::convertOptions(LocPosMode& out, const LocationOptions& options)
-{
-    LocPosMode locPosMode = {};
-    switch (options.mode) {
-    case GNSS_SUPL_MODE_MSB:
-        out.mode = LOC_POSITION_MODE_MS_BASED;
-        break;
-    case GNSS_SUPL_MODE_MSA:
-        out.mode = LOC_POSITION_MODE_MS_ASSISTED;
-        break;
-    default:
-        out.mode = LOC_POSITION_MODE_STANDALONE;
-        break;
-    }
-    out.share_position = true;
-    out.min_interval = options.minInterval;
-}
-
-void
-GnssAdapter::convertLocation(Location& out, const LocGpsLocation& locGpsLocation,
-                             const GpsLocationExtended& locationExtended,
-                             const LocPosTechMask techMask)
-{
-    out.size = sizeof(Location);
-    if (LOC_GPS_LOCATION_HAS_LAT_LONG & locGpsLocation.flags) {
-        out.flags |= LOCATION_HAS_LAT_LONG_BIT;
-        out.latitude = locGpsLocation.latitude;
-        out.longitude = locGpsLocation.longitude;
-    }
-    if (LOC_GPS_LOCATION_HAS_ALTITUDE & locGpsLocation.flags) {
-        out.flags |= LOCATION_HAS_ALTITUDE_BIT;
-        out.altitude = locGpsLocation.altitude;
-    }
-    if (LOC_GPS_LOCATION_HAS_SPEED & locGpsLocation.flags) {
-        out.flags |= LOCATION_HAS_SPEED_BIT;
-        out.speed = locGpsLocation.speed;
-    }
-    if (LOC_GPS_LOCATION_HAS_BEARING & locGpsLocation.flags) {
-        out.flags |= LOCATION_HAS_BEARING_BIT;
-        out.bearing = locGpsLocation.bearing;
-    }
-    if (LOC_GPS_LOCATION_HAS_ACCURACY & locGpsLocation.flags) {
-        out.flags |= LOCATION_HAS_ACCURACY_BIT;
-        out.accuracy = locGpsLocation.accuracy;
-    }
-    if (GPS_LOCATION_EXTENDED_HAS_VERT_UNC & locationExtended.flags) {
-        out.flags |= LOCATION_HAS_VERTICAL_ACCURACY_BIT;
-        out.verticalAccuracy = locationExtended.vert_unc;
-    }
-    if (GPS_LOCATION_EXTENDED_HAS_SPEED_UNC & locationExtended.flags) {
-        out.flags |= LOCATION_HAS_SPEED_ACCURACY_BIT;
-        out.speedAccuracy = locationExtended.speed_unc;
-    }
-    if (GPS_LOCATION_EXTENDED_HAS_BEARING_UNC & locationExtended.flags) {
-        out.flags |= LOCATION_HAS_BEARING_ACCURACY_BIT;
-        out.bearingAccuracy = locationExtended.bearing_unc;
-    }
-    out.timestamp = locGpsLocation.timestamp;
-    if (LOC_POS_TECH_MASK_SATELLITE & techMask) {
-        out.techMask |= LOCATION_TECHNOLOGY_GNSS_BIT;
-    }
-    if (LOC_POS_TECH_MASK_CELLID & techMask) {
-        out.techMask |= LOCATION_TECHNOLOGY_CELL_BIT;
-    }
-    if (LOC_POS_TECH_MASK_WIFI & techMask) {
-        out.techMask |= LOCATION_TECHNOLOGY_WIFI_BIT;
-    }
-    if (LOC_POS_TECH_MASK_SENSORS & techMask) {
-        out.techMask |= LOCATION_TECHNOLOGY_SENSORS_BIT;
-    }
-}
-
-void
-GnssAdapter::convertLocationInfo(GnssLocationInfoNotification& out,
-                                 const GpsLocationExtended& locationExtended)
-{
-    out.size = sizeof(GnssLocationInfoNotification);
-    if (GPS_LOCATION_EXTENDED_HAS_ALTITUDE_MEAN_SEA_LEVEL & locationExtended.flags) {
-        out.flags |= GNSS_LOCATION_INFO_ALTITUDE_MEAN_SEA_LEVEL_BIT;
-        out.altitudeMeanSeaLevel = locationExtended.altitudeMeanSeaLevel;
-    }
-    if (GPS_LOCATION_EXTENDED_HAS_DOP & locationExtended.flags) {
-        out.flags |= GNSS_LOCATION_INFO_DOP_BIT;
-        out.pdop = locationExtended.pdop;
-        out.hdop = locationExtended.hdop;
-        out.vdop = locationExtended.vdop;
-    }
-    if (GPS_LOCATION_EXTENDED_HAS_MAG_DEV & locationExtended.flags) {
-        out.flags |= GNSS_LOCATION_INFO_MAGNETIC_DEVIATION_BIT;
-        out.magneticDeviation = locationExtended.magneticDeviation;
-    }
-    if (GPS_LOCATION_EXTENDED_HAS_HOR_RELIABILITY & locationExtended.flags) {
-        out.flags |= GNSS_LOCATION_INFO_HOR_RELIABILITY_BIT;
-        switch (locationExtended.horizontal_reliability) {
-            case LOC_RELIABILITY_VERY_LOW:
-                out.horReliability = LOCATION_RELIABILITY_VERY_LOW;
-                break;
-            case LOC_RELIABILITY_LOW:
-                out.horReliability = LOCATION_RELIABILITY_LOW;
-                break;
-            case LOC_RELIABILITY_MEDIUM:
-                out.horReliability = LOCATION_RELIABILITY_MEDIUM;
-                break;
-            case LOC_RELIABILITY_HIGH:
-                out.horReliability = LOCATION_RELIABILITY_HIGH;
-                break;
-            default:
-                out.horReliability = LOCATION_RELIABILITY_NOT_SET;
-                break;
-        }
-    }
-    if (GPS_LOCATION_EXTENDED_HAS_VERT_RELIABILITY & locationExtended.flags) {
-        out.flags |= GNSS_LOCATION_INFO_VER_RELIABILITY_BIT;
-        switch (locationExtended.vertical_reliability) {
-            case LOC_RELIABILITY_VERY_LOW:
-                out.verReliability = LOCATION_RELIABILITY_VERY_LOW;
-                break;
-            case LOC_RELIABILITY_LOW:
-                out.verReliability = LOCATION_RELIABILITY_LOW;
-                break;
-            case LOC_RELIABILITY_MEDIUM:
-                out.verReliability = LOCATION_RELIABILITY_MEDIUM;
-                break;
-            case LOC_RELIABILITY_HIGH:
-                out.verReliability = LOCATION_RELIABILITY_HIGH;
-                break;
-            default:
-                out.verReliability = LOCATION_RELIABILITY_NOT_SET;
-                break;
-        }
-    }
-    if (GPS_LOCATION_EXTENDED_HAS_HOR_ELIP_UNC_MAJOR & locationExtended.flags) {
-        out.flags |= GNSS_LOCATION_INFO_HOR_ACCURACY_ELIP_SEMI_MAJOR_BIT;
-        out.horUncEllipseSemiMajor = locationExtended.horUncEllipseSemiMajor;
-    }
-    if (GPS_LOCATION_EXTENDED_HAS_HOR_ELIP_UNC_MINOR & locationExtended.flags) {
-        out.flags |= GNSS_LOCATION_INFO_HOR_ACCURACY_ELIP_SEMI_MINOR_BIT;
-        out.horUncEllipseSemiMinor = locationExtended.horUncEllipseSemiMinor;
-    }
-    if (GPS_LOCATION_EXTENDED_HAS_HOR_ELIP_UNC_AZIMUTH & locationExtended.flags) {
-        out.flags |= GNSS_LOCATION_INFO_HOR_ACCURACY_ELIP_AZIMUTH_BIT;
-        out.horUncEllipseOrientAzimuth = locationExtended.horUncEllipseOrientAzimuth;
-    }
-}
-
-inline uint32_t
-GnssAdapter::convertGpsLock(const GnssConfigGpsLock gpsLock)
-{
-    switch (gpsLock) {
-        case GNSS_CONFIG_GPS_LOCK_MO:
-            return 1;
-        case GNSS_CONFIG_GPS_LOCK_NI:
-            return 2;
-        case GNSS_CONFIG_GPS_LOCK_MO_AND_NI:
-            return 3;
-        case GNSS_CONFIG_GPS_LOCK_NONE:
-        default:
-            return 0;
-    }
-}
-
-inline GnssConfigGpsLock
-GnssAdapter::convertGpsLock(const uint32_t gpsLock)
-{
-    switch (gpsLock) {
-        case 1:
-            return GNSS_CONFIG_GPS_LOCK_MO;
-        case 2:
-            return GNSS_CONFIG_GPS_LOCK_NI;
-        case 3:
-            return GNSS_CONFIG_GPS_LOCK_MO_AND_NI;
-        case 0:
-        default:
-            return GNSS_CONFIG_GPS_LOCK_NONE;
-    }
-}
-
-inline uint32_t
-GnssAdapter::convertSuplVersion(const GnssConfigSuplVersion suplVersion)
-{
-    switch (suplVersion) {
-        case GNSS_CONFIG_SUPL_VERSION_2_0_0:
-            return 0x00020000;
-        case GNSS_CONFIG_SUPL_VERSION_2_0_2:
-            return 0x00020002;
-        case GNSS_CONFIG_SUPL_VERSION_1_0_0:
-        default:
-            return 0x00010000;
-    }
-}
-
-inline GnssConfigSuplVersion
-GnssAdapter::convertSuplVersion(const uint32_t suplVersion)
-{
-    switch (suplVersion) {
-        case 0x00020000:
-            return GNSS_CONFIG_SUPL_VERSION_2_0_0;
-        case 0x00020002:
-            return GNSS_CONFIG_SUPL_VERSION_2_0_2;
-        case 0x00010000:
-        default:
-            return GNSS_CONFIG_SUPL_VERSION_1_0_0;
-    }
-}
-
-inline uint32_t
-GnssAdapter::convertLppProfile(const GnssConfigLppProfile lppProfile)
-{
-    switch (lppProfile) {
-        case GNSS_CONFIG_LPP_PROFILE_USER_PLANE:
-            return 1;
-        case GNSS_CONFIG_LPP_PROFILE_CONTROL_PLANE:
-            return 2;
-        case GNSS_CONFIG_LPP_PROFILE_USER_PLANE_AND_CONTROL_PLANE:
-            return 3;
-        case GNSS_CONFIG_LPP_PROFILE_RRLP_ON_LTE:
-        default:
-            return 0;
-    }
-}
-
-inline GnssConfigLppProfile
-GnssAdapter::convertLppProfile(const uint32_t lppProfile)
-{
-    switch (lppProfile) {
-        case 1:
-            return GNSS_CONFIG_LPP_PROFILE_USER_PLANE;
-        case 2:
-            return GNSS_CONFIG_LPP_PROFILE_CONTROL_PLANE;
-        case 3:
-            return GNSS_CONFIG_LPP_PROFILE_USER_PLANE_AND_CONTROL_PLANE;
-        case 0:
-        default:
-            return GNSS_CONFIG_LPP_PROFILE_RRLP_ON_LTE;
-    }
-}
-
-uint32_t
-GnssAdapter::convertLppeCp(const GnssConfigLppeControlPlaneMask lppeControlPlaneMask)
-{
-    uint32_t mask = 0;
-    if (GNSS_CONFIG_LPPE_CONTROL_PLANE_DBH_BIT & lppeControlPlaneMask) {
-        mask |= (1<<0);
-    }
-    if (GNSS_CONFIG_LPPE_CONTROL_PLANE_WLAN_AP_MEASUREMENTS_BIT & lppeControlPlaneMask) {
-        mask |= (1<<1);
-    }
-    return mask;
-}
-
-GnssConfigLppeControlPlaneMask
-GnssAdapter::convertLppeCp(const uint32_t lppeControlPlaneMask)
-{
-    GnssConfigLppeControlPlaneMask mask = 0;
-    if ((1<<0) & lppeControlPlaneMask) {
-        mask |= GNSS_CONFIG_LPPE_CONTROL_PLANE_DBH_BIT;
-    }
-    if ((1<<1) & lppeControlPlaneMask) {
-        mask |= GNSS_CONFIG_LPPE_CONTROL_PLANE_WLAN_AP_MEASUREMENTS_BIT;
-    }
-    return mask;
-}
-
-
-uint32_t
-GnssAdapter::convertLppeUp(const GnssConfigLppeUserPlaneMask lppeUserPlaneMask)
-{
-    uint32_t mask = 0;
-    if (GNSS_CONFIG_LPPE_USER_PLANE_DBH_BIT & lppeUserPlaneMask) {
-        mask |= (1<<0);
-    }
-    if (GNSS_CONFIG_LPPE_USER_PLANE_WLAN_AP_MEASUREMENTS_BIT & lppeUserPlaneMask) {
-        mask |= (1<<1);
-    }
-    return mask;
-}
-
-GnssConfigLppeUserPlaneMask
-GnssAdapter::convertLppeUp(const uint32_t lppeUserPlaneMask)
-{
-    GnssConfigLppeUserPlaneMask mask = 0;
-    if ((1<<0) & lppeUserPlaneMask) {
-        mask |= GNSS_CONFIG_LPPE_USER_PLANE_DBH_BIT;
-    }
-    if ((1<<1) & lppeUserPlaneMask) {
-        mask |= GNSS_CONFIG_LPPE_USER_PLANE_WLAN_AP_MEASUREMENTS_BIT;
-    }
-    return mask;
-}
-
-uint32_t
-GnssAdapter::convertAGloProt(const GnssConfigAGlonassPositionProtocolMask aGloPositionProtocolMask)
-{
-    uint32_t mask = 0;
-    if (GNSS_CONFIG_RRC_CONTROL_PLANE_BIT & aGloPositionProtocolMask) {
-        mask |= (1<<0);
-    }
-    if (GNSS_CONFIG_RRLP_USER_PLANE_BIT & aGloPositionProtocolMask) {
-        mask |= (1<<1);
-    }
-    if (GNSS_CONFIG_LLP_USER_PLANE_BIT & aGloPositionProtocolMask) {
-        mask |= (1<<2);
-    }
-    if (GNSS_CONFIG_LLP_CONTROL_PLANE_BIT & aGloPositionProtocolMask) {
-        mask |= (1<<3);
-    }
-    return mask;
-}
-
-uint32_t
-GnssAdapter::convertEP4ES(const GnssConfigEmergencyPdnForEmergencySupl emergencyPdnForEmergencySupl)
-{
-    switch (emergencyPdnForEmergencySupl) {
-       case GNSS_CONFIG_EMERGENCY_PDN_FOR_EMERGENCY_SUPL_YES:
-           return 1;
-       case GNSS_CONFIG_EMERGENCY_PDN_FOR_EMERGENCY_SUPL_NO:
-       default:
-           return 0;
-    }
-}
-
-uint32_t
-GnssAdapter::convertSuplEs(const GnssConfigSuplEmergencyServices suplEmergencyServices)
-{
-    switch (suplEmergencyServices) {
-       case GNSS_CONFIG_SUPL_EMERGENCY_SERVICES_YES:
-           return 1;
-       case GNSS_CONFIG_SUPL_EMERGENCY_SERVICES_NO:
-       default:
-           return 0;
-    }
-}
-
-uint32_t
-GnssAdapter::convertSuplMode(const GnssConfigSuplModeMask suplModeMask)
-{
-    uint32_t mask = 0;
-    if (GNSS_CONFIG_SUPL_MODE_MSB_BIT & suplModeMask) {
-        mask |= (1<<0);
-    }
-    if (GNSS_CONFIG_SUPL_MODE_MSA_BIT & suplModeMask) {
-        mask |= (1<<1);
-    }
-    return mask;
-}
-
-bool
-GnssAdapter::resolveInAddress(const char* hostAddress, struct in_addr* inAddress)
-{
-    bool ret = true;
-
-    struct hostent* hp;
-    hp = gethostbyname(hostAddress);
-    if (hp != NULL) { /* DNS OK */
-        memcpy(inAddress, hp->h_addr_list[0], hp->h_length);
-    } else {
-        /* Try IP representation */
-        if (inet_aton(hostAddress, inAddress) == 0) {
-            /* IP not valid */
-            LOC_LOGE("%s]: DNS query on '%s' failed", __func__, hostAddress);
-            ret = false;
-        }
-    }
-
-    return ret;
-}
-
-void
-GnssAdapter::readConfigCommand()
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    struct MsgReadConfig : public LocMsg {
-        GnssAdapter* mAdapter;
-        ContextBase& mContext;
-        inline MsgReadConfig(GnssAdapter* adapter,
-                             ContextBase& context) :
-            LocMsg(),
-            mAdapter(adapter),
-            mContext(context) {}
-        inline virtual void proc() const {
-            // reads config into mContext->mGps_conf
-            mContext.readConfig();
-            mContext.requestUlp((LocAdapterBase*)mAdapter, mContext.getCarrierCapabilities());
-        }
-    };
-
-    if (mContext != NULL) {
-        sendMsg(new MsgReadConfig(this, *mContext));
-    }
-}
-
-void
-GnssAdapter::setConfigCommand()
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    struct MsgSetConfig : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        inline MsgSetConfig(GnssAdapter& adapter,
-                            LocApiBase& api) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api) {}
-        inline virtual void proc() const {
-            if (ContextBase::mGps_conf.AGPS_CONFIG_INJECT) {
-                mApi.setSUPLVersion(mAdapter.convertSuplVersion(ContextBase::mGps_conf.SUPL_VER));
-                mApi.setLPPConfig(mAdapter.convertLppProfile(ContextBase::mGps_conf.LPP_PROFILE));
-                mApi.setAGLONASSProtocol(ContextBase::mGps_conf.A_GLONASS_POS_PROTOCOL_SELECT);
-            }
-            mApi.setSensorControlConfig(ContextBase::mSap_conf.SENSOR_USAGE,
-                                        ContextBase::mSap_conf.SENSOR_PROVIDER);
-            mApi.setLPPeProtocolCp(
-                mAdapter.convertLppeCp(ContextBase::mGps_conf.LPPE_CP_TECHNOLOGY));
-            mApi.setLPPeProtocolUp(
-                mAdapter.convertLppeUp(ContextBase::mGps_conf.LPPE_UP_TECHNOLOGY));
-
-            // set nmea mask type
-            uint32_t mask = 0;
-            if (NMEA_PROVIDER_MP == ContextBase::mGps_conf.NMEA_PROVIDER) {
-                mask = LOC_NMEA_ALL_SUPPORTED_MASK;
-            } else {
-                mask = LOC_NMEA_MASK_DEBUG_V02;
-            }
-            mApi.setNMEATypes(mask);
-
-            mApi.setXtraVersionCheck(ContextBase::mGps_conf.XTRA_VERSION_CHECK);
-            if (ContextBase::mSap_conf.GYRO_BIAS_RANDOM_WALK_VALID ||
-                ContextBase::mSap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID ||
-                ContextBase::mSap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID ||
-                ContextBase::mSap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY_VALID ||
-                ContextBase::mSap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID ) {
-                mApi.setSensorProperties(
-                    ContextBase::mSap_conf.GYRO_BIAS_RANDOM_WALK_VALID,
-                    ContextBase::mSap_conf.GYRO_BIAS_RANDOM_WALK,
-                    ContextBase::mSap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID,
-                    ContextBase::mSap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY,
-                    ContextBase::mSap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID,
-                    ContextBase::mSap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY,
-                    ContextBase::mSap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY_VALID,
-                    ContextBase::mSap_conf.RATE_RANDOM_WALK_SPECTRAL_DENSITY,
-                    ContextBase::mSap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_VALID,
-                    ContextBase::mSap_conf.VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY);
-            }
-            mApi.setSensorPerfControlConfig(
-                ContextBase::mSap_conf.SENSOR_CONTROL_MODE,
-                   ContextBase::mSap_conf.SENSOR_ACCEL_SAMPLES_PER_BATCH,
-                   ContextBase::mSap_conf.SENSOR_ACCEL_BATCHES_PER_SEC,
-                   ContextBase::mSap_conf.SENSOR_GYRO_SAMPLES_PER_BATCH,
-                   ContextBase::mSap_conf.SENSOR_GYRO_BATCHES_PER_SEC,
-                   ContextBase::mSap_conf.SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH,
-                   ContextBase::mSap_conf.SENSOR_ACCEL_BATCHES_PER_SEC_HIGH,
-                   ContextBase::mSap_conf.SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH,
-                   ContextBase::mSap_conf.SENSOR_GYRO_BATCHES_PER_SEC_HIGH,
-                   ContextBase::mSap_conf.SENSOR_ALGORITHM_CONFIG_MASK);
-        }
-    };
-
-    sendMsg(new MsgSetConfig(*this, *mLocApi));
-}
-
-uint32_t*
-GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
-{
-    // count the number of bits set
-    GnssConfigFlagsMask flagsCopy = config.flags;
-    size_t count = 0;
-    while (flagsCopy > 0) {
-        if (flagsCopy & 1) {
-            count++;
-        }
-        flagsCopy >>= 1;
-    }
-    std::string idsString = "[";
-    uint32_t* ids = NULL;
-    if (count > 0) {
-        ids = new uint32_t[count];
-        for (size_t i=0; i < count; ++i) {
-            ids[i] = generateSessionId();
-            IF_LOC_LOGD {
-                idsString += std::to_string(ids[i]) + " ";
-            }
-        }
-    }
-    idsString += "]";
-
-    LOC_LOGD("%s]: ids %s flags 0x%X", __func__, idsString.c_str(), config.flags);
-
-    struct MsgGnssUpdateConfig : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        GnssConfig mConfig;
-        uint32_t* mIds;
-        size_t mCount;
-        inline MsgGnssUpdateConfig(GnssAdapter& adapter,
-                                   LocApiBase& api,
-                                   GnssConfig config,
-                                   uint32_t* ids,
-                                   size_t count) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api),
-            mConfig(config),
-            mIds(ids),
-            mCount(count) {}
-        inline virtual ~MsgGnssUpdateConfig()
-        {
-            delete[] mIds;
-        }
-        inline virtual void proc() const {
-            //const size_t MAX_BITS_COUNT = 10;
-            //LocationError errs[MAX_BITS_COUNT] = {};
-            LocationError* errs = new LocationError[mCount];
-            LocationError err = LOCATION_ERROR_SUCCESS;
-            uint32_t index = 0;
-
-            if (mConfig.flags & GNSS_CONFIG_FLAGS_GPS_LOCK_VALID_BIT) {
-                uint32_t newGpsLock = mAdapter.convertGpsLock(mConfig.gpsLock);
-                ContextBase::mGps_conf.GPS_LOCK = newGpsLock;
-                if (0 == mAdapter.getPowerVoteId()) {
-                    err = mApi.setGpsLock(mConfig.gpsLock);
-                }
-                if (index < mCount) {
-                    errs[index++] = err;
-                }
-            }
-            if (mConfig.flags & GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT) {
-                uint32_t newSuplVersion = mAdapter.convertSuplVersion(mConfig.suplVersion);
-                if (newSuplVersion != ContextBase::mGps_conf.SUPL_VER &&
-                    ContextBase::mGps_conf.AGPS_CONFIG_INJECT) {
-                    ContextBase::mGps_conf.SUPL_VER = newSuplVersion;
-                    err = mApi.setSUPLVersion(mConfig.suplVersion);
-                } else {
-                    err = LOCATION_ERROR_SUCCESS;
-                }
-                if (index < mCount) {
-                    errs[index++] = err;
-                }
-            }
-            if (mConfig.flags & GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT) {
-                if (GNSS_ASSISTANCE_TYPE_SUPL == mConfig.assistanceServer.type) {
-                    if (ContextBase::mGps_conf.AGPS_CONFIG_INJECT) {
-                        char serverUrl[MAX_URL_LEN] = {};
-                        uint32_t length = 0;
-                        const char noHost[] = "NONE";
-                        if (NULL == mConfig.assistanceServer.hostName ||
-                            strncasecmp(noHost,
-                                        mConfig.assistanceServer.hostName,
-                                        sizeof(noHost)) == 0) {
-                        } else {
-                            length = snprintf(serverUrl, sizeof(serverUrl), "%s:%u",
-                                              mConfig.assistanceServer.hostName,
-                                              mConfig.assistanceServer.port);
-                        }
-
-                        if (sizeof(serverUrl) > length) {
-                            err = mApi.setServer(serverUrl, length);
-                        } else {
-                            err = LOCATION_ERROR_INVALID_PARAMETER;
-                        }
-                    } else {
-                        err = LOCATION_ERROR_SUCCESS;
-                    }
-                } else if (GNSS_ASSISTANCE_TYPE_C2K == mConfig.assistanceServer.type) {
-                    if (ContextBase::mGps_conf.AGPS_CONFIG_INJECT) {
-                        struct in_addr addr;
-                        if (!mAdapter.resolveInAddress(mConfig.assistanceServer.hostName, &addr)) {
-                            LOC_LOGE("%s]: hostName %s cannot be resolved",
-                                     __func__, mConfig.assistanceServer.hostName);
-                            err = LOCATION_ERROR_INVALID_PARAMETER;
-                        } else {
-                            unsigned int ip = htonl(addr.s_addr);
-                            err = mApi.setServer(ip, mConfig.assistanceServer.port,
-                                                    LOC_AGPS_CDMA_PDE_SERVER);
-                        }
-                    } else {
-                        err = LOCATION_ERROR_SUCCESS;
-                    }
-                } else {
-                    LOC_LOGE("%s]: Not a valid gnss assistance type %u",
-                             __func__, mConfig.assistanceServer.type);
-                    err = LOCATION_ERROR_INVALID_PARAMETER;
-                }
-                if (index < mCount) {
-                    errs[index++] = err;
-                }
-            }
-            if (mConfig.flags & GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT) {
-                uint32_t newLppProfile = mAdapter.convertLppProfile(mConfig.lppProfile);
-                if (newLppProfile != ContextBase::mGps_conf.LPP_PROFILE &&
-                    ContextBase::mGps_conf.AGPS_CONFIG_INJECT) {
-                    ContextBase::mGps_conf.LPP_PROFILE = newLppProfile;
-                    err = mApi.setLPPConfig(mConfig.lppProfile);
-                } else {
-                    err = LOCATION_ERROR_SUCCESS;
-                }
-                if (index < mCount) {
-                    errs[index++] = err;
-                }
-            }
-            if (mConfig.flags & GNSS_CONFIG_FLAGS_LPPE_CONTROL_PLANE_VALID_BIT) {
-                uint32_t newLppeControlPlaneMask =
-                    mAdapter.convertLppeCp(mConfig.lppeControlPlaneMask);
-                if (newLppeControlPlaneMask != ContextBase::mGps_conf.LPPE_CP_TECHNOLOGY) {
-                    ContextBase::mGps_conf.LPPE_CP_TECHNOLOGY = newLppeControlPlaneMask;
-                    err = mApi.setLPPeProtocolCp(mConfig.lppeControlPlaneMask);
-                } else {
-                    err = LOCATION_ERROR_SUCCESS;
-                }
-                if (index < mCount) {
-                    errs[index++] = err;
-                }
-            }
-            if (mConfig.flags & GNSS_CONFIG_FLAGS_LPPE_USER_PLANE_VALID_BIT) {
-                uint32_t newLppeUserPlaneMask =
-                    mAdapter.convertLppeUp(mConfig.lppeUserPlaneMask);
-                if (newLppeUserPlaneMask != ContextBase::mGps_conf.LPPE_UP_TECHNOLOGY) {
-                    ContextBase::mGps_conf.LPPE_UP_TECHNOLOGY = newLppeUserPlaneMask;
-                    err = mApi.setLPPeProtocolUp(mConfig.lppeUserPlaneMask);
-                } else {
-                    err = LOCATION_ERROR_SUCCESS;
-                }
-                if (index < mCount) {
-                    errs[index++] = err;
-                }
-            }
-            if (mConfig.flags & GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT) {
-                uint32_t newAGloProtMask =
-                    mAdapter.convertAGloProt(mConfig.aGlonassPositionProtocolMask);
-                if (newAGloProtMask != ContextBase::mGps_conf.A_GLONASS_POS_PROTOCOL_SELECT &&
-                    ContextBase::mGps_conf.AGPS_CONFIG_INJECT) {
-                    ContextBase::mGps_conf.A_GLONASS_POS_PROTOCOL_SELECT = newAGloProtMask;
-                    err = mApi.setAGLONASSProtocol(mConfig.aGlonassPositionProtocolMask);
-                } else {
-                    err = LOCATION_ERROR_SUCCESS;
-                }
-                if (index < mCount) {
-                    errs[index++] = err;
-                }
-            }
-            if (mConfig.flags & GNSS_CONFIG_FLAGS_EM_PDN_FOR_EM_SUPL_VALID_BIT) {
-                uint32_t newEP4ES = mAdapter.convertEP4ES(mConfig.emergencyPdnForEmergencySupl);
-                if (newEP4ES != ContextBase::mGps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL) {
-                    ContextBase::mGps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL = newEP4ES;
-                }
-                err = LOCATION_ERROR_SUCCESS;
-                if (index < mCount) {
-                    errs[index++] = err;
-                }
-            }
-            if (mConfig.flags & GNSS_CONFIG_FLAGS_SUPL_EM_SERVICES_BIT) {
-                uint32_t newSuplEs = mAdapter.convertSuplEs(mConfig.suplEmergencyServices);
-                if (newSuplEs != ContextBase::mGps_conf.SUPL_ES) {
-                    ContextBase::mGps_conf.SUPL_ES = newSuplEs;
-                }
-                err = LOCATION_ERROR_SUCCESS;
-                if (index < mCount) {
-                    errs[index++] = err;
-                }
-            }
-            if (mConfig.flags & GNSS_CONFIG_FLAGS_SUPL_MODE_BIT) {
-                uint32_t newSuplMode = mAdapter.convertSuplMode(mConfig.suplModeMask);
-                if (newSuplMode != ContextBase::mGps_conf.SUPL_MODE) {
-                    ContextBase::mGps_conf.SUPL_MODE = newSuplMode;
-                    mAdapter.getUlpProxy()->setCapabilities(
-                        ContextBase::getCarrierCapabilities());
-                }
-                err = LOCATION_ERROR_SUCCESS;
-                if (index < mCount) {
-                    errs[index++] = err;
-                }
-            }
-
-            mAdapter.reportResponse(index, errs, mIds);
-            delete[] errs;
-        }
-    };
-
-    if (NULL != ids) {
-        sendMsg(new MsgGnssUpdateConfig(*this, *mLocApi, config, ids, count));
-    } else {
-        LOC_LOGE("%s]: No GNSS config items to update", __func__);
-    }
-
-    return ids;
-}
-
-uint32_t
-GnssAdapter::gnssDeleteAidingDataCommand(GnssAidingData& data)
-{
-    uint32_t sessionId = generateSessionId();
-    LOC_LOGD("%s]: id %u", __func__, sessionId);
-
-    struct MsgDeleteAidingData : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        uint32_t mSessionId;
-        GnssAidingData mData;
-        inline MsgDeleteAidingData(GnssAdapter& adapter,
-                                   LocApiBase& api,
-                                   uint32_t sessionId,
-                                   GnssAidingData& data) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api),
-            mSessionId(sessionId),
-            mData(data) {}
-        inline virtual void proc() const {
-            LocationError err = LOCATION_ERROR_SUCCESS;
-            err = mApi.deleteAidingData(mData);
-            mAdapter.reportResponse(err, mSessionId);
-        }
-    };
-
-    sendMsg(new MsgDeleteAidingData(*this, *mLocApi, sessionId, data));
-    return sessionId;
-}
-
-void
-GnssAdapter::injectLocationCommand(double latitude, double longitude, float accuracy)
-{
-    LOC_LOGD("%s]: latitude %8.4f longitude %8.4f accuracy %8.4f",
-             __func__, latitude, longitude, accuracy);
-
-    struct MsgInjectLocation : public LocMsg {
-        LocApiBase& mApi;
-        ContextBase& mContext;
-        double mLatitude;
-        double mLongitude;
-        float mAccuracy;
-        inline MsgInjectLocation(LocApiBase& api,
-                                 ContextBase& context,
-                                 double latitude,
-                                 double longitude,
-                                 float accuracy) :
-            LocMsg(),
-            mApi(api),
-            mContext(context),
-            mLatitude(latitude),
-            mLongitude(longitude),
-            mAccuracy(accuracy) {}
-        inline virtual void proc() const {
-            if (!mContext.hasCPIExtendedCapabilities()) {
-                mApi.injectPosition(mLatitude, mLongitude, mAccuracy);
-            }
-        }
-    };
-
-    sendMsg(new MsgInjectLocation(*mLocApi, *mContext, latitude, longitude, accuracy));
-}
-
-void
-GnssAdapter::injectTimeCommand(int64_t time, int64_t timeReference, int32_t uncertainty)
-{
-    LOC_LOGD("%s]: time %lld timeReference %lld uncertainty %d",
-             __func__, (long long)time, (long long)timeReference, uncertainty);
-
-    struct MsgInjectTime : public LocMsg {
-        LocApiBase& mApi;
-        ContextBase& mContext;
-        int64_t mTime;
-        int64_t mTimeReference;
-        int32_t mUncertainty;
-        inline MsgInjectTime(LocApiBase& api,
-                             ContextBase& context,
-                             int64_t time,
-                             int64_t timeReference,
-                             int32_t uncertainty) :
-            LocMsg(),
-            mApi(api),
-            mContext(context),
-            mTime(time),
-            mTimeReference(timeReference),
-            mUncertainty(uncertainty) {}
-        inline virtual void proc() const {
-            mApi.setTime(mTime, mTimeReference, mUncertainty);
-        }
-    };
-
-    sendMsg(new MsgInjectTime(*mLocApi, *mContext, time, timeReference, uncertainty));
-}
-
-void
-GnssAdapter::setUlpProxyCommand(UlpProxyBase* ulp)
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    struct MsgSetUlpProxy : public LocMsg {
-        GnssAdapter& mAdapter;
-        UlpProxyBase* mUlp;
-        inline MsgSetUlpProxy(GnssAdapter& adapter,
-                              UlpProxyBase* ulp) :
-            LocMsg(),
-            mAdapter(adapter),
-            mUlp(ulp) {}
-        inline virtual void proc() const {
-            mAdapter.setUlpProxy(mUlp);
-            if (mUlp) {
-                mUlp->setCapabilities(ContextBase::getCarrierCapabilities());
-            }
-        }
-    };
-
-    sendMsg(new MsgSetUlpProxy(*this, ulp));
-}
-
-void
-GnssAdapter::setUlpProxy(UlpProxyBase* ulp)
-{
-    if (ulp == mUlpProxy) {
-        //This takes care of the case when double initalization happens
-        //and we get the same object back for UlpProxyBase . Do nothing
-        return;
-    }
-
-    LOC_LOGV("%s]: %p", __func__, ulp);
-    if (NULL == ulp) {
-        LOC_LOGE("%s]: ulp pointer is NULL", __func__);
-        ulp = new UlpProxyBase();
-    }
-
-    if (LOC_POSITION_MODE_INVALID != mUlpProxy->mPosMode.mode) {
-        // need to send this mode and start msg to ULP
-        ulp->sendFixMode(mUlpProxy->mPosMode);
-    }
-
-    if (mUlpProxy->mFixSet) {
-        ulp->sendStartFix();
-    }
-
-    delete mUlpProxy;
-    mUlpProxy = ulp;
-}
-
-void
-GnssAdapter::addClientCommand(LocationAPI* client, const LocationCallbacks& callbacks)
-{
-    LOC_LOGD("%s]: client %p", __func__, client);
-
-    struct MsgAddClient : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocationAPI* mClient;
-        const LocationCallbacks mCallbacks;
-        inline MsgAddClient(GnssAdapter& adapter,
-                            LocationAPI* client,
-                            const LocationCallbacks& callbacks) :
-            LocMsg(),
-            mAdapter(adapter),
-            mClient(client),
-            mCallbacks(callbacks) {}
-        inline virtual void proc() const {
-            mAdapter.saveClient(mClient, mCallbacks);
-        }
-    };
-
-    sendMsg(new MsgAddClient(*this, client, callbacks));
-}
-
-void
-GnssAdapter::removeClientCommand(LocationAPI* client)
-{
-    LOC_LOGD("%s]: client %p", __func__, client);
-
-    struct MsgRemoveClient : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocationAPI* mClient;
-        inline MsgRemoveClient(GnssAdapter& adapter,
-                               LocationAPI* client) :
-            LocMsg(),
-            mAdapter(adapter),
-            mClient(client) {}
-        inline virtual void proc() const {
-            mAdapter.stopClientSessions(mClient);
-            mAdapter.eraseClient(mClient);
-        }
-    };
-
-    sendMsg(new MsgRemoveClient(*this, client));
-}
-
-void
-GnssAdapter::stopClientSessions(LocationAPI* client)
-{
-    LOC_LOGD("%s]: client %p", __func__, client);
-    for (auto it = mTrackingSessions.begin(); it != mTrackingSessions.end();) {
-        if (client == it->first.client) {
-            LocationError err = stopTrackingMultiplex(it->first.client, it->first.id);
-            if (LOCATION_ERROR_SUCCESS == err) {
-                it = mTrackingSessions.erase(it);
-                continue;
-            }
-        }
-        ++it; // increment only when not erasing an iterator
-    }
-
-}
-
-void
-GnssAdapter::updateClientsEventMask()
-{
-    LOC_API_ADAPTER_EVENT_MASK_T mask = 0;
-    for (auto it=mClientData.begin(); it != mClientData.end(); ++it) {
-        if (it->second.trackingCb != nullptr) {
-            mask |= LOC_API_ADAPTER_BIT_PARSED_POSITION_REPORT;
-        }
-        if (it->second.gnssNiCb != nullptr) {
-            mask |= LOC_API_ADAPTER_BIT_NI_NOTIFY_VERIFY_REQUEST;
-        }
-        if (it->second.gnssSvCb != nullptr) {
-            mask |= LOC_API_ADAPTER_BIT_SATELLITE_REPORT;
-        }
-        if (it->second.gnssNmeaCb != nullptr) {
-            mask |= LOC_API_ADAPTER_BIT_NMEA_1HZ_REPORT;
-        }
-        if (it->second.gnssMeasurementsCb != nullptr) {
-            mask |= LOC_API_ADAPTER_BIT_GNSS_MEASUREMENT;
-        }
-    }
-
-    /*
-    ** For Automotive use cases we need to enable MEASUREMENT and POLY
-    ** when QDR is enabled
-    */
-    if(1 == ContextBase::mGps_conf.EXTERNAL_DR_ENABLED) {
-        mask |= LOC_API_ADAPTER_BIT_GNSS_MEASUREMENT;
-        mask |= LOC_API_ADAPTER_BIT_GNSS_SV_POLYNOMIAL_REPORT;
-
-        LOC_LOGD("%s]: Auto usecase, Enable MEAS/POLY - mask 0x%x", __func__, mask);
-    }
-
-    updateEvtMask(mask, LOC_REGISTRATION_MASK_SET);
-}
-
-void
-GnssAdapter::handleEngineUpEvent()
-{
-    struct MsgRestartSessions : public LocMsg {
-        GnssAdapter& mAdapter;
-        inline MsgRestartSessions(GnssAdapter& adapter) :
-            LocMsg(),
-            mAdapter(adapter) {}
-        virtual void proc() const {
-            mAdapter.restartSessions();
-        }
-    };
-
-    setConfigCommand();
-    sendMsg(new MsgRestartSessions(*this));
-}
-
-void
-GnssAdapter::restartSessions()
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    if (mTrackingSessions.empty()) {
-        return;
-    }
-
-    // get the LocationOptions that has the smallest interval, which should be the active one
-    LocationOptions smallestIntervalOptions = {}; // size is zero until set for the first time
-    for (auto it = mTrackingSessions.begin(); it != mTrackingSessions.end(); ++it) {
-        if (0 == smallestIntervalOptions.size || //size of zero means we havent set it yet
-            it->second.minInterval < smallestIntervalOptions.minInterval) {
-             smallestIntervalOptions = it->second;
-        }
-    }
-
-    LocPosMode locPosMode = {};
-    convertOptions(locPosMode, smallestIntervalOptions);
-    mLocApi->startFix(locPosMode);
-}
-
-void
-GnssAdapter::requestCapabilitiesCommand(LocationAPI* client)
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    struct MsgRequestCapabilities : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        LocationAPI* mClient;
-        inline MsgRequestCapabilities(GnssAdapter& adapter,
-                                      LocApiBase& api,
-                                      LocationAPI* client) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api),
-            mClient(client) {}
-        inline virtual void proc() const {
-            LocationCallbacks callbacks = mAdapter.getClientCallbacks(mClient);
-            if (callbacks.capabilitiesCb == nullptr) {
-                LOC_LOGE("%s]: capabilitiesCb is NULL", __func__);
-                return;
-            }
-
-            LocationCapabilitiesMask mask = {};
-            // time based tracking always supported
-            mask |= LOCATION_CAPABILITIES_TIME_BASED_TRACKING_BIT;
-            if (mApi.isMessageSupported(LOC_API_ADAPTER_MESSAGE_DISTANCE_BASE_LOCATION_BATCHING)){
-                mask |= LOCATION_CAPABILITIES_TIME_BASED_BATCHING_BIT |
-                        LOCATION_CAPABILITIES_DISTANCE_BASED_BATCHING_BIT;
-            }
-            if (mApi.isMessageSupported(LOC_API_ADAPTER_MESSAGE_DISTANCE_BASE_TRACKING)) {
-                mask |= LOCATION_CAPABILITIES_DISTANCE_BASED_TRACKING_BIT;
-            }
-            // geofence always supported
-            mask |= LOCATION_CAPABILITIES_GEOFENCE_BIT;
-            if (mApi.gnssConstellationConfig()) {
-                mask |= LOCATION_CAPABILITIES_GNSS_MEASUREMENTS_BIT;
-            }
-            uint32_t carrierCapabilities = ContextBase::getCarrierCapabilities();
-            if (carrierCapabilities & LOC_GPS_CAPABILITY_MSB) {
-                mask |= LOCATION_CAPABILITIES_GNSS_MSB_BIT;
-            }
-            if (LOC_GPS_CAPABILITY_MSA & carrierCapabilities) {
-                mask |= LOCATION_CAPABILITIES_GNSS_MSA_BIT;
-            }
-
-            callbacks.capabilitiesCb(mask);
-        }
-    };
-
-    sendMsg(new MsgRequestCapabilities(*this, *mLocApi, client));
-}
-
-LocationCallbacks
-GnssAdapter::getClientCallbacks(LocationAPI* client)
-{
-    LocationCallbacks callbacks = {};
-    auto it = mClientData.find(client);
-    if (it != mClientData.end()) {
-        callbacks = it->second;
-    }
-    return callbacks;
-}
-
-void
-GnssAdapter::saveClient(LocationAPI* client, const LocationCallbacks& callbacks)
-{
-    mClientData[client] = callbacks;
-    updateClientsEventMask();
-}
-
-void
-GnssAdapter::eraseClient(LocationAPI* client)
-{
-    auto it = mClientData.find(client);
-    if (it != mClientData.end()) {
-        mClientData.erase(it);
-    }
-    updateClientsEventMask();
-}
-
-bool
-GnssAdapter::hasTrackingCallback(LocationAPI* client)
-{
-    auto it = mClientData.find(client);
-    return (it != mClientData.end() && it->second.trackingCb);
-}
-
-bool
-GnssAdapter::hasMeasurementsCallback(LocationAPI* client)
-{
-    auto it = mClientData.find(client);
-    return (it != mClientData.end() && it->second.gnssMeasurementsCb);
-}
-
-bool
-GnssAdapter::isTrackingSession(LocationAPI* client, uint32_t sessionId)
-{
-    LocationSessionKey key(client, sessionId);
-    return (mTrackingSessions.find(key) != mTrackingSessions.end());
-}
-
-void
-GnssAdapter::saveTrackingSession(LocationAPI* client, uint32_t sessionId,
-                                 const LocationOptions& options)
-{
-    LocationSessionKey key(client, sessionId);
-    mTrackingSessions[key] = options;
-}
-
-void
-GnssAdapter::eraseTrackingSession(LocationAPI* client, uint32_t sessionId)
-{
-    LocationSessionKey key(client, sessionId);
-    auto it = mTrackingSessions.find(key);
-    if (it != mTrackingSessions.end()) {
-        mTrackingSessions.erase(it);
-    }
-
-}
-
-void
-GnssAdapter::reportResponse(LocationAPI* client, LocationError err, uint32_t sessionId)
-{
-    LOC_LOGD("%s]: client %p id %u err %u", __func__, client, sessionId, err);
-
-    auto it = mClientData.find(client);
-    if (it != mClientData.end() &&
-        it->second.responseCb != nullptr) {
-        it->second.responseCb(err, sessionId);
-    } else {
-        LOC_LOGW("%s]: client %p id %u not found in data", __func__, client, sessionId);
-    }
-}
-
-void
-GnssAdapter::reportResponse(LocationError err, uint32_t sessionId)
-{
-    LOC_LOGD("%s]: id %u err %u", __func__, sessionId, err);
-
-    if (mControlCallbacks.size > 0 && mControlCallbacks.responseCb != nullptr) {
-        mControlCallbacks.responseCb(err, sessionId);
-    } else {
-        LOC_LOGW("%s]: control client response callback not found", __func__);
-    }
-}
-
-void
-GnssAdapter::reportResponse(size_t count, LocationError* errs, uint32_t* ids)
-{
-    IF_LOC_LOGD {
-        std::string idsString = "[";
-        std::string errsString = "[";
-        if (NULL != ids && NULL != errs) {
-            for (size_t i=0; i < count; ++i) {
-                idsString += std::to_string(ids[i]) + " ";
-                errsString += std::to_string(errs[i]) + " ";
-            }
-        }
-        idsString += "]";
-        errsString += "]";
-
-        LOC_LOGD("%s]: ids %s errs %s",
-                 __func__, idsString.c_str(), errsString.c_str());
-    }
-
-    if (mControlCallbacks.size > 0 && mControlCallbacks.collectiveResponseCb != nullptr) {
-        mControlCallbacks.collectiveResponseCb(count, errs, ids);
-    } else {
-        LOC_LOGW("%s]: control client callback not found", __func__);
-    }
-}
-
-uint32_t
-GnssAdapter::startTrackingCommand(LocationAPI* client, LocationOptions& options)
-{
-    uint32_t sessionId = generateSessionId();
-    LOC_LOGD("%s]: client %p id %u minInterval %u mode %u",
-             __func__, client, sessionId, options.minInterval, options.mode);
-
-    struct MsgStartTracking : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        LocationAPI* mClient;
-        uint32_t mSessionId;
-        LocationOptions mOptions;
-        inline MsgStartTracking(GnssAdapter& adapter,
-                               LocApiBase& api,
-                               LocationAPI* client,
-                               uint32_t sessionId,
-                               LocationOptions options) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api),
-            mClient(client),
-            mSessionId(sessionId),
-            mOptions(options) {}
-        inline virtual void proc() const {
-            LocationError err = LOCATION_ERROR_SUCCESS;
-            if (!mAdapter.hasTrackingCallback(mClient) &&
-                !mAdapter.hasMeasurementsCallback(mClient)) {
-                err = LOCATION_ERROR_CALLBACK_MISSING;
-            } else if (0 == mOptions.size) {
-                err = LOCATION_ERROR_INVALID_PARAMETER;
-            } else {
-                // Api doesn't support multiple clients for time based tracking, so mutiplex
-                err = mAdapter.startTrackingMultiplex(mOptions);
-                if (LOCATION_ERROR_SUCCESS == err) {
-                    mAdapter.saveTrackingSession(mClient, mSessionId, mOptions);
-                }
-            }
-            mAdapter.reportResponse(mClient, err, mSessionId);
-        }
-    };
-
-    sendMsg(new MsgStartTracking(*this, *mLocApi, client, sessionId, options));
-    return sessionId;
-
-}
-
-LocationError
-GnssAdapter::startTrackingMultiplex(const LocationOptions& options)
-{
-    LocationError err = LOCATION_ERROR_SUCCESS;
-
-    if (mTrackingSessions.empty()) {
-        err = startTracking(options);
-    } else {
-        // get the LocationOptions that has the smallest interval, which should be the active one
-        LocationOptions smallestIntervalOptions = {}; // size is zero until set for the first time
-        for (auto it = mTrackingSessions.begin(); it != mTrackingSessions.end(); ++it) {
-            if (0 == smallestIntervalOptions.size || //size of zero means we havent set it yet
-                it->second.minInterval < smallestIntervalOptions.minInterval) {
-                 smallestIntervalOptions = it->second;
-            }
-        }
-        // if new session's minInterval is smaller than any in other sessions
-        if (options.minInterval < smallestIntervalOptions.minInterval) {
-            // restart time based tracking with new options
-            err = startTracking(options);
-        }
-    }
-
-    return err;
-}
-
-LocationError
-GnssAdapter::startTracking(const LocationOptions& options)
-{
-    LocationError err = LOCATION_ERROR_SUCCESS;
-    LocPosMode locPosMode = {};
-    convertOptions(locPosMode, options);
-    if (!mUlpProxy->sendFixMode(locPosMode)) {
-        // do nothing
-    }
-    if (!mUlpProxy->sendStartFix()) {
-        loc_api_adapter_err apiErr = mLocApi->startFix(locPosMode);
-        if (LOC_API_ADAPTER_ERR_SUCCESS == apiErr) {
-            err = LOCATION_ERROR_SUCCESS;
-        } else {
-            err = LOCATION_ERROR_GENERAL_FAILURE;
-        }
-    }
-
-    return err;
-}
-
-void
-GnssAdapter::setPositionModeCommand(LocPosMode& locPosMode)
-{
-    LOC_LOGD("%s]: min_interval %u mode %u",
-             __func__, locPosMode.min_interval, locPosMode.mode);
-
-    struct MsgSetPositionMode : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        LocPosMode mLocPosMode;
-        inline MsgSetPositionMode(GnssAdapter& adapter,
-                                  LocApiBase& api,
-                                  LocPosMode& locPosMode) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api),
-            mLocPosMode(locPosMode) {}
-        inline virtual void proc() const {
-             // saves the mode in adapter to be used when startTrackingCommand is called from ULP
-            mAdapter.setUlpPositionMode(mLocPosMode);
-            mApi.setPositionMode(mLocPosMode);
-        }
-    };
-
-    sendMsg(new MsgSetPositionMode(*this, *mLocApi, locPosMode));
-}
-
-void
-GnssAdapter::startTrackingCommand()
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    struct MsgStartTracking : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        inline MsgStartTracking(GnssAdapter& adapter,
-                                LocApiBase& api) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api) {}
-        inline virtual void proc() const {
-            // we get this call from ULP, so just call LocApi without multiplexing because
-            // ulp would be doing the multiplexing for us if it is present
-            LocPosMode& ulpPositionMode = mAdapter.getUlpPositionMode();
-            mApi.startFix(ulpPositionMode);
-        }
-    };
-
-    sendMsg(new MsgStartTracking(*this, *mLocApi));
-}
-
-void
-GnssAdapter::updateTrackingOptionsCommand(LocationAPI* client, uint32_t id,
-                                          LocationOptions& options)
-{
-    LOC_LOGD("%s]: client %p id %u minInterval %u mode %u",
-             __func__, client, id, options.minInterval, options.mode);
-
-    struct MsgUpdateTracking : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        LocationAPI* mClient;
-        uint32_t mSessionId;
-        LocationOptions mOptions;
-        inline MsgUpdateTracking(GnssAdapter& adapter,
-                                LocApiBase& api,
-                                LocationAPI* client,
-                                uint32_t sessionId,
-                                LocationOptions options) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api),
-            mClient(client),
-            mSessionId(sessionId),
-            mOptions(options) {}
-        inline virtual void proc() const {
-            if (mAdapter.isTrackingSession(mClient, mSessionId)) {
-                LocationError err = LOCATION_ERROR_SUCCESS;
-                if (0 == mOptions.size) {
-                    err = LOCATION_ERROR_INVALID_PARAMETER;
-                } else {
-                    // Api doesn't support multiple clients for time based tracking, so mutiplex
-                    err = mAdapter.updateTrackingMultiplex(mClient, mSessionId, mOptions);
-                    if (LOCATION_ERROR_SUCCESS == err) {
-                        mAdapter.saveTrackingSession(mClient, mSessionId, mOptions);
-                    }
-                }
-                mAdapter.reportResponse(mClient, err, mSessionId);
-            }
-            // we do not reportResponse for the case where there is no existing tracking session
-            // for the client and id being used, since updateTrackingCommand can be sent to both
-            // GnssAdapter & FlpAdapter by LocationAPI and we want to avoid incorrect error response
-        }
-    };
-
-    sendMsg(new MsgUpdateTracking(*this, *mLocApi, client, id, options));
-}
-
-LocationError
-GnssAdapter::updateTrackingMultiplex(LocationAPI* client, uint32_t id,
-                                     const LocationOptions& options)
-{
-    LocationError err = LOCATION_ERROR_SUCCESS;
-
-    if (1 == mTrackingSessions.size()) {
-        err = startTracking(options);
-    } else {
-        LocationSessionKey key(client, id);
-
-        // get the session we are updating
-        auto it = mTrackingSessions.find(key);
-        if (it != mTrackingSessions.end()) {
-            // find the smallest interval, other than the session we are updating
-            LocationOptions smallestIntervalOptions = {}; // size is 0 until set for the first time
-            for (auto it2 = mTrackingSessions.begin(); it2 != mTrackingSessions.end(); ++it2) {
-                // if session is not the one we are updating and either smallest interval is not set
-                // or there is a new smallest interval, then set the new smallest interval
-                if (it2->first != key && (0 == smallestIntervalOptions.size ||
-                    it2->second.minInterval < smallestIntervalOptions.minInterval)) {
-                     smallestIntervalOptions = it2->second;
-                }
-            }
-            // if session we are updating has smaller interval then next smallest
-            if (options.minInterval < smallestIntervalOptions.minInterval) {
-                // restart time based tracking with the newly updated interval
-                err = startTracking(options);
-            // else if the session we are updating used to be the smallest
-            } else if (it->second.minInterval < smallestIntervalOptions.minInterval) {
-                // restart time based tracking with the next smallest
-                err = startTracking(smallestIntervalOptions);
-            }
-        }
-    }
-
-    return err;
-}
-
-void
-GnssAdapter::stopTrackingCommand(LocationAPI* client, uint32_t id)
-{
-    LOC_LOGD("%s]: client %p id %u", __func__, client, id);
-
-    struct MsgStopTracking : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        LocationAPI* mClient;
-        uint32_t mSessionId;
-        inline MsgStopTracking(GnssAdapter& adapter,
-                               LocApiBase& api,
-                               LocationAPI* client,
-                               uint32_t sessionId) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api),
-            mClient(client),
-            mSessionId(sessionId) {}
-        inline virtual void proc() const {
-            if (mAdapter.isTrackingSession(mClient, mSessionId)) {
-                LocationError err = LOCATION_ERROR_SUCCESS;
-                // Api doesn't support multiple clients for time based tracking, so mutiplex
-                err = mAdapter.stopTrackingMultiplex(mClient, mSessionId);
-                if (LOCATION_ERROR_SUCCESS == err) {
-                    mAdapter.eraseTrackingSession(mClient, mSessionId);
-                }
-                mAdapter.reportResponse(mClient, err, mSessionId);
-            }
-            // we do not reportResponse for the case where there is no existing tracking session
-            // for the client and id being used, since stopTrackingCommand can be sent to both
-            // GnssAdapter & FlpAdapter by LocationAPI and we want to avoid incorrect error response
-
-        }
-    };
-
-    sendMsg(new MsgStopTracking(*this, *mLocApi, client, id));
-}
-
-LocationError
-GnssAdapter::stopTrackingMultiplex(LocationAPI* client, uint32_t id)
-{
-    LocationError err = LOCATION_ERROR_SUCCESS;
-
-    if (1 == mTrackingSessions.size()) {
-        err = stopTracking();
-    } else {
-        LocationSessionKey key(client, id);
-
-        // get the session we are stopping
-        auto it = mTrackingSessions.find(key);
-        if (it != mTrackingSessions.end()) {
-            // find the next smallest interval, other than the session we are stopping
-            LocationOptions smallestIntervalOptions = {}; // size is 0 until set for the first time
-            for (auto it2 = mTrackingSessions.begin(); it2 != mTrackingSessions.end(); ++it2) {
-                // if session is not the one we are stopping and either smallest interval is not set
-                // or there is a new smallest interval, then set the new smallest interval
-                if (it2->first != key && (0 == smallestIntervalOptions.size ||
-                    it2->second.minInterval < smallestIntervalOptions.minInterval)) {
-                     smallestIntervalOptions = it2->second;
-                }
-            }
-            // if session we are stopping has smaller interval then next smallest
-            if (it->second.minInterval < smallestIntervalOptions.minInterval) {
-                // restart time based tracking with next smallest interval
-                err = startTracking(smallestIntervalOptions);
-            }
-        }
-    }
-
-    return err;
-}
-
-LocationError
-GnssAdapter::stopTracking()
-{
-    LocationError err = LOCATION_ERROR_SUCCESS;
-    if (!mUlpProxy->sendStopFix()) {
-        loc_api_adapter_err apiErr = mLocApi->stopFix();
-        if (LOC_API_ADAPTER_ERR_SUCCESS == apiErr) {
-            err = LOCATION_ERROR_SUCCESS;
-        } else {
-            err = LOCATION_ERROR_GENERAL_FAILURE;
-        }
-    }
-
-    return err;
-}
-
-void
-GnssAdapter::stopTrackingCommand()
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    struct MsgStopTracking : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        inline MsgStopTracking(GnssAdapter& adapter,
-                               LocApiBase& api) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api) {}
-        inline virtual void proc() const {
-            // clear the position mode
-            LocPosMode mLocPosMode = {};
-            mLocPosMode.mode = LOC_POSITION_MODE_INVALID;
-            mAdapter.setUlpPositionMode(mLocPosMode);
-            // don't need to multiplex because ULP will do that for us if it is present
-            mApi.stopFix();
-        }
-    };
-
-    sendMsg(new MsgStopTracking(*this, *mLocApi));
-}
-
-void
-GnssAdapter::getZppCommand()
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    struct MsgGetZpp : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        inline MsgGetZpp(GnssAdapter& adapter,
-                         LocApiBase& api) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api) {}
-        inline virtual void proc() const {
-            UlpLocation location = {};
-            LocPosTechMask techMask = LOC_POS_TECH_MASK_DEFAULT;
-            GpsLocationExtended locationExtended = {};
-            locationExtended.size = sizeof(locationExtended);
-
-            mApi.getBestAvailableZppFix(location.gpsLocation, techMask);
-            //Mark the location source as from ZPP
-            location.gpsLocation.flags |= LOCATION_HAS_SOURCE_INFO;
-            location.position_source = ULP_LOCATION_IS_FROM_ZPP;
-
-            mAdapter.getUlpProxy()->reportPosition(location,
-                                                   locationExtended,
-                                                   LOC_SESS_SUCCESS,
-                                                   techMask);
-        }
-    };
-
-    sendMsg(new MsgGetZpp(*this, *mLocApi));
-}
-
-bool
-GnssAdapter::hasNiNotifyCallback(LocationAPI* client)
-{
-    auto it = mClientData.find(client);
-    return (it != mClientData.end() && it->second.gnssNiCb);
-}
-
-void
-GnssAdapter::gnssNiResponseCommand(LocationAPI* client,
-                                   uint32_t id,
-                                   GnssNiResponse response)
-{
-    LOC_LOGD("%s]: client %p id %u response %u", __func__, client, id, response);
-
-    struct MsgGnssNiResponse : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocationAPI* mClient;
-        uint32_t mSessionId;
-        GnssNiResponse mResponse;
-        inline MsgGnssNiResponse(GnssAdapter& adapter,
-                                 LocationAPI* client,
-                                 uint32_t sessionId,
-                                 GnssNiResponse response) :
-            LocMsg(),
-            mAdapter(adapter),
-            mClient(client),
-            mSessionId(sessionId),
-            mResponse(response) {}
-        inline virtual void proc() const {
-            NiData& niData = mAdapter.getNiData();
-            LocationError err = LOCATION_ERROR_SUCCESS;
-            if (!mAdapter.hasNiNotifyCallback(mClient)) {
-                err = LOCATION_ERROR_ID_UNKNOWN;
-            } else {
-                NiSession* pSession = NULL;
-                if (mSessionId == niData.sessionEs.reqID &&
-                    NULL != niData.sessionEs.rawRequest) {
-                    pSession = &niData.sessionEs;
-                    // ignore any SUPL NI non-Es session if a SUPL NI ES is accepted
-                    if (mResponse == GNSS_NI_RESPONSE_ACCEPT &&
-                        NULL != niData.session.rawRequest) {
-                            pthread_mutex_lock(&niData.session.tLock);
-                            niData.session.resp = GNSS_NI_RESPONSE_IGNORE;
-                            niData.session.respRecvd = true;
-                            pthread_cond_signal(&niData.session.tCond);
-                            pthread_mutex_unlock(&niData.session.tLock);
-                    }
-                } else if (mSessionId == niData.session.reqID &&
-                    NULL != niData.session.rawRequest) {
-                    pSession = &niData.session;
-                }
-
-                if (pSession) {
-                    LOC_LOGI("%s]: gnssNiResponseCommand: send user mResponse %u for id %u",
-                             __func__, mResponse, mSessionId);
-                    pthread_mutex_lock(&pSession->tLock);
-                    pSession->resp = mResponse;
-                    pSession->respRecvd = true;
-                    pthread_cond_signal(&pSession->tCond);
-                    pthread_mutex_unlock(&pSession->tLock);
-                } else {
-                    err = LOCATION_ERROR_ID_UNKNOWN;
-                    LOC_LOGE("%s]: gnssNiResponseCommand: id %u not an active session",
-                             __func__, mSessionId);
-                }
-            }
-            mAdapter.reportResponse(mClient, err, mSessionId);
-        }
-    };
-
-    sendMsg(new MsgGnssNiResponse(*this, client, id, response));
-
-}
-
-void
-GnssAdapter::gnssNiResponseCommand(GnssNiResponse response, void* rawRequest)
-{
-    LOC_LOGD("%s]: response %u", __func__, response);
-
-    struct MsgGnssNiResponse : public LocMsg {
-        LocApiBase& mApi;
-        const GnssNiResponse mResponse;
-        const void* mPayload;
-        inline MsgGnssNiResponse(LocApiBase& api,
-                                 const GnssNiResponse response,
-                                 const void* rawRequest) :
-            LocMsg(),
-            mApi(api),
-            mResponse(response),
-            mPayload(rawRequest) {}
-        inline virtual ~MsgGnssNiResponse() {
-            // this is a bit weird since mPayload is not
-            // allocated by this class.  But there is no better way.
-            // mPayload actually won't be NULL here.
-            free((void*)mPayload);
-        }
-        inline virtual void proc() const {
-            mApi.informNiResponse(mResponse, mPayload);
-        }
-    };
-
-    sendMsg(new MsgGnssNiResponse(*mLocApi, response, rawRequest));
-
-}
-
-uint32_t
-GnssAdapter::enableCommand(LocationTechnologyType techType)
-{
-    uint32_t sessionId = generateSessionId();
-    LOC_LOGD("%s]: id %u techType %u", __func__, sessionId, techType);
-
-    struct MsgEnableGnss : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        ContextBase& mContext;
-        uint32_t mSessionId;
-        LocationTechnologyType mTechType;
-        inline MsgEnableGnss(GnssAdapter& adapter,
-                             LocApiBase& api,
-                             ContextBase& context,
-                             uint32_t sessionId,
-                             LocationTechnologyType techType) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api),
-            mContext(context),
-            mSessionId(sessionId),
-            mTechType(techType) {}
-        inline virtual void proc() const {
-            LocationError err = LOCATION_ERROR_SUCCESS;
-            uint32_t powerVoteId = mAdapter.getPowerVoteId();
-            if (mTechType != LOCATION_TECHNOLOGY_TYPE_GNSS) {
-                err = LOCATION_ERROR_INVALID_PARAMETER;
-            } else if (powerVoteId > 0) {
-                err = LOCATION_ERROR_ALREADY_STARTED;
-            } else {
-                mContext.modemPowerVote(true);
-                mAdapter.setPowerVoteId(mSessionId);
-                mApi.setGpsLock(GNSS_CONFIG_GPS_LOCK_NONE);
-            }
-            mAdapter.reportResponse(err, mSessionId);
-        }
-    };
-
-    if (mContext != NULL) {
-        sendMsg(new MsgEnableGnss(*this, *mLocApi, *mContext, sessionId, techType));
-    } else {
-        LOC_LOGE("%s]: Context is NULL", __func__);
-    }
-
-    return sessionId;
-}
-
-void
-GnssAdapter::disableCommand(uint32_t id)
-{
-    LOC_LOGD("%s]: id %u", __func__, id);
-
-    struct MsgDisableGnss : public LocMsg {
-        GnssAdapter& mAdapter;
-        LocApiBase& mApi;
-        ContextBase& mContext;
-        uint32_t mSessionId;
-        inline MsgDisableGnss(GnssAdapter& adapter,
-                             LocApiBase& api,
-                             ContextBase& context,
-                             uint32_t sessionId) :
-            LocMsg(),
-            mAdapter(adapter),
-            mApi(api),
-            mContext(context),
-            mSessionId(sessionId) {}
-        inline virtual void proc() const {
-            LocationError err = LOCATION_ERROR_SUCCESS;
-            uint32_t powerVoteId = mAdapter.getPowerVoteId();
-            if (powerVoteId != mSessionId) {
-                err = LOCATION_ERROR_ID_UNKNOWN;
-            } else {
-                mContext.modemPowerVote(false);
-                mAdapter.setPowerVoteId(0);
-                mApi.setGpsLock(mAdapter.convertGpsLock(ContextBase::mGps_conf.GPS_LOCK));
-            }
-            mAdapter.reportResponse(err, mSessionId);
-        }
-    };
-
-    if (mContext != NULL) {
-        sendMsg(new MsgDisableGnss(*this, *mLocApi, *mContext, id));
-    }
-
-}
-
-void
-GnssAdapter::reportPositionEvent(const UlpLocation& ulpLocation,
-                                 const GpsLocationExtended& locationExtended,
-                                 enum loc_sess_status status,
-                                 LocPosTechMask techMask,
-                                 bool fromUlp)
-{
-    LOC_LOGD("%s]: fromUlp %u status %u", __func__, fromUlp, status);
-
-    // if this event is not called from ULP, then try to call into ULP and return if successfull
-    if (!fromUlp) {
-        if (mUlpProxy->reportPosition(ulpLocation, locationExtended,
-                                 status, techMask)) {
-            return;
-        }
-    }
-
-    struct MsgReportPosition : public LocMsg {
-        GnssAdapter& mAdapter;
-        const UlpLocation mUlpLocation;
-        const GpsLocationExtended mLocationExtended;
-        loc_sess_status mStatus;
-        LocPosTechMask mTechMask;
-        inline MsgReportPosition(GnssAdapter& adapter,
-                                 const UlpLocation& ulpLocation,
-                                 const GpsLocationExtended& locationExtended,
-                                 loc_sess_status status,
-                                 LocPosTechMask techMask) :
-            LocMsg(),
-            mAdapter(adapter),
-            mUlpLocation(ulpLocation),
-            mLocationExtended(locationExtended),
-            mStatus(status),
-            mTechMask(techMask) {}
-        inline virtual void proc() const {
-            // extract bug report info - this returns true if consumed by systemstatus
-            SystemStatus* s = LocDualContext::getSystemStatus();
-            if ((nullptr != s) && (LOC_SESS_SUCCESS == mStatus)){
-                s->eventPosition(mUlpLocation, mLocationExtended);
-            }
-            mAdapter.reportPosition(mUlpLocation, mLocationExtended, mStatus, mTechMask);
-        }
-    };
-
-    sendMsg(new MsgReportPosition(*this, ulpLocation, locationExtended, status, techMask));
-}
-
-void
-GnssAdapter::reportPosition(const UlpLocation& ulpLocation,
-                            const GpsLocationExtended& locationExtended,
-                            enum loc_sess_status status,
-                            LocPosTechMask techMask)
-{
-    bool reported = false;
-    if (LOC_SESS_FAILURE == status) {
-        Location invalidLocation = {};
-        invalidLocation.size = sizeof(Location);
-        for (auto it=mClientData.begin(); it != mClientData.end(); ++it) {
-            if (nullptr != it->second.trackingCb) {
-                it->second.trackingCb(invalidLocation);
-            }
-        }
-        reported = true;
-    }
-    // what's in the else if is... (line by line)
-    // 1. this is a final fix; and
-    //   1.1 it is a Satellite fix; or
-    //   1.2 it is a sensor fix
-    // 2. (must be intermediate fix... implicit)
-    //   2.1 we accepte intermediate; and
-    //   2.2 it is NOT the case that
-    //   2.2.1 there is inaccuracy; and
-    //   2.2.2 we care about inaccuracy; and
-    //   2.2.3 the inaccuracy exceeds our tolerance
-    else if ((LOC_SESS_SUCCESS == status &&
-              ((LOC_POS_TECH_MASK_SATELLITE |
-                LOC_POS_TECH_MASK_SENSORS   |
-                LOC_POS_TECH_MASK_HYBRID) &
-               techMask)) ||
-             (LOC_SESS_INTERMEDIATE == ContextBase::mGps_conf.INTERMEDIATE_POS &&
-              !((ulpLocation.gpsLocation.flags &
-                 LOC_GPS_LOCATION_HAS_ACCURACY) &&
-                (ContextBase::mGps_conf.ACCURACY_THRES != 0) &&
-                (ulpLocation.gpsLocation.accuracy >
-                 ContextBase::mGps_conf.ACCURACY_THRES)))) {
-        if (locationExtended.flags & GPS_LOCATION_EXTENDED_HAS_GNSS_SV_USED_DATA) {
-            mGnssSvIdUsedInPosAvail = true;
-            mGnssSvIdUsedInPosition = locationExtended.gnss_sv_used_ids;
-        }
-        for (auto it=mClientData.begin(); it != mClientData.end(); ++it) {
-            if (nullptr != it->second.trackingCb) {
-                Location location = {};
-                convertLocation(location, ulpLocation.gpsLocation, locationExtended, techMask);
-                it->second.trackingCb(location);
-            }
-            if (nullptr != it->second.gnssLocationInfoCb) {
-                GnssLocationInfoNotification locationInfo = {};
-                convertLocationInfo(locationInfo, locationExtended);
-                it->second.gnssLocationInfoCb(locationInfo);
-            }
-        }
-        reported = true;
-    }
-
-    if (NMEA_PROVIDER_AP == ContextBase::mGps_conf.NMEA_PROVIDER && !mTrackingSessions.empty()) {
-        uint8_t generate_nmea = (reported && status != LOC_SESS_FAILURE);
-        std::vector<std::string> nmeaArraystr;
-        loc_nmea_generate_pos(ulpLocation, locationExtended, generate_nmea, nmeaArraystr);
-        for (auto sentence : nmeaArraystr) {
-            reportNmea(sentence.c_str(), sentence.length());
-        }
-    }
-
-    // Free the allocated memory for rawData
-    UlpLocation* gp = (UlpLocation*)&(ulpLocation);
-    if (gp != NULL && gp->rawData != NULL)
-    {
-        delete (char*)gp->rawData;
-        gp->rawData = NULL;
-        gp->rawDataSize = 0;
-    }
-}
-
-void
-GnssAdapter::reportSvEvent(const GnssSvNotification& svNotify,
-                           bool fromUlp)
-{
-    LOC_LOGD("%s]: fromUlp %u", __func__, fromUlp);
-
-    // if this event is not called from ULP, then try to call into ULP and return if successfull
-    if (!fromUlp) {
-        if (mUlpProxy->reportSv(svNotify)) {
-            return;
-        }
-    }
-
-    struct MsgReportSv : public LocMsg {
-        GnssAdapter& mAdapter;
-        const GnssSvNotification mSvNotify;
-        inline MsgReportSv(GnssAdapter& adapter,
-                           const GnssSvNotification& svNotify) :
-            LocMsg(),
-            mAdapter(adapter),
-            mSvNotify(svNotify) {}
-        inline virtual void proc() const {
-            mAdapter.reportSv((GnssSvNotification&)mSvNotify);
-        }
-    };
-
-    sendMsg(new MsgReportSv(*this, svNotify));
-}
-
-void
-GnssAdapter::reportSv(GnssSvNotification& svNotify)
-{
-    if (mGnssSvIdUsedInPosAvail) {
-        int numSv = svNotify.count;
-        int16_t gnssSvId = 0;
-        uint64_t svUsedIdMask = 0;
-        for (int i=0; i < numSv; i++) {
-            gnssSvId = svNotify.gnssSvs[i].svId;
-            switch (svNotify.gnssSvs[i].type) {
-                case GNSS_SV_TYPE_GPS:
-                    svUsedIdMask = mGnssSvIdUsedInPosition.gps_sv_used_ids_mask;
-                    break;
-                case GNSS_SV_TYPE_GLONASS:
-                    svUsedIdMask = mGnssSvIdUsedInPosition.glo_sv_used_ids_mask;
-                    break;
-                case GNSS_SV_TYPE_BEIDOU:
-                    svUsedIdMask = mGnssSvIdUsedInPosition.bds_sv_used_ids_mask;
-                    break;
-                case GNSS_SV_TYPE_GALILEO:
-                    svUsedIdMask = mGnssSvIdUsedInPosition.gal_sv_used_ids_mask;
-                    break;
-                case GNSS_SV_TYPE_QZSS:
-                    svUsedIdMask = mGnssSvIdUsedInPosition.qzss_sv_used_ids_mask;
-                    break;
-                default:
-                    svUsedIdMask = 0;
-                    break;
-            }
-
-            // If SV ID was used in previous position fix, then set USED_IN_FIX
-            // flag, else clear the USED_IN_FIX flag.
-            if (svUsedIdMask & (1 << (gnssSvId - 1))) {
-                svNotify.gnssSvs[i].gnssSvOptionsMask |= GNSS_SV_OPTIONS_USED_IN_FIX_BIT;
-            }
-        }
-    }
-
-    for (auto it=mClientData.begin(); it != mClientData.end(); ++it) {
-        if (nullptr != it->second.gnssSvCb) {
-            it->second.gnssSvCb(svNotify);
-        }
-    }
-
-    if (NMEA_PROVIDER_AP == ContextBase::mGps_conf.NMEA_PROVIDER && !mTrackingSessions.empty()) {
-        std::vector<std::string> nmeaArraystr;
-        loc_nmea_generate_sv(svNotify, nmeaArraystr);
-        for (auto sentence : nmeaArraystr) {
-            reportNmea(sentence.c_str(), sentence.length());
-        }
-    }
-
-    mGnssSvIdUsedInPosAvail = false;
-}
-
-void
-GnssAdapter::reportNmeaEvent(const char* nmea, size_t length, bool fromUlp)
-{
-    // if this event is not called from ULP, then try to call into ULP and return if successfull
-    if (!fromUlp && !loc_nmea_is_debug(nmea, length)) {
-        if (mUlpProxy->reportNmea(nmea, length)) {
-            return;
-        }
-    }
-
-    struct MsgReportNmea : public LocMsg {
-        GnssAdapter& mAdapter;
-        const char* mNmea;
-        size_t mLength;
-        inline MsgReportNmea(GnssAdapter& adapter,
-                             const char* nmea,
-                             size_t length) :
-            LocMsg(),
-            mAdapter(adapter),
-            mNmea(new char[length+1]),
-            mLength(length) {
-                strlcpy((char*)mNmea, nmea, length+1);
-            }
-        inline virtual ~MsgReportNmea()
-        {
-            delete[] mNmea;
-        }
-        inline virtual void proc() const {
-            // extract bug report info - this returns true if consumed by systemstatus
-            bool ret = false;
-            SystemStatus* s = LocDualContext::getSystemStatus();
-            if (nullptr != s) {
-                ret = s->setNmeaString(mNmea, mLength);
-            }
-            if (false == ret) {
-                // forward NMEA message to upper layer
-                mAdapter.reportNmea(mNmea, mLength);
-            }
-        }
-    };
-
-    sendMsg(new MsgReportNmea(*this, nmea, length));
-}
-
-void
-GnssAdapter::reportNmea(const char* nmea, size_t length)
-{
-    GnssNmeaNotification nmeaNotification = {};
-    nmeaNotification.size = sizeof(GnssNmeaNotification);
-
-    struct timeval tv;
-    gettimeofday(&tv, (struct timezone *) NULL);
-    int64_t now = tv.tv_sec * 1000LL + tv.tv_usec / 1000;
-    nmeaNotification.timestamp = now;
-    nmeaNotification.nmea = nmea;
-    nmeaNotification.length = length;
-
-    for (auto it=mClientData.begin(); it != mClientData.end(); ++it) {
-        if (nullptr != it->second.gnssNmeaCb) {
-            it->second.gnssNmeaCb(nmeaNotification);
-        }
-    }
-}
-
-bool
-GnssAdapter::requestNiNotifyEvent(const GnssNiNotification &notify, const void* data)
-{
-    LOC_LOGI("%s]: notif_type: %d, timeout: %d, default_resp: %d"
-             "requestor_id: %s (encoding: %d) text: %s text (encoding: %d) extras: %s",
-             __func__, notify.type, notify.timeout, notify.timeoutResponse,
-             notify.requestor, notify.requestorEncoding,
-             notify.message, notify.messageEncoding, notify.extras);
-
-    struct MsgReportNiNotify : public LocMsg {
-        GnssAdapter& mAdapter;
-        const GnssNiNotification mNotify;
-        const void* mData;
-        inline MsgReportNiNotify(GnssAdapter& adapter,
-                                 const GnssNiNotification& notify,
-                                 const void* data) :
-            LocMsg(),
-            mAdapter(adapter),
-            mNotify(notify),
-            mData(data) {}
-        inline virtual void proc() const {
-            mAdapter.requestNiNotify(mNotify, mData);
-        }
-    };
-
-    sendMsg(new MsgReportNiNotify(*this, notify, data));
-
-    return true;
-}
-
-static void* niThreadProc(void *args)
-{
-    NiSession* pSession = (NiSession*)args;
-    int rc = 0;          /* return code from pthread calls */
-
-    struct timeval present_time;
-    struct timespec expire_time;
-
-    pthread_mutex_lock(&pSession->tLock);
-    /* Calculate absolute expire time */
-    gettimeofday(&present_time, NULL);
-    expire_time.tv_sec  = present_time.tv_sec + pSession->respTimeLeft;
-    expire_time.tv_nsec = present_time.tv_usec * 1000;
-    LOC_LOGD("%s]: time out set for abs time %ld with delay %d sec",
-             __func__, (long)expire_time.tv_sec, pSession->respTimeLeft);
-
-    while (!pSession->respRecvd) {
-        rc = pthread_cond_timedwait(&pSession->tCond,
-                                    &pSession->tLock,
-                                    &expire_time);
-        if (rc == ETIMEDOUT) {
-            pSession->resp = GNSS_NI_RESPONSE_NO_RESPONSE;
-            LOC_LOGD("%s]: time out after valting for specified time. Ret Val %d",
-                     __func__, rc);
-            break;
-        }
-    }
-    LOC_LOGD("%s]: Java layer has sent us a user response and return value from "
-             "pthread_cond_timedwait = %d pSession->resp is %u", __func__, rc, pSession->resp);
-    pSession->respRecvd = false; /* Reset the user response flag for the next session*/
-
-    // adding this check to support modem restart, in which case, we need the thread
-    // to exit without calling sending data. We made sure that rawRequest is NULL in
-    // loc_eng_ni_reset_on_engine_restart()
-    GnssAdapter* adapter = pSession->adapter;
-    GnssNiResponse resp;
-    void* rawRequest = NULL;
-    bool sendResponse = false;
-
-    if (NULL != pSession->rawRequest) {
-        if (pSession->resp != GNSS_NI_RESPONSE_IGNORE) {
-            resp = pSession->resp;
-            rawRequest = pSession->rawRequest;
-            sendResponse = true;
-        } else {
-            free(pSession->rawRequest);
-        }
-        pSession->rawRequest = NULL;
-    }
-    pthread_mutex_unlock(&pSession->tLock);
-
-    pSession->respTimeLeft = 0;
-    pSession->reqID = 0;
-
-    if (sendResponse) {
-        adapter->gnssNiResponseCommand(resp, rawRequest);
-    }
-
-    return NULL;
-}
-
-bool
-GnssAdapter::requestNiNotify(const GnssNiNotification& notify, const void* data)
-{
-    NiSession* pSession = NULL;
-    gnssNiCallback gnssNiCb = nullptr;
-
-    for (auto it=mClientData.begin(); it != mClientData.end(); ++it) {
-        if (nullptr != it->second.gnssNiCb) {
-            gnssNiCb = it->second.gnssNiCb;
-            break;
-        }
-    }
-    if (nullptr == gnssNiCb) {
-        EXIT_LOG(%s, "no clients with gnssNiCb.");
-        return false;
-    }
-
-    if (notify.type == GNSS_NI_TYPE_EMERGENCY_SUPL) {
-        if (NULL != mNiData.sessionEs.rawRequest) {
-            LOC_LOGI("%s]: supl es NI in progress, new supl es NI ignored, type: %d",
-                     __func__, notify.type);
-            if (NULL != data) {
-                free((void*)data);
-            }
-        } else {
-            pSession = &mNiData.sessionEs;
-        }
-    } else {
-        if (NULL != mNiData.session.rawRequest ||
-            NULL != mNiData.sessionEs.rawRequest) {
-            LOC_LOGI("%s]: supl NI in progress, new supl NI ignored, type: %d",
-                     __func__, notify.type);
-            if (NULL != data) {
-                free((void*)data);
-            }
-        } else {
-            pSession = &mNiData.session;
-        }
-    }
-
-    if (pSession) {
-        /* Save request */
-        pSession->rawRequest = (void*)data;
-        pSession->reqID = ++mNiData.reqIDCounter;
-        pSession->adapter = this;
-
-        int sessionId = pSession->reqID;
-
-        /* For robustness, spawn a thread at this point to timeout to clear up the notification
-         * status, even though the OEM layer in java does not do so.
-         **/
-        pSession->respTimeLeft =
-             5 + (notify.timeout != 0 ? notify.timeout : LOC_NI_NO_RESPONSE_TIME);
-
-        int rc = 0;
-        rc = pthread_create(&pSession->thread, NULL, niThreadProc, pSession);
-        if (rc) {
-            LOC_LOGE("%s]: Loc NI thread is not created.", __func__);
-        }
-        rc = pthread_detach(pSession->thread);
-        if (rc) {
-            LOC_LOGE("%s]: Loc NI thread is not detached.", __func__);
-        }
-
-        if (nullptr != gnssNiCb) {
-            gnssNiCb(sessionId, notify);
-        }
-    }
-
-    return true;
-}
-
-void
-GnssAdapter::reportGnssMeasurementDataEvent(const GnssMeasurementsNotification& measurementsNotify)
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    struct MsgReportGnssMeasurementData : public LocMsg {
-        GnssAdapter& mAdapter;
-        const GnssMeasurementsNotification mMeasurementsNotify;
-        inline MsgReportGnssMeasurementData(GnssAdapter& adapter,
-                                           const GnssMeasurementsNotification& measurementsNotify) :
-            LocMsg(),
-            mAdapter(adapter),
-            mMeasurementsNotify(measurementsNotify) {}
-        inline virtual void proc() const {
-            mAdapter.reportGnssMeasurementData(mMeasurementsNotify);
-        }
-    };
-
-    sendMsg(new MsgReportGnssMeasurementData(*this, measurementsNotify));
-}
-
-void
-GnssAdapter::reportGnssMeasurementData(const GnssMeasurementsNotification& measurementsNotify)
-{
-    for (auto it=mClientData.begin(); it != mClientData.end(); ++it) {
-        if (nullptr != it->second.gnssMeasurementsCb) {
-            it->second.gnssMeasurementsCb(measurementsNotify);
-        }
-    }
-}
-
-void
-GnssAdapter::reportSvMeasurementEvent(GnssSvMeasurementSet &svMeasurementSet)
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    // We send SvMeasurementSet to AmtProxy/ULPProxy to be forwarded as necessary.
-    mUlpProxy->reportSvMeasurement(svMeasurementSet);
-}
-
-void
-GnssAdapter::reportSvPolynomialEvent(GnssSvPolynomial &svPolynomial)
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    // We send SvMeasurementSet to AmtProxy/ULPProxy to be forwarded as necessary.
-    mUlpProxy->reportSvPolynomial(svPolynomial);
-}
-
-/* INIT LOC AGPS MANAGER */
-void GnssAdapter::initAgpsCommand(void* statusV4Cb){
-
-    LOC_LOGI("GnssAdapter::initAgpsCommand");
-
-    /* Set ATL open/close callbacks */
-    AgpsAtlOpenStatusCb atlOpenStatusCb =
-            [this](int handle, int isSuccess, char* apn,
-                    AGpsBearerType bearerType, AGpsExtType agpsType) {
-
-                mLocApi->atlOpenStatus(
-                        handle, isSuccess, apn, bearerType, agpsType);
-            };
-    AgpsAtlCloseStatusCb atlCloseStatusCb =
-            [this](int handle, int isSuccess) {
-
-                mLocApi->atlCloseStatus(handle, isSuccess);
-            };
-
-    /* Register DS Client APIs */
-    AgpsDSClientInitFn dsClientInitFn =
-            [this](bool isDueToSSR) {
-
-                return mLocApi->initDataServiceClient(isDueToSSR);
-            };
-
-    AgpsDSClientOpenAndStartDataCallFn dsClientOpenAndStartDataCallFn =
-            [this] {
-
-                return mLocApi->openAndStartDataCall();
-            };
-
-    AgpsDSClientStopDataCallFn dsClientStopDataCallFn =
-            [this] {
-
-                mLocApi->stopDataCall();
-            };
-
-    AgpsDSClientCloseDataCallFn dsClientCloseDataCallFn =
-            [this] {
-
-                mLocApi->closeDataCall();
-            };
-
-    AgpsDSClientReleaseFn dsClientReleaseFn =
-            [this] {
-
-                mLocApi->releaseDataServiceClient();
-            };
-
-    /* Send Msg function */
-    SendMsgToAdapterMsgQueueFn sendMsgFn =
-            [this](LocMsg* msg) {
-
-                sendMsg(msg);
-            };
-
-    /* Message to initialize AGPS module */
-    struct AgpsMsgInit: public LocMsg {
-
-        AgpsManager* mAgpsManager;
-
-        AgpsFrameworkInterface::AgnssStatusIpV4Cb mFrameworkStatusV4Cb;
-
-        AgpsAtlOpenStatusCb mAtlOpenStatusCb;
-        AgpsAtlCloseStatusCb mAtlCloseStatusCb;
-
-        AgpsDSClientInitFn mDSClientInitFn;
-        AgpsDSClientOpenAndStartDataCallFn mDSClientOpenAndStartDataCallFn;
-        AgpsDSClientStopDataCallFn mDSClientStopDataCallFn;
-        AgpsDSClientCloseDataCallFn mDSClientCloseDataCallFn;
-        AgpsDSClientReleaseFn mDSClientReleaseFn;
-
-        SendMsgToAdapterMsgQueueFn mSendMsgFn;
-        GnssAdapter& mAdapter;
-
-        inline AgpsMsgInit(AgpsManager* agpsManager,
-                AgpsFrameworkInterface::AgnssStatusIpV4Cb frameworkStatusV4Cb,
-                AgpsAtlOpenStatusCb atlOpenStatusCb,
-                AgpsAtlCloseStatusCb atlCloseStatusCb,
-                AgpsDSClientInitFn dsClientInitFn,
-                AgpsDSClientOpenAndStartDataCallFn dsClientOpenAndStartDataCallFn,
-                AgpsDSClientStopDataCallFn dsClientStopDataCallFn,
-                AgpsDSClientCloseDataCallFn dsClientCloseDataCallFn,
-                AgpsDSClientReleaseFn dsClientReleaseFn,
-                SendMsgToAdapterMsgQueueFn sendMsgFn,
-                GnssAdapter& adapter) :
-                LocMsg(), mAgpsManager(agpsManager), mFrameworkStatusV4Cb(
-                        frameworkStatusV4Cb), mAtlOpenStatusCb(atlOpenStatusCb), mAtlCloseStatusCb(
-                        atlCloseStatusCb), mDSClientInitFn(dsClientInitFn), mDSClientOpenAndStartDataCallFn(
-                        dsClientOpenAndStartDataCallFn), mDSClientStopDataCallFn(
-                        dsClientStopDataCallFn), mDSClientCloseDataCallFn(
-                        dsClientCloseDataCallFn), mDSClientReleaseFn(
-                        dsClientReleaseFn), mSendMsgFn(sendMsgFn),
-                        mAdapter(adapter) {
-
-            LOC_LOGV("AgpsMsgInit");
-        }
-
-        inline virtual void proc() const {
-
-            LOC_LOGV("AgpsMsgInit::proc()");
-
-            mAgpsManager->registerCallbacks(mFrameworkStatusV4Cb, mAtlOpenStatusCb,
-                    mAtlCloseStatusCb, mDSClientInitFn,
-                    mDSClientOpenAndStartDataCallFn, mDSClientStopDataCallFn,
-                    mDSClientCloseDataCallFn, mDSClientReleaseFn, mSendMsgFn);
-
-            mAgpsManager->createAgpsStateMachines();
-
-            /* Register for AGPS event mask */
-            mAdapter.updateEvtMask(LOC_API_ADAPTER_BIT_LOCATION_SERVER_REQUEST,
-                                   LOC_REGISTRATION_MASK_ENABLED);
-        }
-    };
-
-    /* Send message to initialize AGPS Manager */
-    sendMsg(new AgpsMsgInit(
-                &mAgpsManager,
-                (AgpsFrameworkInterface::AgnssStatusIpV4Cb)statusV4Cb,
-                atlOpenStatusCb, atlCloseStatusCb,
-                dsClientInitFn, dsClientOpenAndStartDataCallFn,
-                dsClientStopDataCallFn, dsClientCloseDataCallFn,
-                dsClientReleaseFn,
-                sendMsgFn,
-                *this));
-}
-
-/* GnssAdapter::requestATL
- * Method triggered in QMI thread as part of handling below message:
- * eQMI_LOC_SERVER_REQUEST_OPEN_V02
- * Triggers the AGPS state machine to setup AGPS call for below WWAN types:
- * eQMI_LOC_WWAN_TYPE_INTERNET_V02
- * eQMI_LOC_WWAN_TYPE_AGNSS_V02 */
-bool GnssAdapter::requestATL(int connHandle, LocAGpsType agpsType){
-
-    LOC_LOGI("GnssAdapter::requestATL");
-
-    sendMsg( new AgpsMsgRequestATL(
-             &mAgpsManager, connHandle, (AGpsExtType)agpsType));
-
-    return true;
-}
-
-/* GnssAdapter::requestSuplES
- * Method triggered in QMI thread as part of handling below message:
- * eQMI_LOC_SERVER_REQUEST_OPEN_V02
- * Triggers the AGPS state machine to setup AGPS call for below WWAN types:
- * eQMI_LOC_WWAN_TYPE_AGNSS_EMERGENCY_V02 */
-bool GnssAdapter::requestSuplES(int connHandle){
-
-    LOC_LOGI("GnssAdapter::requestSuplES");
-
-    sendMsg( new AgpsMsgRequestATL(
-             &mAgpsManager, connHandle, LOC_AGPS_TYPE_SUPL_ES));
-
-    return true;
-}
-
-/* GnssAdapter::releaseATL
- * Method triggered in QMI thread as part of handling below message:
- * eQMI_LOC_SERVER_REQUEST_CLOSE_V02
- * Triggers teardown of an existing AGPS call */
-bool GnssAdapter::releaseATL(int connHandle){
-
-    LOC_LOGI("GnssAdapter::releaseATL");
-
-    /* Release SUPL/INTERNET/SUPL_ES ATL */
-    struct AgpsMsgReleaseATL: public LocMsg {
-
-        AgpsManager* mAgpsManager;
-        int mConnHandle;
-
-        inline AgpsMsgReleaseATL(AgpsManager* agpsManager, int connHandle) :
-                LocMsg(), mAgpsManager(agpsManager), mConnHandle(connHandle) {
-
-            LOC_LOGV("AgpsMsgReleaseATL");
-        }
-
-        inline virtual void proc() const {
-
-            LOC_LOGV("AgpsMsgReleaseATL::proc()");
-            mAgpsManager->releaseATL(mConnHandle);
-        }
-    };
-
-    sendMsg( new AgpsMsgReleaseATL(&mAgpsManager, connHandle));
-
-    return true;
-}
-
-/* GnssAdapter::reportDataCallOpened
- * DS Client data call opened successfully.
- * Send message to AGPS Manager to handle. */
-bool GnssAdapter::reportDataCallOpened(){
-
-    LOC_LOGI("GnssAdapter::reportDataCallOpened");
-
-    struct AgpsMsgSuplEsOpened: public LocMsg {
-
-        AgpsManager* mAgpsManager;
-
-        inline AgpsMsgSuplEsOpened(AgpsManager* agpsManager) :
-                LocMsg(), mAgpsManager(agpsManager) {
-
-            LOC_LOGV("AgpsMsgSuplEsOpened");
-        }
-
-        inline virtual void proc() const {
-
-            LOC_LOGV("AgpsMsgSuplEsOpened::proc()");
-            mAgpsManager->reportDataCallOpened();
-        }
-    };
-
-    sendMsg( new AgpsMsgSuplEsOpened(&mAgpsManager));
-
-    return true;
-}
-
-/* GnssAdapter::reportDataCallClosed
- * DS Client data call closed.
- * Send message to AGPS Manager to handle. */
-bool GnssAdapter::reportDataCallClosed(){
-
-    LOC_LOGI("GnssAdapter::reportDataCallClosed");
-
-    struct AgpsMsgSuplEsClosed: public LocMsg {
-
-        AgpsManager* mAgpsManager;
-
-        inline AgpsMsgSuplEsClosed(AgpsManager* agpsManager) :
-                LocMsg(), mAgpsManager(agpsManager) {
-
-            LOC_LOGV("AgpsMsgSuplEsClosed");
-        }
-
-        inline virtual void proc() const {
-
-            LOC_LOGV("AgpsMsgSuplEsClosed::proc()");
-            mAgpsManager->reportDataCallClosed();
-        }
-    };
-
-    sendMsg( new AgpsMsgSuplEsClosed(&mAgpsManager));
-
-    return true;
-}
-
-void GnssAdapter::dataConnOpenCommand(
-        AGpsExtType agpsType,
-        const char* apnName, int apnLen, LocApnIpType ipType){
-
-    LOC_LOGI("GnssAdapter::frameworkDataConnOpen");
-
-    struct AgpsMsgAtlOpenSuccess: public LocMsg {
-
-        AgpsManager* mAgpsManager;
-        AGpsExtType mAgpsType;
-        char* mApnName;
-        int mApnLen;
-        LocApnIpType mIpType;
-
-        inline AgpsMsgAtlOpenSuccess(AgpsManager* agpsManager, AGpsExtType agpsType,
-                const char* apnName, int apnLen, LocApnIpType ipType) :
-                LocMsg(), mAgpsManager(agpsManager), mAgpsType(agpsType), mApnName(
-                        new char[apnLen + 1]), mApnLen(apnLen), mIpType(ipType) {
-
-            LOC_LOGV("AgpsMsgAtlOpenSuccess");
-            memcpy(mApnName, apnName, apnLen);
-            mApnName[apnLen] = 0;
-        }
-
-        inline ~AgpsMsgAtlOpenSuccess() {
-            delete[] mApnName;
-        }
-
-        inline virtual void proc() const {
-
-            LOC_LOGV("AgpsMsgAtlOpenSuccess::proc()");
-            mAgpsManager->reportAtlOpenSuccess(mAgpsType, mApnName, mApnLen,
-                    mIpType);
-        }
-    };
-
-    sendMsg( new AgpsMsgAtlOpenSuccess(
-            &mAgpsManager, (AGpsExtType)agpsType, apnName, apnLen, ipType));
-}
-
-void GnssAdapter::dataConnClosedCommand(AGpsExtType agpsType){
-
-    LOC_LOGI("GnssAdapter::frameworkDataConnClosed");
-
-    struct AgpsMsgAtlClosed: public LocMsg {
-
-        AgpsManager* mAgpsManager;
-        AGpsExtType mAgpsType;
-
-        inline AgpsMsgAtlClosed(AgpsManager* agpsManager, AGpsExtType agpsType) :
-                LocMsg(), mAgpsManager(agpsManager), mAgpsType(agpsType) {
-
-            LOC_LOGV("AgpsMsgAtlClosed");
-        }
-
-        inline virtual void proc() const {
-
-            LOC_LOGV("AgpsMsgAtlClosed::proc()");
-            mAgpsManager->reportAtlClosed(mAgpsType);
-        }
-    };
-
-    sendMsg( new AgpsMsgAtlClosed(&mAgpsManager, (AGpsExtType)agpsType));
-}
-
-void GnssAdapter::dataConnFailedCommand(AGpsExtType agpsType){
-
-    LOC_LOGI("GnssAdapter::frameworkDataConnFailed");
-
-    struct AgpsMsgAtlOpenFailed: public LocMsg {
-
-        AgpsManager* mAgpsManager;
-        AGpsExtType mAgpsType;
-
-        inline AgpsMsgAtlOpenFailed(AgpsManager* agpsManager, AGpsExtType agpsType) :
-                LocMsg(), mAgpsManager(agpsManager), mAgpsType(agpsType) {
-
-            LOC_LOGV("AgpsMsgAtlOpenFailed");
-        }
-
-        inline virtual void proc() const {
-
-            LOC_LOGV("AgpsMsgAtlOpenFailed::proc()");
-            mAgpsManager->reportAtlOpenFailed(mAgpsType);
-        }
-    };
-
-    sendMsg( new AgpsMsgAtlOpenFailed(&mAgpsManager, (AGpsExtType)agpsType));
-}
-
-void GnssAdapter::convertSatelliteInfo(std::vector<GnssDebugSatelliteInfo>& out,
-                                       const GnssSvType& in_constellation,
-                                       const SystemStatusReports& in)
-{
-    uint64_t sv_mask = 0ULL;
-    uint32_t svid_min = 0;
-    uint32_t svid_num = 0;
-    uint32_t svid_idx = 0;
-
-    uint64_t eph_health_good_mask = 0ULL;
-    uint64_t eph_health_bad_mask = 0ULL;
-    uint64_t server_perdiction_available_mask = 0ULL;
-    float server_perdiction_age = 0.0f;
-
-    // set constellationi based parameters
-    switch (in_constellation) {
-        case GNSS_SV_TYPE_GPS:
-            svid_min = GNSS_BUGREPORT_GPS_MIN;
-            svid_num = GPS_NUM;
-            svid_idx = 0;
-            if (!in.mSvHealth.empty()) {
-                eph_health_good_mask = in.mSvHealth.back().mGpsGoodMask;
-                eph_health_bad_mask  = in.mSvHealth.back().mGpsBadMask;
-            }
-            if (!in.mXtra.empty()) {
-                server_perdiction_available_mask = in.mXtra.back().mGpsXtraValid;
-                server_perdiction_age = (float)(in.mXtra.back().mGpsXtraAge);
-            }
-            break;
-        case GNSS_SV_TYPE_GLONASS:
-            svid_min = GNSS_BUGREPORT_GLO_MIN;
-            svid_num = GLO_NUM;
-            svid_idx = GPS_NUM;
-            if (!in.mSvHealth.empty()) {
-                eph_health_good_mask = in.mSvHealth.back().mGloGoodMask;
-                eph_health_bad_mask  = in.mSvHealth.back().mGloBadMask;
-            }
-            if (!in.mXtra.empty()) {
-                server_perdiction_available_mask = in.mXtra.back().mGloXtraValid;
-                server_perdiction_age = (float)(in.mXtra.back().mGloXtraAge);
-            }
-            break;
-        case GNSS_SV_TYPE_QZSS:
-            svid_min = GNSS_BUGREPORT_QZSS_MIN;
-            svid_num = QZSS_NUM;
-            svid_idx = GPS_NUM+GLO_NUM;
-            if (!in.mSvHealth.empty()) {
-                eph_health_good_mask = in.mSvHealth.back().mQzssGoodMask;
-                eph_health_bad_mask  = in.mSvHealth.back().mQzssBadMask;
-            }
-            if (!in.mXtra.empty()) {
-                server_perdiction_available_mask = in.mXtra.back().mQzssXtraValid;
-                server_perdiction_age = (float)(in.mXtra.back().mQzssXtraAge);
-            }
-            break;
-        case GNSS_SV_TYPE_BEIDOU:
-            svid_min = GNSS_BUGREPORT_BDS_MIN;
-            svid_num = BDS_NUM;
-            svid_idx = GPS_NUM+GLO_NUM+QZSS_NUM;
-            if (!in.mSvHealth.empty()) {
-                eph_health_good_mask = in.mSvHealth.back().mBdsGoodMask;
-                eph_health_bad_mask  = in.mSvHealth.back().mBdsBadMask;
-            }
-            if (!in.mXtra.empty()) {
-                server_perdiction_available_mask = in.mXtra.back().mBdsXtraValid;
-                server_perdiction_age = (float)(in.mXtra.back().mBdsXtraAge);
-            }
-            break;
-        case GNSS_SV_TYPE_GALILEO:
-            svid_min = GNSS_BUGREPORT_GAL_MIN;
-            svid_num = GAL_NUM;
-            svid_idx = GPS_NUM+GLO_NUM+QZSS_NUM+BDS_NUM;
-            if (!in.mSvHealth.empty()) {
-                eph_health_good_mask = in.mSvHealth.back().mGalGoodMask;
-                eph_health_bad_mask  = in.mSvHealth.back().mGalBadMask;
-            }
-            if (!in.mXtra.empty()) {
-                server_perdiction_available_mask = in.mXtra.back().mGalXtraValid;
-                server_perdiction_age = (float)(in.mXtra.back().mGalXtraAge);
-            }
-            break;
-        default:
-            return;
-    }
-
-    // extract each sv info from systemstatus report
-    for(uint32_t i=0; i<svid_num; i++) {
-
-        GnssDebugSatelliteInfo s = {};
-        s.size = sizeof(s);
-        s.svid = i + svid_min;
-        s.constellation = in_constellation;
-
-        if (!in.mNavData.empty()) {
-            s.mEphemerisType   = in.mNavData.back().mNav[svid_idx+i].mType;
-            s.mEphemerisSource = in.mNavData.back().mNav[svid_idx+i].mSource;
-        }
-        else {
-            s.mEphemerisType   = GNSS_EPH_TYPE_UNKNOWN;
-            s.mEphemerisSource = GNSS_EPH_SOURCE_UNKNOWN;
-        }
-
-        sv_mask = 0x1ULL << i;
-        if (eph_health_good_mask & sv_mask) {
-            s.mEphemerisHealth = GNSS_EPH_HEALTH_GOOD;
-        }
-        else if (eph_health_bad_mask & sv_mask) {
-            s.mEphemerisHealth = GNSS_EPH_HEALTH_BAD;
-        }
-        else {
-            s.mEphemerisHealth = GNSS_EPH_HEALTH_UNKNOWN;
-        }
-
-        if (!in.mNavData.empty()) {
-            s.ephemerisAgeSeconds =
-                (float)(in.mNavData.back().mNav[svid_idx+i].mAgeSec);
-        }
-        else {
-            s.ephemerisAgeSeconds = 0.0f;
-        }
-
-        if (server_perdiction_available_mask & sv_mask) {
-            s.serverPredictionIsAvailable = true;
-        }
-        else {
-            s.serverPredictionIsAvailable = false;
-        }
-
-        s.serverPredictionAgeSeconds = server_perdiction_age;
-        out.push_back(s);
-    }
-
-    return;
-}
-
-bool GnssAdapter::getDebugReport(GnssDebugReport& r)
-{
-    LOC_LOGD("%s]: ", __func__);
-
-    SystemStatus* systemstatus = LocDualContext::getSystemStatus();
-    if (nullptr == systemstatus) {
-        return false;
-    }
-
-    SystemStatusReports reports = {};
-    systemstatus->getReport(reports, true);
-
-    r.size = sizeof(r);
-
-    // location block
-    r.mLocation.size = sizeof(r.mLocation);
-    if(!reports.mLocation.empty() && reports.mLocation.back().mValid) {
-        r.mLocation.mValid = true;
-        r.mLocation.mLocation.latitude =
-            reports.mLocation.back().mLocation.gpsLocation.latitude;
-        r.mLocation.mLocation.longitude =
-            reports.mLocation.back().mLocation.gpsLocation.longitude;
-        r.mLocation.mLocation.altitude =
-            reports.mLocation.back().mLocation.gpsLocation.altitude;
-        r.mLocation.mLocation.speed =
-            (double)(reports.mLocation.back().mLocation.gpsLocation.speed);
-        r.mLocation.mLocation.bearing =
-            (double)(reports.mLocation.back().mLocation.gpsLocation.bearing);
-        r.mLocation.mLocation.accuracy =
-            (double)(reports.mLocation.back().mLocation.gpsLocation.accuracy);
-
-        r.mLocation.verticalAccuracyMeters =
-            reports.mLocation.back().mLocationEx.vert_unc;
-        r.mLocation.speedAccuracyMetersPerSecond =
-            reports.mLocation.back().mLocationEx.speed_unc;
-        r.mLocation.bearingAccuracyDegrees =
-            reports.mLocation.back().mLocationEx.bearing_unc;
-
-        r.mLocation.mUtcReported =
-            reports.mLocation.back().mUtcReported;
-    }
-    else if(!reports.mBestPosition.empty() && reports.mBestPosition.back().mValid) {
-        r.mLocation.mValid = true;
-        r.mLocation.mLocation.latitude  =
-            (double)(reports.mBestPosition.back().mBestLat);
-        r.mLocation.mLocation.longitude =
-            (double)(reports.mBestPosition.back().mBestLon);
-        r.mLocation.mLocation.altitude  =
-            reports.mBestPosition.back().mBestAlt;
-
-        r.mLocation.mLocation.timestamp =
-            reports.mBestPosition.back().mUtcReported.tv_sec * 1000ULL +
-            reports.mBestPosition.back().mUtcReported.tv_nsec / 1000000ULL;
-    }
-    else {
-        r.mLocation.mValid = false;
-    }
-
-    if (r.mLocation.mValid) {
-        LOC_LOGV("getDebugReport - lat=%f lon=%f alt=%f speed=%f",
-            r.mLocation.mLocation.latitude,
-            r.mLocation.mLocation.longitude,
-            r.mLocation.mLocation.altitude,
-            r.mLocation.mLocation.speed);
-    }
-
-    // time block
-    r.mTime.size = sizeof(r.mTime);
-    if(!reports.mTimeAndClock.empty() && reports.mTimeAndClock.back().mTimeValid) {
-        r.mTime.mValid = true;
-        r.mTime.timeEstimate =
-            (((int64_t)(reports.mTimeAndClock.back().mGpsWeek)*7 +
-                        GNSS_UTC_TIME_OFFSET)*24*60*60 -
-              (int64_t)(reports.mTimeAndClock.back().mLeapSeconds))*1000ULL +
-              (int64_t)(reports.mTimeAndClock.back().mGpsTowMs);
-
-        r.mTime.timeUncertaintyNs =
-            (float)((reports.mTimeAndClock.back().mTimeUnc +
-                     reports.mTimeAndClock.back().mLeapSecUnc)*1000);
-        r.mTime.frequencyUncertaintyNsPerSec =
-            (float)(reports.mTimeAndClock.back().mClockFreqBiasUnc);
-        LOC_LOGV("getDebugReport - timeestimate=%ld unc=%f frequnc=%f",
-                r.mTime.timeEstimate,
-                r.mTime.timeUncertaintyNs, r.mTime.frequencyUncertaintyNsPerSec);
-    }
-    else {
-        r.mTime.mValid = false;
-    }
-
-    // satellite info block
-    convertSatelliteInfo(r.mSatelliteInfo, GNSS_SV_TYPE_GPS, reports);
-    convertSatelliteInfo(r.mSatelliteInfo, GNSS_SV_TYPE_GLONASS, reports);
-    convertSatelliteInfo(r.mSatelliteInfo, GNSS_SV_TYPE_QZSS, reports);
-    convertSatelliteInfo(r.mSatelliteInfo, GNSS_SV_TYPE_BEIDOU, reports);
-    convertSatelliteInfo(r.mSatelliteInfo, GNSS_SV_TYPE_GALILEO, reports);
-    LOC_LOGV("getDebugReport - satellite=%lu", r.mSatelliteInfo.size());
-
-    return true;
-}
-
diff --git a/sdm845/gnss/GnssAdapter.h b/sdm845/gnss/GnssAdapter.h
deleted file mode 100644
index 3d27e42..0000000
--- a/sdm845/gnss/GnssAdapter.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Copyright (c) 2017, 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 "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 GNSS_ADAPTER_H
-#define GNSS_ADAPTER_H
-
-#include <LocAdapterBase.h>
-#include <LocDualContext.h>
-#include <UlpProxyBase.h>
-#include <LocationAPI.h>
-#include <Agps.h>
-#include <SystemStatus.h>
-
-#define MAX_URL_LEN 256
-#define NMEA_SENTENCE_MAX_LENGTH 200
-#define GLONASS_SV_ID_OFFSET 64
-#define MAX_SATELLITES_IN_USE 12
-#define LOC_NI_NO_RESPONSE_TIME 20
-#define LOC_GPS_NI_RESPONSE_IGNORE 4
-
-class GnssAdapter;
-
-typedef struct {
-    pthread_t               thread;        /* NI thread */
-    uint32_t                respTimeLeft;  /* examine time for NI response */
-    bool                    respRecvd;     /* NI User reponse received or not from Java layer*/
-    void*                   rawRequest;
-    uint32_t                reqID;         /* ID to check against response */
-    GnssNiResponse          resp;
-    pthread_cond_t          tCond;
-    pthread_mutex_t         tLock;
-    GnssAdapter*            adapter;
-} NiSession;
-typedef struct {
-    NiSession session;    /* SUPL NI Session */
-    NiSession sessionEs;  /* Emergency SUPL NI Session */
-    uint32_t reqIDCounter;
-} NiData;
-
-typedef enum {
-    NMEA_PROVIDER_AP = 0, // Application Processor Provider of NMEA
-    NMEA_PROVIDER_MP      // Modem Processor Provider of NMEA
-} NmeaProviderType;
-typedef struct {
-    GnssSvType svType;
-    const char* talker;
-    uint64_t mask;
-    uint32_t svIdOffset;
-} NmeaSvMeta;
-
-using namespace loc_core;
-
-class GnssAdapter : public LocAdapterBase {
-    /* ==== ULP ============================================================================ */
-    UlpProxyBase* mUlpProxy;
-
-    /* ==== CLIENT ========================================================================= */
-    typedef std::map<LocationAPI*, LocationCallbacks> ClientDataMap;
-    ClientDataMap mClientData;
-
-    /* ==== TRACKING ======================================================================= */
-    LocationSessionMap mTrackingSessions;
-    LocPosMode mUlpPositionMode;
-    GnssSvUsedInPosition mGnssSvIdUsedInPosition;
-    bool mGnssSvIdUsedInPosAvail;
-
-    /* ==== CONTROL ======================================================================== */
-    LocationControlCallbacks mControlCallbacks;
-    uint32_t mPowerVoteId;
-
-    /* ==== NI ============================================================================= */
-    NiData mNiData;
-
-    /* ==== AGPS ========================================================*/
-    // This must be initialized via initAgps()
-    AgpsManager mAgpsManager;
-
-    /*==== CONVERSION ===================================================================*/
-    static void convertOptions(LocPosMode& out, const LocationOptions& options);
-    static void convertLocation(Location& out, const LocGpsLocation& locGpsLocation,
-                                const GpsLocationExtended& locationExtended,
-                                const LocPosTechMask techMask);
-    static void convertLocationInfo(GnssLocationInfoNotification& out,
-                                    const GpsLocationExtended& locationExtended);
-
-public:
-
-    GnssAdapter();
-    virtual ~GnssAdapter();
-
-    /* ==== SSR ============================================================================ */
-    /* ======== EVENTS ====(Called from QMI Thread)========================================= */
-    virtual void handleEngineUpEvent();
-    /* ======== UTILITIES ================================================================== */
-    void restartSessions();
-
-    /* ==== ULP ============================================================================ */
-    /* ======== COMMANDS ====(Called from ULP Thread)==================================== */
-    virtual void setUlpProxyCommand(UlpProxyBase* ulp);
-    /* ======== UTILITIES ================================================================== */
-    void setUlpProxy(UlpProxyBase* ulp);
-    inline UlpProxyBase* getUlpProxy() { return mUlpProxy; }
-
-    /* ==== CLIENT ========================================================================= */
-    /* ======== COMMANDS ====(Called from Client Thread)==================================== */
-    void addClientCommand(LocationAPI* client, const LocationCallbacks& callbacks);
-    void removeClientCommand(LocationAPI* client);
-    void requestCapabilitiesCommand(LocationAPI* client);
-    /* ======== UTILITIES ================================================================== */
-    void saveClient(LocationAPI* client, const LocationCallbacks& callbacks);
-    void eraseClient(LocationAPI* client);
-    void updateClientsEventMask();
-    void stopClientSessions(LocationAPI* client);
-    LocationCallbacks getClientCallbacks(LocationAPI* client);
-
-    /* ==== TRACKING ======================================================================= */
-    /* ======== COMMANDS ====(Called from Client Thread)==================================== */
-    uint32_t startTrackingCommand(LocationAPI* client, LocationOptions& options);
-    void updateTrackingOptionsCommand(LocationAPI* client, uint32_t id, LocationOptions& options);
-    void stopTrackingCommand(LocationAPI* client, uint32_t id);
-    /* ======================(Called from ULP Thread)======================================= */
-    virtual void setPositionModeCommand(LocPosMode& locPosMode);
-    virtual void startTrackingCommand();
-    virtual void stopTrackingCommand();
-    virtual void getZppCommand();
-    /* ======== RESPONSES ================================================================== */
-    void reportResponse(LocationAPI* client, LocationError err, uint32_t sessionId);
-    /* ======== UTILITIES ================================================================== */
-    bool hasTrackingCallback(LocationAPI* client);
-    bool hasMeasurementsCallback(LocationAPI* client);
-    bool isTrackingSession(LocationAPI* client, uint32_t sessionId);
-    void saveTrackingSession(LocationAPI* client, uint32_t sessionId,
-                             const LocationOptions& options);
-    void eraseTrackingSession(LocationAPI* client, uint32_t sessionId);
-    void setUlpPositionMode(const LocPosMode& mode) { mUlpPositionMode = mode; }
-    LocPosMode& getUlpPositionMode() { return mUlpPositionMode; }
-    LocationError startTrackingMultiplex(const LocationOptions& options);
-    LocationError startTracking(const LocationOptions& options);
-    LocationError stopTrackingMultiplex(LocationAPI* client, uint32_t id);
-    LocationError stopTracking();
-    LocationError updateTrackingMultiplex(LocationAPI* client, uint32_t id,
-                                          const LocationOptions& options);
-
-    /* ==== NI ============================================================================= */
-    /* ======== COMMANDS ====(Called from Client Thread)==================================== */
-    void gnssNiResponseCommand(LocationAPI* client, uint32_t id, GnssNiResponse response);
-    /* ======================(Called from NI Thread)======================================== */
-    void gnssNiResponseCommand(GnssNiResponse response, void* rawRequest);
-    /* ======== UTILITIES ================================================================== */
-    bool hasNiNotifyCallback(LocationAPI* client);
-    NiData& getNiData() { return mNiData; }
-
-    /* ==== CONTROL ======================================================================== */
-    /* ======== COMMANDS ====(Called from Client Thread)==================================== */
-    uint32_t enableCommand(LocationTechnologyType techType);
-    void disableCommand(uint32_t id);
-    void setControlCallbacksCommand(LocationControlCallbacks& controlCallbacks);
-    void readConfigCommand();
-    void setConfigCommand();
-    uint32_t* gnssUpdateConfigCommand(GnssConfig config);
-    uint32_t gnssDeleteAidingDataCommand(GnssAidingData& data);
-
-    void initAgpsCommand(void* statusV4Cb);
-    void dataConnOpenCommand(
-            AGpsExtType agpsType,
-            const char* apnName, int apnLen, LocApnIpType ipType);
-    void dataConnClosedCommand(AGpsExtType agpsType);
-    void dataConnFailedCommand(AGpsExtType agpsType);
-
-    /* ======== RESPONSES ================================================================== */
-    void reportResponse(LocationError err, uint32_t sessionId);
-    void reportResponse(size_t count, LocationError* errs, uint32_t* ids);
-    /* ======== UTILITIES ================================================================== */
-    LocationControlCallbacks& getControlCallbacks() { return mControlCallbacks; }
-    void setControlCallbacks(const LocationControlCallbacks& controlCallbacks)
-    { mControlCallbacks = controlCallbacks; }
-    void setPowerVoteId(uint32_t id) { mPowerVoteId = id; }
-    uint32_t getPowerVoteId() { return mPowerVoteId; }
-    bool resolveInAddress(const char* hostAddress, struct in_addr* inAddress);
-
-    /* ==== REPORTS ======================================================================== */
-    /* ======== EVENTS ====(Called from QMI/ULP Thread)===================================== */
-    virtual void reportPositionEvent(const UlpLocation& ulpLocation,
-                                     const GpsLocationExtended& locationExtended,
-                                     enum loc_sess_status status,
-                                     LocPosTechMask techMask,
-                                     bool fromUlp=false);
-    virtual void reportSvEvent(const GnssSvNotification& svNotify, bool fromUlp=false);
-    virtual void reportNmeaEvent(const char* nmea, size_t length, bool fromUlp=false);
-    virtual bool requestNiNotifyEvent(const GnssNiNotification& notify, const void* data);
-    virtual void reportGnssMeasurementDataEvent(const GnssMeasurementsNotification& measurementsNotify);
-    virtual void reportSvMeasurementEvent(GnssSvMeasurementSet &svMeasurementSet);
-    virtual void reportSvPolynomialEvent(GnssSvPolynomial &svPolynomial);
-
-    virtual bool requestATL(int connHandle, LocAGpsType agps_type);
-    virtual bool releaseATL(int connHandle);
-    virtual bool requestSuplES(int connHandle);
-    virtual bool reportDataCallOpened();
-    virtual bool reportDataCallClosed();
-
-    /* ======== UTILITIES ================================================================= */
-    void reportPosition(const UlpLocation &ulpLocation,
-                        const GpsLocationExtended &locationExtended,
-                        enum loc_sess_status status,
-                        LocPosTechMask techMask);
-    void reportSv(GnssSvNotification& svNotify);
-    void reportNmea(const char* nmea, size_t length);
-    bool requestNiNotify(const GnssNiNotification& notify, const void* data);
-    void reportGnssMeasurementData(const GnssMeasurementsNotification& measurementsNotify);
-
-    /*======== GNSSDEBUG ================================================================*/
-    bool getDebugReport(GnssDebugReport& report);
-
-    /*==== CONVERSION ===================================================================*/
-    static uint32_t convertGpsLock(const GnssConfigGpsLock gpsLock);
-    static GnssConfigGpsLock convertGpsLock(const uint32_t gpsLock);
-    static uint32_t convertSuplVersion(const GnssConfigSuplVersion suplVersion);
-    static GnssConfigSuplVersion convertSuplVersion(const uint32_t suplVersion);
-    static uint32_t convertLppProfile(const GnssConfigLppProfile lppProfile);
-    static GnssConfigLppProfile convertLppProfile(const uint32_t lppProfile);
-    static uint32_t convertEP4ES(const GnssConfigEmergencyPdnForEmergencySupl);
-    static uint32_t convertSuplEs(const GnssConfigSuplEmergencyServices suplEmergencyServices);
-    static uint32_t convertLppeCp(const GnssConfigLppeControlPlaneMask lppeControlPlaneMask);
-    static GnssConfigLppeControlPlaneMask convertLppeCp(const uint32_t lppeControlPlaneMask);
-    static uint32_t convertLppeUp(const GnssConfigLppeUserPlaneMask lppeUserPlaneMask);
-    static GnssConfigLppeUserPlaneMask convertLppeUp(const uint32_t lppeUserPlaneMask);
-    static uint32_t convertAGloProt(const GnssConfigAGlonassPositionProtocolMask);
-    static uint32_t convertSuplMode(const GnssConfigSuplModeMask suplModeMask);
-    static void convertSatelliteInfo(std::vector<GnssDebugSatelliteInfo>& out,
-                                     const GnssSvType& in_constellation,
-                                     const SystemStatusReports& in);
-
-    void injectLocationCommand(double latitude, double longitude, float accuracy);
-    void injectTimeCommand(int64_t time, int64_t timeReference, int32_t uncertainty);
-
-};
-
-#endif //GNSS_ADAPTER_H
diff --git a/sdm845/gnss/location_gnss.cpp b/sdm845/gnss/location_gnss.cpp
deleted file mode 100644
index 0f905fd..0000000
--- a/sdm845/gnss/location_gnss.cpp
+++ /dev/null
@@ -1,250 +0,0 @@
-/* Copyright (c) 2017, 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 "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 "GnssAdapter.h"
-#include "location_interface.h"
-
-static GnssAdapter* gGnssAdapter = NULL;
-
-static void initialize();
-static void deinitialize();
-
-static void addClient(LocationAPI* client, const LocationCallbacks& callbacks);
-static void removeClient(LocationAPI* client);
-static void requestCapabilities(LocationAPI* client);
-
-static uint32_t startTracking(LocationAPI* client, LocationOptions& options);
-static void updateTrackingOptions(LocationAPI* client, uint32_t id, LocationOptions& options);
-static void stopTracking(LocationAPI* client, uint32_t id);
-
-static void gnssNiResponse(LocationAPI* client, uint32_t id, GnssNiResponse response);
-static uint32_t gnssDeleteAidingData(GnssAidingData& data);
-
-static void setControlCallbacks(LocationControlCallbacks& controlCallbacks);
-static uint32_t enable(LocationTechnologyType techType);
-static void disable(uint32_t id);
-static uint32_t* gnssUpdateConfig(GnssConfig config);
-
-static void injectLocation(double latitude, double longitude, float accuracy);
-static void injectTime(int64_t time, int64_t timeReference, int32_t uncertainty);
-
-static void agpsInit(void* statusV4Cb);
-static void agpsDataConnOpen(AGpsExtType agpsType, const char* apnName, int apnLen, int ipType);
-static void agpsDataConnClosed(AGpsExtType agpsType);
-static void agpsDataConnFailed(AGpsExtType agpsType);
-static void getDebugReport(GnssDebugReport& report);
-
-static const GnssInterface gGnssInterface = {
-    sizeof(GnssInterface),
-    initialize,
-    deinitialize,
-    addClient,
-    removeClient,
-    requestCapabilities,
-    startTracking,
-    updateTrackingOptions,
-    stopTracking,
-    gnssNiResponse,
-    setControlCallbacks,
-    enable,
-    disable,
-    gnssUpdateConfig,
-    gnssDeleteAidingData,
-    injectLocation,
-    injectTime,
-    agpsInit,
-    agpsDataConnOpen,
-    agpsDataConnClosed,
-    agpsDataConnFailed,
-    getDebugReport,
-};
-
-#ifndef DEBUG_X86
-extern "C" const GnssInterface* getGnssInterface()
-#else
-const GnssInterface* getGnssInterface()
-#endif // DEBUG_X86
-{
-   return &gGnssInterface;
-}
-
-static void initialize()
-{
-    if (NULL == gGnssAdapter) {
-        gGnssAdapter = new GnssAdapter();
-    }
-}
-
-static void deinitialize()
-{
-    if (NULL != gGnssAdapter) {
-        delete gGnssAdapter;
-        gGnssAdapter = NULL;
-    }
-}
-
-static void addClient(LocationAPI* client, const LocationCallbacks& callbacks)
-{
-    if (NULL != gGnssAdapter) {
-        gGnssAdapter->addClientCommand(client, callbacks);
-    }
-}
-
-static void removeClient(LocationAPI* client)
-{
-    if (NULL != gGnssAdapter) {
-        gGnssAdapter->removeClientCommand(client);
-    }
-}
-
-static void requestCapabilities(LocationAPI* client)
-{
-    if (NULL != gGnssAdapter) {
-        gGnssAdapter->requestCapabilitiesCommand(client);
-    }
-}
-
-static uint32_t startTracking(LocationAPI* client, LocationOptions& options)
-{
-    if (NULL != gGnssAdapter) {
-        return gGnssAdapter->startTrackingCommand(client, options);
-    } else {
-        return 0;
-    }
-}
-
-static void updateTrackingOptions(LocationAPI* client, uint32_t id, LocationOptions& options)
-{
-    if (NULL != gGnssAdapter) {
-        gGnssAdapter->updateTrackingOptionsCommand(client, id, options);
-    }
-}
-
-static void stopTracking(LocationAPI* client, uint32_t id)
-{
-    if (NULL != gGnssAdapter) {
-        gGnssAdapter->stopTrackingCommand(client, id);
-    }
-}
-
-static void gnssNiResponse(LocationAPI* client, uint32_t id, GnssNiResponse response)
-{
-    if (NULL != gGnssAdapter) {
-        gGnssAdapter->gnssNiResponseCommand(client, id, response);
-    }
-}
-
-static void setControlCallbacks(LocationControlCallbacks& controlCallbacks)
-{
-    if (NULL != gGnssAdapter) {
-        return gGnssAdapter->setControlCallbacksCommand(controlCallbacks);
-    }
-}
-
-static uint32_t enable(LocationTechnologyType techType)
-{
-    if (NULL != gGnssAdapter) {
-        return gGnssAdapter->enableCommand(techType);
-    } else {
-        return 0;
-    }
-}
-
-static void disable(uint32_t id)
-{
-    if (NULL != gGnssAdapter) {
-        return gGnssAdapter->disableCommand(id);
-    }
-}
-
-static uint32_t* gnssUpdateConfig(GnssConfig config)
-{
-    if (NULL != gGnssAdapter) {
-        return gGnssAdapter->gnssUpdateConfigCommand(config);
-    } else {
-        return NULL;
-    }
-}
-
-static uint32_t gnssDeleteAidingData(GnssAidingData& data)
-{
-    if (NULL != gGnssAdapter) {
-        return gGnssAdapter->gnssDeleteAidingDataCommand(data);
-    } else {
-        return 0;
-    }
-}
-
-static void injectLocation(double latitude, double longitude, float accuracy)
-{
-   if (NULL != gGnssAdapter) {
-       gGnssAdapter->injectLocationCommand(latitude, longitude, accuracy);
-   }
-}
-
-static void injectTime(int64_t time, int64_t timeReference, int32_t uncertainty)
-{
-   if (NULL != gGnssAdapter) {
-       gGnssAdapter->injectTimeCommand(time, timeReference, uncertainty);
-   }
-}
-
-static void agpsInit(void* statusV4Cb) {
-
-    if (NULL != gGnssAdapter) {
-        gGnssAdapter->initAgpsCommand(statusV4Cb);
-    }
-}
-static void agpsDataConnOpen(
-        AGpsExtType agpsType, const char* apnName, int apnLen, int ipType) {
-
-    if (NULL != gGnssAdapter) {
-        gGnssAdapter->dataConnOpenCommand(
-                agpsType, apnName, apnLen, ipType);
-    }
-}
-static void agpsDataConnClosed(AGpsExtType agpsType) {
-
-    if (NULL != gGnssAdapter) {
-        gGnssAdapter->dataConnClosedCommand(agpsType);
-    }
-}
-static void agpsDataConnFailed(AGpsExtType agpsType) {
-
-    if (NULL != gGnssAdapter) {
-        gGnssAdapter->dataConnFailedCommand(agpsType);
-    }
-}
-
-static void getDebugReport(GnssDebugReport& report) {
-
-    if (NULL != gGnssAdapter) {
-        gGnssAdapter->getDebugReport(report);
-    }
-}
diff --git a/sdm845/loc-hal.pc.in b/sdm845/loc-hal.pc.in
deleted file mode 100644
index c6ece74..0000000
--- a/sdm845/loc-hal.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: loc-hal
-Description: QTI GPS Loc HAL
-Version: @VERSION
-Libs: -L${libdir} -lloc_core -lloc_eng_so -lloc_ds_api -lloc_api_v02
-Cflags: -I${includedir} -I${includedir}/loc-hal/utils -I${includedir}/loc-hal/core -I${includedir}/loc-hal
diff --git a/sdm845/location/Android.mk b/sdm845/location/Android.mk
deleted file mode 100644
index 6d2c9fa..0000000
--- a/sdm845/location/Android.mk
+++ /dev/null
@@ -1,41 +0,0 @@
-ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),)
-ifneq ($(BUILD_TINY_ANDROID),true)
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := liblocation_api
-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 \
-    libdl \
-    liblog
-
-LOCAL_SRC_FILES += \
-    LocationAPI.cpp \
-    LocationAPIClientBase.cpp
-
-LOCAL_CFLAGS += \
-     -fno-short-enums
-
-LOCAL_C_INCLUDES:= \
-    $(TARGET_OUT_HEADERS)/gps.utils
-
-LOCAL_COPY_HEADERS_TO:= liblocation_api/
-LOCAL_COPY_HEADERS:= \
-    LocationAPI.h \
-    LocationAPIClientBase.h \
-    location_interface.h
-
-LOCAL_PRELINK_MODULE := false
-
-include $(BUILD_SHARED_LIBRARY)
-
-endif # not BUILD_TINY_ANDROID
-endif # BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE
diff --git a/sdm845/location/LocationAPI.cpp b/sdm845/location/LocationAPI.cpp
deleted file mode 100644
index ed3cc6b..0000000
--- a/sdm845/location/LocationAPI.cpp
+++ /dev/null
@@ -1,642 +0,0 @@
-/* Copyright (c) 2017 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 "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.
- */
-#define LOG_TAG "LocSvc_LocationAPI"
-
-#include <location_interface.h>
-#include <dlfcn.h>
-#include <log_util.h>
-#include <pthread.h>
-#include <map>
-
-typedef void* (getLocationInterface)();
-typedef std::map<LocationAPI*, LocationCallbacks> LocationClientMap;
-typedef struct {
-    LocationClientMap clientData;
-    LocationControlAPI* controlAPI;
-    LocationControlCallbacks controlCallbacks;
-    GnssInterface* gnssInterface;
-    GeofenceInterface* geofenceInterface;
-    FlpInterface* flpInterface;
-} LocationAPIData;
-static LocationAPIData gData = {};
-static pthread_mutex_t gDataMutex = PTHREAD_MUTEX_INITIALIZER;
-static bool gGnssLoadFailed = false;
-static bool gFlpLoadFailed = false;
-static bool gGeofenceLoadFailed = false;
-
-static bool needsGnssTrackingInfo(LocationCallbacks& locationCallbacks)
-{
-    return (locationCallbacks.gnssLocationInfoCb != nullptr ||
-            locationCallbacks.gnssSvCb != nullptr ||
-            locationCallbacks.gnssNmeaCb != nullptr ||
-            locationCallbacks.gnssMeasurementsCb != nullptr);
-}
-
-static bool isGnssClient(LocationCallbacks& locationCallbacks)
-{
-    return (locationCallbacks.gnssNiCb != nullptr ||
-            locationCallbacks.trackingCb != nullptr ||
-            locationCallbacks.gnssMeasurementsCb != nullptr);
-}
-
-static bool isFlpClient(LocationCallbacks& locationCallbacks)
-{
-    return (locationCallbacks.trackingCb != nullptr ||
-            locationCallbacks.batchingCb != nullptr);
-}
-
-static bool isGeofenceClient(LocationCallbacks& locationCallbacks)
-{
-    return (locationCallbacks.geofenceBreachCb != nullptr ||
-            locationCallbacks.geofenceStatusCb != nullptr);
-}
-
-static void* loadLocationInterface(const char* library, const char* name) {
-    LOC_LOGD("%s]: loading %s::%s ...", __func__, library, name);
-    if (NULL == library || NULL == name) {
-        return NULL;
-    }
-    getLocationInterface* getter = NULL;
-    const char *error = NULL;
-    dlerror();
-    void *handle = dlopen(library, RTLD_NOW);
-    if (NULL == handle || (error = dlerror()) != NULL)  {
-        LOC_LOGW("dlopen for %s failed, error = %s", library, error);
-    } else {
-        getter = (getLocationInterface*)dlsym(handle, name);
-        if ((error = dlerror()) != NULL)  {
-            LOC_LOGW("dlsym for %s::%s failed, error = %s", library, name, error);
-            getter = NULL;
-        }
-    }
-
-    if (NULL == getter) {
-        return (void*)getter;
-    } else {
-        return (*getter)();
-    }
-}
-
-LocationAPI*
-LocationAPI::createInstance(LocationCallbacks& locationCallbacks)
-{
-    if (nullptr == locationCallbacks.capabilitiesCb ||
-        nullptr == locationCallbacks.responseCb ||
-        nullptr == locationCallbacks.collectiveResponseCb) {
-        return NULL;
-    }
-
-    LocationAPI* newLocationAPI = new LocationAPI();
-    bool requestedCapabilities = false;
-
-    pthread_mutex_lock(&gDataMutex);
-
-    if (isGnssClient(locationCallbacks)) {
-        if (NULL == gData.gnssInterface && !gGnssLoadFailed) {
-            gData.gnssInterface =
-                (GnssInterface*)loadLocationInterface("libgnss.so", "getGnssInterface");
-            if (NULL == gData.gnssInterface) {
-                gGnssLoadFailed = true;
-                LOC_LOGW("%s:%d]: No gnss interface available", __func__, __LINE__);
-            } else {
-                gData.gnssInterface->initialize();
-            }
-        }
-        if (NULL != gData.gnssInterface) {
-            gData.gnssInterface->addClient(newLocationAPI, locationCallbacks);
-            if (!requestedCapabilities) {
-                gData.gnssInterface->requestCapabilities(newLocationAPI);
-                requestedCapabilities = true;
-            }
-        }
-    }
-
-    if (isFlpClient(locationCallbacks)) {
-        if (NULL == gData.flpInterface && !gFlpLoadFailed) {
-            gData.flpInterface =
-                (FlpInterface*)loadLocationInterface("libflp.so", "getFlpInterface");
-            if (NULL == gData.flpInterface) {
-                gFlpLoadFailed = true;
-                LOC_LOGW("%s:%d]: No flp interface available", __func__, __LINE__);
-            } else {
-                gData.flpInterface->initialize();
-            }
-        }
-        if (NULL != gData.flpInterface) {
-            gData.flpInterface->addClient(newLocationAPI, locationCallbacks);
-            if (!requestedCapabilities) {
-                gData.flpInterface->requestCapabilities(newLocationAPI);
-                requestedCapabilities = true;
-            }
-        }
-    }
-
-    if (isGeofenceClient(locationCallbacks)) {
-        if (NULL == gData.geofenceInterface && !gGeofenceLoadFailed) {
-            gData.geofenceInterface =
-                (GeofenceInterface*)loadLocationInterface("libgeofence.so", "getGeofenceInterface");
-            if (NULL == gData.geofenceInterface) {
-                gGeofenceLoadFailed = true;
-                LOC_LOGW("%s:%d]: No geofence interface available", __func__, __LINE__);
-            } else {
-                gData.geofenceInterface->initialize();
-            }
-        }
-        if (NULL != gData.geofenceInterface) {
-            gData.geofenceInterface->addClient(newLocationAPI, locationCallbacks);
-            if (!requestedCapabilities) {
-                gData.geofenceInterface->requestCapabilities(newLocationAPI);
-                requestedCapabilities = true;
-            }
-        }
-    }
-
-    gData.clientData[newLocationAPI] = locationCallbacks;
-
-    pthread_mutex_unlock(&gDataMutex);
-
-    return newLocationAPI;
-}
-
-void
-LocationAPI::destroy()
-{
-    delete this;
-}
-
-LocationAPI::LocationAPI()
-{
-    LOC_LOGD("LOCATION API CONSTRUCTOR");
-}
-
-LocationAPI::~LocationAPI()
-{
-    LOC_LOGD("LOCATION API DESTRUCTOR");
-    pthread_mutex_lock(&gDataMutex);
-
-    auto it = gData.clientData.find(this);
-    if (it != gData.clientData.end()) {
-        if (isGnssClient(it->second) && NULL != gData.gnssInterface) {
-            gData.gnssInterface->removeClient(it->first);
-        }
-        if (isFlpClient(it->second) && NULL != gData.flpInterface) {
-            gData.flpInterface->removeClient(it->first);
-        }
-        if (isGeofenceClient(it->second) && NULL != gData.geofenceInterface) {
-            gData.geofenceInterface->removeClient(it->first);
-        }
-        gData.clientData.erase(it);
-    } else {
-        LOC_LOGE("%s:%d]: Location API client %p not found in client data",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-void
-LocationAPI::updateCallbacks(LocationCallbacks& locationCallbacks)
-{
-    if (nullptr == locationCallbacks.capabilitiesCb ||
-        nullptr == locationCallbacks.responseCb ||
-        nullptr == locationCallbacks.collectiveResponseCb) {
-        return;
-    }
-
-    pthread_mutex_lock(&gDataMutex);
-
-    if (isGnssClient(locationCallbacks)) {
-        if (NULL == gData.gnssInterface && !gGnssLoadFailed) {
-            gData.gnssInterface =
-                (GnssInterface*)loadLocationInterface("libgnss.so", "getGnssInterface");
-            if (NULL == gData.gnssInterface) {
-                gGnssLoadFailed = true;
-                LOC_LOGW("%s:%d]: No gnss interface available", __func__, __LINE__);
-            } else {
-                gData.gnssInterface->initialize();
-            }
-        }
-        if (NULL != gData.gnssInterface) {
-            // either adds new Client or updates existing Client
-            gData.gnssInterface->addClient(this, locationCallbacks);
-        }
-    }
-
-    if (isFlpClient(locationCallbacks)) {
-        if (NULL == gData.flpInterface && !gFlpLoadFailed) {
-            gData.flpInterface =
-                (FlpInterface*)loadLocationInterface("libflp.so", "getFlpInterface");
-            if (NULL == gData.flpInterface) {
-                gFlpLoadFailed = true;
-                LOC_LOGW("%s:%d]: No flp interface available", __func__, __LINE__);
-            } else {
-                gData.flpInterface->initialize();
-            }
-        }
-        if (NULL != gData.flpInterface) {
-            // either adds new Client or updates existing Client
-            gData.flpInterface->addClient(this, locationCallbacks);
-        }
-    }
-
-    if (isGeofenceClient(locationCallbacks)) {
-        if (NULL == gData.geofenceInterface && !gGeofenceLoadFailed) {
-            gData.geofenceInterface =
-                (GeofenceInterface*)loadLocationInterface("libgeofence.so", "getGeofenceInterface");
-            if (NULL == gData.geofenceInterface) {
-                gGeofenceLoadFailed = true;
-                LOC_LOGW("%s:%d]: No geofence interface available", __func__, __LINE__);
-            } else {
-                gData.geofenceInterface->initialize();
-            }
-        }
-        if (NULL != gData.geofenceInterface) {
-            // either adds new Client or updates existing Client
-            gData.geofenceInterface->addClient(this, locationCallbacks);
-        }
-    }
-
-    gData.clientData[this] = locationCallbacks;
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-uint32_t
-LocationAPI::startTracking(LocationOptions& locationOptions)
-{
-    uint32_t id = 0;
-    pthread_mutex_lock(&gDataMutex);
-
-    auto it = gData.clientData.find(this);
-    if (it != gData.clientData.end()) {
-        if (gData.flpInterface != NULL && locationOptions.minDistance > 0) {
-            id = gData.flpInterface->startTracking(this, locationOptions);
-        } else if (gData.gnssInterface != NULL && needsGnssTrackingInfo(it->second)) {
-            id = gData.gnssInterface->startTracking(this, locationOptions);
-        } else if (gData.flpInterface != NULL) {
-            id = gData.flpInterface->startTracking(this, locationOptions);
-        } else if (gData.gnssInterface != NULL) {
-            id = gData.gnssInterface->startTracking(this, locationOptions);
-        } else {
-            LOC_LOGE("%s:%d]: No gnss/flp interface available for Location API client %p ",
-                     __func__, __LINE__, this);
-        }
-    } else {
-        LOC_LOGE("%s:%d]: Location API client %p not found in client data",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-    return id;
-}
-
-void
-LocationAPI::stopTracking(uint32_t id)
-{
-    pthread_mutex_lock(&gDataMutex);
-
-    auto it = gData.clientData.find(this);
-    if (it != gData.clientData.end()) {
-        // we don't know if tracking was started on flp or gnss, so we call stop on both, where
-        // stopTracking call to the incorrect interface will fail without response back to client
-        if (gData.gnssInterface != NULL) {
-            gData.gnssInterface->stopTracking(this, id);
-        }
-        if (gData.flpInterface != NULL) {
-            gData.flpInterface->stopTracking(this, id);
-        }
-        if (gData.flpInterface == NULL && gData.gnssInterface == NULL) {
-            LOC_LOGE("%s:%d]: No gnss/flp interface available for Location API client %p ",
-                     __func__, __LINE__, this);
-        }
-    } else {
-        LOC_LOGE("%s:%d]: Location API client %p not found in client data",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-void
-LocationAPI::updateTrackingOptions(uint32_t id, LocationOptions& locationOptions)
-{
-    pthread_mutex_lock(&gDataMutex);
-
-    auto it = gData.clientData.find(this);
-    if (it != gData.clientData.end()) {
-        // we don't know if tracking was started on flp or gnss, so we call update on both, where
-        // updateTracking call to the incorrect interface will fail without response back to client
-        if (gData.gnssInterface != NULL) {
-            gData.gnssInterface->updateTrackingOptions(this, id, locationOptions);
-        }
-        if (gData.flpInterface != NULL) {
-            gData.flpInterface->updateTrackingOptions(this, id, locationOptions);
-        }
-        if (gData.flpInterface == NULL && gData.gnssInterface == NULL) {
-            LOC_LOGE("%s:%d]: No gnss/flp interface available for Location API client %p ",
-                     __func__, __LINE__, this);
-        }
-    } else {
-        LOC_LOGE("%s:%d]: Location API client %p not found in client data",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-uint32_t
-LocationAPI::startBatching(LocationOptions& locationOptions)
-{
-    uint32_t id = 0;
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.flpInterface != NULL) {
-        id = gData.flpInterface->startBatching(this, locationOptions);
-    } else {
-        LOC_LOGE("%s:%d]: No flp interface available for Location API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-    return id;
-}
-
-void
-LocationAPI::stopBatching(uint32_t id)
-{
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.flpInterface != NULL) {
-        gData.flpInterface->stopBatching(this, id);
-    } else {
-        LOC_LOGE("%s:%d]: No flp interface available for Location API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-void
-LocationAPI::updateBatchingOptions(uint32_t id, LocationOptions& locationOptions)
-{
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.flpInterface != NULL) {
-        gData.flpInterface->updateBatchingOptions(this,
-                                                  id,
-                                                  locationOptions);
-    } else {
-        LOC_LOGE("%s:%d]: No flp interface available for Location API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-void
-LocationAPI::getBatchedLocations(uint32_t id, size_t count)
-{
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.flpInterface != NULL) {
-        gData.flpInterface->getBatchedLocations(this, id, count);
-    } else {
-        LOC_LOGE("%s:%d]: No flp interface available for Location API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-uint32_t*
-LocationAPI::addGeofences(size_t count, GeofenceOption* options, GeofenceInfo* info)
-{
-    uint32_t* ids = NULL;
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.geofenceInterface != NULL) {
-        ids = gData.geofenceInterface->addGeofences(this, count, options, info);
-    } else {
-        LOC_LOGE("%s:%d]: No geofence interface available for Location API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-    return ids;
-}
-
-void
-LocationAPI::removeGeofences(size_t count, uint32_t* ids)
-{
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.geofenceInterface != NULL) {
-        gData.geofenceInterface->removeGeofences(this, count, ids);
-    } else {
-        LOC_LOGE("%s:%d]: No geofence interface available for Location API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-void
-LocationAPI::modifyGeofences(size_t count, uint32_t* ids, GeofenceOption* options)
-{
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.geofenceInterface != NULL) {
-        gData.geofenceInterface->modifyGeofences(this, count, ids, options);
-    } else {
-        LOC_LOGE("%s:%d]: No geofence interface available for Location API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-void
-LocationAPI::pauseGeofences(size_t count, uint32_t* ids)
-{
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.geofenceInterface != NULL) {
-        gData.geofenceInterface->pauseGeofences(this, count, ids);
-    } else {
-        LOC_LOGE("%s:%d]: No geofence interface available for Location API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-void
-LocationAPI::resumeGeofences(size_t count, uint32_t* ids)
-{
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.geofenceInterface != NULL) {
-        gData.geofenceInterface->resumeGeofences(this, count, ids);
-    } else {
-        LOC_LOGE("%s:%d]: No geofence interface available for Location API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-void
-LocationAPI::gnssNiResponse(uint32_t id, GnssNiResponse response)
-{
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.gnssInterface != NULL) {
-        gData.gnssInterface->gnssNiResponse(this, id, response);
-    } else {
-        LOC_LOGE("%s:%d]: No gnss interface available for Location API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-LocationControlAPI*
-LocationControlAPI::createInstance(LocationControlCallbacks& locationControlCallbacks)
-{
-    LocationControlAPI* controlAPI = NULL;
-    pthread_mutex_lock(&gDataMutex);
-
-    if (nullptr != locationControlCallbacks.responseCb && NULL == gData.controlAPI) {
-        if (NULL == gData.gnssInterface && !gGnssLoadFailed) {
-            gData.gnssInterface =
-                (GnssInterface*)loadLocationInterface("libgnss.so", "getGnssInterface");
-            if (NULL == gData.gnssInterface) {
-                gGnssLoadFailed = true;
-                LOC_LOGW("%s:%d]: No gnss interface available", __func__, __LINE__);
-            } else {
-                gData.gnssInterface->initialize();
-            }
-        }
-        if (NULL != gData.gnssInterface) {
-            gData.controlAPI = new LocationControlAPI();
-            gData.controlCallbacks = locationControlCallbacks;
-            gData.gnssInterface->setControlCallbacks(locationControlCallbacks);
-            controlAPI = gData.controlAPI;
-        }
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-    return controlAPI;
-}
-
-void
-LocationControlAPI::destroy()
-{
-    delete this;
-}
-
-LocationControlAPI::LocationControlAPI()
-{
-    LOC_LOGD("LOCATION CONTROL API CONSTRUCTOR");
-}
-
-LocationControlAPI::~LocationControlAPI()
-{
-    LOC_LOGD("LOCATION CONTROL API DESTRUCTOR");
-    pthread_mutex_lock(&gDataMutex);
-
-    gData.controlAPI = NULL;
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-uint32_t
-LocationControlAPI::enable(LocationTechnologyType techType)
-{
-    uint32_t id = 0;
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.gnssInterface != NULL) {
-        id = gData.gnssInterface->enable(techType);
-    } else {
-        LOC_LOGE("%s:%d]: No gnss interface available for Location Control API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-    return id;
-}
-
-void
-LocationControlAPI::disable(uint32_t id)
-{
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.gnssInterface != NULL) {
-        gData.gnssInterface->disable(id);
-    } else {
-        LOC_LOGE("%s:%d]: No gnss interface available for Location Control API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-}
-
-uint32_t*
-LocationControlAPI::gnssUpdateConfig(GnssConfig config)
-{
-    uint32_t* ids = NULL;
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.gnssInterface != NULL) {
-        ids = gData.gnssInterface->gnssUpdateConfig(config);
-    } else {
-        LOC_LOGE("%s:%d]: No gnss interface available for Location Control API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-    return ids;
-}
-
-uint32_t
-LocationControlAPI::gnssDeleteAidingData(GnssAidingData& data)
-{
-    uint32_t id = 0;
-    pthread_mutex_lock(&gDataMutex);
-
-    if (gData.gnssInterface != NULL) {
-        id = gData.gnssInterface->gnssDeleteAidingData(data);
-    } else {
-        LOC_LOGE("%s:%d]: No gnss interface available for Location Control API client %p ",
-                 __func__, __LINE__, this);
-    }
-
-    pthread_mutex_unlock(&gDataMutex);
-    return id;
-}
diff --git a/sdm845/location/LocationAPI.h b/sdm845/location/LocationAPI.h
deleted file mode 100644
index d128d5e..0000000
--- a/sdm845/location/LocationAPI.h
+++ /dev/null
@@ -1,934 +0,0 @@
-/* Copyright (c) 2017 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 "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 LOCATION_H
-#define LOCATION_H
-
-#include <vector>
-#include <stdint.h>
-#include <functional>
-
-#define GNSS_NI_REQUESTOR_MAX  256
-#define GNSS_NI_MESSAGE_ID_MAX 2048
-#define GNSS_SV_MAX 64
-#define GNSS_MEASUREMENTS_MAX 64
-#define GNSS_UTC_TIME_OFFSET   (3657)
-
-#define GNSS_BUGREPORT_GPS_MIN  (1)
-#define GNSS_BUGREPORT_SBAS_MIN (120)
-#define GNSS_BUGREPORT_GLO_MIN  (1)
-#define GNSS_BUGREPORT_QZSS_MIN (193)
-#define GNSS_BUGREPORT_BDS_MIN  (1)
-#define GNSS_BUGREPORT_GAL_MIN  (1)
-
-typedef enum {
-    LOCATION_ERROR_SUCCESS = 0,
-    LOCATION_ERROR_GENERAL_FAILURE,
-    LOCATION_ERROR_CALLBACK_MISSING,
-    LOCATION_ERROR_INVALID_PARAMETER,
-    LOCATION_ERROR_ID_EXISTS,
-    LOCATION_ERROR_ID_UNKNOWN,
-    LOCATION_ERROR_ALREADY_STARTED,
-    LOCATION_ERROR_GEOFENCES_AT_MAX,
-    LOCATION_ERROR_NOT_SUPPORTED
-} LocationError;
-
-// Flags to indicate which values are valid in a Location
-typedef uint16_t LocationFlagsMask;
-typedef enum {
-    LOCATION_HAS_LAT_LONG_BIT          = (1<<0), // location has valid latitude and longitude
-    LOCATION_HAS_ALTITUDE_BIT          = (1<<1), // location has valid altitude
-    LOCATION_HAS_SPEED_BIT             = (1<<2), // location has valid speed
-    LOCATION_HAS_BEARING_BIT           = (1<<3), // location has valid bearing
-    LOCATION_HAS_ACCURACY_BIT          = (1<<4), // location has valid accuracy
-    LOCATION_HAS_VERTICAL_ACCURACY_BIT = (1<<5), // location has valid vertical accuracy
-    LOCATION_HAS_SPEED_ACCURACY_BIT    = (1<<6), // location has valid speed accuracy
-    LOCATION_HAS_BEARING_ACCURACY_BIT  = (1<<7), // location has valid bearing accuracy
-} LocationFlagsBits;
-
-typedef uint16_t LocationTechnologyMask;
-typedef enum {
-    LOCATION_TECHNOLOGY_GNSS_BIT     = (1<<0), // location was calculated using GNSS
-    LOCATION_TECHNOLOGY_CELL_BIT     = (1<<1), // location was calculated using Cell
-    LOCATION_TECHNOLOGY_WIFI_BIT     = (1<<2), // location was calculated using WiFi
-    LOCATION_TECHNOLOGY_SENSORS_BIT  = (1<<3), // location was calculated using Sensors
-} LocationTechnologyBits;
-
-typedef enum {
-    LOCATION_RELIABILITY_NOT_SET = 0,
-    LOCATION_RELIABILITY_VERY_LOW,
-    LOCATION_RELIABILITY_LOW,
-    LOCATION_RELIABILITY_MEDIUM,
-    LOCATION_RELIABILITY_HIGH,
-} LocationReliability;
-
-typedef uint32_t GnssLocationInfoFlagMask;
-typedef enum {
-    GNSS_LOCATION_INFO_ALTITUDE_MEAN_SEA_LEVEL_BIT      = (1<<0), // valid altitude mean sea level
-    GNSS_LOCATION_INFO_DOP_BIT                          = (1<<1), // valid pdop, hdop, and vdop
-    GNSS_LOCATION_INFO_MAGNETIC_DEVIATION_BIT           = (1<<2), // valid magnetic deviation
-    GNSS_LOCATION_INFO_HOR_RELIABILITY_BIT              = (1<<3), // valid horizontal reliability
-    GNSS_LOCATION_INFO_VER_RELIABILITY_BIT              = (1<<4), // valid vertical reliability
-    GNSS_LOCATION_INFO_HOR_ACCURACY_ELIP_SEMI_MAJOR_BIT = (1<<5), // valid elipsode semi major
-    GNSS_LOCATION_INFO_HOR_ACCURACY_ELIP_SEMI_MINOR_BIT = (1<<6), // valid elipsode semi minor
-    GNSS_LOCATION_INFO_HOR_ACCURACY_ELIP_AZIMUTH_BIT    = (1<<7),// valid accuracy elipsode azimuth
-} GnssLocationInfoFlagBits;
-
-typedef enum {
-    GEOFENCE_BREACH_ENTER = 0,
-    GEOFENCE_BREACH_EXIT,
-    GEOFENCE_BREACH_DWELL_IN,
-    GEOFENCE_BREACH_DWELL_OUT,
-    GEOFENCE_BREACH_UNKNOWN,
-} GeofenceBreachType;
-
-typedef uint16_t GeofenceBreachTypeMask;
-typedef enum {
-    GEOFENCE_BREACH_ENTER_BIT     = (1<<0),
-    GEOFENCE_BREACH_EXIT_BIT      = (1<<1),
-    GEOFENCE_BREACH_DWELL_IN_BIT  = (1<<2),
-    GEOFENCE_BREACH_DWELL_OUT_BIT = (1<<3),
-} GeofenceBreachTypeBits;
-
-typedef enum {
-    GEOFENCE_STATUS_AVAILABILE_NO = 0,
-    GEOFENCE_STATUS_AVAILABILE_YES,
-} GeofenceStatusAvailable;
-
-typedef uint32_t LocationCapabilitiesMask;
-typedef enum {
-    // supports startTracking API with minInterval param
-    LOCATION_CAPABILITIES_TIME_BASED_TRACKING_BIT           = (1<<0),
-    // supports startBatching API with minInterval param
-    LOCATION_CAPABILITIES_TIME_BASED_BATCHING_BIT           = (1<<1),
-    // supports startTracking API with minDistance param
-    LOCATION_CAPABILITIES_DISTANCE_BASED_TRACKING_BIT       = (1<<2),
-    // supports startBatching API with minDistance param
-    LOCATION_CAPABILITIES_DISTANCE_BASED_BATCHING_BIT       = (1<<3),
-    // supports addGeofences API
-    LOCATION_CAPABILITIES_GEOFENCE_BIT                      = (1<<4),
-    // supports GnssMeasurementsCallback
-    LOCATION_CAPABILITIES_GNSS_MEASUREMENTS_BIT             = (1<<5),
-    // supports startTracking/startBatching API with LocationOptions.mode of MSB (Ms Based)
-    LOCATION_CAPABILITIES_GNSS_MSB_BIT                      = (1<<6),
-    // supports startTracking/startBatching API with LocationOptions.mode of MSA (MS Assisted)
-    LOCATION_CAPABILITIES_GNSS_MSA_BIT                      = (1<<7),
-} LocationCapabilitiesBits;
-
-typedef enum {
-    LOCATION_TECHNOLOGY_TYPE_GNSS = 0,
-} LocationTechnologyType;
-
-// Configures how GPS is locked when GPS is disabled (through GnssDisable)
-typedef enum {
-    GNSS_CONFIG_GPS_LOCK_NONE = 0, // gps is not locked when GPS is disabled (GnssDisable)
-    GNSS_CONFIG_GPS_LOCK_MO,       // gps mobile originated (MO) is locked when GPS is disabled
-    GNSS_CONFIG_GPS_LOCK_NI,       // gps network initiated (NI) is locked when GPS is disabled
-    GNSS_CONFIG_GPS_LOCK_MO_AND_NI,// gps MO and NI is locked when GPS is disabled
-} GnssConfigGpsLock;
-
-// SUPL version
-typedef enum {
-    GNSS_CONFIG_SUPL_VERSION_1_0_0 = 1,
-    GNSS_CONFIG_SUPL_VERSION_2_0_0,
-    GNSS_CONFIG_SUPL_VERSION_2_0_2,
-} GnssConfigSuplVersion;
-
-// LTE Positioning Profile
-typedef enum {
-    GNSS_CONFIG_LPP_PROFILE_RRLP_ON_LTE = 0,              // RRLP on LTE (Default)
-    GNSS_CONFIG_LPP_PROFILE_USER_PLANE,                   // LPP User Plane (UP) on LTE
-    GNSS_CONFIG_LPP_PROFILE_CONTROL_PLANE,                // LPP_Control_Plane (CP)
-    GNSS_CONFIG_LPP_PROFILE_USER_PLANE_AND_CONTROL_PLANE, // Both LPP UP and CP
-} GnssConfigLppProfile;
-
-// Technology for LPPe Control Plane
-typedef uint16_t GnssConfigLppeControlPlaneMask;
-typedef enum {
-    GNSS_CONFIG_LPPE_CONTROL_PLANE_DBH_BIT                  = (1<<0), // DBH
-    GNSS_CONFIG_LPPE_CONTROL_PLANE_WLAN_AP_MEASUREMENTS_BIT = (1<<1), // WLAN_AP_MEASUREMENTS
-} GnssConfigLppeControlPlaneBits;
-
-// Technology for LPPe User Plane
-typedef uint16_t GnssConfigLppeUserPlaneMask;
-typedef enum {
-    GNSS_CONFIG_LPPE_USER_PLANE_DBH_BIT                  = (1<<0), // DBH
-    GNSS_CONFIG_LPPE_USER_PLANE_WLAN_AP_MEASUREMENTS_BIT = (1<<1), // WLAN_AP_MEASUREMENTS
-} GnssConfigLppeUserPlaneBits;
-
-// Positioning Protocol on A-GLONASS system
-typedef uint16_t GnssConfigAGlonassPositionProtocolMask;
-typedef enum {
-    GNSS_CONFIG_RRC_CONTROL_PLANE_BIT = (1<<0),  // RRC Control Plane
-    GNSS_CONFIG_RRLP_USER_PLANE_BIT   = (1<<1),  // RRLP User Plane
-    GNSS_CONFIG_LLP_USER_PLANE_BIT    = (1<<2),  // LPP User Plane
-    GNSS_CONFIG_LLP_CONTROL_PLANE_BIT = (1<<3),  // LPP Control Plane
-} GnssConfigAGlonassPositionProtocolBits;
-
-typedef enum {
-    GNSS_CONFIG_EMERGENCY_PDN_FOR_EMERGENCY_SUPL_NO = 0,
-    GNSS_CONFIG_EMERGENCY_PDN_FOR_EMERGENCY_SUPL_YES,
-} GnssConfigEmergencyPdnForEmergencySupl;
-
-typedef enum {
-    GNSS_CONFIG_SUPL_EMERGENCY_SERVICES_NO = 0,
-    GNSS_CONFIG_SUPL_EMERGENCY_SERVICES_YES,
-} GnssConfigSuplEmergencyServices;
-
-typedef uint16_t GnssConfigSuplModeMask;
-typedef enum {
-    GNSS_CONFIG_SUPL_MODE_MSB_BIT = (1<<0),
-    GNSS_CONFIG_SUPL_MODE_MSA_BIT = (1<<1),
-} GnssConfigSuplModeBits;
-
-typedef uint32_t GnssConfigFlagsMask;
-typedef enum {
-    GNSS_CONFIG_FLAGS_GPS_LOCK_VALID_BIT                   = (1<<0),
-    GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT               = (1<<1),
-    GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT        = (1<<2),
-    GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT                = (1<<3),
-    GNSS_CONFIG_FLAGS_LPPE_CONTROL_PLANE_VALID_BIT         = (1<<4),
-    GNSS_CONFIG_FLAGS_LPPE_USER_PLANE_VALID_BIT            = (1<<5),
-    GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT = (1<<6),
-    GNSS_CONFIG_FLAGS_EM_PDN_FOR_EM_SUPL_VALID_BIT         = (1<<7),
-    GNSS_CONFIG_FLAGS_SUPL_EM_SERVICES_BIT                 = (1<<8),
-    GNSS_CONFIG_FLAGS_SUPL_MODE_BIT                        = (1<<9),
-} GnssConfigFlagsBits;
-
-typedef enum {
-    GNSS_NI_ENCODING_TYPE_NONE = 0,
-    GNSS_NI_ENCODING_TYPE_GSM_DEFAULT,
-    GNSS_NI_ENCODING_TYPE_UTF8,
-    GNSS_NI_ENCODING_TYPE_UCS2,
-} GnssNiEncodingType;
-
-typedef enum {
-    GNSS_NI_TYPE_VOICE = 0,
-    GNSS_NI_TYPE_SUPL,
-    GNSS_NI_TYPE_CONTROL_PLANE,
-    GNSS_NI_TYPE_EMERGENCY_SUPL
-} GnssNiType;
-
-typedef uint16_t GnssNiOptionsMask;
-typedef enum {
-    GNSS_NI_OPTIONS_NOTIFICATION_BIT     = (1<<0),
-    GNSS_NI_OPTIONS_VERIFICATION_BIT     = (1<<1),
-    GNSS_NI_OPTIONS_PRIVACY_OVERRIDE_BIT = (1<<2),
-} GnssNiOptionsBits;
-
-typedef enum {
-    GNSS_NI_RESPONSE_ACCEPT = 1,
-    GNSS_NI_RESPONSE_DENY,
-    GNSS_NI_RESPONSE_NO_RESPONSE,
-    GNSS_NI_RESPONSE_IGNORE,
-} GnssNiResponse;
-
-typedef enum {
-    GNSS_SV_TYPE_UNKNOWN = 0,
-    GNSS_SV_TYPE_GPS,
-    GNSS_SV_TYPE_SBAS,
-    GNSS_SV_TYPE_GLONASS,
-    GNSS_SV_TYPE_QZSS,
-    GNSS_SV_TYPE_BEIDOU,
-    GNSS_SV_TYPE_GALILEO,
-} GnssSvType;
-
-typedef enum {
-    GNSS_EPH_TYPE_UNKNOWN = 0,
-    GNSS_EPH_TYPE_EPHEMERIS,
-    GNSS_EPH_TYPE_ALMANAC,
-} GnssEphemerisType;
-
-typedef enum {
-    GNSS_EPH_SOURCE_UNKNOWN = 0,
-    GNSS_EPH_SOURCE_DEMODULATED,
-    GNSS_EPH_SOURCE_SUPL_PROVIDED,
-    GNSS_EPH_SOURCE_OTHER_SERVER_PROVIDED,
-    GNSS_EPH_SOURCE_LOCAL,
-} GnssEphemerisSource;
-
-typedef enum {
-    GNSS_EPH_HEALTH_UNKNOWN = 0,
-    GNSS_EPH_HEALTH_GOOD,
-    GNSS_EPH_HEALTH_BAD,
-} GnssEphemerisHealth;
-
-typedef uint16_t GnssSvOptionsMask;
-typedef enum {
-    GNSS_SV_OPTIONS_HAS_EPHEMER_BIT = (1<<0),
-    GNSS_SV_OPTIONS_HAS_ALMANAC_BIT = (1<<1),
-    GNSS_SV_OPTIONS_USED_IN_FIX_BIT = (1<<2),
-} GnssSvOptionsBits;
-
-typedef enum {
-    GNSS_ASSISTANCE_TYPE_SUPL = 0,
-    GNSS_ASSISTANCE_TYPE_C2K,
-} GnssAssistanceType;
-
-typedef enum {
-    GNSS_SUPL_MODE_STANDALONE = 0,
-    GNSS_SUPL_MODE_MSB,
-    GNSS_SUPL_MODE_MSA,
-} GnssSuplMode;
-
-typedef uint16_t GnssMeasurementsAdrStateMask;
-typedef enum {
-    GNSS_MEASUREMENTS_ACCUMULATED_DELTA_RANGE_STATE_UNKNOWN         = 0,
-    GNSS_MEASUREMENTS_ACCUMULATED_DELTA_RANGE_STATE_VALID_BIT       = (1<<0),
-    GNSS_MEASUREMENTS_ACCUMULATED_DELTA_RANGE_STATE_RESET_BIT       = (1<<1),
-    GNSS_MEASUREMENTS_ACCUMULATED_DELTA_RANGE_STATE_CYCLE_SLIP_BIT  = (1<<2),
-} GnssMeasurementsAdrStateBits;
-
-typedef uint32_t GnssMeasurementsDataFlagsMask;
-typedef enum {
-    GNSS_MEASUREMENTS_DATA_SV_ID_BIT                        = (1<<0),
-    GNSS_MEASUREMENTS_DATA_SV_TYPE_BIT                      = (1<<1),
-    GNSS_MEASUREMENTS_DATA_STATE_BIT                        = (1<<2),
-    GNSS_MEASUREMENTS_DATA_RECEIVED_SV_TIME_BIT             = (1<<3),
-    GNSS_MEASUREMENTS_DATA_RECEIVED_SV_TIME_UNCERTAINTY_BIT = (1<<4),
-    GNSS_MEASUREMENTS_DATA_CARRIER_TO_NOISE_BIT             = (1<<5),
-    GNSS_MEASUREMENTS_DATA_PSEUDORANGE_RATE_BIT             = (1<<6),
-    GNSS_MEASUREMENTS_DATA_PSEUDORANGE_RATE_UNCERTAINTY_BIT = (1<<7),
-    GNSS_MEASUREMENTS_DATA_ADR_STATE_BIT                    = (1<<8),
-    GNSS_MEASUREMENTS_DATA_ADR_BIT                          = (1<<9),
-    GNSS_MEASUREMENTS_DATA_ADR_UNCERTAINTY_BIT              = (1<<10),
-    GNSS_MEASUREMENTS_DATA_CARRIER_FREQUENCY_BIT            = (1<<11),
-    GNSS_MEASUREMENTS_DATA_CARRIER_CYCLES_BIT               = (1<<12),
-    GNSS_MEASUREMENTS_DATA_CARRIER_PHASE_BIT                = (1<<13),
-    GNSS_MEASUREMENTS_DATA_CARRIER_PHASE_UNCERTAINTY_BIT    = (1<<14),
-    GNSS_MEASUREMENTS_DATA_MULTIPATH_INDICATOR_BIT          = (1<<15),
-    GNSS_MEASUREMENTS_DATA_SIGNAL_TO_NOISE_RATIO_BIT        = (1<<16),
-    GNSS_MEASUREMENTS_DATA_AUTOMATIC_GAIN_CONTROL_BIT       = (1<<17),
-} GnssMeasurementsDataFlagsBits;
-
-typedef uint32_t GnssMeasurementsStateMask;
-typedef enum {
-    GNSS_MEASUREMENTS_STATE_UNKNOWN_BIT               = 0,
-    GNSS_MEASUREMENTS_STATE_CODE_LOCK_BIT             = (1<<0),
-    GNSS_MEASUREMENTS_STATE_BIT_SYNC_BIT              = (1<<1),
-    GNSS_MEASUREMENTS_STATE_SUBFRAME_SYNC_BIT         = (1<<2),
-    GNSS_MEASUREMENTS_STATE_TOW_DECODED_BIT           = (1<<3),
-    GNSS_MEASUREMENTS_STATE_MSEC_AMBIGUOUS_BIT        = (1<<4),
-    GNSS_MEASUREMENTS_STATE_SYMBOL_SYNC_BIT           = (1<<5),
-    GNSS_MEASUREMENTS_STATE_GLO_STRING_SYNC_BIT       = (1<<6),
-    GNSS_MEASUREMENTS_STATE_GLO_TOD_DECODED_BIT       = (1<<7),
-    GNSS_MEASUREMENTS_STATE_BDS_D2_BIT_SYNC_BIT       = (1<<8),
-    GNSS_MEASUREMENTS_STATE_BDS_D2_SUBFRAME_SYNC_BIT  = (1<<9),
-    GNSS_MEASUREMENTS_STATE_GAL_E1BC_CODE_LOCK_BIT    = (1<<10),
-    GNSS_MEASUREMENTS_STATE_GAL_E1C_2ND_CODE_LOCK_BIT = (1<<11),
-    GNSS_MEASUREMENTS_STATE_GAL_E1B_PAGE_SYNC_BIT     = (1<<12),
-    GNSS_MEASUREMENTS_STATE_SBAS_SYNC_BIT             = (1<<13),
-} GnssMeasurementsStateBits;
-
-typedef enum {
-    GNSS_MEASUREMENTS_MULTIPATH_INDICATOR_UNKNOWN = 0,
-    GNSS_MEASUREMENTS_MULTIPATH_INDICATOR_PRESENT,
-    GNSS_MEASUREMENTS_MULTIPATH_INDICATOR_NOT_PRESENT,
-} GnssMeasurementsMultipathIndicator;
-
-typedef uint32_t GnssMeasurementsClockFlagsMask;
-typedef enum {
-    GNSS_MEASUREMENTS_CLOCK_FLAGS_LEAP_SECOND_BIT                  = (1<<0),
-    GNSS_MEASUREMENTS_CLOCK_FLAGS_TIME_BIT                         = (1<<1),
-    GNSS_MEASUREMENTS_CLOCK_FLAGS_TIME_UNCERTAINTY_BIT             = (1<<2),
-    GNSS_MEASUREMENTS_CLOCK_FLAGS_FULL_BIAS_BIT                    = (1<<3),
-    GNSS_MEASUREMENTS_CLOCK_FLAGS_BIAS_BIT                         = (1<<4),
-    GNSS_MEASUREMENTS_CLOCK_FLAGS_BIAS_UNCERTAINTY_BIT             = (1<<5),
-    GNSS_MEASUREMENTS_CLOCK_FLAGS_DRIFT_BIT                        = (1<<6),
-    GNSS_MEASUREMENTS_CLOCK_FLAGS_DRIFT_UNCERTAINTY_BIT            = (1<<7),
-    GNSS_MEASUREMENTS_CLOCK_FLAGS_HW_CLOCK_DISCONTINUITY_COUNT_BIT = (1<<8),
-} GnssMeasurementsClockFlagsBits;
-
-typedef uint32_t GnssAidingDataSvMask;
-typedef enum {
-    GNSS_AIDING_DATA_SV_EPHEMERIS_BIT    = (1<<0), // ephemeris
-    GNSS_AIDING_DATA_SV_ALMANAC_BIT      = (1<<1), // almanac
-    GNSS_AIDING_DATA_SV_HEALTH_BIT       = (1<<2), // health
-    GNSS_AIDING_DATA_SV_DIRECTION_BIT    = (1<<3), // direction
-    GNSS_AIDING_DATA_SV_STEER_BIT        = (1<<4), // steer
-    GNSS_AIDING_DATA_SV_ALMANAC_CORR_BIT = (1<<5), // almanac correction
-    GNSS_AIDING_DATA_SV_BLACKLIST_BIT    = (1<<6), // blacklist SVs
-    GNSS_AIDING_DATA_SV_SA_DATA_BIT      = (1<<7), // sensitivity assistance data
-    GNSS_AIDING_DATA_SV_NO_EXIST_BIT     = (1<<8), // SV does not exist
-    GNSS_AIDING_DATA_SV_IONOSPHERE_BIT   = (1<<9), // ionosphere correction
-    GNSS_AIDING_DATA_SV_TIME_BIT         = (1<<10),// reset satellite time
-} GnssAidingDataSvBits;
-
-typedef uint32_t GnssAidingDataSvTypeMask;
-typedef enum {
-    GNSS_AIDING_DATA_SV_TYPE_GPS_BIT      = (1<<0),
-    GNSS_AIDING_DATA_SV_TYPE_GLONASS_BIT  = (1<<1),
-    GNSS_AIDING_DATA_SV_TYPE_QZSS_BIT     = (1<<2),
-    GNSS_AIDING_DATA_SV_TYPE_BEIDOU_BIT   = (1<<3),
-    GNSS_AIDING_DATA_SV_TYPE_GALILEO_BIT  = (1<<4),
-} GnssAidingDataSvTypeBits;
-
-typedef struct {
-    GnssAidingDataSvMask svMask;         // bitwise OR of GnssAidingDataSvBits
-    GnssAidingDataSvTypeMask svTypeMask; // bitwise OR of GnssAidingDataSvTypeBits
-} GnssAidingDataSv;
-
-typedef uint32_t GnssAidingDataCommonMask;
-typedef enum {
-    GNSS_AIDING_DATA_COMMON_POSITION_BIT      = (1<<0), // position estimate
-    GNSS_AIDING_DATA_COMMON_TIME_BIT          = (1<<1), // reset all clock values
-    GNSS_AIDING_DATA_COMMON_UTC_BIT           = (1<<2), // UTC estimate
-    GNSS_AIDING_DATA_COMMON_RTI_BIT           = (1<<3), // RTI
-    GNSS_AIDING_DATA_COMMON_FREQ_BIAS_EST_BIT = (1<<4), // frequency bias estimate
-    GNSS_AIDING_DATA_COMMON_CELLDB_BIT        = (1<<5), // all celldb info
-} GnssAidingDataCommonBits;
-
-typedef struct {
-    GnssAidingDataCommonMask mask; // bitwise OR of GnssAidingDataCommonBits
-} GnssAidingDataCommon;
-
-typedef struct {
-    bool deleteAll;              // if true, delete all aiding data and ignore other params
-    GnssAidingDataSv sv;         // SV specific aiding data
-    GnssAidingDataCommon common; // common aiding data
-} GnssAidingData;
-
-typedef struct {
-    size_t size;             // set to sizeof(Location)
-    LocationFlagsMask flags; // bitwise OR of LocationFlagsBits to mark which params are valid
-    uint64_t timestamp;      // UTC timestamp for location fix, milliseconds since January 1, 1970
-    double latitude;         // in degrees
-    double longitude;        // in degrees
-    double altitude;         // in meters above the WGS 84 reference ellipsoid
-    float speed;             // in meters per second
-    float bearing;           // in degrees; range [0, 360)
-    float accuracy;          // in meters
-    float verticalAccuracy;  // in meters
-    float speedAccuracy;     // in meters/second
-    float bearingAccuracy;   // in degrees (0 to 359.999)
-    LocationTechnologyMask techMask;
-} Location;
-
-typedef struct  {
-    size_t size;          // set to sizeof(LocationOptions)
-    uint32_t minInterval; // in milliseconds
-    uint32_t minDistance; // in meters. if minDistance > 0, gnssSvCallback/gnssNmeaCallback/
-                          // gnssMeasurementsCallback may not be called
-    GnssSuplMode mode;    // Standalone/MS-Based/MS-Assisted
-} LocationOptions;
-
-typedef struct {
-    size_t size;                            // set to sizeof(GeofenceOption)
-    GeofenceBreachTypeMask breachTypeMask;  // bitwise OR of GeofenceBreachTypeBits
-    uint32_t responsiveness;                // in milliseconds
-    uint32_t dwellTime;                     // in seconds
-} GeofenceOption;
-
-typedef struct  {
-    size_t size;      // set to sizeof(GeofenceInfo)
-    double latitude;  // in degrees
-    double longitude; // in degrees
-    double radius;    // in meters
-} GeofenceInfo;
-
-typedef struct {
-    size_t size;             // set to sizeof(GeofenceBreachNotification)
-    size_t count;            // number of ids in array
-    uint32_t* ids;           // array of ids that have breached
-    Location location;       // location associated with breach
-    GeofenceBreachType type; // type of breach
-    uint64_t timestamp;      // timestamp of breach
-} GeofenceBreachNotification;
-
-typedef struct {
-    size_t size;                       // set to sizeof(GeofenceBreachNotification)
-    GeofenceStatusAvailable available; // GEOFENCE_STATUS_AVAILABILE_NO/_YES
-    LocationTechnologyType techType;   // GNSS
-} GeofenceStatusNotification;
-
-typedef struct {
-    size_t size;                        // set to sizeof(GnssLocationInfo)
-    GnssLocationInfoFlagMask flags;     // bitwise OR of GnssLocationInfoBits for param validity
-    float altitudeMeanSeaLevel;         // altitude wrt mean sea level
-    float pdop;                         // position dilusion of precision
-    float hdop;                         // horizontal dilusion of precision
-    float vdop;                         // vertical dilusion of precision
-    float magneticDeviation;            // magnetic deviation
-    LocationReliability horReliability; // horizontal reliability
-    LocationReliability verReliability; // vertical reliability
-    float horUncEllipseSemiMajor;       // horizontal elliptical accuracy semi-major axis
-    float horUncEllipseSemiMinor;       // horizontal elliptical accuracy semi-minor axis
-    float horUncEllipseOrientAzimuth;   // horizontal elliptical accuracy azimuth
-} GnssLocationInfoNotification;
-
-typedef struct {
-    size_t size;                           // set to sizeof(GnssNiNotification)
-    GnssNiType type;                       // type of NI (Voice, SUPL, Control Plane)
-    GnssNiOptionsMask options;             // bitwise OR of GnssNiOptionsBits
-    uint32_t timeout;                      // time (seconds) to wait for user input
-    GnssNiResponse timeoutResponse;        // the response that should be sent when timeout expires
-    char requestor[GNSS_NI_REQUESTOR_MAX]; // the requestor that is making the request
-    GnssNiEncodingType requestorEncoding;  // the encoding type for requestor
-    char message[GNSS_NI_MESSAGE_ID_MAX];  // the message to show user
-    GnssNiEncodingType messageEncoding;    // the encoding type for message
-    char extras[GNSS_NI_MESSAGE_ID_MAX];
-} GnssNiNotification;
-
-typedef struct {
-    size_t size;       // set to sizeof(GnssSv)
-    uint16_t svId;     // Unique Identifier
-    GnssSvType type;   // type of SV (GPS, SBAS, GLONASS, QZSS, BEIDOU, GALILEO)
-    float cN0Dbhz;     // signal strength
-    float elevation;   // elevation of SV (in degrees)
-    float azimuth;     // azimuth of SV (in degrees)
-    GnssSvOptionsMask gnssSvOptionsMask; // Bitwise OR of GnssSvOptionsBits
-} GnssSv;
-
-typedef struct {
-    size_t size;             // set to sizeof(GnssConfigSetAssistanceServer)
-    GnssAssistanceType type; // SUPL or C2K
-    const char* hostName;    // null terminated string
-    uint32_t port;           // port of server
-} GnssConfigSetAssistanceServer;
-
-typedef struct {
-    size_t size;                               // set to sizeof(GnssMeasurementsData)
-    GnssMeasurementsDataFlagsMask flags;       // bitwise OR of GnssMeasurementsDataFlagsBits
-    int16_t svId;
-    GnssSvType svType;
-    double timeOffsetNs;
-    GnssMeasurementsStateMask stateMask;       // bitwise OR of GnssMeasurementsStateBits
-    int64_t receivedSvTimeNs;
-    int64_t receivedSvTimeUncertaintyNs;
-    double carrierToNoiseDbHz;
-    double pseudorangeRateMps;
-    double pseudorangeRateUncertaintyMps;
-    GnssMeasurementsAdrStateMask adrStateMask; // bitwise OR of GnssMeasurementsAdrStateBits
-    double adrMeters;
-    double adrUncertaintyMeters;
-    float carrierFrequencyHz;
-    int64_t carrierCycles;
-    double carrierPhase;
-    double carrierPhaseUncertainty;
-    GnssMeasurementsMultipathIndicator multipathIndicator;
-    double signalToNoiseRatioDb;
-    double agcLevelDb;
-} GnssMeasurementsData;
-
-typedef struct {
-    size_t size;                          // set to sizeof(GnssMeasurementsClock)
-    GnssMeasurementsClockFlagsMask flags; // bitwise OR of GnssMeasurementsClockFlagsBits
-    int16_t leapSecond;
-    int64_t timeNs;
-    double timeUncertaintyNs;
-    int64_t fullBiasNs;
-    double biasNs;
-    double biasUncertaintyNs;
-    double driftNsps;
-    double driftUncertaintyNsps;
-    uint32_t hwClockDiscontinuityCount;
-} GnssMeasurementsClock;
-
-typedef struct {
-    size_t size;                 // set to sizeof(GnssSvNotification)
-    size_t count;                // number of SVs in the GnssSv array
-    GnssSv gnssSvs[GNSS_SV_MAX]; // information on a number of SVs
-} GnssSvNotification;
-
-typedef struct {
-    size_t size;         // set to sizeof(GnssNmeaNotification)
-    uint64_t timestamp;  // timestamp
-    const char* nmea;    // nmea text
-    size_t length;       // length of the nmea text
-} GnssNmeaNotification;
-
-typedef struct {
-    size_t size;         // set to sizeof(GnssMeasurementsNotification)
-    size_t count;        // number of items in GnssMeasurements array
-    GnssMeasurementsData measurements[GNSS_MEASUREMENTS_MAX];
-    GnssMeasurementsClock clock; // clock
-} GnssMeasurementsNotification;
-
-typedef struct {
-    size_t size;  // set to sizeof(GnssConfig)
-    GnssConfigFlagsMask flags; // bitwise OR of GnssConfigFlagsBits to mark which params are valid
-    GnssConfigGpsLock gpsLock;
-    GnssConfigSuplVersion suplVersion;
-    GnssConfigSetAssistanceServer assistanceServer;
-    GnssConfigLppProfile lppProfile;
-    GnssConfigLppeControlPlaneMask lppeControlPlaneMask;
-    GnssConfigLppeUserPlaneMask lppeUserPlaneMask;
-    GnssConfigAGlonassPositionProtocolMask aGlonassPositionProtocolMask;
-    GnssConfigEmergencyPdnForEmergencySupl emergencyPdnForEmergencySupl;
-    GnssConfigSuplEmergencyServices suplEmergencyServices;
-    GnssConfigSuplModeMask suplModeMask; //bitwise OR of GnssConfigSuplModeBits
-} GnssConfig;
-
-typedef struct {
-    size_t size;                        // set to sizeof
-    bool                                mValid;
-    Location                            mLocation;
-    double                              verticalAccuracyMeters;
-    double                              speedAccuracyMetersPerSecond;
-    double                              bearingAccuracyDegrees;
-    timespec                            mUtcReported;
-} GnssDebugLocation;
-
-typedef struct {
-    size_t size;                        // set to sizeof
-    bool                                mValid;
-    int64_t                             timeEstimate;
-    float                               timeUncertaintyNs;
-    float                               frequencyUncertaintyNsPerSec;
-} GnssDebugTime;
-
-typedef struct {
-    size_t size;                        // set to sizeof
-    uint32_t                            svid;
-    GnssSvType                          constellation;
-    GnssEphemerisType                   mEphemerisType;
-    GnssEphemerisSource                 mEphemerisSource;
-    GnssEphemerisHealth                 mEphemerisHealth;
-    float                               ephemerisAgeSeconds;
-    bool                                serverPredictionIsAvailable;
-    float                               serverPredictionAgeSeconds;
-} GnssDebugSatelliteInfo;
-
-typedef struct {
-    size_t size;                        // set to sizeof
-    GnssDebugLocation                   mLocation;
-    GnssDebugTime                       mTime;
-    std::vector<GnssDebugSatelliteInfo> mSatelliteInfo;
-} GnssDebugReport;
-
-/* Provides the capabilities of the system
-   capabilities callback is called once soon after createInstance is called */
-typedef std::function<void(
-    LocationCapabilitiesMask capabilitiesMask // bitwise OR of LocationCapabilitiesBits
-)> capabilitiesCallback;
-
-/* Used by tracking, batching, and miscellanous APIs
-   responseCallback is called for every Tracking, Batching API, and Miscellanous API */
-typedef std::function<void(
-    LocationError err, // if not SUCCESS, then id is not valid
-    uint32_t id        // id to be associated to the request
-)> responseCallback;
-
-/* Used by APIs that gets more than one LocationError in it's response
-   collectiveResponseCallback is called for every geofence API call.
-   ids array and LocationError array are only valid until collectiveResponseCallback returns. */
-typedef std::function<void(
-    size_t count, // number of locations in arrays
-    LocationError* errs, // array of LocationError associated to the request
-    uint32_t* ids // array of ids to be associated to the request
-)> collectiveResponseCallback;
-
-/* Used for startTracking API, optional can be NULL
-   trackingCallback is called when delivering a location in a tracking session
-   broadcasted to all clients, no matter if a session has started by client */
-typedef std::function<void(
-    Location location
-)> trackingCallback;
-
-/* Used for startBatching API, optional can be NULL
-   batchingCallback is called when delivering locations in a batching session.
-   broadcasted to all clients, no matter if a session has started by client */
-typedef std::function<void(
-    size_t count,      // number of locations in array
-    Location* location  // array of locations
-)> batchingCallback;
-
-/* Gives GNSS Location information, optional can be NULL
-    gnssLocationInfoCallback is called only during a tracking session
-    broadcasted to all clients, no matter if a session has started by client */
-typedef std::function<void(
-    GnssLocationInfoNotification gnssLocationInfoNotification
-)> gnssLocationInfoCallback;
-
-/* Used for addGeofences API, optional can be NULL
-   geofenceBreachCallback is called when any number of geofences have a state change */
-typedef std::function<void(
-    GeofenceBreachNotification geofenceBreachNotification
-)> geofenceBreachCallback;
-
-/* Used for addGeofences API, optional can be NULL
-       geofenceStatusCallback is called when any number of geofences have a status change */
-typedef std::function<void(
-    GeofenceStatusNotification geofenceStatusNotification
-)> geofenceStatusCallback;
-
-/* Network Initiated request, optional can be NULL
-   This callback should be responded to by calling gnssNiResponse */
-typedef std::function<void(
-    uint32_t id, // id that should be used to respond by calling gnssNiResponse
-    GnssNiNotification gnssNiNotification
-)> gnssNiCallback;
-
-/* Gives GNSS SV information, optional can be NULL
-    gnssSvCallback is called only during a tracking session
-    broadcasted to all clients, no matter if a session has started by client */
-typedef std::function<void(
-    GnssSvNotification gnssSvNotification
-)> gnssSvCallback;
-
-/* Gives GNSS NMEA data, optional can be NULL
-    gnssNmeaCallback is called only during a tracking session
-    broadcasted to all clients, no matter if a session has started by client */
-typedef std::function<void(
-    GnssNmeaNotification gnssNmeaNotification
-)> gnssNmeaCallback;
-
-/* Gives GNSS Measurements information, optional can be NULL
-    gnssMeasurementsCallback is called only during a tracking session
-    broadcasted to all clients, no matter if a session has started by client */
-typedef std::function<void(
-    GnssMeasurementsNotification gnssMeasurementsNotification
-)> gnssMeasurementsCallback;
-
-typedef struct {
-    size_t size; // set to sizeof(LocationCallbacks)
-    capabilitiesCallback capabilitiesCb;             // mandatory
-    responseCallback responseCb;                     // mandatory
-    collectiveResponseCallback collectiveResponseCb; // mandatory
-    trackingCallback trackingCb;                     // optional
-    batchingCallback batchingCb;                     // optional
-    geofenceBreachCallback geofenceBreachCb;         // optional
-    geofenceStatusCallback geofenceStatusCb;         // optional
-    gnssLocationInfoCallback gnssLocationInfoCb;     // optional
-    gnssNiCallback gnssNiCb;                         // optional
-    gnssSvCallback gnssSvCb;                         // optional
-    gnssNmeaCallback gnssNmeaCb;                     // optional
-    gnssMeasurementsCallback gnssMeasurementsCb;     // optional
-} LocationCallbacks;
-
-class LocationAPI
-{
-private:
-    LocationAPI();
-    ~LocationAPI();
-
-public:
-    /* creates an instance to LocationAPI object.
-       Will return NULL if mandatory parameters are invalid or if the maximum number
-       of instances have been reached */
-    static LocationAPI* createInstance(LocationCallbacks&);
-
-    /* destroy/cleans up the instance, which should be called when LocationAPI object is
-       no longer needed. LocationAPI* returned from createInstance will no longer valid
-       after destroy is called */
-    void destroy();
-
-    /* updates/changes the callbacks that will be called.
-        mandatory callbacks must be present for callbacks to be successfully updated
-        no return value */
-    void updateCallbacks(LocationCallbacks&);
-
-    /* ================================== TRACKING ================================== */
-
-    /* startTracking starts a tracking session, which returns a session id that will be
-       used by the other tracking APIs and also in the responseCallback to match command
-       with response. locations are reported on the trackingCallback passed in createInstance
-       periodically according to LocationOptions.
-        responseCallback returns:
-                LOCATION_ERROR_SUCCESS if session was successfully started
-                LOCATION_ERROR_ALREADY_STARTED if a startTracking session is already in progress
-                LOCATION_ERROR_CALLBACK_MISSING if no trackingCallback was passed in createInstance
-                LOCATION_ERROR_INVALID_PARAMETER if LocationOptions parameter is invalid */
-    uint32_t startTracking(LocationOptions&); // returns session id
-
-    /* stopTracking stops a tracking session associated with id parameter.
-        responseCallback returns:
-                LOCATION_ERROR_SUCCESS if successful
-                LOCATION_ERROR_ID_UNKNOWN if id is not associated with a tracking session */
-    void stopTracking(uint32_t id);
-
-    /* updateTrackingOptions changes the LocationOptions of a tracking session associated with id
-        responseCallback returns:
-                LOCATION_ERROR_SUCCESS if successful
-                LOCATION_ERROR_INVALID_PARAMETER if LocationOptions parameters are invalid
-                LOCATION_ERROR_ID_UNKNOWN if id is not associated with a tracking session */
-    void updateTrackingOptions(uint32_t id, LocationOptions&);
-
-    /* ================================== BATCHING ================================== */
-
-    /* startBatching starts a batching session, which returns a session id that will be
-       used by the other batching APIs and also in the responseCallback to match command
-       with response. locations are reported on the batchingCallback passed in createInstance
-       periodically according to LocationOptions. A batching session starts tracking on
-       the low power processor and delivers them in batches by the batchingCallback when
-       the batch is full or when getBatchedLocations is called. This allows for the processor
-       that calls this API to sleep when the low power processor can batch locations in the
-       backgroup and wake up the processor calling the API only when the batch is full, thus
-       saving power
-        responseCallback returns:
-                LOCATION_ERROR_SUCCESS if session was successful
-                LOCATION_ERROR_ALREADY_STARTED if a startBatching session is already in progress
-                LOCATION_ERROR_CALLBACK_MISSING if no batchingCallback was passed in createInstance
-                LOCATION_ERROR_INVALID_PARAMETER if a parameter is invalid
-                LOCATION_ERROR_NOT_SUPPORTED if batching is not supported */
-    uint32_t startBatching(LocationOptions&); // returns session id
-
-    /* stopBatching stops a batching session associated with id parameter.
-        responseCallback returns:
-                LOCATION_ERROR_SUCCESS if successful
-                LOCATION_ERROR_ID_UNKNOWN if id is not associated with batching session */
-    void stopBatching(uint32_t id);
-
-    /* updateBatchingOptions changes the LocationOptions of a batching session associated with id
-        responseCallback returns:
-                LOCATION_ERROR_SUCCESS if successful
-                LOCATION_ERROR_INVALID_PARAMETER if LocationOptions parameters are invalid
-                LOCATION_ERROR_ID_UNKNOWN if id is not associated with a batching session */
-    void updateBatchingOptions(uint32_t id, LocationOptions&);
-
-    /* getBatchedLocations gets a number of locations that are currently stored/batched
-       on the low power processor, delivered by the batchingCallback passed in createInstance.
-       Location are then deleted from the batch stored on the low power processor.
-        responseCallback returns:
-                LOCATION_ERROR_SUCCESS if successful, will be followed by batchingCallback call
-                LOCATION_ERROR_CALLBACK_MISSING if no batchingCallback was passed in createInstance
-                LOCATION_ERROR_ID_UNKNOWN if id is not associated with a batching session */
-    void getBatchedLocations(uint32_t id, size_t count);
-
-    /* ================================== GEOFENCE ================================== */
-
-    /* addGeofences adds any number of geofences and returns an array of geofence ids that
-       will be used by the other geofence APIs and also in the collectiveResponseCallback to
-       match command with response. The geofenceBreachCallback will deliver the status of each
-       geofence according to the GeofenceOption for each. The geofence id array returned will
-       be valid until the collectiveResponseCallback is called and has returned.
-        collectiveResponseCallback returns:
-                LOCATION_ERROR_SUCCESS if session was successful
-                LOCATION_ERROR_CALLBACK_MISSING if no geofenceBreachCallback
-                LOCATION_ERROR_INVALID_PARAMETER if any parameters are invalid
-                LOCATION_ERROR_NOT_SUPPORTED if geofence is not supported */
-    uint32_t* addGeofences(size_t count, GeofenceOption*, GeofenceInfo*); // returns id array
-
-    /* removeGeofences removes any number of geofences. Caller should delete ids array after
-       removeGeofences returneds.
-        collectiveResponseCallback returns:
-                LOCATION_ERROR_SUCCESS if successful
-                LOCATION_ERROR_ID_UNKNOWN if id is not associated with a geofence session */
-    void removeGeofences(size_t count, uint32_t* ids);
-
-    /* modifyGeofences modifies any number of geofences. Caller should delete ids array after
-       modifyGeofences returns.
-        collectiveResponseCallback returns:
-                LOCATION_ERROR_SUCCESS if successful
-                LOCATION_ERROR_ID_UNKNOWN if id is not associated with a geofence session
-                LOCATION_ERROR_INVALID_PARAMETER if any parameters are invalid */
-    void modifyGeofences(size_t count, uint32_t* ids, GeofenceOption* options);
-
-    /* pauseGeofences pauses any number of geofences, which is similar to removeGeofences,
-       only that they can be resumed at any time. Caller should delete ids array after
-       pauseGeofences returns.
-        collectiveResponseCallback returns:
-                LOCATION_ERROR_SUCCESS if successful
-                LOCATION_ERROR_ID_UNKNOWN if id is not associated with a geofence session */
-    void pauseGeofences(size_t count, uint32_t* ids);
-
-    /* resumeGeofences resumes any number of geofences that are currently paused. Caller should
-       delete ids array after resumeGeofences returns.
-        collectiveResponseCallback returns:
-                LOCATION_ERROR_SUCCESS if successful
-                LOCATION_ERROR_ID_UNKNOWN if id is not associated with a geofence session */
-    void resumeGeofences(size_t count, uint32_t* ids);
-
-    /* ================================== GNSS ====================================== */
-
-     /* gnssNiResponse is called in response to a gnssNiCallback.
-        responseCallback returns:
-                LOCATION_ERROR_SUCCESS if session was successful
-                LOCATION_ERROR_INVALID_PARAMETER if any parameters in GnssNiResponse are invalid
-                LOCATION_ERROR_ID_UNKNOWN if id does not match a gnssNiCallback */
-    void gnssNiResponse(uint32_t id, GnssNiResponse response);
-};
-
-typedef struct {
-    size_t size; // set to sizeof(LocationControlCallbacks)
-    responseCallback responseCb;                     // mandatory
-    collectiveResponseCallback collectiveResponseCb; // mandatory
-} LocationControlCallbacks;
-
-class LocationControlAPI
-{
-private:
-    LocationControlAPI();
-    ~LocationControlAPI();
-
-public:
-    /* creates an instance to LocationControlAPI object.
-       Will return NULL if mandatory parameters are invalid or if the maximum number
-       of instances have been reached. Only once instance allowed */
-    static LocationControlAPI* createInstance(LocationControlCallbacks&);
-
-    /* destroy/cleans up the instance, which should be called when LocationControlAPI object is
-       no longer needed. LocationControlAPI* returned from createInstance will no longer valid
-       after destroy is called */
-    void destroy();
-
-    /* enable will enable specific location technology to be used for calculation locations and
-       will effectively start a control session if call is successful, which returns a session id
-       that will be returned in responseCallback to match command with response. The session id is
-       also needed to call the disable command.
-       This effect is global for all clients of LocationAPI
-        responseCallback returns:
-                LOCATION_ERROR_SUCCESS if successful
-                LOCATION_ERROR_ALREADY_STARTED if an enable was already called for this techType
-                LOCATION_ERROR_INVALID_PARAMETER if any parameters are invalid
-                LOCATION_ERROR_GENERAL_FAILURE if failure for any other reason */
-    uint32_t enable(LocationTechnologyType techType);
-
-    /* disable will disable specific location technology to be used for calculation locations and
-       effectively ends the control session if call is successful.
-       id parameter is the session id that was returned in enable responseCallback for techType.
-       The session id is no longer valid after disable's responseCallback returns success.
-       This effect is global for all clients of LocationAPI
-        responseCallback returns:
-                LOCATION_ERROR_SUCCESS if successful
-                LOCATION_ERROR_ID_UNKNOWN if id was not returned from responseCallback from enable
-                LOCATION_ERROR_GENERAL_FAILURE if failure for any other reason */
-    void disable(uint32_t id);
-
-    /* gnssUpdateConfig updates the gnss specific configuration, which returns a session id array
-       with an id for each of the bits set in GnssConfig.flags, order from low bits to high bits.
-       The response for each config that is set will be returned in collectiveResponseCallback.
-       The session id array returned will be valid until the collectiveResponseCallback is called
-       and has returned. This effect is global for all clients of LocationAPI
-        collectiveResponseCallback returns:
-                LOCATION_ERROR_SUCCESS if session was successful
-                LOCATION_ERROR_INVALID_PARAMETER if any other parameters are invalid
-                LOCATION_ERROR_GENERAL_FAILURE if failure for any other reason */
-    uint32_t* gnssUpdateConfig(GnssConfig config);
-
-    /* delete specific gnss aiding data for testing, which returns a session id
-       that will be returned in responseCallback to match command with response.
-       Only allowed in userdebug builds. This effect is global for all clients of LocationAPI
-        responseCallback returns:
-                LOCATION_ERROR_SUCCESS if successful
-                LOCATION_ERROR_INVALID_PARAMETER if any parameters are invalid
-                LOCATION_ERROR_NOT_SUPPORTED if build is not userdebug */
-    uint32_t gnssDeleteAidingData(GnssAidingData& data);
-};
-
-#endif /* LOCATION_H */
diff --git a/sdm845/location/LocationAPIClientBase.cpp b/sdm845/location/LocationAPIClientBase.cpp
deleted file mode 100644
index 141f5eb..0000000
--- a/sdm845/location/LocationAPIClientBase.cpp
+++ /dev/null
@@ -1,827 +0,0 @@
-/* Copyright (c) 2017 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 "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.
- */
-
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_APIClientBase"
-
-#include <log_util.h>
-#include <loc_cfg.h>
-#include "LocationAPIClientBase.h"
-
-#define BATCHING_CONF_FILE "/etc/flp.conf"
-#define GEOFENCE_SESSION_ID -1
-
-LocationAPIClientBase::LocationAPIClientBase() :
-    mTrackingCallback(nullptr),
-    mBatchingCallback(nullptr),
-    mGeofenceBreachCallback(nullptr),
-    mLocationAPI(nullptr),
-    mLocationControlAPI(nullptr),
-    mBatchSize(-1),
-    mEnabled(false)
-{
-
-    // use recursive mutex, in case callback come from the same thread
-    pthread_mutexattr_t attr;
-    pthread_mutexattr_init(&attr);
-    pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
-    pthread_mutex_init(&mMutex, &attr);
-
-    for (int i = 0; i < REQUEST_MAX; i++) {
-        mRequestQueues[i] = nullptr;
-    }
-
-    memset(&mConfig, 0, sizeof(GnssConfig));
-}
-
-void LocationAPIClientBase::locAPISetCallbacks(LocationCallbacks& locationCallbacks)
-{
-    pthread_mutex_lock(&mMutex);
-
-    if (locationCallbacks.geofenceBreachCb != nullptr) {
-        mGeofenceBreachCallback = locationCallbacks.geofenceBreachCb;
-        locationCallbacks.geofenceBreachCb =
-            [this](GeofenceBreachNotification geofenceBreachNotification) {
-                beforeGeofenceBreachCb(geofenceBreachNotification);
-            };
-    }
-
-    locationCallbacks.capabilitiesCb =
-        [this](LocationCapabilitiesMask capabilitiesMask) {
-            onCapabilitiesCb(capabilitiesMask);
-        };
-    locationCallbacks.responseCb = [this](LocationError error, uint32_t id) {
-        onResponseCb(error, id);
-    };
-    locationCallbacks.collectiveResponseCb =
-        [this](size_t count, LocationError* errors, uint32_t* ids) {
-            onCollectiveResponseCb(count, errors, ids);
-        };
-
-    if (mLocationAPI == nullptr ) {
-        mLocationAPI = LocationAPI::createInstance(locationCallbacks);
-    } else {
-        mLocationAPI->updateCallbacks(locationCallbacks);
-    }
-
-    if (mLocationControlAPI == nullptr) {
-        LocationControlCallbacks locationControlCallbacks;
-        locationControlCallbacks.size = sizeof(LocationControlCallbacks);
-
-        locationControlCallbacks.responseCb =
-            [this](LocationError error, uint32_t id) {
-                onCtrlResponseCb(error, id);
-            };
-        locationControlCallbacks.collectiveResponseCb =
-            [this](size_t count, LocationError* errors, uint32_t* ids) {
-                onCtrlCollectiveResponseCb(count, errors, ids);
-            };
-
-        mLocationControlAPI = LocationControlAPI::createInstance(locationControlCallbacks);
-    }
-
-    pthread_mutex_unlock(&mMutex);
-}
-
-LocationAPIClientBase::~LocationAPIClientBase()
-{
-    pthread_mutex_lock(&mMutex);
-
-    if (mLocationAPI) {
-        mLocationAPI->destroy();
-        mLocationAPI = nullptr;
-    }
-    if (mLocationControlAPI) {
-        mLocationControlAPI->destroy();
-        mLocationControlAPI = nullptr;
-    }
-
-    for (int i = 0; i < REQUEST_MAX; i++) {
-        if (mRequestQueues[i]) {
-            delete mRequestQueues[i];
-            mRequestQueues[i] = nullptr;
-        }
-    }
-    pthread_mutex_unlock(&mMutex);
-
-    pthread_mutex_destroy(&mMutex);
-}
-
-uint32_t LocationAPIClientBase::locAPIStartTracking(LocationOptions& options)
-{
-    uint32_t retVal = LOCATION_ERROR_GENERAL_FAILURE;
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-        RequestQueue* requests = mRequestQueues[REQUEST_TRACKING];
-        if (requests) {
-            delete requests;
-            mRequestQueues[REQUEST_TRACKING] = nullptr;
-        }
-        uint32_t session = mLocationAPI->startTracking(options);
-        LOC_LOGI("%s:%d] start new session: %d", __FUNCTION__, __LINE__, session);
-        // onResponseCb might be called from other thread immediately after
-        // startTracking returns, so we are not going to unlock mutex
-        // until StartTrackingRequest is pushed into mRequestQueues[REQUEST_TRACKING]
-        requests = new RequestQueue(session);
-        requests->push(new StartTrackingRequest(*this));
-        mRequestQueues[REQUEST_TRACKING] = requests;
-
-        retVal = LOCATION_ERROR_SUCCESS;
-    }
-    pthread_mutex_unlock(&mMutex);
-
-    return retVal;
-}
-
-void LocationAPIClientBase::locAPIStopTracking()
-{
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-        uint32_t session = 0;
-        RequestQueue* requests = mRequestQueues[REQUEST_TRACKING];
-        if (requests) {
-            session = requests->getSession();
-            if (session > 0) {
-                requests->push(new StopTrackingRequest(*this));
-                mLocationAPI->stopTracking(session);
-            }
-        }
-    }
-    pthread_mutex_unlock(&mMutex);
-}
-
-void LocationAPIClientBase::locAPIUpdateTrackingOptions(LocationOptions& options)
-{
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-        uint32_t session = 0;
-        RequestQueue* requests = mRequestQueues[REQUEST_TRACKING];
-        if (requests) {
-            session = requests->getSession();
-            if (session > 0) {
-                requests->push(new UpdateTrackingOptionsRequest(*this));
-                mLocationAPI->updateTrackingOptions(session, options);
-            }
-        }
-    }
-    pthread_mutex_unlock(&mMutex);
-}
-
-int32_t LocationAPIClientBase::locAPIGetBatchSize()
-{
-    if (mBatchSize == -1) {
-        const loc_param_s_type batching_conf_param_table[] =
-        {
-            {"BATCH_SIZE", &mBatchSize, nullptr, 'n'},
-        };
-        UTIL_READ_CONF(BATCHING_CONF_FILE, batching_conf_param_table);
-        if (mBatchSize < 0) {
-            // set mBatchSize to 0 if we got an illegal value from config file
-            mBatchSize = 0;
-        }
-    }
-    return mBatchSize;
-}
-
-
-uint32_t LocationAPIClientBase::locAPIStartSession(uint32_t id, uint32_t sessionMode,
-        LocationOptions& options)
-{
-    uint32_t retVal = LOCATION_ERROR_GENERAL_FAILURE;
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-
-        if (mSessionMap.find(id) != mSessionMap.end()) {
-            LOC_LOGE("%s:%d] session %d has already started.", __FUNCTION__, __LINE__, id);
-            retVal = LOCATION_ERROR_ALREADY_STARTED;
-        } else {
-            uint32_t trackingSession = 0;
-            uint32_t batchingSession = 0;
-
-            if (sessionMode == SESSION_MODE_ON_FIX) {
-                RequestQueue* requests = mRequestQueues[REQUEST_TRACKING];
-                if (requests) {
-                    delete requests;
-                    mRequestQueues[REQUEST_TRACKING] = nullptr;
-                }
-                trackingSession = mLocationAPI->startTracking(options);
-                LOC_LOGI("%s:%d] start new session: %d", __FUNCTION__, __LINE__, trackingSession);
-                requests = new RequestQueue(trackingSession);
-                requests->push(new StartTrackingRequest(*this));
-                mRequestQueues[REQUEST_TRACKING] = requests;
-            } else if (sessionMode == SESSION_MODE_ON_FULL) {
-                RequestQueue* requests = mRequestQueues[REQUEST_BATCHING];
-                if (requests) {
-                    delete requests;
-                    mRequestQueues[REQUEST_BATCHING] = nullptr;
-                }
-                batchingSession = mLocationAPI->startBatching(options);
-                LOC_LOGI("%s:%d] start new session: %d", __FUNCTION__, __LINE__, batchingSession);
-                requests = new RequestQueue(batchingSession);
-                requests->push(new StartBatchingRequest(*this));
-                mRequestQueues[REQUEST_BATCHING] = requests;
-            }
-
-            SessionEntity entity;
-            entity.id = id;
-            entity.trackingSession = trackingSession;
-            entity.batchingSession = batchingSession;
-            entity.sessionMode = sessionMode;
-            mSessionMap[id] = entity;
-
-            retVal = LOCATION_ERROR_SUCCESS;
-        }
-
-    }
-    pthread_mutex_unlock(&mMutex);
-
-    return retVal;
-}
-
-uint32_t LocationAPIClientBase::locAPIStopSession(uint32_t id)
-{
-    uint32_t retVal = LOCATION_ERROR_GENERAL_FAILURE;
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-
-        if (mSessionMap.find(id) != mSessionMap.end()) {
-            SessionEntity entity = mSessionMap[id];
-
-            uint32_t trackingSession = entity.trackingSession;
-            uint32_t batchingSession = entity.batchingSession;
-            uint32_t sMode = entity.sessionMode;
-
-            mSessionMap.erase(id);
-
-            if (sMode == SESSION_MODE_ON_FIX) {
-                RequestQueue* requests = mRequestQueues[REQUEST_TRACKING];
-                if (requests) {
-                    requests->push(new StopTrackingRequest(*this));
-                    mLocationAPI->stopTracking(trackingSession);
-                }
-            } else if (sMode == SESSION_MODE_ON_FULL) {
-                RequestQueue* requests = mRequestQueues[REQUEST_BATCHING];
-                if (requests) {
-                    requests->push(new StopBatchingRequest(*this));
-                    mLocationAPI->stopBatching(batchingSession);
-                }
-            }
-
-            retVal = LOCATION_ERROR_SUCCESS;
-        } else {
-            retVal = LOCATION_ERROR_ID_UNKNOWN;
-            LOC_LOGE("%s:%d] session %d is not exist.", __FUNCTION__, __LINE__, id);
-        }
-
-    }
-    pthread_mutex_unlock(&mMutex);
-    return retVal;
-}
-
-uint32_t LocationAPIClientBase::locAPIUpdateSessionOptions(uint32_t id, uint32_t sessionMode,
-        LocationOptions& options)
-{
-    uint32_t retVal = LOCATION_ERROR_GENERAL_FAILURE;
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-
-        if (mSessionMap.find(id) != mSessionMap.end()) {
-            SessionEntity& entity = mSessionMap[id];
-
-            uint32_t trackingSession = entity.trackingSession;
-            uint32_t batchingSession = entity.batchingSession;
-            uint32_t sMode = entity.sessionMode;
-
-            if (sessionMode == SESSION_MODE_ON_FIX) {
-                if (sMode == SESSION_MODE_ON_FIX) {
-                    RequestQueue* requests = mRequestQueues[REQUEST_TRACKING];
-                    if (requests) {
-                        requests->push(new UpdateTrackingOptionsRequest(*this));
-                        mLocationAPI->updateTrackingOptions(trackingSession, options);
-                    }
-                } else if (sMode == SESSION_MODE_ON_FULL) {
-                    // stop batching
-                    {
-                        RequestQueue* requests = mRequestQueues[REQUEST_BATCHING];
-                        if (requests) {
-                            requests->push(new StopBatchingRequest(*this));
-                            mLocationAPI->stopBatching(batchingSession);
-                            batchingSession = 0;
-                        }
-                    }
-                    // start tracking
-                    {
-                        RequestQueue* requests = mRequestQueues[REQUEST_TRACKING];
-                        if (requests) {
-                            delete requests;
-                            mRequestQueues[REQUEST_TRACKING] = nullptr;
-                        }
-                        trackingSession = mLocationAPI->startTracking(options);
-                        LOC_LOGI("%s:%d] start new session: %d",
-                                __FUNCTION__, __LINE__, trackingSession);
-                        requests = new RequestQueue(trackingSession);
-                        requests->push(new StartTrackingRequest(*this));
-                        mRequestQueues[REQUEST_TRACKING] = requests;
-                    }
-                }
-            } else if (sessionMode == SESSION_MODE_ON_FULL) {
-                if (sMode == SESSION_MODE_ON_FIX) {
-                    // stop tracking
-                    {
-                        RequestQueue* requests = mRequestQueues[REQUEST_TRACKING];
-                        if (requests) {
-                            requests->push(new StopTrackingRequest(*this));
-                            mLocationAPI->stopTracking(trackingSession);
-                            trackingSession = 0;
-                        }
-                    }
-                    // start batching
-                    {
-                        RequestQueue* requests = mRequestQueues[REQUEST_BATCHING];
-                        if (requests) {
-                            delete requests;
-                            mRequestQueues[REQUEST_BATCHING] = nullptr;
-                        }
-                        batchingSession = mLocationAPI->startBatching(options);
-                        LOC_LOGI("%s:%d] start new session: %d",
-                                __FUNCTION__, __LINE__, batchingSession);
-                        requests = new RequestQueue(batchingSession);
-                        requests->push(new StartBatchingRequest(*this));
-                        mRequestQueues[REQUEST_BATCHING] = requests;
-                    }
-                } else if (sMode == SESSION_MODE_ON_FULL) {
-                    RequestQueue* requests = mRequestQueues[REQUEST_BATCHING];
-                    requests = mRequestQueues[REQUEST_BATCHING];
-                    if (requests) {
-                        requests->push(new UpdateBatchingOptionsRequest(*this));
-                        mLocationAPI->updateBatchingOptions(batchingSession, options);
-                    }
-                }
-            }
-
-            entity.trackingSession = trackingSession;
-            entity.batchingSession = batchingSession;
-            entity.sessionMode = sessionMode;
-
-            retVal = LOCATION_ERROR_SUCCESS;
-        } else {
-            retVal = LOCATION_ERROR_ID_UNKNOWN;
-            LOC_LOGE("%s:%d] session %d is not exist.", __FUNCTION__, __LINE__, id);
-        }
-
-    }
-    pthread_mutex_unlock(&mMutex);
-    return retVal;
-}
-
-void LocationAPIClientBase::locAPIGetBatchedLocations(size_t count)
-{
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-        uint32_t session = 0;
-        RequestQueue* requests = mRequestQueues[REQUEST_BATCHING];
-        if (requests) {
-            session = requests->getSession();
-            if (session > 0) {
-                requests->push(new GetBatchedLocationsRequest(*this));
-                mLocationAPI->getBatchedLocations(session, count);
-            }
-        }
-    }
-    pthread_mutex_unlock(&mMutex);
-}
-
-uint32_t LocationAPIClientBase::locAPIAddGeofences(
-        size_t count, uint32_t* ids, GeofenceOption* options, GeofenceInfo* data)
-{
-    uint32_t retVal = LOCATION_ERROR_GENERAL_FAILURE;
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-        RequestQueue* requests = mRequestQueues[REQUEST_GEOFENCE];
-        if (!requests) {
-            // Create a new RequestQueue for Geofenceing if we've not had one.
-            // The RequestQueue will be released when LocationAPIClientBase is released.
-            requests = new RequestQueue(GEOFENCE_SESSION_ID);
-            mRequestQueues[REQUEST_GEOFENCE] = requests;
-        }
-        uint32_t* sessions = mLocationAPI->addGeofences(count, options, data);
-        if (sessions) {
-            LOC_LOGI("%s:%d] start new sessions: %p", __FUNCTION__, __LINE__, sessions);
-            requests->push(new AddGeofencesRequest(*this));
-
-            for (size_t i = 0; i < count; i++) {
-                mGeofenceBiDict.set(ids[i], sessions[i], options[i].breachTypeMask);
-            }
-            retVal = LOCATION_ERROR_SUCCESS;
-        }
-    }
-    pthread_mutex_unlock(&mMutex);
-
-    return retVal;
-}
-
-void LocationAPIClientBase::locAPIRemoveGeofences(size_t count, uint32_t* ids)
-{
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-        uint32_t* sessions = (uint32_t*)malloc(sizeof(uint32_t) * count);
-
-        RequestQueue* requests = mRequestQueues[REQUEST_GEOFENCE];
-        if (requests) {
-            size_t j = 0;
-            for (size_t i = 0; i < count; i++) {
-                sessions[j] = mGeofenceBiDict.getSession(ids[i]);
-                if (sessions[j] > 0) {
-                    j++;
-                }
-            }
-            if (j > 0) {
-                requests->push(new RemoveGeofencesRequest(*this));
-                mLocationAPI->removeGeofences(j, sessions);
-            }
-        }
-
-        free(sessions);
-    }
-    pthread_mutex_unlock(&mMutex);
-}
-
-void LocationAPIClientBase::locAPIModifyGeofences(
-        size_t count, uint32_t* ids, GeofenceOption* options)
-{
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-        uint32_t* sessions = (uint32_t*)malloc(sizeof(uint32_t) * count);
-
-        RequestQueue* requests = mRequestQueues[REQUEST_GEOFENCE];
-        if (requests) {
-            size_t j = 0;
-            for (size_t i = 0; i < count; i++) {
-                sessions[j] = mGeofenceBiDict.getSession(ids[i]);
-                if (sessions[j] > 0) {
-                    mGeofenceBiDict.set(ids[i], sessions[j], options[i].breachTypeMask);
-                    j++;
-                }
-            }
-            if (j > 0) {
-                requests->push(new ModifyGeofencesRequest(*this));
-                mLocationAPI->modifyGeofences(j, sessions, options);
-            }
-        }
-
-        free(sessions);
-    }
-    pthread_mutex_unlock(&mMutex);
-}
-
-void LocationAPIClientBase::locAPIPauseGeofences(size_t count, uint32_t* ids)
-{
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-        uint32_t* sessions = (uint32_t*)malloc(sizeof(uint32_t) * count);
-
-        RequestQueue* requests = mRequestQueues[REQUEST_GEOFENCE];
-        if (requests) {
-            size_t j = 0;
-            for (size_t i = 0; i < count; i++) {
-                sessions[j] = mGeofenceBiDict.getSession(ids[i]);
-                if (sessions[j] > 0) {
-                    j++;
-                }
-            }
-            if (j > 0) {
-                requests->push(new PauseGeofencesRequest(*this));
-                mLocationAPI->pauseGeofences(j, sessions);
-            }
-        }
-
-        free(sessions);
-    }
-    pthread_mutex_unlock(&mMutex);
-}
-
-void LocationAPIClientBase::locAPIResumeGeofences(
-        size_t count, uint32_t* ids, GeofenceBreachTypeMask* mask)
-{
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-        uint32_t* sessions = (uint32_t*)malloc(sizeof(uint32_t) * count);
-
-        RequestQueue* requests = mRequestQueues[REQUEST_GEOFENCE];
-        if (requests) {
-            size_t j = 0;
-            for (size_t i = 0; i < count; i++) {
-                sessions[j] = mGeofenceBiDict.getSession(ids[i]);
-                if (sessions[j] > 0) {
-                    if (mask) {
-                        mGeofenceBiDict.set(ids[i], sessions[j], mask[i]);
-                    }
-                    j++;
-                }
-            }
-            if (j > 0) {
-                requests->push(new ResumeGeofencesRequest(*this));
-                mLocationAPI->resumeGeofences(j, sessions);
-            }
-        }
-
-        free(sessions);
-    }
-    pthread_mutex_unlock(&mMutex);
-}
-
-void LocationAPIClientBase::locAPIRemoveAllGeofences()
-{
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-        std::vector<uint32_t> sessionsVec = mGeofenceBiDict.getAllSessions();
-        size_t count = sessionsVec.size();
-        uint32_t* sessions = (uint32_t*)malloc(sizeof(uint32_t) * count);
-
-        RequestQueue* requests = mRequestQueues[REQUEST_GEOFENCE];
-        if (requests) {
-            size_t j = 0;
-            for (size_t i = 0; i < count; i++) {
-                sessions[j] = sessionsVec[i];
-                if (sessions[j] > 0) {
-                    j++;
-                }
-            }
-            if (j > 0) {
-                requests->push(new RemoveGeofencesRequest(*this));
-                mLocationAPI->removeGeofences(j, sessions);
-            }
-        }
-
-        free(sessions);
-    }
-    pthread_mutex_unlock(&mMutex);
-}
-
-void LocationAPIClientBase::locAPIGnssNiResponse(uint32_t id, GnssNiResponse response)
-{
-    pthread_mutex_lock(&mMutex);
-    if (mLocationAPI) {
-        RequestQueue* requests = mRequestQueues[REQUEST_NIRESPONSE];
-        if (requests) {
-            delete requests;
-            mRequestQueues[REQUEST_NIRESPONSE] = nullptr;
-        }
-        uint32_t session = id;
-        mLocationAPI->gnssNiResponse(id, response);
-        LOC_LOGI("%s:%d] start new session: %d", __FUNCTION__, __LINE__, session);
-        requests = new RequestQueue(session);
-        requests->push(new GnssNiResponseRequest(*this));
-        mRequestQueues[REQUEST_NIRESPONSE] = requests;
-    }
-    pthread_mutex_unlock(&mMutex);
-}
-
-uint32_t LocationAPIClientBase::locAPIGnssDeleteAidingData(GnssAidingData& data)
-{
-    uint32_t retVal = LOCATION_ERROR_GENERAL_FAILURE;
-    pthread_mutex_lock(&mMutex);
-    if (mLocationControlAPI) {
-        RequestQueue* requests = mRequestQueues[REQUEST_DELETEAIDINGDATA];
-        if (requests) {
-            delete requests;
-            mRequestQueues[REQUEST_DELETEAIDINGDATA] = nullptr;
-        }
-        uint32_t session = mLocationControlAPI->gnssDeleteAidingData(data);
-        LOC_LOGI("%s:%d] start new session: %d", __FUNCTION__, __LINE__, session);
-        requests = new RequestQueue(session);
-        requests->push(new GnssDeleteAidingDataRequest(*this));
-        mRequestQueues[REQUEST_DELETEAIDINGDATA] = requests;
-
-        retVal = LOCATION_ERROR_SUCCESS;
-    }
-    pthread_mutex_unlock(&mMutex);
-
-    return retVal;
-}
-
-uint32_t LocationAPIClientBase::locAPIEnable(LocationTechnologyType techType)
-{
-    uint32_t retVal = LOCATION_ERROR_GENERAL_FAILURE;
-    pthread_mutex_lock(&mMutex);
-    if (mEnabled) {
-        // just return success if already enabled
-        retVal = LOCATION_ERROR_SUCCESS;
-    } else if (mLocationControlAPI) {
-        RequestQueue* requests = mRequestQueues[REQUEST_CONTROL];
-        if (requests) {
-            delete requests;
-            mRequestQueues[REQUEST_CONTROL] = nullptr;
-        }
-        uint32_t session = mLocationControlAPI->enable(techType);
-        LOC_LOGI("%s:%d] start new session: %d", __FUNCTION__, __LINE__, session);
-        requests = new RequestQueue(session);
-        mRequestQueues[REQUEST_CONTROL] = requests;
-        if (requests) {
-            requests->push(new EnableRequest(*this));
-            retVal = LOCATION_ERROR_SUCCESS;
-            mEnabled = true;
-        }
-    }
-    pthread_mutex_unlock(&mMutex);
-
-    return retVal;
-}
-
-void LocationAPIClientBase::locAPIDisable()
-{
-    pthread_mutex_lock(&mMutex);
-    if (mEnabled && mLocationControlAPI) {
-        uint32_t session = 0;
-        RequestQueue* requests = mRequestQueues[REQUEST_CONTROL];
-        if (requests) {
-            session = requests->getSession();
-            if (session > 0) {
-                requests->push(new DisableRequest(*this));
-                mLocationControlAPI->disable(session);
-                mEnabled = false;
-            }
-        }
-    }
-    pthread_mutex_unlock(&mMutex);
-}
-
-uint32_t LocationAPIClientBase::locAPIGnssUpdateConfig(GnssConfig config)
-{
-    uint32_t retVal = LOCATION_ERROR_GENERAL_FAILURE;
-    if (memcmp(&mConfig, &config, sizeof(GnssConfig)) == 0) {
-        LOC_LOGV("%s:%d] GnssConfig is identical to previous call", __FUNCTION__, __LINE__);
-        retVal = LOCATION_ERROR_SUCCESS;
-        return retVal;
-    }
-
-    pthread_mutex_lock(&mMutex);
-    if (mLocationControlAPI) {
-
-        memcpy(&mConfig, &config, sizeof(GnssConfig));
-
-        uint32_t session = 0;
-        RequestQueue* requests = mRequestQueues[REQUEST_CONFIG];
-        uint32_t* idArray = mLocationControlAPI->gnssUpdateConfig(config);
-        LOC_LOGV("%s:%d] gnssUpdateConfig return array: %p", __FUNCTION__, __LINE__, idArray);
-        if (!requests && idArray != nullptr) {
-            requests = new RequestQueue(idArray[0]);
-            mRequestQueues[REQUEST_CONFIG] = requests;
-        }
-        if (requests) {
-            requests->push(new GnssUpdateConfigRequest(*this));
-            retVal = LOCATION_ERROR_SUCCESS;
-        }
-    }
-    pthread_mutex_unlock(&mMutex);
-    return retVal;
-}
-
-void LocationAPIClientBase::beforeGeofenceBreachCb(
-        GeofenceBreachNotification geofenceBreachNotification)
-{
-    if (mGeofenceBreachCallback == nullptr)
-        return;
-    uint32_t* ids = (uint32_t*)malloc(sizeof(uint32_t) * geofenceBreachNotification.count);
-    uint32_t* backup = geofenceBreachNotification.ids;
-    size_t n = geofenceBreachNotification.count;
-
-    size_t count = 0;
-    for (size_t i = 0; i < n; i++) {
-        uint32_t id = mGeofenceBiDict.getId(geofenceBreachNotification.ids[i]);
-        GeofenceBreachTypeMask type = mGeofenceBiDict.getType(geofenceBreachNotification.ids[i]);
-        // if type == 0, we will not head into the fllowing block anyway.
-        // so we don't need to check id and type
-        if ((geofenceBreachNotification.type == GEOFENCE_BREACH_ENTER &&
-            (type & GEOFENCE_BREACH_ENTER_BIT)) ||
-            (geofenceBreachNotification.type == GEOFENCE_BREACH_EXIT &&
-            (type & GEOFENCE_BREACH_EXIT_BIT))
-           ) {
-            ids[count] = id;
-            count++;
-        }
-    }
-    geofenceBreachNotification.count = count;
-    geofenceBreachNotification.ids = ids;
-    mGeofenceBreachCallback(geofenceBreachNotification);
-
-    // restore ids
-    geofenceBreachNotification.ids = backup;
-    geofenceBreachNotification.count = n;
-    free(ids);
-}
-
-void LocationAPIClientBase::onResponseCb(LocationError error, uint32_t id)
-{
-    if (error != LOCATION_ERROR_SUCCESS) {
-        LOC_LOGE("%s:%d] ERROR: %d ID: %d", __FUNCTION__, __LINE__, error, id);
-    } else {
-        LOC_LOGV("%s:%d] error: %d id: %d", __FUNCTION__, __LINE__, error, id);
-    }
-    LocationAPIRequest* request = getRequestBySession(id);
-    if (request) {
-        request->onResponse(error);
-        delete request;
-    }
-}
-
-void LocationAPIClientBase::onCollectiveResponseCb(
-        size_t count, LocationError* errors, uint32_t* ids)
-{
-    for (size_t i = 0; i < count; i++) {
-        if (errors[i] != LOCATION_ERROR_SUCCESS) {
-            LOC_LOGE("%s:%d] ERROR: %d ID: %d", __FUNCTION__, __LINE__, errors[i], ids[i]);
-        } else {
-            LOC_LOGV("%s:%d] error: %d id: %d", __FUNCTION__, __LINE__, errors[i], ids[i]);
-        }
-    }
-    LocationAPIRequest* request = nullptr;
-    pthread_mutex_lock(&mMutex);
-    if (mRequestQueues[REQUEST_GEOFENCE] != nullptr) {
-        request = mRequestQueues[REQUEST_GEOFENCE]->pop();
-    }
-    pthread_mutex_unlock(&mMutex);
-    if (request) {
-        request->onCollectiveResponse(count, errors, ids);
-        delete request;
-    }
-}
-
-void LocationAPIClientBase::onCtrlResponseCb(LocationError error, uint32_t id)
-{
-    if (error != LOCATION_ERROR_SUCCESS) {
-        LOC_LOGE("%s:%d] ERROR: %d ID: %d", __FUNCTION__, __LINE__, error, id);
-    } else {
-        LOC_LOGV("%s:%d] error: %d id: %d", __FUNCTION__, __LINE__, error, id);
-    }
-    LocationAPIRequest* request = getRequestBySession(id);
-    if (request) {
-        request->onResponse(error);
-        delete request;
-    }
-}
-
-void LocationAPIClientBase::onCtrlCollectiveResponseCb(
-        size_t count, LocationError* errors, uint32_t* ids)
-{
-    for (size_t i = 0; i < count; i++) {
-        if (errors[i] != LOCATION_ERROR_SUCCESS) {
-            LOC_LOGE("%s:%d] ERROR: %d ID: %d", __FUNCTION__, __LINE__, errors[i], ids[i]);
-        } else {
-            LOC_LOGV("%s:%d] error: %d id: %d", __FUNCTION__, __LINE__, errors[i], ids[i]);
-        }
-    }
-    LocationAPIRequest* request = nullptr;
-    pthread_mutex_lock(&mMutex);
-    if (mRequestQueues[REQUEST_CONFIG] != nullptr) {
-        request = mRequestQueues[REQUEST_CONFIG]->pop();
-    }
-    pthread_mutex_unlock(&mMutex);
-    if (request) {
-        request->onCollectiveResponse(count, errors, ids);
-        delete request;
-    }
-}
-
-LocationAPIClientBase::LocationAPIRequest*
-LocationAPIClientBase::getRequestBySession(uint32_t session)
-{
-    pthread_mutex_lock(&mMutex);
-    LocationAPIRequest* request = nullptr;
-    for (int i = 0; i < REQUEST_MAX; i++) {
-        if (i != REQUEST_GEOFENCE &&
-                i != REQUEST_CONFIG &&
-                mRequestQueues[i] &&
-                mRequestQueues[i]->getSession() == session) {
-            request = mRequestQueues[i]->pop();
-            break;
-        }
-    }
-    pthread_mutex_unlock(&mMutex);
-    return request;
-}
diff --git a/sdm845/location/LocationAPIClientBase.h b/sdm845/location/LocationAPIClientBase.h
deleted file mode 100644
index 0805d7c..0000000
--- a/sdm845/location/LocationAPIClientBase.h
+++ /dev/null
@@ -1,470 +0,0 @@
-/* Copyright (c) 2017 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 "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 LOCATION_API_CLINET_BASE_H
-#define LOCATION_API_CLINET_BASE_H
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <pthread.h>
-#include <queue>
-#include <map>
-
-#include "LocationAPI.h"
-
-enum SESSION_MODE {
-    SESSION_MODE_NONE = 0,
-    SESSION_MODE_ON_FULL,
-    SESSION_MODE_ON_FIX,
-};
-
-enum REQUEST_TYPE {
-    REQUEST_TRACKING = 0,
-    REQUEST_BATCHING,
-    REQUEST_GEOFENCE,
-    REQUEST_NIRESPONSE,
-    REQUEST_DELETEAIDINGDATA,
-    REQUEST_CONTROL,
-    REQUEST_CONFIG,
-    REQUEST_MAX,
-};
-
-class LocationAPIClientBase
-{
-public:
-    LocationAPIClientBase();
-    virtual ~LocationAPIClientBase();
-    LocationAPIClientBase(const LocationAPIClientBase&) = delete;
-    LocationAPIClientBase& operator=(const LocationAPIClientBase&) = delete;
-
-    void locAPISetCallbacks(LocationCallbacks& locationCallbacks);
-
-    // LocationAPI
-    uint32_t locAPIStartTracking(LocationOptions& options);
-    void locAPIStopTracking();
-    void locAPIUpdateTrackingOptions(LocationOptions& options);
-
-    int32_t locAPIGetBatchSize();
-    uint32_t locAPIStartSession(uint32_t id, uint32_t sessionMode,
-            LocationOptions& options);
-    uint32_t locAPIStopSession(uint32_t id);
-    uint32_t locAPIUpdateSessionOptions(uint32_t id, uint32_t sessionMode,
-            LocationOptions& options);
-    void locAPIGetBatchedLocations(size_t count);
-
-    uint32_t locAPIAddGeofences(size_t count, uint32_t* ids,
-            GeofenceOption* options, GeofenceInfo* data);
-    void locAPIRemoveGeofences(size_t count, uint32_t* ids);
-    void locAPIModifyGeofences(size_t count, uint32_t* ids, GeofenceOption* options);
-    void locAPIPauseGeofences(size_t count, uint32_t* ids);
-    void locAPIResumeGeofences(size_t count, uint32_t* ids, GeofenceBreachTypeMask* mask);
-    void locAPIRemoveAllGeofences();
-
-    void locAPIGnssNiResponse(uint32_t id, GnssNiResponse response);
-    uint32_t locAPIGnssDeleteAidingData(GnssAidingData& data);
-
-    uint32_t locAPIEnable(LocationTechnologyType techType);
-    void locAPIDisable();
-    uint32_t locAPIGnssUpdateConfig(GnssConfig config);
-
-    // callbacks
-    void onResponseCb(LocationError error, uint32_t id);
-    void onCollectiveResponseCb(size_t count, LocationError* errors, uint32_t* ids);
-
-    void onCtrlResponseCb(LocationError error, uint32_t id);
-    void onCtrlCollectiveResponseCb(size_t count, LocationError* errors, uint32_t* ids);
-
-    void beforeGeofenceBreachCb(GeofenceBreachNotification geofenceBreachNotification);
-
-    inline virtual void onCapabilitiesCb(LocationCapabilitiesMask /*capabilitiesMask*/) {}
-    inline virtual void onGnssNmeaCb(GnssNmeaNotification /*gnssNmeaNotification*/) {}
-    inline virtual void onGnssMeasurementsCb(
-            GnssMeasurementsNotification /*gnssMeasurementsNotification*/) {}
-
-    inline virtual void onTrackingCb(Location /*location*/) {}
-    inline virtual void onGnssSvCb(GnssSvNotification /*gnssSvNotification*/) {}
-    inline virtual void onStartTrackingCb(LocationError /*error*/) {}
-    inline virtual void onStopTrackingCb(LocationError /*error*/) {}
-    inline virtual void onUpdateTrackingOptionsCb(LocationError /*error*/) {}
-
-    inline virtual void onGnssLocationInfoCb(
-            GnssLocationInfoNotification /*gnssLocationInfoNotification*/) {}
-
-    inline virtual void onBatchingCb(size_t /*count*/, Location* /*location*/) {}
-    inline virtual void onStartBatchingCb(LocationError /*error*/) {}
-    inline virtual void onStopBatchingCb(LocationError /*error*/) {}
-    inline virtual void onUpdateBatchingOptionsCb(LocationError /*error*/) {}
-    inline virtual void onGetBatchedLocationsCb(LocationError /*error*/) {}
-
-    inline virtual void onGeofenceBreachCb(
-            GeofenceBreachNotification /*geofenceBreachNotification*/) {}
-    inline virtual void onGeofenceStatusCb(
-            GeofenceStatusNotification /*geofenceStatusNotification*/) {}
-    inline virtual void onAddGeofencesCb(
-            size_t /*count*/, LocationError* /*errors*/, uint32_t* /*ids*/) {}
-    inline virtual void onRemoveGeofencesCb(
-            size_t /*count*/, LocationError* /*errors*/, uint32_t* /*ids*/) {}
-    inline virtual void onModifyGeofencesCb(
-            size_t /*count*/, LocationError* /*errors*/, uint32_t* /*ids*/) {}
-    inline virtual void onPauseGeofencesCb(
-            size_t /*count*/, LocationError* /*errors*/, uint32_t* /*ids*/) {}
-    inline virtual void onResumeGeofencesCb(
-            size_t /*count*/, LocationError* /*errors*/, uint32_t* /*ids*/) {}
-
-    inline virtual void onGnssNiCb(uint32_t /*id*/, GnssNiNotification /*gnssNiNotification*/) {}
-    inline virtual void onGnssNiResponseCb(LocationError /*error*/) {}
-    inline virtual void onGnssDeleteAidingDataCb(LocationError /*error*/) {}
-
-    inline virtual void onEnableCb(LocationError /*error*/) {}
-    inline virtual void onDisableCb(LocationError /*error*/) {}
-    inline virtual void onGnssUpdateConfigCb(
-            size_t /*count*/, LocationError* /*errors*/, uint32_t* /*ids*/) {}
-
-private:
-    // private inner classes
-    typedef struct {
-        uint32_t id;
-        uint32_t trackingSession;
-        uint32_t batchingSession;
-        uint32_t sessionMode;
-    } SessionEntity;
-
-    class BiDict {
-    public:
-        BiDict() {
-            pthread_mutex_init(&mBiDictMutex, nullptr);
-        }
-        ~BiDict() {
-            pthread_mutex_destroy(&mBiDictMutex);
-        }
-        bool hasId(uint32_t id) {
-            pthread_mutex_lock(&mBiDictMutex);
-            bool ret = (mForwardMap.find(id) != mForwardMap.end());
-            pthread_mutex_unlock(&mBiDictMutex);
-            return ret;
-        }
-        void set(uint32_t id, uint32_t session, uint32_t type) {
-            pthread_mutex_lock(&mBiDictMutex);
-            mForwardMap[id] = session;
-            mBackwardMap[session] = id;
-            mTypeMap[session] = type;
-            pthread_mutex_unlock(&mBiDictMutex);
-        }
-        void clear() {
-            pthread_mutex_lock(&mBiDictMutex);
-            mForwardMap.clear();
-            mBackwardMap.clear();
-            mTypeMap.clear();
-            pthread_mutex_unlock(&mBiDictMutex);
-        }
-        void rmById(uint32_t id) {
-            pthread_mutex_lock(&mBiDictMutex);
-            mBackwardMap.erase(mForwardMap[id]);
-            mTypeMap.erase(mForwardMap[id]);
-            mForwardMap.erase(id);
-            pthread_mutex_unlock(&mBiDictMutex);
-        }
-        void rmBySession(uint32_t session) {
-            pthread_mutex_lock(&mBiDictMutex);
-            mForwardMap.erase(mBackwardMap[session]);
-            mBackwardMap.erase(session);
-            mTypeMap.erase(session);
-            pthread_mutex_unlock(&mBiDictMutex);
-        }
-        uint32_t getId(uint32_t session) {
-            pthread_mutex_lock(&mBiDictMutex);
-            uint32_t ret = 0;
-            auto it = mBackwardMap.find(session);
-            if (it != mBackwardMap.end()) {
-                ret = it->second;
-            }
-            pthread_mutex_unlock(&mBiDictMutex);
-            return ret;
-        }
-        uint32_t getSession(uint32_t id) {
-            pthread_mutex_lock(&mBiDictMutex);
-            uint32_t ret = 0;
-            auto it = mForwardMap.find(id);
-            if (it != mForwardMap.end()) {
-                ret = it->second;
-            }
-            pthread_mutex_unlock(&mBiDictMutex);
-            return ret;
-        }
-        uint32_t getType(uint32_t session) {
-            pthread_mutex_lock(&mBiDictMutex);
-            uint32_t ret = 0;
-            auto it = mTypeMap.find(session);
-            if (it != mTypeMap.end()) {
-                ret = it->second;
-            }
-            pthread_mutex_unlock(&mBiDictMutex);
-            return ret;
-        }
-        std::vector<uint32_t> getAllSessions() {
-            std::vector<uint32_t> ret;
-            pthread_mutex_lock(&mBiDictMutex);
-            for (auto it = mBackwardMap.begin(); it != mBackwardMap.end(); it++) {
-                ret.push_back(it->first);
-            }
-            pthread_mutex_unlock(&mBiDictMutex);
-            return ret;
-        }
-    private:
-        pthread_mutex_t mBiDictMutex;
-        // mForwarMap mapping id->session
-        std::map<uint32_t, uint32_t> mForwardMap;
-        // mBackwardMap mapping session->id
-        std::map<uint32_t, uint32_t> mBackwardMap;
-        // mTypeMap mapping session->type
-        std::map<uint32_t, uint32_t> mTypeMap;
-    };
-
-    class LocationAPIRequest {
-    public:
-        LocationAPIRequest(LocationAPIClientBase& API) : mAPI(API) {}
-        virtual ~LocationAPIRequest() {}
-        virtual void onResponse(LocationError /*error*/) {};
-        virtual void onCollectiveResponse(
-                size_t /*count*/, LocationError* /*errors*/, uint32_t* /*ids*/) {};
-        LocationAPIClientBase& mAPI;
-    };
-
-    class StartTrackingRequest : public LocationAPIRequest {
-    public:
-        StartTrackingRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onResponse(LocationError error) {
-            mAPI.onStartTrackingCb(error);
-        }
-    };
-
-    class StopTrackingRequest : public LocationAPIRequest {
-    public:
-        StopTrackingRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onResponse(LocationError error) {
-            mAPI.onStopTrackingCb(error);
-        }
-    };
-
-    class UpdateTrackingOptionsRequest : public LocationAPIRequest {
-    public:
-        UpdateTrackingOptionsRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onResponse(LocationError error) {
-            mAPI.onUpdateTrackingOptionsCb(error);
-        }
-    };
-
-    class StartBatchingRequest : public LocationAPIRequest {
-    public:
-        StartBatchingRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onResponse(LocationError error) {
-            mAPI.onStartBatchingCb(error);
-        }
-    };
-
-    class StopBatchingRequest : public LocationAPIRequest {
-    public:
-        StopBatchingRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onResponse(LocationError error) {
-            mAPI.onStopBatchingCb(error);
-        }
-    };
-
-    class UpdateBatchingOptionsRequest : public LocationAPIRequest {
-    public:
-        UpdateBatchingOptionsRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onResponse(LocationError error) {
-            mAPI.onUpdateBatchingOptionsCb(error);
-        }
-    };
-
-    class GetBatchedLocationsRequest : public LocationAPIRequest {
-    public:
-        GetBatchedLocationsRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onResponse(LocationError error) {
-            mAPI.onGetBatchedLocationsCb(error);
-        }
-    };
-
-    class AddGeofencesRequest : public LocationAPIRequest {
-    public:
-        AddGeofencesRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onCollectiveResponse(size_t count, LocationError* errors, uint32_t* sessions) {
-            uint32_t *ids = (uint32_t*)malloc(sizeof(uint32_t) * count);
-            for (size_t i = 0; i < count; i++) {
-                ids[i] = mAPI.mGeofenceBiDict.getId(sessions[i]);
-            }
-            mAPI.onAddGeofencesCb(count, errors, ids);
-            free(ids);
-        }
-    };
-
-    class RemoveGeofencesRequest : public LocationAPIRequest {
-    public:
-        RemoveGeofencesRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onCollectiveResponse(size_t count, LocationError* errors, uint32_t* sessions) {
-            uint32_t *ids = (uint32_t*)malloc(sizeof(uint32_t) * count);
-            for (size_t i = 0; i < count; i++) {
-                ids[i] = mAPI.mGeofenceBiDict.getId(sessions[i]);
-                mAPI.mGeofenceBiDict.rmBySession(sessions[i]);
-            }
-            mAPI.onRemoveGeofencesCb(count, errors, ids);
-            free(ids);
-        }
-    };
-
-    class ModifyGeofencesRequest : public LocationAPIRequest {
-    public:
-        ModifyGeofencesRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onCollectiveResponse(size_t count, LocationError* errors, uint32_t* sessions) {
-            uint32_t *ids = (uint32_t*)malloc(sizeof(uint32_t) * count);
-            for (size_t i = 0; i < count; i++) {
-                ids[i] = mAPI.mGeofenceBiDict.getId(sessions[i]);
-            }
-            mAPI.onModifyGeofencesCb(count, errors, ids);
-            free(ids);
-        }
-    };
-
-    class PauseGeofencesRequest : public LocationAPIRequest {
-    public:
-        PauseGeofencesRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onCollectiveResponse(size_t count, LocationError* errors, uint32_t* sessions) {
-            uint32_t *ids = (uint32_t*)malloc(sizeof(uint32_t) * count);
-            for (size_t i = 0; i < count; i++) {
-                ids[i] = mAPI.mGeofenceBiDict.getId(sessions[i]);
-            }
-            mAPI.onPauseGeofencesCb(count, errors, ids);
-            free(ids);
-        }
-    };
-
-    class ResumeGeofencesRequest : public LocationAPIRequest {
-    public:
-        ResumeGeofencesRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onCollectiveResponse(size_t count, LocationError* errors, uint32_t* sessions) {
-            uint32_t *ids = (uint32_t*)malloc(sizeof(uint32_t) * count);
-            for (size_t i = 0; i < count; i++) {
-                ids[i] = mAPI.mGeofenceBiDict.getId(sessions[i]);
-            }
-            mAPI.onResumeGeofencesCb(count, errors, ids);
-            free(ids);
-        }
-    };
-
-    class GnssNiResponseRequest : public LocationAPIRequest {
-    public:
-        GnssNiResponseRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onResponse(LocationError error) {
-            mAPI.onGnssNiResponseCb(error);
-        }
-    };
-
-    class GnssDeleteAidingDataRequest : public LocationAPIRequest {
-    public:
-        GnssDeleteAidingDataRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onResponse(LocationError error) {
-            mAPI.onGnssDeleteAidingDataCb(error);
-        }
-    };
-
-    class EnableRequest : public LocationAPIRequest {
-    public:
-        EnableRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onResponse(LocationError error) {
-            mAPI.onEnableCb(error);
-        }
-    };
-
-    class DisableRequest : public LocationAPIRequest {
-    public:
-        DisableRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onResponse(LocationError error) {
-            mAPI.onDisableCb(error);
-        }
-    };
-
-    class GnssUpdateConfigRequest : public LocationAPIRequest {
-    public:
-        GnssUpdateConfigRequest(LocationAPIClientBase& API) : LocationAPIRequest(API) {}
-        inline void onCollectiveResponse(size_t count, LocationError* errors, uint32_t* ids) {
-            mAPI.onGnssUpdateConfigCb(count, errors, ids);
-        }
-    };
-
-    class RequestQueue {
-    public:
-        RequestQueue(uint32_t session): mSession(session) {
-        }
-        ~RequestQueue() {
-            LocationAPIRequest* request = nullptr;
-            while (!mQueue.empty()) {
-                request = mQueue.front();
-                mQueue.pop();
-                delete request;
-            }
-        }
-        void push(LocationAPIRequest* request) {
-            mQueue.push(request);
-        }
-        LocationAPIRequest* pop() {
-            LocationAPIRequest* request = nullptr;
-            if (!mQueue.empty()) {
-                request = mQueue.front();
-                mQueue.pop();
-            }
-            return request;
-        }
-        uint32_t getSession() { return mSession; }
-    private:
-        uint32_t mSession;
-        std::queue<LocationAPIRequest*> mQueue;
-    };
-
-    LocationAPIRequest* getRequestBySession(uint32_t session);
-
-private:
-    pthread_mutex_t mMutex;
-
-    trackingCallback mTrackingCallback;
-    batchingCallback mBatchingCallback;
-    geofenceBreachCallback mGeofenceBreachCallback;
-
-    LocationAPI* mLocationAPI;
-    LocationControlAPI* mLocationControlAPI;
-
-    BiDict mGeofenceBiDict;
-    RequestQueue* mRequestQueues[REQUEST_MAX];
-    std::map<uint32_t, SessionEntity> mSessionMap;
-    int32_t mBatchSize;
-    bool mEnabled;
-
-    GnssConfig mConfig;
-};
-
-#endif /* LOCATION_API_CLINET_BASE_H */
diff --git a/sdm845/location/location_interface.h b/sdm845/location/location_interface.h
deleted file mode 100644
index 86febd3..0000000
--- a/sdm845/location/location_interface.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright (c) 2017 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 "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 LOCATION_INTERFACE_H
-#define LOCATION_INTERFACE_H
-
-#include <LocationAPI.h>
-
-struct GnssInterface {
-    size_t size;
-    void (*initialize)(void);
-    void (*deinitialize)(void);
-    void (*addClient)(LocationAPI* client, const LocationCallbacks& callbacks);
-    void (*removeClient)(LocationAPI* client);
-    void (*requestCapabilities)(LocationAPI* client);
-    uint32_t (*startTracking)(LocationAPI* client, LocationOptions& options);
-    void (*updateTrackingOptions)(LocationAPI* client, uint32_t id, LocationOptions& options);
-    void (*stopTracking)(LocationAPI* client, uint32_t id);
-    void (*gnssNiResponse)(LocationAPI* client, uint32_t id, GnssNiResponse response);
-    void (*setControlCallbacks)(LocationControlCallbacks& controlCallbacks);
-    uint32_t (*enable)(LocationTechnologyType techType);
-    void (*disable)(uint32_t id);
-    uint32_t* (*gnssUpdateConfig)(GnssConfig config);
-    uint32_t (*gnssDeleteAidingData)(GnssAidingData& data);
-    void (*injectLocation)(double latitude, double longitude, float accuracy);
-    void (*injectTime)(int64_t time, int64_t timeReference, int32_t uncertainty);
-    void (*agpsInit)(void* statusV4Cb);
-    void (*agpsDataConnOpen)(short agpsType, const char* apnName, int apnLen, int ipType);
-    void (*agpsDataConnClosed)(short agpsType);
-    void (*agpsDataConnFailed)(short agpsType);
-    void (*getDebugReport)(GnssDebugReport& report);
-};
-
-struct FlpInterface {
-    size_t size;
-    void (*initialize)(void);
-    void (*deinitialize)(void);
-    void (*addClient)(LocationAPI* client, const LocationCallbacks& callbacks);
-    void (*removeClient)(LocationAPI* client);
-    void (*requestCapabilities)(LocationAPI* client);
-    uint32_t (*startTracking)(LocationAPI* client, LocationOptions& options);
-    void (*updateTrackingOptions)(LocationAPI* client, uint32_t id, LocationOptions& options);
-    void (*stopTracking)(LocationAPI* client, uint32_t id);
-    uint32_t (*startBatching)(LocationAPI* client, LocationOptions&);
-    void (*stopBatching)(LocationAPI* client, uint32_t id);
-    void (*updateBatchingOptions)(LocationAPI* client, uint32_t id, LocationOptions&);
-    void (*getBatchedLocations)(LocationAPI* client, uint32_t id, size_t count);
-    void (*getPowerStateChanges)(void* powerStateCb);
-};
-
-struct GeofenceInterface {
-    size_t size;
-    void (*initialize)(void);
-    void (*deinitialize)(void);
-    void (*addClient)(LocationAPI* client, const LocationCallbacks& callbacks);
-    void (*removeClient)(LocationAPI* client);
-    void (*requestCapabilities)(LocationAPI* client);
-    uint32_t* (*addGeofences)(LocationAPI* client, size_t count, GeofenceOption*, GeofenceInfo*);
-    void (*removeGeofences)(LocationAPI* client, size_t count, uint32_t* ids);
-    void (*modifyGeofences)(LocationAPI* client, size_t count, uint32_t* ids,
-                            GeofenceOption* options);
-    void (*pauseGeofences)(LocationAPI* client, size_t count, uint32_t* ids);
-    void (*resumeGeofences)(LocationAPI* client, size_t count, uint32_t* ids);
-};
-
-#endif /* LOCATION_INTERFACE_H */
diff --git a/sdm845/utils/Android.mk b/sdm845/utils/Android.mk
deleted file mode 100644
index ef1e5e1..0000000
--- a/sdm845/utils/Android.mk
+++ /dev/null
@@ -1,78 +0,0 @@
-ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),)
-ifneq ($(BUILD_TINY_ANDROID),true)
-#Compile this library only for builds with the latest modem image
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-
-## Libs
-LOCAL_SHARED_LIBRARIES := \
-    libutils \
-    libcutils \
-    liblog \
-    libloc_pla
-
-LOCAL_SRC_FILES += \
-    loc_log.cpp \
-    loc_cfg.cpp \
-    msg_q.c \
-    linked_list.c \
-    loc_target.cpp \
-    platform_lib_abstractions/elapsed_millis_since_boot.cpp \
-    LocHeap.cpp \
-    LocTimer.cpp \
-    LocThread.cpp \
-    MsgTask.cpp \
-    loc_misc_utils.cpp \
-    loc_nmea.cpp
-
-# Flag -std=c++11 is not accepted by compiler when LOCAL_CLANG is set to true
-LOCAL_CFLAGS += \
-     -fno-short-enums \
-     -D_ANDROID_
-
-ifeq ($(TARGET_BUILD_VARIANT),user)
-   LOCAL_CFLAGS += -DTARGET_BUILD_VARIANT_USER
-endif
-
-LOCAL_LDFLAGS += -Wl,--export-dynamic
-
-## Includes
-LOCAL_C_INCLUDES:= \
-    $(TARGET_OUT_HEADERS)/libloc_pla \
-    $(TARGET_OUT_HEADERS)/liblocation_api \
-
-LOCAL_COPY_HEADERS_TO:= gps.utils/
-LOCAL_COPY_HEADERS:= \
-   loc_log.h \
-   loc_cfg.h \
-   log_util.h \
-   linked_list.h \
-   msg_q.h \
-   MsgTask.h \
-   LocHeap.h \
-   LocThread.h \
-   LocTimer.h \
-   loc_target.h \
-   loc_timer.h \
-   LocSharedLock.h \
-   loc_misc_utils.h \
-   loc_nmea.h \
-   gps_extended_c.h \
-   gps_extended.h \
-   loc_gps.h
-
-LOCAL_MODULE := libgps.utils
-LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib
-LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR)/lib64
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_PRELINK_MODULE := false
-
-include $(BUILD_SHARED_LIBRARY)
-
-include $(addsuffix /Android.mk, $(addprefix $(LOCAL_PATH)/, platform_lib_abstractions))
-endif # not BUILD_TINY_ANDROID
-endif # BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE
diff --git a/sdm845/utils/LocHeap.cpp b/sdm845/utils/LocHeap.cpp
deleted file mode 100644
index d667f14..0000000
--- a/sdm845/utils/LocHeap.cpp
+++ /dev/null
@@ -1,354 +0,0 @@
-/* Copyright (c) 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 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 "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 <LocHeap.h>
-
-class LocHeapNode {
-    friend class LocHeap;
-
-    // size of of the subtree, excluding self, 1 if no subtree
-    int mSize;
-    LocHeapNode* mLeft;
-    LocHeapNode* mRight;
-    LocRankable* mData;
-public:
-    inline LocHeapNode(LocRankable& data) :
-        mSize(1), mLeft(NULL), mRight(NULL), mData(&data) {}
-    ~LocHeapNode();
-
-    // this only swaps the data of the two nodes, so no
-    // detach / re-attached is necessary
-    void swap(LocHeapNode& node);
-
-    LocRankable* detachData();
-
-    // push a node into the tree stucture, keeping sorted by rank
-    void push(LocHeapNode& node);
-
-    // pop the head node out of the tree stucture. keeping sorted by rank
-    static LocHeapNode* pop(LocHeapNode*& top);
-
-    // remove a specific node from the tree
-    // returns the pointer to the node removed, which would be either the
-    //         same as input (if successfully removed); or NULL (if failed).
-    static LocHeapNode* remove(LocHeapNode*& top, LocRankable& data);
-
-    // convenience method to compare data ranking
-    inline bool outRanks(LocHeapNode& node) { return mData->outRanks(*node.mData); }
-    inline bool outRanks(LocRankable& data) { return mData->outRanks(data); }
-
-    // checks if mSize is correct, AND this node is the highest ranking
-    // of the entire subtree
-    bool checkNodes();
-
-    inline int getSize() { return mSize; }
-};
-
-inline
-LocHeapNode::~LocHeapNode() {
-    if (mLeft) {
-        delete mLeft;
-        mLeft = NULL;
-    }
-    if (mRight) {
-        delete mRight;
-        mRight = NULL;
-    }
-    if (mData) {
-        mData = NULL;
-    }
-}
-
-inline
-void LocHeapNode::swap(LocHeapNode& node) {
-    LocRankable* tmpData = node.mData;
-    node.mData = mData;
-    mData = tmpData;
-}
-
-inline
-LocRankable* LocHeapNode::detachData()  {
-    LocRankable* data = mData;
-    mData = NULL;
-    return data;
-}
-
-// push keeps the tree sorted by rank, it also tries to balance the
-// tree by adding the new node to the smaller of the subtrees.
-// The pointer to the tree and internal links never change. If the
-// mData of tree top ranks lower than that of the incoming node,
-// mData will be swapped with that of the incoming node to ensure
-// ranking, no restructuring the container nodes.
-void LocHeapNode::push(LocHeapNode& node) {
-    // ensure the current node ranks higher than in the incoming one
-    if (node.outRanks(*this)) {
-        swap(node);
-    }
-
-    // now drop the new node (ensured lower than *this) into a subtree
-    if (NULL == mLeft) {
-        mLeft = &node;
-    } else if (NULL == mRight) {
-        mRight = &node;
-    } else if (mLeft->mSize <= mRight->mSize) {
-        mLeft->push(node);
-    } else {
-        mRight->push(node);
-    }
-    mSize++;
-}
-
-// pop keeps the tree sorted by rank, but it does not try to balance
-// the tree. It recursively swaps with the higher ranked top of the
-// subtrees.
-// The return is a popped out node from leaf level, that has the data
-// swapped all the way down from the top. The pinter to the tree and
-// internal links will not be changed or restructured, except for the
-// node that is popped out.
-// If the return pointer == this, this the last node in the tree.
-LocHeapNode* LocHeapNode::pop(LocHeapNode*& top) {
-    // we know the top has the highest ranking at this point, else
-    // the tree is broken. This top will be popped out.  But we need
-    // a node from the left or right child, whichever ranks higher,
-    // to replace the current top. This then will need to be done
-    // recursively to the leaf level. So we swap the mData of the
-    // current top node all the way down to the leaf level.
-    LocHeapNode* poppedNode = top;
-    // top is losing a node in its subtree
-    top->mSize--;
-    if (top->mLeft || top->mRight) {
-        // if mLeft is NULL, mRight for sure is NOT NULL, take that;
-        // else if mRight is NULL, mLeft for sure is NOT, take that;
-        // else we take the address of whatever has higher ranking mData
-        LocHeapNode*& subTop = (NULL == top->mLeft) ? top->mRight :
-            ((NULL == top->mRight) ? top->mLeft :
-             (top->mLeft->outRanks(*(top->mRight)) ? top->mLeft : top->mRight));
-        // swap mData, the tree top gets updated with the new data.
-        top->swap(*subTop);
-        // pop out from the subtree
-        poppedNode = pop(subTop);
-    } else {
-        // if the top has only single node
-        // detach the poppedNode from the tree
-        // subTop is the reference of ether mLeft or mRight
-        // NOT a local stack pointer. so it MUST be NULL'ed here.
-        top = NULL;
-    }
-
-    return poppedNode;
-}
-
-// navigating through the tree and find the node that hass the input
-// data. Since this is a heap, we do recursive linear search.
-// returns the pointer to the node removed, which would be either the
-//         same as input (if successfully removed); or NULL (if failed).
-LocHeapNode* LocHeapNode::remove(LocHeapNode*& top, LocRankable& data) {
-    LocHeapNode* removedNode = NULL;
-    // this is the node, by address
-    if (&data == (LocRankable*)(top->mData)) {
-        // pop this node out
-        removedNode = pop(top);
-    } else if (!data.outRanks(*top->mData)) {
-        // subtrees might have this node
-        if (top->mLeft) {
-            removedNode = remove(top->mLeft, data);
-        }
-        // if we did not find in mLeft, and mRight is not empty
-        if (!removedNode && top->mRight) {
-            removedNode = remove(top->mRight, data);
-        }
-
-        // top lost a node in its subtree
-        if (removedNode) {
-            top->mSize--;
-        }
-    }
-
-    return removedNode;
-}
-
-// checks if mSize is correct, AND this node is the highest ranking
-// of the entire subtree
-bool LocHeapNode::checkNodes() {
-    // size of the current subtree
-    int totalSize = mSize;
-    if (mLeft) {
-        // check the consistency of left subtree
-        if (mLeft->outRanks(*this) || !mLeft->checkNodes()) {
-            return false;
-        }
-        // subtract the size of left subtree (with subtree head)
-        totalSize -= mLeft->mSize;
-    }
-
-    if (mRight) {
-        // check the consistency of right subtree
-        if (mRight->outRanks(*this) || !mRight->checkNodes()) {
-            return false;
-        }
-        // subtract the size of right subtree (with subtree head)
-        totalSize -= mRight->mSize;
-    }
-
-    // for the tree nodes to consistent, totalSize must be 1 now
-    return totalSize == 1;
-}
-
-LocHeap::~LocHeap() {
-    if (mTree) {
-        delete mTree;
-    }
-}
-
-void LocHeap::push(LocRankable& node) {
-    LocHeapNode* heapNode = new LocHeapNode(node);
-    if (!mTree) {
-        mTree = heapNode;
-    } else {
-        mTree->push(*heapNode);
-    }
-}
-
-LocRankable* LocHeap::peek() {
-    LocRankable* top = NULL;
-    if (mTree) {
-        top = mTree->mData;
-    }
-    return top;
-}
-
-LocRankable* LocHeap::pop() {
-    LocRankable* locNode = NULL;
-    if (mTree) {
-        // mTree may become NULL after this call
-        LocHeapNode* heapNode = LocHeapNode::pop(mTree);
-        locNode = heapNode->detachData();
-        delete heapNode;
-    }
-    return locNode;
-}
-
-LocRankable* LocHeap::remove(LocRankable& rankable) {
-    LocRankable* locNode = NULL;
-    if (mTree) {
-        // mTree may become NULL after this call
-        LocHeapNode* heapNode = LocHeapNode::remove(mTree, rankable);
-        if (heapNode) {
-            locNode = heapNode->detachData();
-            delete heapNode;
-        }
-    }
-    return locNode;
-}
-
-#ifdef __LOC_UNIT_TEST__
-bool LocHeap::checkTree() {
-    return ((NULL == mTree) || mTree->checkNodes());
-}
-uint32_t LocHeap::getTreeSize() {
-    return (NULL == mTree) ? 0 : mTree->getSize();
-}
-#endif
-
-#ifdef __LOC_DEBUG__
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-class LocHeapDebug : public LocHeap {
-public:
-    bool checkTree() {
-        return ((NULL == mTree) || mTree->checkNodes());
-    }
-
-    uint32_t getTreeSize() {
-        return (NULL == mTree) ? 0 : (mTree->getSize());
-    }
-};
-
-class LocHeapDebugData : public LocRankable {
-    const int mID;
-public:
-    LocHeapDebugData(int id) : mID(id) {}
-    inline virtual int ranks(LocRankable& rankable) {
-        LocHeapDebugData* testData = dynamic_cast<LocHeapDebugData*>(&rankable);
-        return testData->mID - mID;
-    }
-};
-
-// For Linux command line testing:
-// compilation: g++ -D__LOC_HOST_DEBUG__ -D__LOC_DEBUG__ -g -I. -I../../../../vendor/qcom/proprietary/gps-internal/unit-tests/fakes_for_host -I../../../../system/core/include LocHeap.cpp
-// test: valgrind --leak-check=full ./a.out 100
-int main(int argc, char** argv) {
-    srand(time(NULL));
-    int tries = atoi(argv[1]);
-    int checks = tries >> 3;
-    LocHeapDebug heap;
-    int treeSize = 0;
-
-    for (int i = 0; i < tries; i++) {
-        if (i % checks == 0 && !heap.checkTree()) {
-            printf("tree check failed before %dth op\n", i);
-        }
-        int r = rand();
-
-        if (r & 1) {
-            LocHeapDebugData* data = new LocHeapDebugData(r >> 1);
-            heap.push(dynamic_cast<LocRankable&>(*data));
-            treeSize++;
-        } else {
-            LocRankable* rankable = heap.pop();
-            if (rankable) {
-                delete rankable;
-            }
-            treeSize ? treeSize-- : 0;
-        }
-
-        printf("%s: %d == %d\n", (r&1)?"push":"pop", treeSize, heap.getTreeSize());
-        if (treeSize != heap.getTreeSize()) {
-            printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
-            tries = i+1;
-            break;
-        }
-    }
-
-    if (!heap.checkTree()) {
-        printf("!!!!!!!!!!tree check failed at the end after %d ops!!!!!!!\n", tries);
-    } else {
-        printf("success!\n");
-    }
-
-    for (LocRankable* data = heap.pop(); NULL != data; data = heap.pop()) {
-        delete data;
-    }
-
-    return 0;
-}
-
-#endif
diff --git a/sdm845/utils/LocHeap.h b/sdm845/utils/LocHeap.h
deleted file mode 100644
index b491948..0000000
--- a/sdm845/utils/LocHeap.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (c) 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 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 "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 __LOC_HEAP__
-#define __LOC_HEAP__
-
-#include <stddef.h>
-#include <string.h>
-
-// abstract class to be implemented by client to provide a rankable class
-class LocRankable {
-public:
-    virtual inline ~LocRankable() {}
-
-    // method to rank objects of such type for sorting purposes.
-    // The pointer of the input node would be stored in the heap.
-    // >0 if ranks higher than the input;
-    // ==0 if equally ranks with the input;
-    // <0 if ranks lower than the input
-    virtual int ranks(LocRankable& rankable) = 0;
-
-    // convenient method to rank objects of such type for sorting purposes.
-    inline bool outRanks(LocRankable& rankable) { return ranks(rankable) > 0; }
-};
-
-// opaque class to provide service implementation.
-class LocHeapNode;
-
-// a heap whose left and right children are not sorted. It is sorted only vertically,
-// i.e. parent always ranks higher than children, if they exist. Ranking algorithm is
-// implemented in Rankable. The reason that there is no sort between children is to
-// help beter balance the tree with lower cost. When a node is pushed to the tree,
-// it is guaranteed that the subtree that is smaller gets to have the new node.
-class LocHeap {
-protected:
-    LocHeapNode* mTree;
-public:
-    inline LocHeap() : mTree(NULL) {}
-    ~LocHeap();
-
-    // push keeps the tree sorted by rank, it also tries to balance the
-    // tree by adding the new node to the smaller of the subtrees.
-    // node is reference to an obj that is managed by client, that client
-    //      creates and destroyes. The destroy should happen after the
-    //      node is popped out from the heap.
-    void push(LocRankable& node);
-
-    // Peeks the node data on tree top, which has currently the highest ranking
-    // There is no change the tree structure with this operation
-    // Returns NULL if the tree is empty, otherwise pointer to the node data of
-    //         the tree top.
-    LocRankable* peek();
-
-    // pop keeps the tree sorted by rank, but it does not try to balance
-    // the tree.
-    // Return - pointer to the node popped out, or NULL if heap is already empty
-    LocRankable* pop();
-
-    // navigating through the tree and find the node that ranks the same
-    // as the input data, then remove it from the tree. Rank is implemented
-    // by rankable obj.
-    // returns the pointer to the node removed; or NULL (if failed).
-    LocRankable* remove(LocRankable& rankable);
-
-#ifdef __LOC_UNIT_TEST__
-    bool checkTree();
-    uint32_t getTreeSize();
-#endif
-};
-
-#endif //__LOC_HEAP__
diff --git a/sdm845/utils/LocSharedLock.h b/sdm845/utils/LocSharedLock.h
deleted file mode 100644
index 7fe6237..0000000
--- a/sdm845/utils/LocSharedLock.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (c) 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 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 "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 __LOC_SHARED_LOCK__
-#define __LOC_SHARED_LOCK__
-
-#include <stddef.h>
-#include <cutils/atomic.h>
-#include <pthread.h>
-
-// This is a utility created for use cases such that there are more than
-// one client who need to share the same lock, but it is not predictable
-// which of these clients is to last to go away. This shared lock deletes
-// itself when the last client calls its drop() method. To add a cient,
-// this share lock's share() method has to be called, so that the obj
-// can maintain an accurate client count.
-class LocSharedLock {
-    volatile int32_t mRef;
-    pthread_mutex_t mMutex;
-    inline ~LocSharedLock() { pthread_mutex_destroy(&mMutex); }
-public:
-    // first client to create this LockSharedLock
-    inline LocSharedLock() : mRef(1) { pthread_mutex_init(&mMutex, NULL); }
-    // following client(s) are to *share()* this lock created by the first client
-    inline LocSharedLock* share() { android_atomic_inc(&mRef); return this; }
-    // whe a client no longer needs this shared lock, drop() shall be called.
-    inline void drop() { if (1 == android_atomic_dec(&mRef)) delete this; }
-    // locking the lock to enter critical section
-    inline void lock() { pthread_mutex_lock(&mMutex); }
-    // unlocking the lock to leave the critical section
-    inline void unlock() { pthread_mutex_unlock(&mMutex); }
-};
-
-#endif //__LOC_SHARED_LOCK__
diff --git a/sdm845/utils/LocThread.cpp b/sdm845/utils/LocThread.cpp
deleted file mode 100644
index 685841e..0000000
--- a/sdm845/utils/LocThread.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-/* Copyright (c) 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 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 "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 <LocThread.h>
-#include <string.h>
-#include <pthread.h>
-#include <platform_lib_macros.h>
-
-class LocThreadDelegate {
-    LocRunnable* mRunnable;
-    bool mJoinable;
-    pthread_t mThandle;
-    pthread_mutex_t mMutex;
-    int mRefCount;
-    ~LocThreadDelegate();
-    LocThreadDelegate(LocThread::tCreate creator, const char* threadName,
-                      LocRunnable* runnable, bool joinable);
-    void destroy();
-public:
-    static LocThreadDelegate* create(LocThread::tCreate creator,
-            const char* threadName, LocRunnable* runnable, bool joinable);
-    void stop();
-    // bye() is for the parent thread to go away. if joinable,
-    // parent must stop the spawned thread, join, and then
-    // destroy(); if detached, the parent can go straight
-    // ahead to destroy()
-    inline void bye() { mJoinable ? stop() : destroy(); }
-    inline bool isRunning() { return (NULL != mRunnable); }
-    static void* threadMain(void* arg);
-};
-
-// it is important to note that internal members must be
-// initialized to values as if pthread_create succeeds.
-// This is to avoid the race condition between the threads,
-// once the thread is created, some of these values will
-// be check in the spawned thread, and must set correctly
-// then and there.
-// However, upon pthread_create failure, the data members
-// must be set to  indicate failure, e.g. mRunnable, and
-// threashold approprietly for destroy(), e.g. mRefCount.
-LocThreadDelegate::LocThreadDelegate(LocThread::tCreate creator,
-        const char* threadName, LocRunnable* runnable, bool joinable) :
-    mRunnable(runnable), mJoinable(joinable), mThandle(NULL),
-    mMutex(PTHREAD_MUTEX_INITIALIZER), mRefCount(2) {
-
-    // set up thread name, if nothing is passed in
-    if (!threadName) {
-        threadName = "LocThread";
-    }
-
-    // create the thread here, then if successful
-    // and a name is given, we set the thread name
-    if (creator) {
-        mThandle = creator(threadName, threadMain, this);
-    } else if (pthread_create(&mThandle, NULL, threadMain, this)) {
-        // pthread_create() failed
-        mThandle = NULL;
-    }
-
-    if (mThandle) {
-        // set thread name
-        char lname[16];
-        int len = (sizeof(lname)>sizeof(threadName)) ?
-          (sizeof(threadName) -1):(sizeof(lname) - 1);
-        memcpy(lname, threadName, len);
-        lname[len] = 0;
-        // set the thread name here
-        pthread_setname_np(mThandle, lname);
-
-        // detach, if not joinable
-        if (!joinable) {
-            pthread_detach(mThandle);
-        }
-    } else {
-        // must set these values upon failure
-        mRunnable = NULL;
-        mJoinable = false;
-        mRefCount = 1;
-    }
-}
-
-inline
-LocThreadDelegate::~LocThreadDelegate() {
-    // at this point nothing should need done any more
-}
-
-// factory method so that we could return NULL upon failure
-LocThreadDelegate* LocThreadDelegate::create(LocThread::tCreate creator,
-        const char* threadName, LocRunnable* runnable, bool joinable) {
-    LocThreadDelegate* thread = NULL;
-    if (runnable) {
-        thread = new LocThreadDelegate(creator, threadName, runnable, joinable);
-        if (thread && !thread->isRunning()) {
-            thread->destroy();
-            thread = NULL;
-        }
-    }
-
-    return thread;
-}
-
-// The order is importang
-// NULLing mRunnalbe stops the while loop in threadMain()
-// join() if mJoinble must come before destroy() call, as
-// the obj must remain alive at this time so that mThandle
-// remains valud.
-void LocThreadDelegate::stop() {
-    // mRunnable and mJoinable are reset on different triggers.
-    // mRunnable may get nulled on the spawned thread's way out;
-    //           or here.
-    // mJouinable (if ever been true) gets falsed when client
-    //            thread triggers stop, with either a stop()
-    //            call or the client releases thread obj handle.
-    if (mRunnable) {
-        mRunnable = NULL;
-    }
-    if (mJoinable) {
-        mJoinable = false;
-        pthread_join(mThandle, NULL);
-    }
-    // call destroy() to possibly delete the obj
-    destroy();
-}
-
-// method for clients to call to release the obj
-// when it is a detached thread, the client thread
-// and the spawned thread can both try to destroy()
-// asynchronously. And we delete this obj when
-// mRefCount becomes 0.
-void LocThreadDelegate::destroy() {
-    // else case shouldn't happen, unless there is a
-    // leaking obj. But only our code here has such
-    // obj, so if we test our code well, else case
-    // will never happen
-    if (mRefCount > 0) {
-        // we need a flag on the stack
-        bool callDelete = false;
-
-        // critical section between threads
-        pthread_mutex_lock(&mMutex);
-        // last destroy() call
-        callDelete = (1 == mRefCount--);
-        pthread_mutex_unlock(&mMutex);
-
-        // upon last destroy() call we delete this obj
-        if (callDelete) {
-            delete this;
-        }
-    }
-}
-
-void* LocThreadDelegate::threadMain(void* arg) {
-    LocThreadDelegate* locThread = (LocThreadDelegate*)(arg);
-
-    if (locThread) {
-        LocRunnable* runnable = locThread->mRunnable;
-
-        if (runnable) {
-            if (locThread->isRunning()) {
-                runnable->prerun();
-            }
-
-            while (locThread->isRunning() && runnable->run());
-
-            if (locThread->isRunning()) {
-                runnable->postrun();
-            }
-
-            // at this time, locThread->mRunnable may or may not be NULL
-            // NULL it just to be safe and clean, as we want the field
-            // in the released memory slot to be NULL.
-            locThread->mRunnable = NULL;
-            delete runnable;
-        }
-        locThread->destroy();
-    }
-
-    return NULL;
-}
-
-LocThread::~LocThread() {
-    if (mThread) {
-        mThread->bye();
-        mThread = NULL;
-    }
-}
-
-bool LocThread::start(tCreate creator, const char* threadName, LocRunnable* runnable, bool joinable) {
-    bool success = false;
-    if (!mThread) {
-        mThread = LocThreadDelegate::create(creator, threadName, runnable, joinable);
-        // true only if thread is created successfully
-        success = (NULL != mThread);
-    }
-    return success;
-}
-
-void LocThread::stop() {
-    if (mThread) {
-        mThread->stop();
-        mThread = NULL;
-    }
-}
-
-#ifdef __LOC_DEBUG__
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-class LocRunnableTest1 : public LocRunnable {
-    int mID;
-public:
-    LocRunnableTest1(int id) : LocRunnable(), mID(id) {}
-    virtual bool run() {
-        printf("LocRunnableTest1: %d\n", mID++);
-        sleep(1);
-        return true;
-    }
-};
-
-// on linux command line:
-// compile: g++ -D__LOC_HOST_DEBUG__ -D__LOC_DEBUG__ -g -std=c++0x -I. -I../../../../vendor/qcom/proprietary/gps-internal/unit-tests/fakes_for_host -I../../../../system/core/include -lpthread LocThread.cpp
-// test detached thread: valgrind ./a.out 0
-// test joinable thread: valgrind ./a.out 1
-int main(int argc, char** argv) {
-    LocRunnableTest1 test(10);
-
-    LocThread thread;
-    thread.start("LocThreadTest", test, atoi(argv[1]));
-
-    sleep(10);
-
-    thread.stop();
-
-    sleep(5);
-
-    return 0;
-}
-
-#endif
diff --git a/sdm845/utils/LocThread.h b/sdm845/utils/LocThread.h
deleted file mode 100644
index 2a65d8f..0000000
--- a/sdm845/utils/LocThread.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright (c) 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 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 "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 __LOC_THREAD__
-#define __LOC_THREAD__
-
-#include <stddef.h>
-#include <pthread.h>
-
-// abstract class to be implemented by client to provide a runnable class
-// which gets scheduled by LocThread
-class LocRunnable {
-public:
-    inline LocRunnable() {}
-    inline virtual ~LocRunnable() {}
-
-    // The method to be implemented by thread clients
-    // and be scheduled by LocThread
-    // This method will be repeated called until it returns false; or
-    // until thread is stopped.
-    virtual bool run() = 0;
-
-    // The method to be run before thread loop (conditionally repeatedly)
-    // calls run()
-    inline virtual void prerun() {}
-
-    // The method to be run after thread loop (conditionally repeatedly)
-    // calls run()
-    inline virtual void postrun() {}
-};
-
-// opaque class to provide service implementation.
-class LocThreadDelegate;
-
-// A utility class to create a thread and run LocRunnable
-// caller passes in.
-class LocThread {
-    LocThreadDelegate* mThread;
-public:
-    inline LocThread() : mThread(NULL) {}
-    virtual ~LocThread();
-
-    typedef pthread_t (*tCreate)(const char* name, void* (*start)(void*), void* arg);
-    // client starts thread with a runnable, which implements
-    // the logics to fun in the created thread context.
-    // The thread could be either joinable or detached.
-    // runnable is an obj managed by client. Client creates and
-    //          frees it (but must be after stop() is called, or
-    //          this LocThread obj is deleted).
-    //          The obj will be deleted by LocThread if start()
-    //          returns true. Else it is client's responsibility
-    //          to delete the object
-    // Returns 0 if success; false if failure.
-    bool start(tCreate creator, const char* threadName, LocRunnable* runnable, bool joinable = true);
-    inline bool start(const char* threadName, LocRunnable* runnable, bool joinable = true) {
-        return start(NULL, threadName, runnable, joinable);
-    }
-
-    // NOTE: if this is a joinable thread, this stop may block
-    // for a while until the thread is joined.
-    void stop();
-
-    // thread status check
-    inline bool isRunning() { return NULL != mThread; }
-};
-
-#endif //__LOC_THREAD__
diff --git a/sdm845/utils/LocTimer.cpp b/sdm845/utils/LocTimer.cpp
deleted file mode 100644
index c08bd35..0000000
--- a/sdm845/utils/LocTimer.cpp
+++ /dev/null
@@ -1,749 +0,0 @@
-/* Copyright (c) 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 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 "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 <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <errno.h>
-#include <loc_timer.h>
-#include <sys/timerfd.h>
-#include <sys/epoll.h>
-#include <LocTimer.h>
-#include <LocHeap.h>
-#include <LocThread.h>
-#include <LocSharedLock.h>
-#include <MsgTask.h>
-
-#ifdef __HOST_UNIT_TEST__
-#define EPOLLWAKEUP 0
-#define CLOCK_BOOTTIME CLOCK_MONOTONIC
-#define CLOCK_BOOTTIME_ALARM CLOCK_MONOTONIC
-#endif
-
-/*
-There are implementations of 5 classes in this file:
-LocTimer, LocTimerDelegate, LocTimerContainer, LocTimerPollTask, LocTimerWrapper
-
-LocTimer - client front end, interface for client to start / stop timers, also
-           to provide a callback.
-LocTimerDelegate - an internal timer entity, which also is a LocRankable obj.
-                   Its life cycle is different than that of LocTimer. It gets
-                   created when LocTimer::start() is called, and gets deleted
-                   when it expires or clients calls the hosting LocTimer obj's
-                   stop() method. When a LocTimerDelegate obj is ticking, it
-                   stays in the corresponding LocTimerContainer. When expired
-                   or stopped, the obj is removed from the container. Since it
-                   is also a LocRankable obj, and LocTimerContainer also is a
-                   heap, its ranks() implementation decides where it is placed
-                   in the heap.
-LocTimerContainer - core of the timer service. It is a container (derived from
-                    LocHeap) for LocTimerDelegate (implements LocRankable) objs.
-                    There are 2 of such containers, one for sw timers (or Linux
-                    timers) one for hw timers (or Linux alarms). It adds one of
-                    each (those that expire the soonest) to kernel via services
-                    provided by LocTimerPollTask. All the heap management on the
-                    LocTimerDelegate objs are done in the MsgTask context, such
-                    that synchronization is ensured.
-LocTimerPollTask - is a class that wraps timerfd and epoll POXIS APIs. It also
-                   both implements LocRunnalbe with epoll_wait() in the run()
-                   method. It is also a LocThread client, so as to loop the run
-                   method.
-LocTimerWrapper - a LocTimer client itself, to implement the existing C API with
-                  APIs, loc_timer_start() and loc_timer_stop().
-
-*/
-
-class LocTimerPollTask;
-
-// This is a multi-functaional class that:
-// * extends the LocHeap class for the detection of head update upon add / remove
-//   events. When that happens, soonest time out changes, so timerfd needs update.
-// * contains the timers, and add / remove them into the heap
-// * provides and maps 2 of such containers, one for timers (or  mSwTimers), one
-//   for alarms (or mHwTimers);
-// * provides a polling thread;
-// * provides a MsgTask thread for synchronized add / remove / timer client callback.
-class LocTimerContainer : public LocHeap {
-    // mutex to synchronize getters of static members
-    static pthread_mutex_t mMutex;
-    // Container of timers
-    static LocTimerContainer* mSwTimers;
-    // Container of alarms
-    static LocTimerContainer* mHwTimers;
-    // Msg task to provider msg Q, sender and reader.
-    static MsgTask* mMsgTask;
-    // Poll task to provide epoll call and threading to poll.
-    static LocTimerPollTask* mPollTask;
-    // timer / alarm fd
-    int mDevFd;
-    // ctor
-    LocTimerContainer(bool wakeOnExpire);
-    // dtor
-    ~LocTimerContainer();
-    static MsgTask* getMsgTaskLocked();
-    static LocTimerPollTask* getPollTaskLocked();
-    // extend LocHeap and pop if the top outRanks input
-    LocTimerDelegate* popIfOutRanks(LocTimerDelegate& timer);
-    // update the timer POSIX calls with updated soonest timer spec
-    void updateSoonestTime(LocTimerDelegate* priorTop);
-
-public:
-    // factory method to control the creation of mSwTimers / mHwTimers
-    static LocTimerContainer* get(bool wakeOnExpire);
-
-    LocTimerDelegate* getSoonestTimer();
-    int getTimerFd();
-    // add a timer / alarm obj into the container
-    void add(LocTimerDelegate& timer);
-    // remove a timer / alarm obj from the container
-    void remove(LocTimerDelegate& timer);
-    // handling of timer / alarm expiration
-    void expire();
-};
-
-// This class implements the polling thread that epolls imer / alarm fds.
-// The LocRunnable::run() contains the actual polling.  The other methods
-// will be run in the caller's thread context to add / remove timer / alarm
-// fds the kernel, while the polling is blocked on epoll_wait() call.
-// Since the design is that we have maximally 2 polls, one for all the
-// timers; one for all the alarms, we will poll at most on 2 fds.  But it
-// is possile that all we have are only timers or alarms at one time, so we
-// allow dynamically add / remove fds we poll on. The design decision of
-// having 1 fd per container of timer / alarm is such that, we may not need
-// to make a system call each time a timer / alarm is added / removed, unless
-// that changes the "soonest" time out of that of all the timers / alarms.
-class LocTimerPollTask : public LocRunnable {
-    // the epoll fd
-    const int mFd;
-    // the thread that calls run() method
-    LocThread* mThread;
-    friend class LocThreadDelegate;
-    // dtor
-    ~LocTimerPollTask();
-public:
-    // ctor
-    LocTimerPollTask();
-    // this obj will be deleted once thread is deleted
-    void destroy();
-    // add a container of timers. Each contain has a unique device fd, i.e.
-    // either timer or alarm fd, and a heap of timers / alarms. It is expected
-    // that container would have written to the device fd with the soonest
-    // time out value in the heap at the time of calling this method. So all
-    // this method does is to add the fd of the input container to the poll
-    // and also add the pointer of the container to the event data ptr, such
-    // when poll_wait wakes up on events, we know who is the owner of the fd.
-    void addPoll(LocTimerContainer& timerContainer);
-    // remove a fd that is assciated with a container. The expectation is that
-    // the atual timer would have been removed from the container.
-    void removePoll(LocTimerContainer& timerContainer);
-    // The polling thread context will call this method. This is where
-    // epoll_wait() is blocking and waiting for events..
-    virtual bool run();
-};
-
-// Internal class of timer obj. It gets born when client calls LocTimer::start();
-// and gets deleted when client calls LocTimer::stop() or when the it expire()'s.
-// This class implements LocRankable::ranks() so that when an obj is added into
-// the container (of LocHeap), it gets placed in sorted order.
-class LocTimerDelegate : public LocRankable {
-    friend class LocTimerContainer;
-    friend class LocTimer;
-    LocTimer* mClient;
-    LocSharedLock* mLock;
-    struct timespec mFutureTime;
-    LocTimerContainer* mContainer;
-    // not a complete obj, just ctor for LocRankable comparisons
-    inline LocTimerDelegate(struct timespec& delay)
-        : mClient(NULL), mLock(NULL), mFutureTime(delay), mContainer(NULL) {}
-    inline ~LocTimerDelegate() { if (mLock) { mLock->drop(); mLock = NULL; } }
-public:
-    LocTimerDelegate(LocTimer& client, struct timespec& futureTime, LocTimerContainer* container);
-    void destroyLocked();
-    // LocRankable virtual method
-    virtual int ranks(LocRankable& rankable);
-    void expire();
-    inline struct timespec getFutureTime() { return mFutureTime; }
-};
-
-/***************************LocTimerContainer methods***************************/
-
-// Most of these static recources are created on demand. They however are never
-// destoyed. The theory is that there are processes that link to this util lib
-// but never use timer, then these resources would never need to be created.
-// For those processes that do use timer, it will likely also need to every
-// once in a while. It might be cheaper keeping them around.
-pthread_mutex_t LocTimerContainer::mMutex = PTHREAD_MUTEX_INITIALIZER;
-LocTimerContainer* LocTimerContainer::mSwTimers = NULL;
-LocTimerContainer* LocTimerContainer::mHwTimers = NULL;
-MsgTask* LocTimerContainer::mMsgTask = NULL;
-LocTimerPollTask* LocTimerContainer::mPollTask = NULL;
-
-// ctor - initialize timer heaps
-// A container for swTimer (timer) is created, when wakeOnExpire is true; or
-// HwTimer (alarm), when wakeOnExpire is false.
-LocTimerContainer::LocTimerContainer(bool wakeOnExpire) :
-    mDevFd(timerfd_create(wakeOnExpire ? CLOCK_BOOTTIME_ALARM : CLOCK_BOOTTIME, 0)) {
-
-    if ((-1 == mDevFd) && (errno == EINVAL)) {
-        LOC_LOGW("%s: timerfd_create failure, fallback to CLOCK_MONOTONIC - %s",
-            __FUNCTION__, strerror(errno));
-        mDevFd = timerfd_create(CLOCK_MONOTONIC, 0);
-    }
-
-    if (-1 != mDevFd) {
-        // ensure we have the necessary resources created
-        LocTimerContainer::getPollTaskLocked();
-        LocTimerContainer::getMsgTaskLocked();
-    } else {
-        LOC_LOGE("%s: timerfd_create failure - %s", __FUNCTION__, strerror(errno));
-    }
-}
-
-// dtor
-// we do not ever destroy the static resources.
-inline
-LocTimerContainer::~LocTimerContainer() {
-    close(mDevFd);
-}
-
-LocTimerContainer* LocTimerContainer::get(bool wakeOnExpire) {
-    // get the reference of either mHwTimer or mSwTimers per wakeOnExpire
-    LocTimerContainer*& container = wakeOnExpire ? mHwTimers : mSwTimers;
-    // it is cheap to check pointer first than locking mutext unconditionally
-    if (!container) {
-        pthread_mutex_lock(&mMutex);
-        // let's check one more time to be safe
-        if (!container) {
-            container = new LocTimerContainer(wakeOnExpire);
-            // timerfd_create failure
-            if (-1 == container->getTimerFd()) {
-                delete container;
-                container = NULL;
-            }
-        }
-        pthread_mutex_unlock(&mMutex);
-    }
-    return container;
-}
-
-MsgTask* LocTimerContainer::getMsgTaskLocked() {
-    // it is cheap to check pointer first than locking mutext unconditionally
-    if (!mMsgTask) {
-        mMsgTask = new MsgTask("LocTimerMsgTask", false);
-    }
-    return mMsgTask;
-}
-
-LocTimerPollTask* LocTimerContainer::getPollTaskLocked() {
-    // it is cheap to check pointer first than locking mutext unconditionally
-    if (!mPollTask) {
-        mPollTask = new LocTimerPollTask();
-    }
-    return mPollTask;
-}
-
-inline
-LocTimerDelegate* LocTimerContainer::getSoonestTimer() {
-    return (LocTimerDelegate*)(peek());
-}
-
-inline
-int LocTimerContainer::getTimerFd() {
-    return mDevFd;
-}
-
-void LocTimerContainer::updateSoonestTime(LocTimerDelegate* priorTop) {
-    LocTimerDelegate* curTop = getSoonestTimer();
-
-    // check if top has changed
-    if (curTop != priorTop) {
-        struct itimerspec delay = {0};
-        bool toSetTime = false;
-        // if tree is empty now, we remove poll and disarm timer
-        if (!curTop) {
-            mPollTask->removePoll(*this);
-            // setting the values to disarm timer
-            delay.it_value.tv_sec = 0;
-            delay.it_value.tv_nsec = 0;
-            toSetTime = true;
-        } else if (!priorTop || curTop->outRanks(*priorTop)) {
-            // do this first to avoid race condition, in case settime is called
-            // with too small an interval
-            mPollTask->addPoll(*this);
-            delay.it_value = curTop->getFutureTime();
-            toSetTime = true;
-        }
-        if (toSetTime) {
-            timerfd_settime(getTimerFd(), TFD_TIMER_ABSTIME, &delay, NULL);
-        }
-    }
-}
-
-// all the heap management is done in the MsgTask context.
-inline
-void LocTimerContainer::add(LocTimerDelegate& timer) {
-    struct MsgTimerPush : public LocMsg {
-        LocTimerContainer* mTimerContainer;
-        LocHeapNode* mTree;
-        LocTimerDelegate* mTimer;
-        inline MsgTimerPush(LocTimerContainer& container, LocTimerDelegate& timer) :
-            LocMsg(), mTimerContainer(&container), mTimer(&timer) {}
-        inline virtual void proc() const {
-            LocTimerDelegate* priorTop = mTimerContainer->getSoonestTimer();
-            mTimerContainer->push((LocRankable&)(*mTimer));
-            mTimerContainer->updateSoonestTime(priorTop);
-        }
-    };
-
-    mMsgTask->sendMsg(new MsgTimerPush(*this, timer));
-}
-
-// all the heap management is done in the MsgTask context.
-void LocTimerContainer::remove(LocTimerDelegate& timer) {
-    struct MsgTimerRemove : public LocMsg {
-        LocTimerContainer* mTimerContainer;
-        LocTimerDelegate* mTimer;
-        inline MsgTimerRemove(LocTimerContainer& container, LocTimerDelegate& timer) :
-            LocMsg(), mTimerContainer(&container), mTimer(&timer) {}
-        inline virtual void proc() const {
-            LocTimerDelegate* priorTop = mTimerContainer->getSoonestTimer();
-
-            // update soonest timer only if mTimer is actually removed from
-            // mTimerContainer AND mTimer is not priorTop.
-            if (priorTop == ((LocHeap*)mTimerContainer)->remove((LocRankable&)*mTimer)) {
-                // if passing in NULL, we tell updateSoonestTime to update
-                // kernel with the current top timer interval.
-                mTimerContainer->updateSoonestTime(NULL);
-            }
-            // all timers are deleted here, and only here.
-            delete mTimer;
-        }
-    };
-
-    mMsgTask->sendMsg(new MsgTimerRemove(*this, timer));
-}
-
-// all the heap management is done in the MsgTask context.
-// Upon expire, we check and continuously pop the heap until
-// the top node's timeout is in the future.
-void LocTimerContainer::expire() {
-    struct MsgTimerExpire : public LocMsg {
-        LocTimerContainer* mTimerContainer;
-        inline MsgTimerExpire(LocTimerContainer& container) :
-            LocMsg(), mTimerContainer(&container) {}
-        inline virtual void proc() const {
-            struct timespec now;
-            // get time spec of now
-            clock_gettime(CLOCK_BOOTTIME, &now);
-            LocTimerDelegate timerOfNow(now);
-            // pop everything in the heap that outRanks now, i.e. has time older than now
-            // and then call expire() on that timer.
-            for (LocTimerDelegate* timer = (LocTimerDelegate*)mTimerContainer->pop();
-                 NULL != timer;
-                 timer = mTimerContainer->popIfOutRanks(timerOfNow)) {
-                // the timer delegate obj will be deleted before the return of this call
-                timer->expire();
-            }
-            mTimerContainer->updateSoonestTime(NULL);
-        }
-    };
-
-    struct itimerspec delay = {0};
-    timerfd_settime(getTimerFd(), TFD_TIMER_ABSTIME, &delay, NULL);
-    mPollTask->removePoll(*this);
-    mMsgTask->sendMsg(new MsgTimerExpire(*this));
-}
-
-LocTimerDelegate* LocTimerContainer::popIfOutRanks(LocTimerDelegate& timer) {
-    LocTimerDelegate* poppedNode = NULL;
-    if (mTree && !timer.outRanks(*peek())) {
-        poppedNode = (LocTimerDelegate*)(pop());
-    }
-
-    return poppedNode;
-}
-
-
-/***************************LocTimerPollTask methods***************************/
-
-inline
-LocTimerPollTask::LocTimerPollTask()
-    : mFd(epoll_create(2)), mThread(new LocThread()) {
-    // before a next call returens, a thread will be created. The run() method
-    // could already be running in parallel. Also, since each of the objs
-    // creates a thread, the container will make sure that there will be only
-    // one of such obj for our timer implementation.
-    if (!mThread->start("LocTimerPollTask", this)) {
-        delete mThread;
-        mThread = NULL;
-    }
-}
-
-inline
-LocTimerPollTask::~LocTimerPollTask() {
-    // when fs is closed, epoll_wait() should fail run() should return false
-    // and the spawned thread should exit.
-    close(mFd);
-}
-
-void LocTimerPollTask::destroy() {
-    if (mThread) {
-        LocThread* thread = mThread;
-        mThread = NULL;
-        delete thread;
-    } else {
-        delete this;
-    }
-}
-
-void LocTimerPollTask::addPoll(LocTimerContainer& timerContainer) {
-    struct epoll_event ev;
-    memset(&ev, 0, sizeof(ev));
-
-    ev.events = EPOLLIN | EPOLLWAKEUP;
-    ev.data.fd = timerContainer.getTimerFd();
-    // it is important that we set this context pointer with the input
-    // timer container this is how we know which container should handle
-    // which expiration.
-    ev.data.ptr = &timerContainer;
-
-    epoll_ctl(mFd, EPOLL_CTL_ADD, timerContainer.getTimerFd(), &ev);
-}
-
-inline
-void LocTimerPollTask::removePoll(LocTimerContainer& timerContainer) {
-    epoll_ctl(mFd, EPOLL_CTL_DEL, timerContainer.getTimerFd(), NULL);
-}
-
-// The polling thread context will call this method. If run() method needs to
-// be repetitvely called, it must return true from the previous call.
-bool LocTimerPollTask::run() {
-    struct epoll_event ev[2];
-
-    // we have max 2 descriptors to poll from
-    int fds = epoll_wait(mFd, ev, 2, -1);
-
-    // we pretty much want to continually poll until the fd is closed
-    bool rerun = (fds > 0) || (errno == EINTR);
-
-    if (fds > 0) {
-        // we may have 2 events
-        for (int i = 0; i < fds; i++) {
-            // each fd has a context pointer associated with the right timer container
-            LocTimerContainer* container = (LocTimerContainer*)(ev[i].data.ptr);
-            if (container) {
-                container->expire();
-            } else {
-                epoll_ctl(mFd, EPOLL_CTL_DEL, ev[i].data.fd, NULL);
-            }
-        }
-    }
-
-    // if rerun is true, we are requesting to be scheduled again
-    return rerun;
-}
-
-/***************************LocTimerDelegate methods***************************/
-
-inline
-LocTimerDelegate::LocTimerDelegate(LocTimer& client,
-                                   struct timespec& futureTime,
-                                   LocTimerContainer* container)
-    : mClient(&client),
-      mLock(mClient->mLock->share()),
-      mFutureTime(futureTime),
-      mContainer(container) {
-    // adding the timer into the container
-    mContainer->add(*this);
-}
-
-inline
-void LocTimerDelegate::destroyLocked() {
-    // client handle will likely be deleted soon after this
-    // method returns. Nulling this handle so that expire()
-    // won't call the callback on the dead handle any more.
-    mClient = NULL;
-
-    if (mContainer) {
-        LocTimerContainer* container = mContainer;
-        mContainer = NULL;
-        if (container) {
-            container->remove(*this);
-        }
-    } // else we do not do anything. No such *this* can be
-      // created and reached here with mContainer ever been
-      // a non NULL. So *this* must have reached the if clause
-      // once, and we want it reach there only once.
-}
-
-int LocTimerDelegate::ranks(LocRankable& rankable) {
-    int rank = -1;
-    LocTimerDelegate* timer = (LocTimerDelegate*)(&rankable);
-    if (timer) {
-        // larger time ranks lower!!!
-        // IOW, if input obj has bigger tv_sec/tv_nsec, this obj outRanks higher
-        rank = timer->mFutureTime.tv_sec - mFutureTime.tv_sec;
-        if(0 == rank)
-        {
-            //rank against tv_nsec for msec accuracy
-            rank = (int)(timer->mFutureTime.tv_nsec - mFutureTime.tv_nsec);
-        }
-    }
-    return rank;
-}
-
-inline
-void LocTimerDelegate::expire() {
-    // keeping a copy of client pointer to be safe
-    // when timeOutCallback() is called at the end of this
-    // method, *this* obj may be already deleted.
-    LocTimer* client = mClient;
-    // force a stop, which will lead to delete of this obj
-    if (client && client->stop()) {
-        // calling client callback with a pointer save on the stack
-        // only if stop() returns true, i.e. it hasn't been stopped
-        // already.
-        client->timeOutCallback();
-    }
-}
-
-
-/***************************LocTimer methods***************************/
-LocTimer::LocTimer() : mTimer(NULL), mLock(new LocSharedLock()) {
-}
-
-LocTimer::~LocTimer() {
-    stop();
-    if (mLock) {
-        mLock->drop();
-        mLock = NULL;
-    }
-}
-
-bool LocTimer::start(unsigned int timeOutInMs, bool wakeOnExpire) {
-    bool success = false;
-    mLock->lock();
-    if (!mTimer) {
-        struct timespec futureTime;
-        clock_gettime(CLOCK_BOOTTIME, &futureTime);
-        futureTime.tv_sec += timeOutInMs / 1000;
-        futureTime.tv_nsec += (timeOutInMs % 1000) * 1000000;
-        if (futureTime.tv_nsec >= 1000000000) {
-            futureTime.tv_sec += futureTime.tv_nsec / 1000000000;
-            futureTime.tv_nsec %= 1000000000;
-        }
-
-        LocTimerContainer* container;
-        container = LocTimerContainer::get(wakeOnExpire);
-        if (NULL != container) {
-            mTimer = new LocTimerDelegate(*this, futureTime, container);
-            // if mTimer is non 0, success should be 0; or vice versa
-        }
-        success = (NULL != mTimer);
-    }
-    mLock->unlock();
-    return success;
-}
-
-bool LocTimer::stop() {
-    bool success = false;
-    mLock->lock();
-    if (mTimer) {
-        LocTimerDelegate* timer = mTimer;
-        mTimer = NULL;
-        if (timer) {
-            timer->destroyLocked();
-            success = true;
-        }
-    }
-    mLock->unlock();
-    return success;
-}
-
-/***************************LocTimerWrapper methods***************************/
-//////////////////////////////////////////////////////////////////////////
-// This section below wraps for the C style APIs
-//////////////////////////////////////////////////////////////////////////
-class LocTimerWrapper : public LocTimer {
-    loc_timer_callback mCb;
-    void* mCallerData;
-    LocTimerWrapper* mMe;
-    static pthread_mutex_t mMutex;
-    inline ~LocTimerWrapper() { mCb = NULL; mMe = NULL; }
-public:
-    inline LocTimerWrapper(loc_timer_callback cb, void* callerData) :
-        mCb(cb), mCallerData(callerData), mMe(this) {
-    }
-    void destroy() {
-        pthread_mutex_lock(&mMutex);
-        if (NULL != mCb && this == mMe) {
-            delete this;
-        }
-        pthread_mutex_unlock(&mMutex);
-    }
-    virtual void timeOutCallback() {
-        loc_timer_callback cb = mCb;
-        void* callerData = mCallerData;
-        if (cb) {
-            cb(callerData, 0);
-        }
-        destroy();
-    }
-};
-
-pthread_mutex_t LocTimerWrapper::mMutex = PTHREAD_MUTEX_INITIALIZER;
-
-void* loc_timer_start(uint64_t msec, loc_timer_callback cb_func,
-                      void *caller_data, bool wake_on_expire)
-{
-    LocTimerWrapper* locTimerWrapper = NULL;
-
-    if (cb_func) {
-        locTimerWrapper = new LocTimerWrapper(cb_func, caller_data);
-
-        if (locTimerWrapper) {
-            locTimerWrapper->start(msec, wake_on_expire);
-        }
-    }
-
-    return locTimerWrapper;
-}
-
-void loc_timer_stop(void*&  handle)
-{
-    if (handle) {
-        LocTimerWrapper* locTimerWrapper = (LocTimerWrapper*)(handle);
-        locTimerWrapper->destroy();
-        handle = NULL;
-    }
-}
-
-//////////////////////////////////////////////////////////////////////////
-// This section above wraps for the C style APIs
-//////////////////////////////////////////////////////////////////////////
-
-#ifdef __LOC_DEBUG__
-
-double getDeltaSeconds(struct timespec from, struct timespec to) {
-    return (double)to.tv_sec + (double)to.tv_nsec / 1000000000
-        - from.tv_sec - (double)from.tv_nsec / 1000000000;
-}
-
-struct timespec getNow() {
-    struct timespec now;
-    clock_gettime(CLOCK_BOOTTIME, &now);
-    return now;
-}
-
-class LocTimerTest : public LocTimer, public LocRankable {
-    int mTimeOut;
-    const struct timespec mTimeOfBirth;
-    inline struct timespec getTimerWrapper(int timeout) {
-        struct timespec now;
-        clock_gettime(CLOCK_BOOTTIME, &now);
-        now.tv_sec += timeout;
-        return now;
-    }
-public:
-    inline LocTimerTest(int timeout) : LocTimer(), LocRankable(),
-            mTimeOut(timeout), mTimeOfBirth(getTimerWrapper(0)) {}
-    inline virtual int ranks(LocRankable& rankable) {
-        LocTimerTest* timer = dynamic_cast<LocTimerTest*>(&rankable);
-        return timer->mTimeOut - mTimeOut;
-    }
-    inline virtual void timeOutCallback() {
-        printf("timeOutCallback() - ");
-        deviation();
-    }
-    double deviation() {
-        struct timespec now = getTimerWrapper(0);
-        double delta = getDeltaSeconds(mTimeOfBirth, now);
-        printf("%lf: %lf\n", delta, delta * 100 / mTimeOut);
-        return delta / mTimeOut;
-    }
-};
-
-// For Linux command line testing:
-// compilation:
-//     g++ -D__LOC_HOST_DEBUG__ -D__LOC_DEBUG__ -g -I. -I../../../../system/core/include -o LocHeap.o LocHeap.cpp
-//     g++ -D__LOC_HOST_DEBUG__ -D__LOC_DEBUG__ -g -std=c++0x -I. -I../../../../system/core/include -lpthread -o LocThread.o LocThread.cpp
-//     g++ -D__LOC_HOST_DEBUG__ -D__LOC_DEBUG__ -g -I. -I../../../../system/core/include -o LocTimer.o LocTimer.cpp
-int main(int argc, char** argv) {
-    struct timespec timeOfStart=getNow();
-    srand(time(NULL));
-    int tries = atoi(argv[1]);
-    int checks = tries >> 3;
-    LocTimerTest** timerArray = new LocTimerTest*[tries];
-    memset(timerArray, NULL, tries);
-
-    for (int i = 0; i < tries; i++) {
-        int r = rand() % tries;
-        LocTimerTest* timer = new LocTimerTest(r);
-        if (timerArray[r]) {
-            if (!timer->stop()) {
-                printf("%lf:\n", getDeltaSeconds(timeOfStart, getNow()));
-                printf("ERRER: %dth timer, id %d, not running when it should be\n", i, r);
-                exit(0);
-            } else {
-                printf("stop() - %d\n", r);
-                delete timer;
-                timerArray[r] = NULL;
-            }
-        } else {
-            if (!timer->start(r, false)) {
-                printf("%lf:\n", getDeltaSeconds(timeOfStart, getNow()));
-                printf("ERRER: %dth timer, id %d, running when it should not be\n", i, r);
-                exit(0);
-            } else {
-                printf("stop() - %d\n", r);
-                timerArray[r] = timer;
-            }
-        }
-    }
-
-    for (int i = 0; i < tries; i++) {
-        if (timerArray[i]) {
-            if (!timerArray[i]->stop()) {
-                printf("%lf:\n", getDeltaSeconds(timeOfStart, getNow()));
-                printf("ERRER: %dth timer, not running when it should be\n", i);
-                exit(0);
-            } else {
-                printf("stop() - %d\n", i);
-                delete timerArray[i];
-                timerArray[i] = NULL;
-            }
-        }
-    }
-
-    delete[] timerArray;
-
-    return 0;
-}
-
-#endif
diff --git a/sdm845/utils/LocTimer.h b/sdm845/utils/LocTimer.h
deleted file mode 100644
index c6a6362..0000000
--- a/sdm845/utils/LocTimer.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright (c) 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 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 "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 __LOC_TIMER_CPP_H__
-#define __LOC_TIMER_CPP_H__
-
-#include <stddef.h>
-#include <platform_lib_includes.h>
-
-// opaque class to provide service implementation.
-class LocTimerDelegate;
-class LocSharedLock;
-
-// LocTimer client must extend this class and implementthe callback.
-// start() / stop() methods are to arm / disarm timer.
-class LocTimer
-{
-    LocTimerDelegate* mTimer;
-    LocSharedLock* mLock;
-    // don't really want mLock to be manipulated by clients, yet LocTimer
-    // has to have a reference to the lock so that the delete of LocTimer
-    // and LocTimerDelegate can work together on their share resources.
-    friend class LocTimerDelegate;
-
-public:
-    LocTimer();
-    virtual ~LocTimer();
-
-    // timeOutInMs:  timeout delay in ms
-    // wakeOnExpire: true if to wake up CPU (if sleeping) upon timer
-    //                        expiration and notify the client.
-    //               false if to wait until next time CPU wakes up (if
-    //                        sleeping) and then notify the client.
-    // return:       true on success;
-    //               false on failure, e.g. timer is already running.
-    bool start(uint32_t timeOutInMs, bool wakeOnExpire);
-
-    // return:       true on success;
-    //               false on failure, e.g. timer is not running.
-    bool stop();
-
-    //  LocTimer client Should implement this method.
-    //  This method is used for timeout calling back to client. This method
-    //  should be short enough (eg: send a message to your own thread).
-    virtual void timeOutCallback() = 0;
-};
-
-#endif //__LOC_DELAY_H__
diff --git a/sdm845/utils/Makefile.am b/sdm845/utils/Makefile.am
deleted file mode 100644
index 14c3e48..0000000
--- a/sdm845/utils/Makefile.am
+++ /dev/null
@@ -1,62 +0,0 @@
-AM_CFLAGS = -Wundef \
-         -I./ \
-         $(LOCPLA_CFLAGS)
-
-AM_CPPFLAGS = -Wundef \
-         -I./ \
-         $(LOCPLA_CFLAGS)
-
-libgps_utils_so_la_h_sources = \
-        msg_q.h \
-        linked_list.h \
-        loc_cfg.h \
-        loc_log.h \
-        loc_target.h \
-        loc_timer.h \
-        MsgTask.h \
-        LocHeap.h \
-        LocThread.h \
-        LocTimer.h \
-        loc_misc_utils.h \
-        loc_nmea.h \
-        gps_extended_c.h \
-        gps_extended.h \
-        loc_gps.h
-
-libgps_utils_so_la_c_sources = \
-        linked_list.c \
-        msg_q.c \
-        loc_cfg.cpp \
-        loc_log.cpp \
-        loc_target.cpp \
-        LocHeap.cpp \
-        LocTimer.cpp \
-        LocThread.cpp \
-        MsgTask.cpp \
-        loc_misc_utils.cpp \
-        loc_nmea.cpp
-
-
-library_include_HEADERS = $(libgps_utils_so_la_h_sources)
-
-libgps_utils_so_la_SOURCES = $(libgps_utils_so_la_c_sources)
-
-if USE_GLIB
-libgps_utils_so_la_CFLAGS = -DUSE_GLIB $(AM_CFLAGS) @GLIB_CFLAGS@
-libgps_utils_so_la_LDFLAGS = -lstdc++ -Wl,-z,defs -lpthread @GLIB_LIBS@ -shared -version-info 1:0:0
-libgps_utils_so_la_CPPFLAGS = -DUSE_GLIB $(AM_CFLAGS) $(AM_CPPFLAGS) @GLIB_CFLAGS@
-else
-libgps_utils_so_la_CFLAGS = $(AM_CFLAGS)
-libgps_utils_so_la_LDFLAGS = -Wl,-z,defs -lpthread -shared -version-info 1:0:0
-libgps_utils_so_la_CPPFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS)
-endif
-
-libgps_utils_so_la_LIBADD = -lcutils -lstdc++ -llog $(LOCPLA_LIBS)
-
-#Create and Install libraries
-lib_LTLIBRARIES = libgps_utils_so.la
-library_includedir = $(pkgincludedir)
-pkgconfigdir = $(libdir)/pkgconfig
-
-pkgconfig_DATA = gps-utils.pc
-EXTRA_DIST = $(pkgconfig_DATA)
diff --git a/sdm845/utils/MsgTask.cpp b/sdm845/utils/MsgTask.cpp
deleted file mode 100644
index 80abeec..0000000
--- a/sdm845/utils/MsgTask.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright (c) 2011-2013, 2015, 2017The 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 "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.
- *
- */
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_MsgTask"
-
-#include <unistd.h>
-#include <MsgTask.h>
-#include <msg_q.h>
-#include <loc_log.h>
-#include <platform_lib_includes.h>
-
-static void LocMsgDestroy(void* msg) {
-    delete (LocMsg*)msg;
-}
-
-MsgTask::MsgTask(LocThread::tCreate tCreator,
-                 const char* threadName, bool joinable) :
-    mQ(msg_q_init2()), mThread(new LocThread()) {
-    if (!mThread->start(tCreator, threadName, this, joinable)) {
-        delete mThread;
-        mThread = NULL;
-    }
-}
-
-MsgTask::MsgTask(const char* threadName, bool joinable) :
-    mQ(msg_q_init2()), mThread(new LocThread()) {
-    if (!mThread->start(threadName, this, joinable)) {
-        delete mThread;
-        mThread = NULL;
-    }
-}
-
-MsgTask::~MsgTask() {
-    msg_q_flush((void*)mQ);
-    msg_q_destroy((void**)&mQ);
-}
-
-void MsgTask::destroy() {
-    LocThread* thread = mThread;
-    msg_q_unblock((void*)mQ);
-    if (thread) {
-        mThread = NULL;
-        delete thread;
-    } else {
-        delete this;
-    }
-}
-
-void MsgTask::sendMsg(const LocMsg* msg) const {
-    if (msg) {
-        msg_q_snd((void*)mQ, (void*)msg, LocMsgDestroy);
-    } else {
-        LOC_LOGE("%s: msg is NULL", __func__);
-    }
-}
-
-void MsgTask::prerun() {
-    // make sure we do not run in background scheduling group
-     platform_lib_abstraction_set_sched_policy(platform_lib_abstraction_gettid(), PLA_SP_FOREGROUND);
-}
-
-bool MsgTask::run() {
-    LocMsg* msg;
-    msq_q_err_type result = msg_q_rcv((void*)mQ, (void **)&msg);
-    if (eMSG_Q_SUCCESS != result) {
-        LOC_LOGE("%s:%d] fail receiving msg: %s\n", __func__, __LINE__,
-                 loc_get_msg_q_status(result));
-        return false;
-    }
-
-    msg->log();
-    // there is where each individual msg handling is invoked
-    msg->proc();
-
-    delete msg;
-
-    return true;
-}
diff --git a/sdm845/utils/MsgTask.h b/sdm845/utils/MsgTask.h
deleted file mode 100644
index 9eb1f56..0000000
--- a/sdm845/utils/MsgTask.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (c) 2011-2013,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 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 "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 __MSG_TASK__
-#define __MSG_TASK__
-
-#include <LocThread.h>
-
-struct LocMsg {
-    inline LocMsg() {}
-    inline virtual ~LocMsg() {}
-    virtual void proc() const = 0;
-    inline virtual void log() const {}
-};
-
-class MsgTask : public LocRunnable {
-    const void* mQ;
-    LocThread* mThread;
-    friend class LocThreadDelegate;
-protected:
-    virtual ~MsgTask();
-public:
-    MsgTask(LocThread::tCreate tCreator, const char* threadName = NULL, bool joinable = true);
-    MsgTask(const char* threadName = NULL, bool joinable = true);
-    // this obj will be deleted once thread is deleted
-    void destroy();
-    void sendMsg(const LocMsg* msg) const;
-    // Overrides of LocRunnable methods
-    // This method will be repeated called until it returns false; or
-    // until thread is stopped.
-    virtual bool run();
-
-    // The method to be run before thread loop (conditionally repeatedly)
-    // calls run()
-    virtual void prerun();
-
-    // The method to be run after thread loop (conditionally repeatedly)
-    // calls run()
-    inline virtual void postrun() {}
-};
-
-#endif //__MSG_TASK__
diff --git a/sdm845/utils/configure.ac b/sdm845/utils/configure.ac
deleted file mode 100644
index a7ab9b4..0000000
--- a/sdm845/utils/configure.ac
+++ /dev/null
@@ -1,59 +0,0 @@
-# configure.ac -- Autoconf script for gps gps-utils
-#
-# Process this file with autoconf to produce a configure script
-
-# Requires autoconf tool later than 2.61
-AC_PREREQ(2.61)
-# Initialize the gps gps-utils package version 1.0.0
-AC_INIT([gps-utils],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
-
-PKG_CHECK_MODULES([LOCPLA], [loc-pla])
-AC_SUBST([LOCPLA_CFLAGS])
-AC_SUBST([LOCPLA_LIBS])
-
-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 \
-        gps-utils.pc
-        ])
-
-AC_OUTPUT
diff --git a/sdm845/utils/gps-utils.pc.in b/sdm845/utils/gps-utils.pc.in
deleted file mode 100644
index 3ed3d90..0000000
--- a/sdm845/utils/gps-utils.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: gps-utils
-Description: QTI GPS Location utils
-Version: @VERSION
-Libs: -L${libdir} -lgps_utils_so
-Cflags: -I${includedir}/gps-utils
diff --git a/sdm845/utils/gps_extended.h b/sdm845/utils/gps_extended.h
deleted file mode 100644
index dc6ad1e..0000000
--- a/sdm845/utils/gps_extended.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright (c) 2013-2017 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 "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 GPS_EXTENDED_H
-#define GPS_EXTENDED_H
-
-/**
- * @file
- * @brief C++ declarations for GPS types
- */
-
-#include <gps_extended_c.h>
-#if defined(USE_GLIB) || defined(OFF_TARGET)
-#include <string.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-
-struct LocPosMode
-{
-    LocPositionMode mode;
-    LocGpsPositionRecurrence recurrence;
-    uint32_t min_interval;
-    uint32_t preferred_accuracy;
-    uint32_t preferred_time;
-    bool share_position;
-    char credentials[14];
-    char provider[8];
-    LocPosMode(LocPositionMode m, LocGpsPositionRecurrence recr,
-               uint32_t gap, uint32_t accu, uint32_t time,
-               bool sp, const char* cred, const char* prov) :
-        mode(m), recurrence(recr),
-        min_interval(gap < GPS_MIN_POSSIBLE_FIX_INTERVAL_MS ?
-                     GPS_MIN_POSSIBLE_FIX_INTERVAL_MS : gap),
-        preferred_accuracy(accu), preferred_time(time),
-        share_position(sp) {
-        memset(credentials, 0, sizeof(credentials));
-        memset(provider, 0, sizeof(provider));
-        if (NULL != cred) {
-            memcpy(credentials, cred, sizeof(credentials)-1);
-        }
-        if (NULL != prov) {
-            memcpy(provider, prov, sizeof(provider)-1);
-        }
-    }
-
-    inline LocPosMode() :
-        mode(LOC_POSITION_MODE_MS_BASED),
-        recurrence(LOC_GPS_POSITION_RECURRENCE_PERIODIC),
-        min_interval(GPS_DEFAULT_FIX_INTERVAL_MS),
-        preferred_accuracy(50), preferred_time(120000),
-        share_position(true) {
-        memset(credentials, 0, sizeof(credentials));
-        memset(provider, 0, sizeof(provider));
-    }
-
-    inline bool equals(const LocPosMode &anotherMode) const
-    {
-        return anotherMode.mode == mode &&
-            anotherMode.recurrence == recurrence &&
-            anotherMode.min_interval == min_interval &&
-            anotherMode.preferred_accuracy == preferred_accuracy &&
-            anotherMode.preferred_time == preferred_time &&
-            !strncmp(anotherMode.credentials, credentials, sizeof(credentials)-1) &&
-            !strncmp(anotherMode.provider, provider, sizeof(provider)-1);
-    }
-
-    void logv() const;
-};
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* GPS_EXTENDED_H */
-
diff --git a/sdm845/utils/gps_extended_c.h b/sdm845/utils/gps_extended_c.h
deleted file mode 100644
index 40e87fb..0000000
--- a/sdm845/utils/gps_extended_c.h
+++ /dev/null
@@ -1,1177 +0,0 @@
-/* Copyright (c) 2013-2017 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 "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 GPS_EXTENDED_C_H
-#define GPS_EXTENDED_C_H
-
-#include <ctype.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <string.h>
-#include <loc_gps.h>
-#include <LocationAPI.h>
-#include <time.h>
-
-/**
- * @file
- * @brief C++ declarations for GPS types
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/** Location has valid source information. */
-#define LOCATION_HAS_SOURCE_INFO   0x0020
-/** LocGpsLocation has valid "is indoor?" flag */
-#define LOC_GPS_LOCATION_HAS_IS_INDOOR   0x0040
-/** LocGpsLocation has valid floor number */
-#define LOC_GPS_LOCATION_HAS_FLOOR_NUMBER   0x0080
-/** LocGpsLocation has valid map URL*/
-#define LOC_GPS_LOCATION_HAS_MAP_URL   0x0100
-/** LocGpsLocation has valid map index */
-#define LOC_GPS_LOCATION_HAS_MAP_INDEX   0x0200
-
-/** Sizes for indoor fields */
-#define GPS_LOCATION_MAP_URL_SIZE 400
-#define GPS_LOCATION_MAP_INDEX_SIZE 16
-
-/** Position source is ULP */
-#define ULP_LOCATION_IS_FROM_HYBRID   0x0001
-/** Position source is GNSS only */
-#define ULP_LOCATION_IS_FROM_GNSS     0x0002
-/** Position source is ZPP only */
-#define ULP_LOCATION_IS_FROM_ZPP      0x0004
-/** Position is from a Geofence Breach Event */
-#define ULP_LOCATION_IS_FROM_GEOFENCE 0X0008
-/** Position is from Hardware FLP */
-#define ULP_LOCATION_IS_FROM_HW_FLP   0x0010
-/** Position is from NLP */
-#define ULP_LOCATION_IS_FROM_NLP      0x0020
-/** Position is from PIP */
-#define ULP_LOCATION_IS_FROM_PIP      0x0040
-/** Position is from external DR solution*/
-#define ULP_LOCATION_IS_FROM_EXT_DR   0X0080
-/** Raw GNSS position fixes */
-#define ULP_LOCATION_IS_FROM_GNSS_RAW   0X0100
-
-typedef uint32_t LocSvInfoSource;
-/** SVinfo source is GNSS/DR */
-#define ULP_SVINFO_IS_FROM_GNSS       ((LocSvInfoSource)0x0001)
-/** Raw SVinfo from GNSS */
-#define ULP_SVINFO_IS_FROM_DR         ((LocSvInfoSource)0x0002)
-
-#define ULP_MIN_INTERVAL_INVALID 0xffffffff
-#define ULP_MAX_NMEA_STRING_SIZE 201
-
-/*Emergency SUPL*/
-#define LOC_GPS_NI_TYPE_EMERGENCY_SUPL    4
-
-#define LOC_AGPS_CERTIFICATE_MAX_LENGTH 2000
-#define LOC_AGPS_CERTIFICATE_MAX_SLOTS 10
-
-typedef uint32_t LocPosTechMask;
-#define LOC_POS_TECH_MASK_DEFAULT ((LocPosTechMask)0x00000000)
-#define LOC_POS_TECH_MASK_SATELLITE ((LocPosTechMask)0x00000001)
-#define LOC_POS_TECH_MASK_CELLID ((LocPosTechMask)0x00000002)
-#define LOC_POS_TECH_MASK_WIFI ((LocPosTechMask)0x00000004)
-#define LOC_POS_TECH_MASK_SENSORS ((LocPosTechMask)0x00000008)
-#define LOC_POS_TECH_MASK_REFERENCE_LOCATION ((LocPosTechMask)0x00000010)
-#define LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION ((LocPosTechMask)0x00000020)
-#define LOC_POS_TECH_MASK_AFLT ((LocPosTechMask)0x00000040)
-#define LOC_POS_TECH_MASK_HYBRID ((LocPosTechMask)0x00000080)
-
-enum loc_registration_mask_status {
-    LOC_REGISTRATION_MASK_ENABLED,
-    LOC_REGISTRATION_MASK_DISABLED,
-    LOC_REGISTRATION_MASK_SET
-};
-
-typedef enum {
-    LOC_SUPPORTED_FEATURE_ODCPI_2_V02 = 0, /**<  Support ODCPI version 2 feature  */
-    LOC_SUPPORTED_FEATURE_WIFI_AP_DATA_INJECT_2_V02 /**<  Support Wifi AP data inject version 2 feature  */
-} loc_supported_feature_enum;
-
-typedef struct {
-    /** set to sizeof(UlpLocation) */
-    size_t          size;
-    LocGpsLocation     gpsLocation;
-    /* Provider indicator for HYBRID or GPS */
-    uint16_t        position_source;
-    LocPosTechMask  tech_mask;
-    /*allows HAL to pass additional information related to the location */
-    int             rawDataSize;         /* in # of bytes */
-    void            * rawData;
-    bool            is_indoor;
-    float           floor_number;
-    char            map_url[GPS_LOCATION_MAP_URL_SIZE];
-    unsigned char   map_index[GPS_LOCATION_MAP_INDEX_SIZE];
-} UlpLocation;
-
-typedef struct {
-    /** set to sizeof(UlpNmea) */
-    size_t          size;
-    char            nmea_str[ULP_MAX_NMEA_STRING_SIZE];
-    unsigned int    len;
-} UlpNmea;
-
-
-/** AGPS type */
-typedef int16_t AGpsExtType;
-#define LOC_AGPS_TYPE_INVALID       -1
-#define LOC_AGPS_TYPE_ANY           0
-#define LOC_AGPS_TYPE_SUPL          1
-#define LOC_AGPS_TYPE_C2K           2
-#define LOC_AGPS_TYPE_WWAN_ANY      3
-#define LOC_AGPS_TYPE_WIFI          4
-#define LOC_AGPS_TYPE_SUPL_ES       5
-
-/** SSID length */
-#define SSID_BUF_SIZE (32+1)
-
-typedef int16_t AGpsBearerType;
-#define AGPS_APN_BEARER_INVALID    -1
-#define AGPS_APN_BEARER_IPV4        0
-#define AGPS_APN_BEARER_IPV6        1
-#define AGPS_APN_BEARER_IPV4V6      2
-
-/** GPS extended callback structure. */
-typedef struct {
-    /** set to sizeof(LocGpsCallbacks) */
-    size_t      size;
-    loc_gps_set_capabilities set_capabilities_cb;
-    loc_gps_acquire_wakelock acquire_wakelock_cb;
-    loc_gps_release_wakelock release_wakelock_cb;
-    loc_gps_create_thread create_thread_cb;
-    loc_gps_request_utc_time request_utc_time_cb;
-} GpsExtCallbacks;
-
-/** Callback to report the xtra server url to the client.
- *  The client should use this url when downloading xtra unless overwritten
- *  in the gps.conf file
- */
-typedef void (* report_xtra_server)(const char*, const char*, const char*);
-
-/** Callback structure for the XTRA interface. */
-typedef struct {
-    loc_gps_xtra_download_request download_request_cb;
-    loc_gps_create_thread create_thread_cb;
-    report_xtra_server report_xtra_server_cb;
-} GpsXtraExtCallbacks;
-
-/** Represents the status of AGPS. */
-typedef struct {
-    /** set to sizeof(AGpsExtStatus) */
-    size_t          size;
-
-    AGpsExtType type;
-    LocAGpsStatusValue status;
-    uint32_t        ipv4_addr;
-    struct sockaddr_storage addr;
-    char            ssid[SSID_BUF_SIZE];
-    char            password[SSID_BUF_SIZE];
-} AGpsExtStatus;
-
-/** Callback with AGPS status information.
- *  Can only be called from a thread created by create_thread_cb.
- */
-typedef void (* agps_status_extended)(AGpsExtStatus* status);
-
-/** Callback structure for the AGPS interface. */
-typedef struct {
-    agps_status_extended status_cb;
-    loc_gps_create_thread create_thread_cb;
-} AGpsExtCallbacks;
-
-
-typedef void (*loc_ni_notify_callback)(LocGpsNiNotification *notification, bool esEnalbed);
-/** GPS NI callback structure. */
-typedef struct
-{
-    /**
-     * Sends the notification request from HAL to GPSLocationProvider.
-     */
-    loc_ni_notify_callback notify_cb;
-} GpsNiExtCallbacks;
-
-typedef enum loc_server_type {
-    LOC_AGPS_CDMA_PDE_SERVER,
-    LOC_AGPS_CUSTOM_PDE_SERVER,
-    LOC_AGPS_MPC_SERVER,
-    LOC_AGPS_SUPL_SERVER
-} LocServerType;
-
-typedef enum loc_position_mode_type {
-    LOC_POSITION_MODE_INVALID = -1,
-    LOC_POSITION_MODE_STANDALONE = 0,
-    LOC_POSITION_MODE_MS_BASED,
-    LOC_POSITION_MODE_MS_ASSISTED,
-    LOC_POSITION_MODE_RESERVED_1,
-    LOC_POSITION_MODE_RESERVED_2,
-    LOC_POSITION_MODE_RESERVED_3,
-    LOC_POSITION_MODE_RESERVED_4,
-    LOC_POSITION_MODE_RESERVED_5
-
-} LocPositionMode;
-
-/**
- * @brief Minimum allowed value for fix interval.
- *
- * This value is a sanity limit in GPS framework. The hardware has own internal
- * limits that may not match this value
- *
- * @sa GPS_DEFAULT_FIX_INTERVAL_MS
- */
-
-#define GPS_MIN_POSSIBLE_FIX_INTERVAL_MS 100
-/**
- * @brief Default value for fix interval.
- *
- * This value is used by default whenever appropriate.
- *
- * @sa GPS_MIN_POSSIBLE_FIX_INTERVAL_MS
- */
-#define GPS_DEFAULT_FIX_INTERVAL_MS      1000
-
-/** Flags to indicate which values are valid in a GpsLocationExtended. */
-typedef uint16_t GpsLocationExtendedFlags;
-/** GpsLocationExtended has valid pdop, hdop, vdop. */
-#define GPS_LOCATION_EXTENDED_HAS_DOP 0x0001
-/** GpsLocationExtended has valid altitude mean sea level. */
-#define GPS_LOCATION_EXTENDED_HAS_ALTITUDE_MEAN_SEA_LEVEL 0x0002
-/** UlpLocation has valid magnetic deviation. */
-#define GPS_LOCATION_EXTENDED_HAS_MAG_DEV 0x0004
-/** UlpLocation has valid mode indicator. */
-#define GPS_LOCATION_EXTENDED_HAS_MODE_IND 0x0008
-/** GpsLocationExtended has valid vertical uncertainty */
-#define GPS_LOCATION_EXTENDED_HAS_VERT_UNC 0x0010
-/** GpsLocationExtended has valid speed uncertainty */
-#define GPS_LOCATION_EXTENDED_HAS_SPEED_UNC 0x0020
-/** GpsLocationExtended has valid heading uncertainty */
-#define GPS_LOCATION_EXTENDED_HAS_BEARING_UNC 0x0040
-/** GpsLocationExtended has valid horizontal reliability */
-#define GPS_LOCATION_EXTENDED_HAS_HOR_RELIABILITY 0x0080
-/** GpsLocationExtended has valid vertical reliability */
-#define GPS_LOCATION_EXTENDED_HAS_VERT_RELIABILITY 0x0100
-/** GpsLocationExtended has valid Horizontal Elliptical Uncertainty (Semi-Major Axis) */
-#define GPS_LOCATION_EXTENDED_HAS_HOR_ELIP_UNC_MAJOR 0x0200
-/** GpsLocationExtended has valid Horizontal Elliptical Uncertainty (Semi-Minor Axis) */
-#define GPS_LOCATION_EXTENDED_HAS_HOR_ELIP_UNC_MINOR 0x0400
-/** GpsLocationExtended has valid Elliptical Horizontal Uncertainty Azimuth */
-#define GPS_LOCATION_EXTENDED_HAS_HOR_ELIP_UNC_AZIMUTH 0x0800
-/** GpsLocationExtended has valid gnss sv used in position data */
-#define GPS_LOCATION_EXTENDED_HAS_GNSS_SV_USED_DATA 0x1000
-/** GpsLocationExtended has valid navSolutionMask */
-#define GPS_LOCATION_EXTENDED_HAS_NAV_SOLUTION_MASK 0x2000
-/** GpsLocationExtended has valid LocPosTechMask */
-#define GPS_LOCATION_EXTENDED_HAS_POS_TECH_MASK   0x4000
-
-typedef uint32_t LocNavSolutionMask;
-/* Bitmask to specify whether SBAS ionospheric correction is used  */
-#define LOC_NAV_MASK_SBAS_CORRECTION_IONO ((LocNavSolutionMask)0x0001)
-/* Bitmask to specify whether SBAS fast correction is used  */
-#define LOC_NAV_MASK_SBAS_CORRECTION_FAST ((LocNavSolutionMask)0x0002)
-/**<  Bitmask to specify whether SBAS long-tem correction is used  */
-#define LOC_NAV_MASK_SBAS_CORRECTION_LONG ((LocNavSolutionMask)0x0004)
-/**<  Bitmask to specify whether SBAS integrity information is used  */
-#define LOC_NAV_MASK_SBAS_INTEGRITY ((LocNavSolutionMask)0x0008)
-
-/** GPS PRN Range */
-#define GPS_SV_PRN_MIN      1
-#define GPS_SV_PRN_MAX      32
-#define GLO_SV_PRN_MIN      65
-#define GLO_SV_PRN_MAX      96
-#define QZSS_SV_PRN_MIN     193
-#define QZSS_SV_PRN_MAX     197
-#define BDS_SV_PRN_MIN      201
-#define BDS_SV_PRN_MAX      235
-#define GAL_SV_PRN_MIN      301
-#define GAL_SV_PRN_MAX      336
-
-typedef uint32_t LocPosTechMask;
-#define LOC_POS_TECH_MASK_DEFAULT ((LocPosTechMask)0x00000000)
-#define LOC_POS_TECH_MASK_SATELLITE ((LocPosTechMask)0x00000001)
-#define LOC_POS_TECH_MASK_CELLID ((LocPosTechMask)0x00000002)
-#define LOC_POS_TECH_MASK_WIFI ((LocPosTechMask)0x00000004)
-#define LOC_POS_TECH_MASK_SENSORS ((LocPosTechMask)0x00000008)
-#define LOC_POS_TECH_MASK_REFERENCE_LOCATION ((LocPosTechMask)0x00000010)
-#define LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION ((LocPosTechMask)0x00000020)
-#define LOC_POS_TECH_MASK_AFLT ((LocPosTechMask)0x00000040)
-#define LOC_POS_TECH_MASK_HYBRID ((LocPosTechMask)0x00000080)
-
-typedef enum {
-    LOC_RELIABILITY_NOT_SET = 0,
-    LOC_RELIABILITY_VERY_LOW = 1,
-    LOC_RELIABILITY_LOW = 2,
-    LOC_RELIABILITY_MEDIUM = 3,
-    LOC_RELIABILITY_HIGH = 4
-}LocReliability;
-
-typedef struct {
-    struct timespec apTimeStamp;
-    /*boottime received from pps-ktimer*/
-    float apTimeStampUncertaintyMs;
-    /* timestamp uncertainty in milli seconds */
-}Gnss_ApTimeStampStructType;
-
-typedef struct {
-    uint64_t gps_sv_used_ids_mask;
-    uint64_t glo_sv_used_ids_mask;
-    uint64_t gal_sv_used_ids_mask;
-    uint64_t bds_sv_used_ids_mask;
-    uint64_t qzss_sv_used_ids_mask;
-} GnssSvUsedInPosition;
-
-/** Represents gps location extended. */
-typedef struct {
-    /** set to sizeof(GpsLocationExtended) */
-    size_t          size;
-    /** Contains GpsLocationExtendedFlags bits. */
-    uint16_t        flags;
-    /** Contains the Altitude wrt mean sea level */
-    float           altitudeMeanSeaLevel;
-    /** Contains Position Dilusion of Precision. */
-    float           pdop;
-    /** Contains Horizontal Dilusion of Precision. */
-    float           hdop;
-    /** Contains Vertical Dilusion of Precision. */
-    float           vdop;
-    /** Contains Magnetic Deviation. */
-    float           magneticDeviation;
-    /** vertical uncertainty in meters */
-    float           vert_unc;
-    /** speed uncertainty in m/s */
-    float           speed_unc;
-    /** heading uncertainty in degrees (0 to 359.999) */
-    float           bearing_unc;
-    /** horizontal reliability. */
-    LocReliability  horizontal_reliability;
-    /** vertical reliability. */
-    LocReliability  vertical_reliability;
-    /*  Horizontal Elliptical Uncertainty (Semi-Major Axis) */
-    float           horUncEllipseSemiMajor;
-    /*  Horizontal Elliptical Uncertainty (Semi-Minor Axis) */
-    float           horUncEllipseSemiMinor;
-    /*    Elliptical Horizontal Uncertainty Azimuth */
-    float           horUncEllipseOrientAzimuth;
-
-    Gnss_ApTimeStampStructType               timeStamp;
-    /** Gnss sv used in position data */
-    GnssSvUsedInPosition gnss_sv_used_ids;
-    /** Nav solution mask to indicate sbas corrections */
-    LocNavSolutionMask  navSolutionMask;
-    /** Position technology used in computing this fix */
-    LocPosTechMask tech_mask;
-} GpsLocationExtended;
-
-enum loc_sess_status {
-    LOC_SESS_SUCCESS,
-    LOC_SESS_INTERMEDIATE,
-    LOC_SESS_FAILURE
-};
-
-// Nmea sentence types mask
-typedef uint32_t NmeaSentenceTypesMask;
-#define LOC_NMEA_MASK_GGA_V02   ((NmeaSentenceTypesMask)0x00000001) /**<  Enable GGA type  */
-#define LOC_NMEA_MASK_RMC_V02   ((NmeaSentenceTypesMask)0x00000002) /**<  Enable RMC type  */
-#define LOC_NMEA_MASK_GSV_V02   ((NmeaSentenceTypesMask)0x00000004) /**<  Enable GSV type  */
-#define LOC_NMEA_MASK_GSA_V02   ((NmeaSentenceTypesMask)0x00000008) /**<  Enable GSA type  */
-#define LOC_NMEA_MASK_VTG_V02   ((NmeaSentenceTypesMask)0x00000010) /**<  Enable VTG type  */
-#define LOC_NMEA_MASK_PQXFI_V02 ((NmeaSentenceTypesMask)0x00000020) /**<  Enable PQXFI type  */
-#define LOC_NMEA_MASK_PSTIS_V02 ((NmeaSentenceTypesMask)0x00000040) /**<  Enable PSTIS type  */
-#define LOC_NMEA_MASK_GLGSV_V02 ((NmeaSentenceTypesMask)0x00000080) /**<  Enable GLGSV type  */
-#define LOC_NMEA_MASK_GNGSA_V02 ((NmeaSentenceTypesMask)0x00000100) /**<  Enable GNGSA type  */
-#define LOC_NMEA_MASK_GNGNS_V02 ((NmeaSentenceTypesMask)0x00000200) /**<  Enable GNGNS type  */
-#define LOC_NMEA_MASK_GARMC_V02 ((NmeaSentenceTypesMask)0x00000400) /**<  Enable GARMC type  */
-#define LOC_NMEA_MASK_GAGSV_V02 ((NmeaSentenceTypesMask)0x00000800) /**<  Enable GAGSV type  */
-#define LOC_NMEA_MASK_GAGSA_V02 ((NmeaSentenceTypesMask)0x00001000) /**<  Enable GAGSA type  */
-#define LOC_NMEA_MASK_GAVTG_V02 ((NmeaSentenceTypesMask)0x00002000) /**<  Enable GAVTG type  */
-#define LOC_NMEA_MASK_GAGGA_V02 ((NmeaSentenceTypesMask)0x00004000) /**<  Enable GAGGA type  */
-#define LOC_NMEA_MASK_PQGSA_V02 ((NmeaSentenceTypesMask)0x00008000) /**<  Enable PQGSA type  */
-#define LOC_NMEA_MASK_PQGSV_V02 ((NmeaSentenceTypesMask)0x00010000) /**<  Enable PQGSV type  */
-#define LOC_NMEA_MASK_DEBUG_V02 ((NmeaSentenceTypesMask)0x00020000) /**<  Enable DEBUG type  */
-
-#define LOC_NMEA_ALL_SUPPORTED_MASK  (LOC_NMEA_MASK_GGA_V02 | LOC_NMEA_MASK_RMC_V02 | \
-              LOC_NMEA_MASK_GSV_V02 | LOC_NMEA_MASK_GSA_V02 | LOC_NMEA_MASK_VTG_V02 | \
-        LOC_NMEA_MASK_PQXFI_V02 | LOC_NMEA_MASK_PSTIS_V02 | LOC_NMEA_MASK_GLGSV_V02 | \
-        LOC_NMEA_MASK_GNGSA_V02 | LOC_NMEA_MASK_GNGNS_V02 | LOC_NMEA_MASK_GARMC_V02 | \
-        LOC_NMEA_MASK_GAGSV_V02 | LOC_NMEA_MASK_GAGSA_V02 | LOC_NMEA_MASK_GAVTG_V02 | \
-        LOC_NMEA_MASK_GAGGA_V02 | LOC_NMEA_MASK_PQGSA_V02 | LOC_NMEA_MASK_PQGSV_V02 | \
-        LOC_NMEA_MASK_DEBUG_V02 )
-
-typedef enum {
-  LOC_ENG_IF_REQUEST_SENDER_ID_QUIPC = 0,
-  LOC_ENG_IF_REQUEST_SENDER_ID_MSAPM,
-  LOC_ENG_IF_REQUEST_SENDER_ID_MSAPU,
-  LOC_ENG_IF_REQUEST_SENDER_ID_GPSONE_DAEMON,
-  LOC_ENG_IF_REQUEST_SENDER_ID_MODEM,
-  LOC_ENG_IF_REQUEST_SENDER_ID_UNKNOWN
-} loc_if_req_sender_id_e_type;
-
-
-#define smaller_of(a, b) (((a) > (b)) ? (b) : (a))
-#define MAX_APN_LEN 100
-
-// This will be overridden by the individual adapters
-// if necessary.
-#define DEFAULT_IMPL(rtv)                                     \
-{                                                             \
-    LOC_LOGD("%s: default implementation invoked", __func__); \
-    return rtv;                                               \
-}
-
-enum loc_api_adapter_err {
-    LOC_API_ADAPTER_ERR_SUCCESS             = 0,
-    LOC_API_ADAPTER_ERR_GENERAL_FAILURE     = 1,
-    LOC_API_ADAPTER_ERR_UNSUPPORTED         = 2,
-    LOC_API_ADAPTER_ERR_INVALID_HANDLE      = 4,
-    LOC_API_ADAPTER_ERR_INVALID_PARAMETER   = 5,
-    LOC_API_ADAPTER_ERR_ENGINE_BUSY         = 6,
-    LOC_API_ADAPTER_ERR_PHONE_OFFLINE       = 7,
-    LOC_API_ADAPTER_ERR_TIMEOUT             = 8,
-    LOC_API_ADAPTER_ERR_SERVICE_NOT_PRESENT = 9,
-    LOC_API_ADAPTER_ERR_INTERNAL            = 10,
-
-    /* equating engine down to phone offline, as they are the same errror */
-    LOC_API_ADAPTER_ERR_ENGINE_DOWN         = LOC_API_ADAPTER_ERR_PHONE_OFFLINE,
-    LOC_API_ADAPTER_ERR_FAILURE             = 101,
-    LOC_API_ADAPTER_ERR_UNKNOWN
-};
-
-enum loc_api_adapter_event_index {
-    LOC_API_ADAPTER_REPORT_POSITION = 0,               // Position report comes in loc_parsed_position_s_type
-    LOC_API_ADAPTER_REPORT_SATELLITE,                  // Satellite in view report
-    LOC_API_ADAPTER_REPORT_NMEA_1HZ,                   // NMEA report at 1HZ rate
-    LOC_API_ADAPTER_REPORT_NMEA_POSITION,              // NMEA report at position report rate
-    LOC_API_ADAPTER_REQUEST_NI_NOTIFY_VERIFY,          // NI notification/verification request
-    LOC_API_ADAPTER_REQUEST_ASSISTANCE_DATA,           // Assistance data, eg: time, predicted orbits request
-    LOC_API_ADAPTER_REQUEST_LOCATION_SERVER,           // Request for location server
-    LOC_API_ADAPTER_REPORT_IOCTL,                      // Callback report for loc_ioctl
-    LOC_API_ADAPTER_REPORT_STATUS,                     // Misc status report: eg, engine state
-    LOC_API_ADAPTER_REQUEST_WIFI,                      //
-    LOC_API_ADAPTER_SENSOR_STATUS,                     //
-    LOC_API_ADAPTER_REQUEST_TIME_SYNC,                 //
-    LOC_API_ADAPTER_REPORT_SPI,                        //
-    LOC_API_ADAPTER_REPORT_NI_GEOFENCE,                //
-    LOC_API_ADAPTER_GEOFENCE_GEN_ALERT,                //
-    LOC_API_ADAPTER_REPORT_GENFENCE_BREACH,            //
-    LOC_API_ADAPTER_PEDOMETER_CTRL,                    //
-    LOC_API_ADAPTER_MOTION_CTRL,                       //
-    LOC_API_ADAPTER_REQUEST_WIFI_AP_DATA,              // Wifi ap data
-    LOC_API_ADAPTER_BATCH_FULL,                        // Batching on full
-    LOC_API_ADAPTER_BATCHED_POSITION_REPORT,           // Batching on fix
-    LOC_API_ADAPTER_BATCHED_GENFENCE_BREACH_REPORT,    //
-    LOC_API_ADAPTER_GNSS_MEASUREMENT_REPORT,          //GNSS Measurement Report
-    LOC_API_ADAPTER_GNSS_SV_POLYNOMIAL_REPORT,        //GNSS SV Polynomial Report
-    LOC_API_ADAPTER_GDT_UPLOAD_BEGIN_REQ,              // GDT upload start request
-    LOC_API_ADAPTER_GDT_UPLOAD_END_REQ,                // GDT upload end request
-    LOC_API_ADAPTER_GNSS_MEASUREMENT,                  // GNSS Measurement report
-    LOC_API_ADAPTER_REQUEST_TIMEZONE,                  // Timezone injection request
-    LOC_API_ADAPTER_REPORT_GENFENCE_DWELL_REPORT,      // Geofence dwell report
-    LOC_API_ADAPTER_REQUEST_SRN_DATA,                  // request srn data from AP
-    LOC_API_ADAPTER_REQUEST_POSITION_INJECTION,        // Position injection request
-    LOC_API_ADAPTER_EVENT_MAX
-};
-
-#define LOC_API_ADAPTER_BIT_PARSED_POSITION_REPORT           (1<<LOC_API_ADAPTER_REPORT_POSITION)
-#define LOC_API_ADAPTER_BIT_SATELLITE_REPORT                 (1<<LOC_API_ADAPTER_REPORT_SATELLITE)
-#define LOC_API_ADAPTER_BIT_NMEA_1HZ_REPORT                  (1<<LOC_API_ADAPTER_REPORT_NMEA_1HZ)
-#define LOC_API_ADAPTER_BIT_NMEA_POSITION_REPORT             (1<<LOC_API_ADAPTER_REPORT_NMEA_POSITION)
-#define LOC_API_ADAPTER_BIT_NI_NOTIFY_VERIFY_REQUEST         (1<<LOC_API_ADAPTER_REQUEST_NI_NOTIFY_VERIFY)
-#define LOC_API_ADAPTER_BIT_ASSISTANCE_DATA_REQUEST          (1<<LOC_API_ADAPTER_REQUEST_ASSISTANCE_DATA)
-#define LOC_API_ADAPTER_BIT_LOCATION_SERVER_REQUEST          (1<<LOC_API_ADAPTER_REQUEST_LOCATION_SERVER)
-#define LOC_API_ADAPTER_BIT_IOCTL_REPORT                     (1<<LOC_API_ADAPTER_REPORT_IOCTL)
-#define LOC_API_ADAPTER_BIT_STATUS_REPORT                    (1<<LOC_API_ADAPTER_REPORT_STATUS)
-#define LOC_API_ADAPTER_BIT_REQUEST_WIFI                     (1<<LOC_API_ADAPTER_REQUEST_WIFI)
-#define LOC_API_ADAPTER_BIT_SENSOR_STATUS                    (1<<LOC_API_ADAPTER_SENSOR_STATUS)
-#define LOC_API_ADAPTER_BIT_REQUEST_TIME_SYNC                (1<<LOC_API_ADAPTER_REQUEST_TIME_SYNC)
-#define LOC_API_ADAPTER_BIT_REPORT_SPI                       (1<<LOC_API_ADAPTER_REPORT_SPI)
-#define LOC_API_ADAPTER_BIT_REPORT_NI_GEOFENCE               (1<<LOC_API_ADAPTER_REPORT_NI_GEOFENCE)
-#define LOC_API_ADAPTER_BIT_GEOFENCE_GEN_ALERT               (1<<LOC_API_ADAPTER_GEOFENCE_GEN_ALERT)
-#define LOC_API_ADAPTER_BIT_REPORT_GENFENCE_BREACH           (1<<LOC_API_ADAPTER_REPORT_GENFENCE_BREACH)
-#define LOC_API_ADAPTER_BIT_BATCHED_GENFENCE_BREACH_REPORT   (1<<LOC_API_ADAPTER_BATCHED_GENFENCE_BREACH_REPORT)
-#define LOC_API_ADAPTER_BIT_PEDOMETER_CTRL                   (1<<LOC_API_ADAPTER_PEDOMETER_CTRL)
-#define LOC_API_ADAPTER_BIT_MOTION_CTRL                      (1<<LOC_API_ADAPTER_MOTION_CTRL)
-#define LOC_API_ADAPTER_BIT_REQUEST_WIFI_AP_DATA             (1<<LOC_API_ADAPTER_REQUEST_WIFI_AP_DATA)
-#define LOC_API_ADAPTER_BIT_BATCH_FULL                       (1<<LOC_API_ADAPTER_BATCH_FULL)
-#define LOC_API_ADAPTER_BIT_BATCHED_POSITION_REPORT          (1<<LOC_API_ADAPTER_BATCHED_POSITION_REPORT)
-#define LOC_API_ADAPTER_BIT_GNSS_MEASUREMENT_REPORT          (1<<LOC_API_ADAPTER_GNSS_MEASUREMENT_REPORT)
-#define LOC_API_ADAPTER_BIT_GNSS_SV_POLYNOMIAL_REPORT        (1<<LOC_API_ADAPTER_GNSS_SV_POLYNOMIAL_REPORT)
-#define LOC_API_ADAPTER_BIT_GDT_UPLOAD_BEGIN_REQ             (1<<LOC_API_ADAPTER_GDT_UPLOAD_BEGIN_REQ)
-#define LOC_API_ADAPTER_BIT_GDT_UPLOAD_END_REQ               (1<<LOC_API_ADAPTER_GDT_UPLOAD_END_REQ)
-#define LOC_API_ADAPTER_BIT_GNSS_MEASUREMENT                 (1<<LOC_API_ADAPTER_GNSS_MEASUREMENT)
-#define LOC_API_ADAPTER_BIT_REQUEST_TIMEZONE                 (1<<LOC_API_ADAPTER_REQUEST_TIMEZONE)
-#define LOC_API_ADAPTER_BIT_REPORT_GENFENCE_DWELL            (1<<LOC_API_ADAPTER_REPORT_GENFENCE_DWELL_REPORT)
-#define LOC_API_ADAPTER_BIT_REQUEST_SRN_DATA                 (1<<LOC_API_ADAPTER_REQUEST_SRN_DATA)
-#define LOC_API_ADAPTER_BIT_POSITION_INJECTION_REQUEST       (1<<LOC_API_ADAPTER_REQUEST_POSITION_INJECTION)
-
-
-typedef unsigned int LOC_API_ADAPTER_EVENT_MASK_T;
-
-typedef enum loc_api_adapter_msg_to_check_supported {
-    LOC_API_ADAPTER_MESSAGE_LOCATION_BATCHING,               // Batching 1.0
-    LOC_API_ADAPTER_MESSAGE_BATCHED_GENFENCE_BREACH,         // Geofence Batched Breach
-    LOC_API_ADAPTER_MESSAGE_DISTANCE_BASE_TRACKING,          // DBT 2.0
-    LOC_API_ADAPTER_MESSAGE_ADAPTIVE_LOCATION_BATCHING,      // Batching 1.5
-    LOC_API_ADAPTER_MESSAGE_DISTANCE_BASE_LOCATION_BATCHING, // Batching 2.0
-    LOC_API_ADAPTER_MESSAGE_UPDATE_TBF_ON_THE_FLY,           // Updating Tracking TBF On The Fly
-
-    LOC_API_ADAPTER_MESSAGE_MAX
-} LocCheckingMessagesID;
-
-typedef int IzatDevId_t;
-
-typedef uint32_t LOC_GPS_LOCK_MASK;
-#define isGpsLockNone(lock) ((lock) == 0)
-#define isGpsLockMO(lock) ((lock) & ((LOC_GPS_LOCK_MASK)1))
-#define isGpsLockMT(lock) ((lock) & ((LOC_GPS_LOCK_MASK)2))
-#define isGpsLockAll(lock) (((lock) & ((LOC_GPS_LOCK_MASK)3)) == 3)
-
-/*++ ***********************************************
-**  Satellite Measurement and Satellite Polynomial
-**  Structure definitions
-**  ***********************************************
---*/
-#define GNSS_SV_POLY_VELOCITY_COEF_MAX_SIZE         12
-#define GNSS_SV_POLY_XYZ_0_TH_ORDER_COEFF_MAX_SIZE  3
-#define GNSS_SV_POLY_XYZ_N_TH_ORDER_COEFF_MAX_SIZE  9
-#define GNSS_SV_POLY_SV_CLKBIAS_COEFF_MAX_SIZE      4
-#define GNSS_LOC_SV_MEAS_LIST_MAX_SIZE              16
-
-enum ulp_gnss_sv_measurement_valid_flags{
-
-    ULP_GNSS_SV_MEAS_GPS_TIME = 0,
-    ULP_GNSS_SV_MEAS_PSUEDO_RANGE,
-    ULP_GNSS_SV_MEAS_MS_IN_WEEK,
-    ULP_GNSS_SV_MEAS_SUB_MSEC,
-    ULP_GNSS_SV_MEAS_CARRIER_PHASE,
-    ULP_GNSS_SV_MEAS_DOPPLER_SHIFT,
-    ULP_GNSS_SV_MEAS_CNO,
-    ULP_GNSS_SV_MEAS_LOSS_OF_LOCK,
-
-    ULP_GNSS_SV_MEAS_MAX_VALID_FLAGS
-};
-
-#define ULP_GNSS_SV_MEAS_BIT_GPS_TIME        (1<<ULP_GNSS_SV_MEAS_GPS_TIME)
-#define ULP_GNSS_SV_MEAS_BIT_PSUEDO_RANGE    (1<<ULP_GNSS_SV_MEAS_PSUEDO_RANGE)
-#define ULP_GNSS_SV_MEAS_BIT_MS_IN_WEEK      (1<<ULP_GNSS_SV_MEAS_MS_IN_WEEK)
-#define ULP_GNSS_SV_MEAS_BIT_SUB_MSEC        (1<<ULP_GNSS_SV_MEAS_SUB_MSEC)
-#define ULP_GNSS_SV_MEAS_BIT_CARRIER_PHASE   (1<<ULP_GNSS_SV_MEAS_CARRIER_PHASE)
-#define ULP_GNSS_SV_MEAS_BIT_DOPPLER_SHIFT   (1<<ULP_GNSS_SV_MEAS_DOPPLER_SHIFT)
-#define ULP_GNSS_SV_MEAS_BIT_CNO             (1<<ULP_GNSS_SV_MEAS_CNO)
-#define ULP_GNSS_SV_MEAS_BIT_LOSS_OF_LOCK    (1<<ULP_GNSS_SV_MEAS_LOSS_OF_LOCK)
-
-enum ulp_gnss_sv_poly_valid_flags{
-
-    ULP_GNSS_SV_POLY_GLO_FREQ = 0,
-    ULP_GNSS_SV_POLY_T0,
-    ULP_GNSS_SV_POLY_IODE,
-    ULP_GNSS_SV_POLY_FLAG,
-    ULP_GNSS_SV_POLY_POLYCOEFF_XYZ0,
-    ULP_GNSS_SV_POLY_POLYCOEFF_XYZN,
-    ULP_GNSS_SV_POLY_POLYCOEFF_OTHER,
-    ULP_GNSS_SV_POLY_SV_POSUNC,
-    ULP_GNSS_SV_POLY_IONODELAY,
-    ULP_GNSS_SV_POLY_IONODOT,
-    ULP_GNSS_SV_POLY_SBAS_IONODELAY,
-    ULP_GNSS_SV_POLY_SBAS_IONODOT,
-    ULP_GNSS_SV_POLY_TROPODELAY,
-    ULP_GNSS_SV_POLY_ELEVATION,
-    ULP_GNSS_SV_POLY_ELEVATIONDOT,
-    ULP_GNSS_SV_POLY_ELEVATIONUNC,
-    ULP_GNSS_SV_POLY_VELO_COEFF,
-    ULP_GNSS_SV_POLY_ENHANCED_IOD,
-
-    ULP_GNSS_SV_POLY_VALID_FLAGS
-
-};
-
-#define ULP_GNSS_SV_POLY_BIT_GLO_FREQ               (1<<ULP_GNSS_SV_POLY_GLO_FREQ)
-#define ULP_GNSS_SV_POLY_BIT_T0                     (1<<ULP_GNSS_SV_POLY_T0)
-#define ULP_GNSS_SV_POLY_BIT_IODE                   (1<<ULP_GNSS_SV_POLY_IODE)
-#define ULP_GNSS_SV_POLY_BIT_FLAG                   (1<<ULP_GNSS_SV_POLY_FLAG)
-#define ULP_GNSS_SV_POLY_BIT_POLYCOEFF_XYZ0         (1<<ULP_GNSS_SV_POLY_POLYCOEFF_XYZ0)
-#define ULP_GNSS_SV_POLY_BIT_POLYCOEFF_XYZN         (1<<ULP_GNSS_SV_POLY_POLYCOEFF_XYZN)
-#define ULP_GNSS_SV_POLY_BIT_POLYCOEFF_OTHER        (1<<ULP_GNSS_SV_POLY_POLYCOEFF_OTHER)
-#define ULP_GNSS_SV_POLY_BIT_SV_POSUNC              (1<<ULP_GNSS_SV_POLY_SV_POSUNC)
-#define ULP_GNSS_SV_POLY_BIT_IONODELAY              (1<<ULP_GNSS_SV_POLY_IONODELAY)
-#define ULP_GNSS_SV_POLY_BIT_IONODOT                (1<<ULP_GNSS_SV_POLY_IONODOT)
-#define ULP_GNSS_SV_POLY_BIT_SBAS_IONODELAY         (1<<ULP_GNSS_SV_POLY_SBAS_IONODELAY)
-#define ULP_GNSS_SV_POLY_BIT_SBAS_IONODOT           (1<<ULP_GNSS_SV_POLY_SBAS_IONODOT)
-#define ULP_GNSS_SV_POLY_BIT_TROPODELAY             (1<<ULP_GNSS_SV_POLY_TROPODELAY)
-#define ULP_GNSS_SV_POLY_BIT_ELEVATION              (1<<ULP_GNSS_SV_POLY_ELEVATION)
-#define ULP_GNSS_SV_POLY_BIT_ELEVATIONDOT           (1<<ULP_GNSS_SV_POLY_ELEVATIONDOT)
-#define ULP_GNSS_SV_POLY_BIT_ELEVATIONUNC           (1<<ULP_GNSS_SV_POLY_ELEVATIONUNC)
-#define ULP_GNSS_SV_POLY_BIT_VELO_COEFF             (1<<ULP_GNSS_SV_POLY_VELO_COEFF)
-#define ULP_GNSS_SV_POLY_BIT_ENHANCED_IOD           (1<<ULP_GNSS_SV_POLY_ENHANCED_IOD)
-
-
-typedef enum
-{
-    GNSS_LOC_SV_SYSTEM_GPS                    = 1,
-    /**< GPS satellite. */
-    GNSS_LOC_SV_SYSTEM_GALILEO                = 2,
-    /**< GALILEO satellite. */
-    GNSS_LOC_SV_SYSTEM_SBAS                   = 3,
-    /**< SBAS satellite. */
-    GNSS_LOC_SV_SYSTEM_COMPASS                = 4,
-    /**< COMPASS satellite. */
-    GNSS_LOC_SV_SYSTEM_GLONASS                = 5,
-    /**< GLONASS satellite. */
-    GNSS_LOC_SV_SYSTEM_BDS                    = 6
-    /**< BDS satellite. */
-} Gnss_LocSvSystemEnumType;
-
-typedef enum
-{
-    GNSS_LOC_FREQ_SOURCE_INVALID = 0,
-    /**< Source of the frequency is invalid */
-    GNSS_LOC_FREQ_SOURCE_EXTERNAL = 1,
-    /**< Source of the frequency is from external injection */
-    GNSS_LOC_FREQ_SOURCE_PE_CLK_REPORT = 2,
-    /**< Source of the frequency is from Navigation engine */
-    GNSS_LOC_FREQ_SOURCE_UNKNOWN = 3
-    /**< Source of the frequency is unknown */
-} Gnss_LocSourceofFreqEnumType;
-
-typedef struct
-{
-    size_t                          size;
-    float                           clockDrift;
-    /**< Receiver clock Drift \n
-         - Units: meter per sec \n
-    */
-    float                           clockDriftUnc;
-    /**< Receiver clock Drift uncertainty \n
-         - Units: meter per sec \n
-    */
-    Gnss_LocSourceofFreqEnumType    sourceOfFreq;
-}Gnss_LocRcvrClockFrequencyInfoStructType;
-
-typedef struct
-{
-    size_t      size;
-    uint8_t     leapSec;
-    /**< GPS time leap second delta to UTC time  \n
-         - Units: sec \n
-       */
-    uint8_t     leapSecUnc;
-    /**< Uncertainty for GPS leap second \n
-         - Units: sec \n
-       */
-}Gnss_LeapSecondInfoStructType;
-
-typedef enum
-{
-   GNSS_LOC_SYS_TIME_BIAS_VALID                = 0x01,
-   /**< System time bias valid */
-   GNSS_LOC_SYS_TIME_BIAS_UNC_VALID            = 0x02,
-   /**< System time bias uncertainty valid */
-}Gnss_LocInterSystemBiasValidMaskType;
-
-typedef struct
-{
-    size_t          size;
-    uint32_t        validMask;
-    /* Validity mask as per Gnss_LocInterSystemBiasValidMaskType */
-
-    float           timeBias;
-    /**< System-1 to System-2 Time Bias  \n
-        - Units: msec \n
-    */
-    float           timeBiasUnc;
-    /**< System-1 to System-2 Time Bias uncertainty  \n
-        - Units: msec \n
-    */
-}Gnss_InterSystemBiasStructType;
-
-
-typedef struct
-{
-    size_t          size;
-    uint16_t        systemWeek;
-    /**< System week number for GPS, BDS and GAL satellite systems. \n
-         Set to 65535 when invalid or not available. \n
-         Not valid for GLONASS system. \n
-       */
-
-    uint32_t        systemMsec;
-    /**< System time msec. Time of Week for GPS, BDS, GAL and
-         Time of Day for GLONASS.
-         - Units: msec \n
-      */
-    float           systemClkTimeBias;
-    /**< System clock time bias \n
-         - Units: msec \n
-         System time = systemMsec - systemClkTimeBias \n
-      */
-    float           systemClkTimeUncMs;
-    /**< Single sided maximum time bias uncertainty \n
-                                                    - Units: msec \n
-      */
-}Gnss_LocSystemTimeStructType;
-
-typedef struct {
-
-  size_t        size;
-  uint8_t       gloFourYear;
-  /**<   GLONASS four year number from 1996. Refer to GLONASS ICD.\n
-        Applicable only for GLONASS and shall be ignored for other constellations. \n
-        If unknown shall be set to 255
-        */
-
-  uint16_t      gloDays;
-  /**<   GLONASS day number in four years. Refer to GLONASS ICD.
-        Applicable only for GLONASS and shall be ignored for other constellations. \n
-        If unknown shall be set to 65535
-        */
-
-  uint32_t      gloMsec;
-  /**<   GLONASS time of day in msec. Refer to GLONASS ICD.
-            - Units: msec \n
-        */
-
-  float         gloClkTimeBias;
-  /**<   System clock time bias (sub-millisecond) \n
-            - Units: msec \n
-        System time = systemMsec - systemClkTimeBias \n
-    */
-
-  float         gloClkTimeUncMs;
-  /**<   Single sided maximum time bias uncertainty \n
-                - Units: msec \n
-        */
-}Gnss_LocGloTimeStructType;  /* Type */
-
-typedef struct {
-
-  size_t    size;
-  uint32_t  refFCount;
-  /**<   Receiver frame counter value at reference tick */
-
-  uint8_t   systemRtc_valid;
-  /**<   Validity indicator for System RTC */
-
-  uint64_t  systemRtcMs;
-  /**<   Platform system RTC value \n
-        - Units: msec \n
-        */
-
-  uint32_t  sourceOfTime;
-  /**<   Source of time information */
-
-}Gnss_LocGnssTimeExtStructType;
-
-
-
-typedef enum
-{
-    GNSS_LOC_MEAS_STATUS_NULL                    = 0x00000000,
-    /**< No information state */
-    GNSS_LOC_MEAS_STATUS_SM_VALID                = 0x00000001,
-    /**< Code phase is known */
-    GNSS_LOC_MEAS_STATUS_SB_VALID                = 0x00000002,
-    /**< Sub-bit time is known */
-    GNSS_LOC_MEAS_STATUS_MS_VALID                = 0x00000004,
-    /**< Satellite time is known */
-    GNSS_LOC_MEAS_STATUS_BE_CONFIRM              = 0x00000008,
-    /**< Bit edge is confirmed from signal   */
-    GNSS_LOC_MEAS_STATUS_VELOCITY_VALID          = 0x00000010,
-    /**< Satellite Doppler measured */
-    GNSS_LOC_MEAS_STATUS_VELOCITY_FINE           = 0x00000020,
-    /**< TRUE: Fine Doppler measured, FALSE: Coarse Doppler measured */
-    GNSS_LOC_MEAS_STATUS_FROM_RNG_DIFF           = 0x00000200,
-    /**< Range update from Satellite differences */
-    GNSS_LOC_MEAS_STATUS_FROM_VE_DIFF            = 0x00000400,
-    /**< Doppler update from Satellite differences */
-    GNSS_LOC_MEAS_STATUS_DONT_USE_X              = 0x00000800,
-    /**< Don't use measurement if bit is set */
-    GNSS_LOC_MEAS_STATUS_DONT_USE_M              = 0x000001000,
-    /**< Don't use measurement if bit is set */
-    GNSS_LOC_MEAS_STATUS_DONT_USE_D              = 0x000002000,
-    /**< Don't use measurement if bit is set */
-    GNSS_LOC_MEAS_STATUS_DONT_USE_S              = 0x000004000,
-    /**< Don't use measurement if bit is set */
-    GNSS_LOC_MEAS_STATUS_DONT_USE_P              = 0x000008000
-    /**< Don't use measurement if bit is set */
-}Gnss_LocSvMeasStatusMaskType;
-
-typedef struct
-{
-    size_t              size;
-    uint32_t            svMs;
-    /**<  Satellite time milisecond.\n
-          For GPS, BDS, GAL range of 0 thru (604800000-1) \n
-          For GLONASS range of 0 thru (86400000-1) \n
-          Valid when PD_LOC_MEAS_STATUS_MS_VALID bit is set in measurement status \n
-          Note: All SV times in the current measurement block are alredy propagated to common reference time epoch. \n
-            - Units: msec \n
-       */
-    float               svSubMs;
-    /**<Satellite time sub-millisecond. \n
-        Total SV Time = svMs + svSubMs \n
-        - Units: msec \n
-       */
-    float               svTimeUncMs;
-    /**<  Satellite Time uncertainty \n
-          - Units: msec \n
-       */
-    float               dopplerShift;
-    /**< Satellite Doppler \n
-            - Units: meter per sec \n
-       */
-    float               dopplerShiftUnc;
-    /**< Satellite Doppler uncertainty\n
-            - Units: meter per sec \n
-       */
-}Gnss_LocSVTimeSpeedStructType;
-
-typedef enum
-{
-  GNSS_SV_STATE_IDLE = 0,
-  GNSS_SV_STATE_SEARCH = 1,
-  GNSS_SV_STATE_SEARCH_VERIFY = 2,
-  GNSS_SV_STATE_BIT_EDGE = 3,
-  GNSS_SV_STATE_VERIFY_TRACK = 4,
-  GNSS_SV_STATE_TRACK = 5,
-  GNSS_SV_STATE_RESTART = 6,
-  GNSS_SV_STATE_DPO_TRACK = 7
-} Gnss_LocSVStateEnumType;
-
-typedef enum
-{
-  GNSS_LOC_SVINFO_MASK_HAS_EPHEMERIS   = 0x01,
-  /**< Ephemeris is available for this SV */
-  GNSS_LOC_SVINFO_MASK_HAS_ALMANAC     = 0x02
-  /**< Almanac is available for this SV */
-}Gnss_LocSvInfoMaskT;
-
-typedef enum
-{
-  GNSS_LOC_SV_SRCH_STATUS_IDLE      = 1,
-    /**< SV is not being actively processed */
-  GNSS_LOC_SV_SRCH_STATUS_SEARCH    = 2,
-    /**< The system is searching for this SV */
-  GNSS_LOC_SV_SRCH_STATUS_TRACK     = 3
-    /**< SV is being tracked */
-}Gnss_LocSvSearchStatusEnumT;
-
-
-typedef struct
-{
-    size_t                          size;
-    uint16_t                        gnssSvId;
-    /**< GNSS SV ID.
-         \begin{itemize1}
-         \item Range:  \begin{itemize1}
-           \item For GPS:      1 to 32
-           \item For GLONASS:  1 to 32
-           \item For SBAS:     120 to 151
-           \item For BDS:      201 to 237
-         \end{itemize1} \end{itemize1}
-        The GPS and GLONASS SVs can be disambiguated using the system field.
-    */
-    uint8_t                         gloFrequency;
-    /**< GLONASS frequency number + 7 \n
-         Valid only for GLONASS System \n
-         Shall be ignored for all other systems \n
-          - Range: 1 to 14 \n
-    */
-    Gnss_LocSvSearchStatusEnumT     svStatus;
-    /**< Satellite search state \n
-        @ENUM()
-    */
-    bool                         healthStatus_valid;
-    /**< SV Health Status validity flag\n
-        - 0: Not valid \n
-        - 1: Valid \n
-    */
-    uint8_t                         healthStatus;
-    /**< Health status.
-         \begin{itemize1}
-         \item    Range: 0 to 1; 0 = unhealthy, \n 1 = healthy, 2 = unknown
-         \vspace{-0.18in} \end{itemize1}
-    */
-    Gnss_LocSvInfoMaskT             svInfoMask;
-    /**< Indicates whether almanac and ephemeris information is available. \n
-        @MASK()
-    */
-    uint64_t                        measurementStatus;
-    /**< Bitmask indicating SV measurement status.
-        Valid bitmasks: \n
-        If any MSB bit in 0xFFC0000000000000 DONT_USE is set, the measurement
-        must not be used by the client.
-        @MASK()
-    */
-    uint16_t                        CNo;
-    /**< Carrier to Noise ratio  \n
-        - Units: 0.1 dBHz \n
-    */
-    uint16_t                          gloRfLoss;
-    /**< GLONASS Rf loss reference to Antenna. \n
-         - Units: dB, Scale: 0.1 \n
-    */
-    bool                         lossOfLock;
-    /**< Loss of signal lock indicator  \n
-         - 0: Signal in continuous track \n
-         - 1: Signal not in track \n
-    */
-    int16_t                         measLatency;
-    /**< Age of the measurement. Positive value means measurement precedes ref time. \n
-         - Units: msec \n
-    */
-    Gnss_LocSVTimeSpeedStructType   svTimeSpeed;
-    /**< Unfiltered SV Time and Speed information
-    */
-    float                           dopplerAccel;
-    /**< Satellite Doppler Accelertion\n
-         - Units: Hz/s \n
-    */
-    bool                         multipathEstValid;
-    /**< Multipath estimate validity flag\n
-        - 0: Multipath estimate not valid \n
-        - 1: Multipath estimate valid \n
-    */
-    float                           multipathEstimate;
-    /**< Estimate of multipath in measurement\n
-         - Units: Meters \n
-    */
-    bool                         fineSpeedValid;
-    /**< Fine speed validity flag\n
-         - 0: Fine speed not valid \n
-         - 1: Fine speed valid \n
-    */
-    float                           fineSpeed;
-    /**< Carrier phase derived speed \n
-         - Units: m/s \n
-    */
-    bool                         fineSpeedUncValid;
-    /**< Fine speed uncertainty validity flag\n
-         - 0: Fine speed uncertainty not valid \n
-         - 1: Fine speed uncertainty valid \n
-    */
-    float                           fineSpeedUnc;
-    /**< Carrier phase derived speed \n
-        - Units: m/s \n
-    */
-    bool                         carrierPhaseValid;
-    /**< Carrier Phase measurement validity flag\n
-         - 0: Carrier Phase not valid \n
-         - 1: Carrier Phase valid \n
-    */
-    double                          carrierPhase;
-    /**< Carrier phase measurement [L1 cycles] \n
-    */
-    bool                         cycleSlipCountValid;
-     /**< Cycle slup count validity flag\n
-         - 0: Not valid \n
-         - 1: Valid \n
-    */
-    uint8_t                         cycleSlipCount;
-    /**< Increments when a CSlip is detected */
-
-    bool                         svDirectionValid;
-    /**< Validity flag for SV direction */
-
-    float                           svAzimuth;
-    /**< Satellite Azimuth
-        - Units: radians \n
-    */
-    float                           svElevation;
-    /**< Satellite Elevation
-        - Units: radians \n
-    */
-} Gnss_SVMeasurementStructType;
-
-/**< Maximum number of satellites in measurement block for given system. */
-
-typedef struct
-{
-    size_t                          size;
-    Gnss_LocSvSystemEnumType        system;
-    /**< Specifies the Satellite System Type
-    */
-    bool                            isSystemTimeValid;
-    /**< Indicates whether System Time is Valid:\n
-         - 0x01 (TRUE) --  System Time is valid \n
-         - 0x00 (FALSE) -- System Time is not valid
-    */
-    Gnss_LocSystemTimeStructType    systemTime;
-    /**< System Time Information \n
-    */
-    bool                            isGloTime_valid;
-    Gnss_LocGloTimeStructType       gloTime;
-
-    bool                            isSystemTimeExt_valid;
-    Gnss_LocGnssTimeExtStructType   systemTimeExt;
-
-    uint8_t                         numSvs;
-    /* Number of SVs in this report block */
-
-    Gnss_SVMeasurementStructType    svMeasurement[GNSS_LOC_SV_MEAS_LIST_MAX_SIZE];
-    /**< Satellite measurement Information \n
-    */
-} Gnss_ClockMeasurementStructType;
-
-
-typedef struct
-{
-    size_t                                      size;
-    uint8_t                                     seqNum;
-    /**< Current message Number */
-    uint8_t                                     maxMessageNum;
-    /**< Maximum number of message that will be sent for present time epoch. */
-
-    bool                                     leapSecValid;
-    Gnss_LeapSecondInfoStructType               leapSec;
-
-    Gnss_InterSystemBiasStructType              gpsGloInterSystemBias;
-
-    Gnss_InterSystemBiasStructType              gpsBdsInterSystemBias;
-
-    Gnss_InterSystemBiasStructType              gpsGalInterSystemBias;
-
-    Gnss_InterSystemBiasStructType              bdsGloInterSystemBias;
-
-    Gnss_InterSystemBiasStructType              galGloInterSystemBias;
-
-    Gnss_InterSystemBiasStructType              galBdsInterSystemBias;
-
-    bool                                     clockFreqValid;
-    Gnss_LocRcvrClockFrequencyInfoStructType    clockFreq;   /* Freq */
-    bool                                     gnssMeasValid;
-    Gnss_ClockMeasurementStructType             gnssMeas;
-    Gnss_ApTimeStampStructType               timeStamp;
-
-} GnssSvMeasurementSet;
-
-typedef enum
-{
-   GNSS_SV_POLY_COEFF_VALID             = 0x01,
-   /**< SV position in orbit coefficients are valid */
-   GNSS_SV_POLY_IONO_VALID              = 0x02,
-   /**< Iono estimates are valid */
-
-   GNSS_SV_POLY_TROPO_VALID             = 0x04,
-   /**< Tropo estimates are valid */
-
-   GNSS_SV_POLY_ELEV_VALID              = 0x08,
-   /**< Elevation, rate, uncertainty are valid */
-
-   GNSS_SV_POLY_SRC_ALM_CORR            = 0x10,
-   /**< Polynomials based on XTRA */
-
-   GNSS_SV_POLY_SBAS_IONO_VALID         = 0x20,
-   /**< SBAS IONO and rate are valid */
-
-   GNSS_SV_POLY_GLO_STR4                = 0x40
-   /**< GLONASS String 4 has been received */
-}Gnss_SvPolyStatusMaskType;
-
-
-typedef struct
-{
-    size_t      size;
-    uint16_t     gnssSvId;
-    /* GPS: 1-32, GLO: 65-96, 0: Invalid,
-       SBAS: 120-151, BDS:201-237,GAL:301 to 336
-       All others are reserved
-    */
-    int8_t      freqNum;
-    /* Freq index, only valid if u_SysInd is GLO */
-
-    uint8_t     svPolyFlags;
-    /* Indicate the validity of the elements
-    as per Gnss_SvPolyStatusMaskType
-    */
-
-    uint32_t    is_valid;
-
-    uint16_t     iode;
-    /* Ephemeris reference time
-       GPS:Issue of Data Ephemeris used [unitless].
-       GLO: Tb 7-bit, refer to ICD02
-    */
-    double      T0;
-    /* Reference time for polynominal calculations
-       GPS: Secs in week.
-       GLO: Full secs since Jan/01/96
-    */
-    double      polyCoeffXYZ0[GNSS_SV_POLY_XYZ_0_TH_ORDER_COEFF_MAX_SIZE];
-    /* C0X, C0Y, C0Z */
-    double      polyCoefXYZN[GNSS_SV_POLY_XYZ_N_TH_ORDER_COEFF_MAX_SIZE];
-    /* C1X, C2X ... C2Z, C3Z */
-    float       polyCoefOther[GNSS_SV_POLY_SV_CLKBIAS_COEFF_MAX_SIZE];
-    /* C0T, C1T, C2T, C3T */
-    float       svPosUnc;       /* SV position uncertainty [m]. */
-    float       ionoDelay;    /* Ionospheric delay at d_T0 [m]. */
-    float       ionoDot;      /* Iono delay rate [m/s].  */
-    float       sbasIonoDelay;/* SBAS Ionospheric delay at d_T0 [m]. */
-    float       sbasIonoDot;  /* SBAS Iono delay rate [m/s].  */
-    float       tropoDelay;   /* Tropospheric delay [m]. */
-    float       elevation;    /* Elevation [rad] at d_T0 */
-    float       elevationDot;      /* Elevation rate [rad/s] */
-    float       elevationUnc;      /* SV elevation [rad] uncertainty */
-    double      velCoef[GNSS_SV_POLY_VELOCITY_COEF_MAX_SIZE];
-    /* Coefficients of velocity poly */
-    uint32_t    enhancedIOD;    /*  Enhanced Reference Time */
-} GnssSvPolynomial;
-
-/* Various Short Range Node Technology type*/
-typedef enum {
-    SRN_AP_DATA_TECH_TYPE_NONE,
-    SRN_AP_DATA_TECH_TYPE_BT,
-    SRN_AP_DATA_TECH_TYPE_BTLE,
-    SRN_AP_DATA_TECH_TYPE_NFC,
-    SRN_AP_DATA_TECH_TYPE_MOBILE_CODE,
-    SRN_AP_DATA_TECH_TYPE_OTHER
-} Gnss_SrnTech;
-
-/* Mac Address type requested by modem */
-typedef enum {
-    SRN_AP_DATA_PUBLIC_MAC_ADDR_TYPE_INVALID, /* No valid mac address type send */
-    SRN_AP_DATA_PUBLIC_MAC_ADDR_TYPE_PUBLIC, /* SRN AP MAC Address type PUBLIC  */
-    SRN_AP_DATA_PUBLIC_MAC_ADDR_TYPE_PRIVATE, /* SRN AP MAC Address type PRIVATE  */
-    SRN_AP_DATA_PUBLIC_MAC_ADDR_TYPE_OTHER, /* SRN AP MAC Address type OTHER  */
-}Gnss_Srn_MacAddr_Type;
-
-typedef struct
-{
-    size_t                 size;
-    Gnss_SrnTech           srnTechType; /* SRN Technology type in request */
-    bool                   srnRequest; /* scan - start(true) or stop(false) */
-    bool                   e911Mode; /* If in E911 emergency */
-    Gnss_Srn_MacAddr_Type  macAddrType; /* SRN AP MAC Address type */
-} GnssSrnDataReq;
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* GPS_EXTENDED_C_H */
diff --git a/sdm845/utils/linked_list.c b/sdm845/utils/linked_list.c
deleted file mode 100644
index 33185d0..0000000
--- a/sdm845/utils/linked_list.c
+++ /dev/null
@@ -1,324 +0,0 @@
-/* Copyright (c) 2011, 2014, 2017 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 "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 "linked_list.h"
-#include <stdio.h>
-#include <string.h>
-
-#define LOG_TAG "LocSvc_utils_ll"
-#include <platform_lib_includes.h>
-#include <stdlib.h>
-#include <stdint.h>
-
-typedef struct list_element {
-   struct list_element* next;
-   struct list_element* prev;
-   void* data_ptr;
-   void (*dealloc_func)(void*);
-}list_element;
-
-typedef struct list_state {
-   list_element* p_head;
-   list_element* p_tail;
-} list_state;
-
-/* ----------------------- END INTERNAL FUNCTIONS ---------------------------------------- */
-
-/*===========================================================================
-
-  FUNCTION:   linked_list_init
-
-  ===========================================================================*/
-linked_list_err_type linked_list_init(void** list_data)
-{
-   if( list_data == NULL )
-   {
-      LOC_LOGE("%s: Invalid list parameter!\n", __FUNCTION__);
-      return eLINKED_LIST_INVALID_PARAMETER;
-   }
-
-   list_state* tmp_list;
-   tmp_list = (list_state*)calloc(1, sizeof(list_state));
-   if( tmp_list == NULL )
-   {
-      LOC_LOGE("%s: Unable to allocate space for list!\n", __FUNCTION__);
-      return eLINKED_LIST_FAILURE_GENERAL;
-   }
-
-   tmp_list->p_head = NULL;
-   tmp_list->p_tail = NULL;
-
-   *list_data = tmp_list;
-
-   return eLINKED_LIST_SUCCESS;
-}
-
-/*===========================================================================
-
-  FUNCTION:   linked_list_destroy
-
-  ===========================================================================*/
-linked_list_err_type linked_list_destroy(void** list_data)
-{
-   if( list_data == NULL )
-   {
-      LOC_LOGE("%s: Invalid list parameter!\n", __FUNCTION__);
-      return eLINKED_LIST_INVALID_HANDLE;
-   }
-
-   list_state* p_list = (list_state*)*list_data;
-
-   linked_list_flush(p_list);
-
-   free(*list_data);
-   *list_data = NULL;
-
-   return eLINKED_LIST_SUCCESS;
-}
-
-/*===========================================================================
-
-  FUNCTION:   linked_list_add
-
-  ===========================================================================*/
-linked_list_err_type linked_list_add(void* list_data, void *data_obj, void (*dealloc)(void*))
-{
-   if( list_data == NULL )
-   {
-      LOC_LOGE("%s: Invalid list parameter!\n", __FUNCTION__);
-      return eLINKED_LIST_INVALID_HANDLE;
-   }
-
-   if( data_obj == NULL )
-   {
-      LOC_LOGE("%s: Invalid input parameter!\n", __FUNCTION__);
-      return eLINKED_LIST_INVALID_PARAMETER;
-   }
-
-   list_state* p_list = (list_state*)list_data;
-   list_element* elem = (list_element*)malloc(sizeof(list_element));
-   if( elem == NULL )
-   {
-      LOC_LOGE("%s: Memory allocation failed\n", __FUNCTION__);
-      return eLINKED_LIST_FAILURE_GENERAL;
-   }
-
-   /* Copy data to newly created element */
-   elem->data_ptr = data_obj;
-   elem->next = NULL;
-   elem->prev = NULL;
-   elem->dealloc_func = dealloc;
-
-   /* Replace head element */
-   list_element* tmp = p_list->p_head;
-   p_list->p_head = elem;
-   /* Point next to the previous head element */
-   p_list->p_head->next = tmp;
-
-   if( tmp != NULL )
-   {
-      tmp->prev = p_list->p_head;
-   }
-   else
-   {
-      p_list->p_tail = p_list->p_head;
-   }
-
-   return eLINKED_LIST_SUCCESS;
-}
-
-/*===========================================================================
-
-  FUNCTION:   linked_list_remove
-
-  ===========================================================================*/
-linked_list_err_type linked_list_remove(void* list_data, void **data_obj)
-{
-   if( list_data == NULL )
-   {
-      LOC_LOGE("%s: Invalid list parameter!\n", __FUNCTION__);
-      return eLINKED_LIST_INVALID_HANDLE;
-   }
-
-   if( data_obj == NULL )
-   {
-      LOC_LOGE("%s: Invalid input parameter!\n", __FUNCTION__);
-      return eLINKED_LIST_INVALID_PARAMETER;
-   }
-
-   list_state* p_list = (list_state*)list_data;
-   if( p_list->p_tail == NULL )
-   {
-      return eLINKED_LIST_UNAVAILABLE_RESOURCE;
-   }
-
-   list_element* tmp = p_list->p_tail;
-
-   /* Replace tail element */
-   p_list->p_tail = tmp->prev;
-
-   if( p_list->p_tail != NULL )
-   {
-      p_list->p_tail->next = NULL;
-   }
-   else
-   {
-      p_list->p_head = p_list->p_tail;
-   }
-
-   /* Copy data to output param */
-   *data_obj = tmp->data_ptr;
-
-   /* Free allocated list element */
-   free(tmp);
-
-   return eLINKED_LIST_SUCCESS;
-}
-
-/*===========================================================================
-
-  FUNCTION:   linked_list_empty
-
-  ===========================================================================*/
-int linked_list_empty(void* list_data)
-{
-   if( list_data == NULL )
-   {
-      LOC_LOGE("%s: Invalid list parameter!\n", __FUNCTION__);
-      return (int)eLINKED_LIST_INVALID_HANDLE;
-   }
-   else
-   {
-      list_state* p_list = (list_state*)list_data;
-      return p_list->p_head == NULL ? 1 : 0;
-   }
-}
-
-/*===========================================================================
-
-  FUNCTION:   linked_list_flush
-
-  ===========================================================================*/
-linked_list_err_type linked_list_flush(void* list_data)
-{
-   if( list_data == NULL )
-   {
-      LOC_LOGE("%s: Invalid list parameter!\n", __FUNCTION__);
-      return eLINKED_LIST_INVALID_HANDLE;
-   }
-
-   list_state* p_list = (list_state*)list_data;
-
-   /* Remove all dynamically allocated elements */
-   while( p_list->p_head != NULL )
-   {
-      list_element* tmp = p_list->p_head->next;
-
-      /* Free data pointer if told to do so. */
-      if( p_list->p_head->dealloc_func != NULL )
-      {
-         p_list->p_head->dealloc_func(p_list->p_head->data_ptr);
-      }
-
-      /* Free list element */
-      free(p_list->p_head);
-
-      p_list->p_head = tmp;
-   }
-
-   p_list->p_tail = NULL;
-
-   return eLINKED_LIST_SUCCESS;
-}
-
-/*===========================================================================
-
-  FUNCTION:   linked_list_search
-
-  ===========================================================================*/
-linked_list_err_type linked_list_search(void* list_data, void **data_p,
-                                        bool (*equal)(void* data_0, void* data),
-                                        void* data_0, bool rm_if_found)
-{
-   if( list_data == NULL || NULL == equal )
-   {
-      LOC_LOGE("%s: Invalid list parameter! list_data %p equal %p\n",
-               __FUNCTION__, list_data, equal);
-      return eLINKED_LIST_INVALID_HANDLE;
-   }
-
-   list_state* p_list = (list_state*)list_data;
-   if( p_list->p_tail == NULL )
-   {
-      return eLINKED_LIST_UNAVAILABLE_RESOURCE;
-   }
-
-   list_element* tmp = p_list->p_head;
-
-   if (NULL != data_p) {
-     *data_p = NULL;
-   }
-
-   while (NULL != tmp) {
-     if ((*equal)(data_0, tmp->data_ptr)) {
-       if (NULL != data_p) {
-         *data_p = tmp->data_ptr;
-       }
-
-       if (rm_if_found) {
-         if (NULL == tmp->prev) {
-           p_list->p_head = tmp->next;
-         } else {
-           tmp->prev->next = tmp->next;
-         }
-
-         if (NULL == tmp->next) {
-           p_list->p_tail = tmp->prev;
-         } else {
-           tmp->next->prev = tmp->prev;
-         }
-
-         tmp->prev = tmp->next = NULL;
-
-         // dealloc data if it is not copied out && caller
-         // has given us a dealloc function pointer.
-         if (NULL == data_p && NULL != tmp->dealloc_func) {
-             tmp->dealloc_func(tmp->data_ptr);
-         }
-         free(tmp);
-       }
-
-       tmp = NULL;
-     } else {
-       tmp = tmp->next;
-     }
-   }
-
-   return eLINKED_LIST_SUCCESS;
-}
-
diff --git a/sdm845/utils/linked_list.h b/sdm845/utils/linked_list.h
deleted file mode 100644
index a85f09a..0000000
--- a/sdm845/utils/linked_list.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/* Copyright (c) 2011, 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 "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 __LINKED_LIST_H__
-#define __LINKED_LIST_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include <stdbool.h>
-#include <stdlib.h>
-
-/** Linked List Return Codes */
-typedef enum
-{
-  eLINKED_LIST_SUCCESS                             = 0,
-     /**< Request was successful. */
-  eLINKED_LIST_FAILURE_GENERAL                     = -1,
-     /**< Failed because of a general failure. */
-  eLINKED_LIST_INVALID_PARAMETER                   = -2,
-     /**< Failed because the request contained invalid parameters. */
-  eLINKED_LIST_INVALID_HANDLE                      = -3,
-     /**< Failed because an invalid handle was specified. */
-  eLINKED_LIST_UNAVAILABLE_RESOURCE                = -4,
-     /**< Failed because an there were not enough resources. */
-  eLINKED_LIST_INSUFFICIENT_BUFFER                 = -5,
-     /**< Failed because an the supplied buffer was too small. */
-}linked_list_err_type;
-
-/*===========================================================================
-FUNCTION    linked_list_init
-
-DESCRIPTION
-   Initializes internal structures for linked list.
-
-   list_data: State of list to be initialized.
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-linked_list_err_type linked_list_init(void** list_data);
-
-/*===========================================================================
-FUNCTION    linked_list_destroy
-
-DESCRIPTION
-   Destroys internal structures for linked list.
-
-   p_list_data: State of list to be destroyed.
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-linked_list_err_type linked_list_destroy(void** list_data);
-
-/*===========================================================================
-FUNCTION    linked_list_add
-
-DESCRIPTION
-   Adds an element to the head of the linked list. The passed in data pointer
-   is not modified or freed. Passed in data_obj is expected to live throughout
-   the use of the linked_list (i.e. data is not allocated internally)
-
-   p_list_data:  List to add data to the head of.
-   data_obj:     Pointer to data to add into list
-   dealloc:      Function used to deallocate memory for this element. Pass NULL
-                 if you do not want data deallocated during a flush operation
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-linked_list_err_type linked_list_add(void* list_data, void *data_obj, void (*dealloc)(void*));
-
-/*===========================================================================
-FUNCTION    linked_list_remove
-
-DESCRIPTION
-   Retrieves data from the list tail. data_obj is the tail element from the list
-   passed in by linked_list_add.
-
-   p_list_data:  List to remove the tail from.
-   data_obj:     Pointer to data removed from list
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-linked_list_err_type linked_list_remove(void* list_data, void **data_obj);
-
-/*===========================================================================
-FUNCTION    linked_list_empty
-
-DESCRIPTION
-   Tells whether the list currently contains any elements
-
-   p_list_data:  List to check if empty.
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   0/FALSE : List contains elements
-   1/TRUE  : List is Empty
-   Otherwise look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-int linked_list_empty(void* list_data);
-
-/*===========================================================================
-FUNCTION    linked_list_flush
-
-DESCRIPTION
-   Removes all elements from the list and deallocates them using the provided
-   dealloc function while adding elements.
-
-   p_list_data:  List to remove all elements from.
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-linked_list_err_type linked_list_flush(void* list_data);
-
-/*===========================================================================
-FUNCTION    linked_list_search
-
-DESCRIPTION
-   Searches for an element in the linked list.
-
-   p_list_data:  List handle.
-   data_p:       to be stored with the data found; NUll if no match.
-                 if data_p passed in as NULL, then no write to it.
-   equal:        Function ptr takes in a list element, and returns
-                 indication if this the one looking for.
-   data_0:       The data being compared against.
-   rm_if_found:  Should data be removed if found?
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-linked_list_err_type linked_list_search(void* list_data, void **data_p,
-                                        bool (*equal)(void* data_0, void* data),
-                                        void* data_0, bool rm_if_found);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __LINKED_LIST_H__ */
diff --git a/sdm845/utils/loc_cfg.cpp b/sdm845/utils/loc_cfg.cpp
deleted file mode 100644
index d2364f6..0000000
--- a/sdm845/utils/loc_cfg.cpp
+++ /dev/null
@@ -1,400 +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 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 "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.
- *
- */
-
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_utils_cfg"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <pthread.h>
-#include <string.h>
-#include <ctype.h>
-#include <unistd.h>
-#include <time.h>
-#include <loc_cfg.h>
-#include <platform_lib_includes.h>
-#include <loc_misc_utils.h>
-#ifdef USE_GLIB
-#include <glib.h>
-#endif
-#include "platform_lib_includes.h"
-
-/*=============================================================================
- *
- *                          GLOBAL DATA DECLARATION
- *
- *============================================================================*/
-
-/* Parameter data */
-static uint32_t DEBUG_LEVEL = 0xff;
-static uint32_t TIMESTAMP = 0;
-
-/* Parameter spec table */
-static const loc_param_s_type loc_param_table[] =
-{
-    {"DEBUG_LEVEL",    &DEBUG_LEVEL, NULL,    'n'},
-    {"TIMESTAMP",      &TIMESTAMP,   NULL,    'n'},
-};
-static const int loc_param_num = sizeof(loc_param_table) / sizeof(loc_param_s_type);
-
-typedef struct loc_param_v_type
-{
-    char* param_name;
-    char* param_str_value;
-    int param_int_value;
-    double param_double_value;
-}loc_param_v_type;
-
-/*===========================================================================
-FUNCTION loc_set_config_entry
-
-DESCRIPTION
-   Potentially sets a given configuration table entry based on the passed in
-   configuration value. This is done by using a string comparison of the
-   parameter names and those found in the configuration file.
-
-PARAMETERS:
-   config_entry: configuration entry in the table to possibly set
-   config_value: value to store in the entry if the parameter names match
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   None
-
-SIDE EFFECTS
-   N/A
-===========================================================================*/
-int loc_set_config_entry(const loc_param_s_type* config_entry, loc_param_v_type* config_value)
-{
-    int ret=-1;
-    if(NULL == config_entry || NULL == config_value)
-    {
-        LOC_LOGE("%s: INVALID config entry or parameter", __FUNCTION__);
-        return ret;
-    }
-
-    if (strcmp(config_entry->param_name, config_value->param_name) == 0 &&
-        config_entry->param_ptr)
-    {
-        switch (config_entry->param_type)
-        {
-        case 's':
-            if (strcmp(config_value->param_str_value, "NULL") == 0)
-            {
-                *((char*)config_entry->param_ptr) = '\0';
-            }
-            else {
-                strlcpy((char*) config_entry->param_ptr,
-                        config_value->param_str_value,
-                        LOC_MAX_PARAM_STRING + 1);
-            }
-            /* Log INI values */
-            LOC_LOGD("%s: PARAM %s = %s", __FUNCTION__,
-                     config_entry->param_name, (char*)config_entry->param_ptr);
-
-            if(NULL != config_entry->param_set)
-            {
-                *(config_entry->param_set) = 1;
-            }
-            ret = 0;
-            break;
-        case 'n':
-            *((int *)config_entry->param_ptr) = config_value->param_int_value;
-            /* Log INI values */
-            LOC_LOGD("%s: PARAM %s = %d", __FUNCTION__,
-                     config_entry->param_name, config_value->param_int_value);
-
-            if(NULL != config_entry->param_set)
-            {
-                *(config_entry->param_set) = 1;
-            }
-            ret = 0;
-            break;
-        case 'f':
-            *((double *)config_entry->param_ptr) = config_value->param_double_value;
-            /* Log INI values */
-            LOC_LOGD("%s: PARAM %s = %f", __FUNCTION__,
-                     config_entry->param_name, config_value->param_double_value);
-
-            if(NULL != config_entry->param_set)
-            {
-                *(config_entry->param_set) = 1;
-            }
-            ret = 0;
-            break;
-        default:
-            LOC_LOGE("%s: PARAM %s parameter type must be n, f, or s",
-                     __FUNCTION__, config_entry->param_name);
-        }
-    }
-    return ret;
-}
-
-/*===========================================================================
-FUNCTION loc_fill_conf_item
-
-DESCRIPTION
-   Takes a line of configuration item and sets defined values based on
-   the passed in configuration table. This table maps strings to values to
-   set along with the type of each of these values.
-
-PARAMETERS:
-   input_buf : buffer contanis config item
-   config_table: table definition of strings to places to store information
-   table_length: length of the configuration table
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   0: Number of records in the config_table filled with input_buf
-
-SIDE EFFECTS
-   N/A
-===========================================================================*/
-int loc_fill_conf_item(char* input_buf,
-                       const loc_param_s_type* config_table, uint32_t table_length)
-{
-    int ret = 0;
-
-    if (input_buf && config_table) {
-        char *lasts;
-        loc_param_v_type config_value;
-        memset(&config_value, 0, sizeof(config_value));
-
-        /* Separate variable and value */
-        config_value.param_name = strtok_r(input_buf, "=", &lasts);
-        /* skip lines that do not contain "=" */
-        if (config_value.param_name) {
-            config_value.param_str_value = strtok_r(NULL, "=", &lasts);
-
-            /* skip lines that do not contain two operands */
-            if (config_value.param_str_value) {
-                /* Trim leading and trailing spaces */
-                loc_util_trim_space(config_value.param_name);
-                loc_util_trim_space(config_value.param_str_value);
-
-                /* Parse numerical value */
-                if ((strlen(config_value.param_str_value) >=3) &&
-                    (config_value.param_str_value[0] == '0') &&
-                    (tolower(config_value.param_str_value[1]) == 'x'))
-                {
-                    /* hex */
-                    config_value.param_int_value = (int) strtol(&config_value.param_str_value[2],
-                                                                (char**) NULL, 16);
-                }
-                else {
-                    config_value.param_double_value = (double) atof(config_value.param_str_value); /* float */
-                    config_value.param_int_value = atoi(config_value.param_str_value); /* dec */
-                }
-
-                for(uint32_t i = 0; NULL != config_table && i < table_length; i++)
-                {
-                    if(!loc_set_config_entry(&config_table[i], &config_value)) {
-                        ret += 1;
-                    }
-                }
-            }
-        }
-    }
-
-    return ret;
-}
-
-/*===========================================================================
-FUNCTION loc_read_conf_r (repetitive)
-
-DESCRIPTION
-   Reads the specified configuration file and sets defined values based on
-   the passed in configuration table. This table maps strings to values to
-   set along with the type of each of these values.
-   The difference between this and loc_read_conf is that this function returns
-   the file pointer position at the end of filling a config table. Also, it
-   reads a fixed number of parameters at a time which is equal to the length
-   of the configuration table. This functionality enables the caller to
-   repeatedly call the function to read data from the same file.
-
-PARAMETERS:
-   conf_fp : file pointer
-   config_table: table definition of strings to places to store information
-   table_length: length of the configuration table
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   0: Table filled successfully
-   1: No more parameters to read
-  -1: Error filling table
-
-SIDE EFFECTS
-   N/A
-===========================================================================*/
-int loc_read_conf_r(FILE *conf_fp, const loc_param_s_type* config_table, uint32_t table_length)
-{
-    int ret=0;
-
-    unsigned int num_params=table_length;
-    if(conf_fp == NULL) {
-        LOC_LOGE("%s:%d]: ERROR: File pointer is NULL\n", __func__, __LINE__);
-        ret = -1;
-        goto err;
-    }
-
-    /* Clear all validity bits */
-    for(uint32_t i = 0; NULL != config_table && i < table_length; i++)
-    {
-        if(NULL != config_table[i].param_set)
-        {
-            *(config_table[i].param_set) = 0;
-        }
-    }
-
-    char input_buf[LOC_MAX_PARAM_LINE];  /* declare a char array */
-
-    LOC_LOGD("%s:%d]: num_params: %d\n", __func__, __LINE__, num_params);
-    while(num_params)
-    {
-        if(!fgets(input_buf, LOC_MAX_PARAM_LINE, conf_fp)) {
-            LOC_LOGD("%s:%d]: fgets returned NULL\n", __func__, __LINE__);
-            break;
-        }
-
-        num_params -= loc_fill_conf_item(input_buf, config_table, table_length);
-    }
-
-err:
-    return ret;
-}
-
-/*===========================================================================
-FUNCTION loc_udpate_conf
-
-DESCRIPTION
-   Parses the passed in buffer for configuration items, and update the table
-   that is also passed in.
-
-Reads the specified configuration file and sets defined values based on
-   the passed in configuration table. This table maps strings to values to
-   set along with the type of each of these values.
-
-PARAMETERS:
-   conf_data: configuration items in bufferas a string
-   length: strlen(conf_data)
-   config_table: table definition of strings to places to store information
-   table_length: length of the configuration table
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   number of the records in the table that is updated at time of return.
-
-SIDE EFFECTS
-   N/A
-===========================================================================*/
-int loc_update_conf(const char* conf_data, int32_t length,
-                    const loc_param_s_type* config_table, uint32_t table_length)
-{
-    int ret = -1;
-
-    if (conf_data && length && config_table && table_length) {
-        // make a copy, so we do not tokenize the original data
-        char* conf_copy = (char*)malloc(length+1);
-
-        if (conf_copy != NULL)
-        {
-            memcpy(conf_copy, conf_data, length);
-            // we hard NULL the end of string to be safe
-            conf_copy[length] = 0;
-
-            // start with one record off
-            uint32_t num_params = table_length - 1;
-            char* saveptr = NULL;
-            char* input_buf = strtok_r(conf_copy, "\n", &saveptr);
-            ret = 0;
-
-            LOC_LOGD("%s:%d]: num_params: %d\n", __func__, __LINE__, num_params);
-            while(num_params && input_buf) {
-                ret++;
-                num_params -= loc_fill_conf_item(input_buf, config_table, table_length);
-                input_buf = strtok_r(NULL, "\n", &saveptr);
-            }
-            free(conf_copy);
-        }
-    }
-
-    return ret;
-}
-
-/*===========================================================================
-FUNCTION loc_read_conf
-
-DESCRIPTION
-   Reads the specified configuration file and sets defined values based on
-   the passed in configuration table. This table maps strings to values to
-   set along with the type of each of these values.
-
-PARAMETERS:
-   conf_file_name: configuration file to read
-   config_table: table definition of strings to places to store information
-   table_length: length of the configuration table
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   None
-
-SIDE EFFECTS
-   N/A
-===========================================================================*/
-void loc_read_conf(const char* conf_file_name, const loc_param_s_type* config_table,
-                   uint32_t table_length)
-{
-    FILE *conf_fp = NULL;
-    char *lasts;
-    loc_param_v_type config_value;
-    uint32_t i;
-
-    if((conf_fp = fopen(conf_file_name, "r")) != NULL)
-    {
-        LOC_LOGD("%s: using %s", __FUNCTION__, conf_file_name);
-        if(table_length && config_table) {
-            loc_read_conf_r(conf_fp, config_table, table_length);
-            rewind(conf_fp);
-        }
-        loc_read_conf_r(conf_fp, loc_param_table, loc_param_num);
-        fclose(conf_fp);
-    }
-    /* Initialize logging mechanism with parsed data */
-    loc_logger_init(DEBUG_LEVEL, TIMESTAMP);
-}
diff --git a/sdm845/utils/loc_cfg.h b/sdm845/utils/loc_cfg.h
deleted file mode 100644
index 9045e1d..0000000
--- a/sdm845/utils/loc_cfg.h
+++ /dev/null
@@ -1,91 +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 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 "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 LOC_CFG_H
-#define LOC_CFG_H
-
-#include <stdio.h>
-#include <stdint.h>
-
-#define LOC_MAX_PARAM_NAME                 80
-#define LOC_MAX_PARAM_STRING               80
-#define LOC_MAX_PARAM_LINE    (LOC_MAX_PARAM_NAME + LOC_MAX_PARAM_STRING)
-
-#define UTIL_UPDATE_CONF(conf_data, len, config_table) \
-    loc_update_conf((conf_data), (len), (config_table), \
-                    sizeof(config_table) / sizeof(config_table[0]))
-
-#define UTIL_READ_CONF_DEFAULT(filename) \
-    loc_read_conf((filename), NULL, 0);
-
-#define UTIL_READ_CONF(filename, config_table) \
-    loc_read_conf((filename), (config_table), sizeof(config_table) / sizeof(config_table[0]))
-
-/*=============================================================================
- *
- *                        MODULE TYPE DECLARATION
- *
- *============================================================================*/
-typedef struct
-{
-  const char                    *param_name;
-  void                          *param_ptr;
-  uint8_t                       *param_set;   /* was this value set by config file? */
-  char                           param_type;  /* 'n' for number,
-                                                 's' for string,
-                                                 'f' for float */
-} loc_param_s_type;
-
-/*=============================================================================
- *
- *                          MODULE EXTERNAL DATA
- *
- *============================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*=============================================================================
- *
- *                       MODULE EXPORTED FUNCTIONS
- *
- *============================================================================*/
-void loc_read_conf(const char* conf_file_name,
-                   const loc_param_s_type* config_table,
-                   uint32_t table_length);
-int loc_read_conf_r(FILE *conf_fp, const loc_param_s_type* config_table,
-                    uint32_t table_length);
-int loc_update_conf(const char* conf_data, int32_t length,
-                    const loc_param_s_type* config_table, uint32_t table_length);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LOC_CFG_H */
diff --git a/sdm845/utils/loc_gps.h b/sdm845/utils/loc_gps.h
deleted file mode 100644
index e3f2182..0000000
--- a/sdm845/utils/loc_gps.h
+++ /dev/null
@@ -1,2209 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LOC_GPS_H
-#define LOC_GPS_H
-
-#include <stdint.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <pthread.h>
-#include <sys/socket.h>
-#include <stdbool.h>
-
-__BEGIN_DECLS
-
-#define LOC_FLP_STATUS_LOCATION_AVAILABLE         0
-#define LOC_FLP_STATUS_LOCATION_UNAVAILABLE       1
-#define LOC_CAPABILITY_GNSS         (1U<<0)
-#define LOC_CAPABILITY_WIFI         (1U<<1)
-#define LOC_CAPABILITY_CELL         (1U<<3)
-
-/** Milliseconds since January 1, 1970 */
-typedef int64_t LocGpsUtcTime;
-
-/** Maximum number of SVs for loc_gps_sv_status_callback(). */
-#define LOC_GPS_MAX_SVS 32
-/** Maximum number of SVs for loc_gps_sv_status_callback(). */
-#define LOC_GNSS_MAX_SVS 64
-
-/** Maximum number of Measurements in loc_gps_measurement_callback(). */
-#define LOC_GPS_MAX_MEASUREMENT   32
-
-/** Maximum number of Measurements in loc_gnss_measurement_callback(). */
-#define LOC_GNSS_MAX_MEASUREMENT   64
-
-/** Requested operational mode for GPS operation. */
-typedef uint32_t LocGpsPositionMode;
-/* IMPORTANT: Note that the following values must match
- * constants in GpsLocationProvider.java. */
-/** Mode for running GPS standalone (no assistance). */
-#define LOC_GPS_POSITION_MODE_STANDALONE    0
-/** AGPS MS-Based mode. */
-#define LOC_GPS_POSITION_MODE_MS_BASED      1
-/**
- * AGPS MS-Assisted mode. This mode is not maintained by the platform anymore.
- * It is strongly recommended to use LOC_GPS_POSITION_MODE_MS_BASED instead.
- */
-#define LOC_GPS_POSITION_MODE_MS_ASSISTED   2
-
-/** Requested recurrence mode for GPS operation. */
-typedef uint32_t LocGpsPositionRecurrence;
-/* IMPORTANT: Note that the following values must match
- * constants in GpsLocationProvider.java. */
-/** Receive GPS fixes on a recurring basis at a specified period. */
-#define LOC_GPS_POSITION_RECURRENCE_PERIODIC    0
-/** Request a single shot GPS fix. */
-#define LOC_GPS_POSITION_RECURRENCE_SINGLE      1
-
-/** GPS status event values. */
-typedef uint16_t LocGpsStatusValue;
-/* IMPORTANT: Note that the following values must match
- * constants in GpsLocationProvider.java. */
-/** GPS status unknown. */
-#define LOC_GPS_STATUS_NONE             0
-/** GPS has begun navigating. */
-#define LOC_GPS_STATUS_SESSION_BEGIN    1
-/** GPS has stopped navigating. */
-#define LOC_GPS_STATUS_SESSION_END      2
-/** GPS has powered on but is not navigating. */
-#define LOC_GPS_STATUS_ENGINE_ON        3
-/** GPS is powered off. */
-#define LOC_GPS_STATUS_ENGINE_OFF       4
-
-/** Flags to indicate which values are valid in a LocGpsLocation. */
-typedef uint16_t LocGpsLocationFlags;
-/* IMPORTANT: Note that the following values must match
- * constants in GpsLocationProvider.java. */
-/** LocGpsLocation has valid latitude and longitude. */
-#define LOC_GPS_LOCATION_HAS_LAT_LONG   0x0001
-/** LocGpsLocation has valid altitude. */
-#define LOC_GPS_LOCATION_HAS_ALTITUDE   0x0002
-/** LocGpsLocation has valid speed. */
-#define LOC_GPS_LOCATION_HAS_SPEED      0x0004
-/** LocGpsLocation has valid bearing. */
-#define LOC_GPS_LOCATION_HAS_BEARING    0x0008
-/** LocGpsLocation has valid accuracy. */
-#define LOC_GPS_LOCATION_HAS_ACCURACY   0x0010
-/** LocGpsLocation has valid vertical uncertainity */
-#define LOC_GPS_LOCATION_HAS_VERT_UNCERTAINITY   0x0020
-
-/** Flags for the loc_gps_set_capabilities callback. */
-
-/**
- * GPS HAL schedules fixes for LOC_GPS_POSITION_RECURRENCE_PERIODIC mode. If this is
- * not set, then the framework will use 1000ms for min_interval and will start
- * and call start() and stop() to schedule the GPS.
- */
-#define LOC_GPS_CAPABILITY_SCHEDULING       (1 << 0)
-/** GPS supports MS-Based AGPS mode */
-#define LOC_GPS_CAPABILITY_MSB              (1 << 1)
-/** GPS supports MS-Assisted AGPS mode */
-#define LOC_GPS_CAPABILITY_MSA              (1 << 2)
-/** GPS supports single-shot fixes */
-#define LOC_GPS_CAPABILITY_SINGLE_SHOT      (1 << 3)
-/** GPS supports on demand time injection */
-#define LOC_GPS_CAPABILITY_ON_DEMAND_TIME   (1 << 4)
-/** GPS supports Geofencing  */
-#define LOC_GPS_CAPABILITY_GEOFENCING       (1 << 5)
-/** GPS supports Measurements. */
-#define LOC_GPS_CAPABILITY_MEASUREMENTS     (1 << 6)
-/** GPS supports Navigation Messages */
-#define LOC_GPS_CAPABILITY_NAV_MESSAGES     (1 << 7)
-
-/**
- * Flags used to specify which aiding data to delete when calling
- * delete_aiding_data().
- */
-typedef uint16_t LocGpsAidingData;
-/* IMPORTANT: Note that the following values must match
- * constants in GpsLocationProvider.java. */
-#define LOC_GPS_DELETE_EPHEMERIS        0x0001
-#define LOC_GPS_DELETE_ALMANAC          0x0002
-#define LOC_GPS_DELETE_POSITION         0x0004
-#define LOC_GPS_DELETE_TIME             0x0008
-#define LOC_GPS_DELETE_IONO             0x0010
-#define LOC_GPS_DELETE_UTC              0x0020
-#define LOC_GPS_DELETE_HEALTH           0x0040
-#define LOC_GPS_DELETE_SVDIR            0x0080
-#define LOC_GPS_DELETE_SVSTEER          0x0100
-#define LOC_GPS_DELETE_SADATA           0x0200
-#define LOC_GPS_DELETE_RTI              0x0400
-#define LOC_GPS_DELETE_CELLDB_INFO      0x8000
-#define LOC_GPS_DELETE_ALL              0xFFFF
-
-/** AGPS type */
-typedef uint16_t LocAGpsType;
-#define LOC_AGPS_TYPE_SUPL          1
-#define LOC_AGPS_TYPE_C2K           2
-
-typedef uint16_t LocAGpsSetIDType;
-#define LOC_AGPS_SETID_TYPE_NONE    0
-#define LOC_AGPS_SETID_TYPE_IMSI    1
-#define LOC_AGPS_SETID_TYPE_MSISDN  2
-
-typedef uint16_t LocApnIpType;
-#define LOC_APN_IP_INVALID          0
-#define LOC_APN_IP_IPV4             1
-#define LOC_APN_IP_IPV6             2
-#define LOC_APN_IP_IPV4V6           3
-
-/**
- * String length constants
- */
-#define LOC_GPS_NI_SHORT_STRING_MAXLEN      256
-#define LOC_GPS_NI_LONG_STRING_MAXLEN       2048
-
-/**
- * LocGpsNiType constants
- */
-typedef uint32_t LocGpsNiType;
-#define LOC_GPS_NI_TYPE_VOICE              1
-#define LOC_GPS_NI_TYPE_UMTS_SUPL          2
-#define LOC_GPS_NI_TYPE_UMTS_CTRL_PLANE    3
-/*Emergency SUPL*/
-#define LOC_GPS_NI_TYPE_EMERGENCY_SUPL     4
-
-/**
- * LocGpsNiNotifyFlags constants
- */
-typedef uint32_t LocGpsNiNotifyFlags;
-/** NI requires notification */
-#define LOC_GPS_NI_NEED_NOTIFY          0x0001
-/** NI requires verification */
-#define LOC_GPS_NI_NEED_VERIFY          0x0002
-/** NI requires privacy override, no notification/minimal trace */
-#define LOC_GPS_NI_PRIVACY_OVERRIDE     0x0004
-
-/**
- * GPS NI responses, used to define the response in
- * NI structures
- */
-typedef int LocGpsUserResponseType;
-#define LOC_GPS_NI_RESPONSE_ACCEPT         1
-#define LOC_GPS_NI_RESPONSE_DENY           2
-#define LOC_GPS_NI_RESPONSE_NORESP         3
-
-/**
- * NI data encoding scheme
- */
-typedef int LocGpsNiEncodingType;
-#define LOC_GPS_ENC_NONE                   0
-#define LOC_GPS_ENC_SUPL_GSM_DEFAULT       1
-#define LOC_GPS_ENC_SUPL_UTF8              2
-#define LOC_GPS_ENC_SUPL_UCS2              3
-#define LOC_GPS_ENC_UNKNOWN                -1
-
-/** AGPS status event values. */
-typedef uint16_t LocAGpsStatusValue;
-/** GPS requests data connection for AGPS. */
-#define LOC_GPS_REQUEST_AGPS_DATA_CONN  1
-/** GPS releases the AGPS data connection. */
-#define LOC_GPS_RELEASE_AGPS_DATA_CONN  2
-/** AGPS data connection initiated */
-#define LOC_GPS_AGPS_DATA_CONNECTED     3
-/** AGPS data connection completed */
-#define LOC_GPS_AGPS_DATA_CONN_DONE     4
-/** AGPS data connection failed */
-#define LOC_GPS_AGPS_DATA_CONN_FAILED   5
-
-typedef uint16_t LocAGpsRefLocationType;
-#define LOC_AGPS_REF_LOCATION_TYPE_GSM_CELLID   1
-#define LOC_AGPS_REF_LOCATION_TYPE_UMTS_CELLID  2
-#define LOC_AGPS_REF_LOCATION_TYPE_MAC          3
-#define LOC_AGPS_REF_LOCATION_TYPE_LTE_CELLID   4
-
-/* Deprecated, to be removed in the next Android release. */
-#define LOC_AGPS_REG_LOCATION_TYPE_MAC          3
-
-/** Network types for update_network_state "type" parameter */
-#define LOC_AGPS_RIL_NETWORK_TYPE_MOBILE        0
-#define LOC_AGPS_RIL_NETWORK_TYPE_WIFI          1
-#define LOC_AGPS_RIL_NETWORK_TYPE_MOBILE_MMS    2
-#define LOC_AGPS_RIL_NETWORK_TYPE_MOBILE_SUPL   3
-#define LOC_AGPS_RIL_NETWORK_TTYPE_MOBILE_DUN   4
-#define LOC_AGPS_RIL_NETWORK_TTYPE_MOBILE_HIPRI 5
-#define LOC_AGPS_RIL_NETWORK_TTYPE_WIMAX        6
-
-/* The following typedef together with its constants below are deprecated, and
- * will be removed in the next release. */
-typedef uint16_t LocGpsClockFlags;
-#define LOC_GPS_CLOCK_HAS_LEAP_SECOND               (1<<0)
-#define LOC_GPS_CLOCK_HAS_TIME_UNCERTAINTY          (1<<1)
-#define LOC_GPS_CLOCK_HAS_FULL_BIAS                 (1<<2)
-#define LOC_GPS_CLOCK_HAS_BIAS                      (1<<3)
-#define LOC_GPS_CLOCK_HAS_BIAS_UNCERTAINTY          (1<<4)
-#define LOC_GPS_CLOCK_HAS_DRIFT                     (1<<5)
-#define LOC_GPS_CLOCK_HAS_DRIFT_UNCERTAINTY         (1<<6)
-
-/**
- * Flags to indicate what fields in LocGnssClock are valid.
- */
-typedef uint16_t LocGnssClockFlags;
-/** A valid 'leap second' is stored in the data structure. */
-#define LOC_GNSS_CLOCK_HAS_LEAP_SECOND               (1<<0)
-/** A valid 'time uncertainty' is stored in the data structure. */
-#define LOC_GNSS_CLOCK_HAS_TIME_UNCERTAINTY          (1<<1)
-/** A valid 'full bias' is stored in the data structure. */
-#define LOC_GNSS_CLOCK_HAS_FULL_BIAS                 (1<<2)
-/** A valid 'bias' is stored in the data structure. */
-#define LOC_GNSS_CLOCK_HAS_BIAS                      (1<<3)
-/** A valid 'bias uncertainty' is stored in the data structure. */
-#define LOC_GNSS_CLOCK_HAS_BIAS_UNCERTAINTY          (1<<4)
-/** A valid 'drift' is stored in the data structure. */
-#define LOC_GNSS_CLOCK_HAS_DRIFT                     (1<<5)
-/** A valid 'drift uncertainty' is stored in the data structure. */
-#define LOC_GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY         (1<<6)
-
-/* The following typedef together with its constants below are deprecated, and
- * will be removed in the next release. */
-typedef uint8_t LocGpsClockType;
-#define LOC_GPS_CLOCK_TYPE_UNKNOWN                  0
-#define LOC_GPS_CLOCK_TYPE_LOCAL_HW_TIME            1
-#define LOC_GPS_CLOCK_TYPE_GPS_TIME                 2
-
-/* The following typedef together with its constants below are deprecated, and
- * will be removed in the next release. */
-typedef uint32_t LocGpsMeasurementFlags;
-#define LOC_GPS_MEASUREMENT_HAS_SNR                               (1<<0)
-#define LOC_GPS_MEASUREMENT_HAS_ELEVATION                         (1<<1)
-#define LOC_GPS_MEASUREMENT_HAS_ELEVATION_UNCERTAINTY             (1<<2)
-#define LOC_GPS_MEASUREMENT_HAS_AZIMUTH                           (1<<3)
-#define LOC_GPS_MEASUREMENT_HAS_AZIMUTH_UNCERTAINTY               (1<<4)
-#define LOC_GPS_MEASUREMENT_HAS_PSEUDORANGE                       (1<<5)
-#define LOC_GPS_MEASUREMENT_HAS_PSEUDORANGE_UNCERTAINTY           (1<<6)
-#define LOC_GPS_MEASUREMENT_HAS_CODE_PHASE                        (1<<7)
-#define LOC_GPS_MEASUREMENT_HAS_CODE_PHASE_UNCERTAINTY            (1<<8)
-#define LOC_GPS_MEASUREMENT_HAS_CARRIER_FREQUENCY                 (1<<9)
-#define LOC_GPS_MEASUREMENT_HAS_CARRIER_CYCLES                    (1<<10)
-#define LOC_GPS_MEASUREMENT_HAS_CARRIER_PHASE                     (1<<11)
-#define LOC_GPS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY         (1<<12)
-#define LOC_GPS_MEASUREMENT_HAS_BIT_NUMBER                        (1<<13)
-#define LOC_GPS_MEASUREMENT_HAS_TIME_FROM_LAST_BIT                (1<<14)
-#define LOC_GPS_MEASUREMENT_HAS_DOPPLER_SHIFT                     (1<<15)
-#define LOC_GPS_MEASUREMENT_HAS_DOPPLER_SHIFT_UNCERTAINTY         (1<<16)
-#define LOC_GPS_MEASUREMENT_HAS_USED_IN_FIX                       (1<<17)
-#define LOC_GPS_MEASUREMENT_HAS_UNCORRECTED_PSEUDORANGE_RATE      (1<<18)
-
-/**
- * Flags to indicate what fields in LocGnssMeasurement are valid.
- */
-typedef uint32_t LocGnssMeasurementFlags;
-/** A valid 'snr' is stored in the data structure. */
-#define LOC_GNSS_MEASUREMENT_HAS_SNR                               (1<<0)
-/** A valid 'carrier frequency' is stored in the data structure. */
-#define LOC_GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY                 (1<<9)
-/** A valid 'carrier cycles' is stored in the data structure. */
-#define LOC_GNSS_MEASUREMENT_HAS_CARRIER_CYCLES                    (1<<10)
-/** A valid 'carrier phase' is stored in the data structure. */
-#define LOC_GNSS_MEASUREMENT_HAS_CARRIER_PHASE                     (1<<11)
-/** A valid 'carrier phase uncertainty' is stored in the data structure. */
-#define LOC_GNSS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY         (1<<12)
-
-/* The following typedef together with its constants below are deprecated, and
- * will be removed in the next release. */
-typedef uint8_t LocGpsLossOfLock;
-#define LOC_GPS_LOSS_OF_LOCK_UNKNOWN                            0
-#define LOC_GPS_LOSS_OF_LOCK_OK                                 1
-#define LOC_GPS_LOSS_OF_LOCK_CYCLE_SLIP                         2
-
-/* The following typedef together with its constants below are deprecated, and
- * will be removed in the next release. Use LocGnssMultipathIndicator instead.
- */
-typedef uint8_t LocGpsMultipathIndicator;
-#define LOC_GPS_MULTIPATH_INDICATOR_UNKNOWN                 0
-#define LOC_GPS_MULTIPATH_INDICATOR_DETECTED                1
-#define LOC_GPS_MULTIPATH_INDICATOR_NOT_USED                2
-
-/**
- * Enumeration of available values for the GNSS Measurement's multipath
- * indicator.
- */
-typedef uint8_t LocGnssMultipathIndicator;
-/** The indicator is not available or unknown. */
-#define LOC_GNSS_MULTIPATH_INDICATOR_UNKNOWN                 0
-/** The measurement is indicated to be affected by multipath. */
-#define LOC_GNSS_MULTIPATH_INDICATOR_PRESENT                 1
-/** The measurement is indicated to be not affected by multipath. */
-#define LOC_GNSS_MULTIPATH_INDICATOR_NOT_PRESENT             2
-
-/* The following typedef together with its constants below are deprecated, and
- * will be removed in the next release. */
-typedef uint16_t LocGpsMeasurementState;
-#define LOC_GPS_MEASUREMENT_STATE_UNKNOWN                   0
-#define LOC_GPS_MEASUREMENT_STATE_CODE_LOCK             (1<<0)
-#define LOC_GPS_MEASUREMENT_STATE_BIT_SYNC              (1<<1)
-#define LOC_GPS_MEASUREMENT_STATE_SUBFRAME_SYNC         (1<<2)
-#define LOC_GPS_MEASUREMENT_STATE_TOW_DECODED           (1<<3)
-#define LOC_GPS_MEASUREMENT_STATE_MSEC_AMBIGUOUS        (1<<4)
-
-/**
- * Flags indicating the GNSS measurement state.
- *
- * The expected behavior here is for GPS HAL to set all the flags that applies.
- * For example, if the state for a satellite is only C/A code locked and bit
- * synchronized, and there is still millisecond ambiguity, the state should be
- * set as:
- *
- * LOC_GNSS_MEASUREMENT_STATE_CODE_LOCK | LOC_GNSS_MEASUREMENT_STATE_BIT_SYNC |
- *         LOC_GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS
- *
- * If GNSS is still searching for a satellite, the corresponding state should be
- * set to LOC_GNSS_MEASUREMENT_STATE_UNKNOWN(0).
- */
-typedef uint32_t LocGnssMeasurementState;
-#define LOC_GNSS_MEASUREMENT_STATE_UNKNOWN                   0
-#define LOC_GNSS_MEASUREMENT_STATE_CODE_LOCK             (1<<0)
-#define LOC_GNSS_MEASUREMENT_STATE_BIT_SYNC              (1<<1)
-#define LOC_GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC         (1<<2)
-#define LOC_GNSS_MEASUREMENT_STATE_TOW_DECODED           (1<<3)
-#define LOC_GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS        (1<<4)
-#define LOC_GNSS_MEASUREMENT_STATE_SYMBOL_SYNC           (1<<5)
-#define LOC_GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC       (1<<6)
-#define LOC_GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED       (1<<7)
-#define LOC_GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC       (1<<8)
-#define LOC_GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC  (1<<9)
-#define LOC_GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK    (1<<10)
-#define LOC_GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK (1<<11)
-#define LOC_GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC     (1<<12)
-#define LOC_GNSS_MEASUREMENT_STATE_SBAS_SYNC             (1<<13)
-
-/* The following typedef together with its constants below are deprecated, and
- * will be removed in the next release. */
-typedef uint16_t LocGpsAccumulatedDeltaRangeState;
-#define LOC_GPS_ADR_STATE_UNKNOWN                       0
-#define LOC_GPS_ADR_STATE_VALID                     (1<<0)
-#define LOC_GPS_ADR_STATE_RESET                     (1<<1)
-#define LOC_GPS_ADR_STATE_CYCLE_SLIP                (1<<2)
-
-/**
- * Flags indicating the Accumulated Delta Range's states.
- */
-typedef uint16_t LocGnssAccumulatedDeltaRangeState;
-#define LOC_GNSS_ADR_STATE_UNKNOWN                       0
-#define LOC_GNSS_ADR_STATE_VALID                     (1<<0)
-#define LOC_GNSS_ADR_STATE_RESET                     (1<<1)
-#define LOC_GNSS_ADR_STATE_CYCLE_SLIP                (1<<2)
-
-#if 0
-/* The following typedef together with its constants below are deprecated, and
- * will be removed in the next release. */
-typedef uint8_t GpsNavigationMessageType;
-#define GPS_NAVIGATION_MESSAGE_TYPE_UNKNOWN         0
-#define GPS_NAVIGATION_MESSAGE_TYPE_L1CA            1
-#define GPS_NAVIGATION_MESSAGE_TYPE_L2CNAV          2
-#define GPS_NAVIGATION_MESSAGE_TYPE_L5CNAV          3
-#define GPS_NAVIGATION_MESSAGE_TYPE_CNAV2           4
-
-/**
- * Enumeration of available values to indicate the GNSS Navigation message
- * types.
- *
- * For convenience, first byte is the LocGnssConstellationType on which that signal
- * is typically transmitted
- */
-typedef int16_t GnssNavigationMessageType;
-
-#define GNSS_NAVIGATION_MESSAGE_TYPE_UNKNOWN       0
-/** GPS L1 C/A message contained in the structure.  */
-#define GNSS_NAVIGATION_MESSAGE_TYPE_GPS_L1CA      0x0101
-/** GPS L2-CNAV message contained in the structure. */
-#define GNSS_NAVIGATION_MESSAGE_TYPE_GPS_L2CNAV    0x0102
-/** GPS L5-CNAV message contained in the structure. */
-#define GNSS_NAVIGATION_MESSAGE_TYPE_GPS_L5CNAV    0x0103
-/** GPS CNAV-2 message contained in the structure. */
-#define GNSS_NAVIGATION_MESSAGE_TYPE_GPS_CNAV2     0x0104
-/** Glonass L1 CA message contained in the structure. */
-#define GNSS_NAVIGATION_MESSAGE_TYPE_GLO_L1CA      0x0301
-/** Beidou D1 message contained in the structure. */
-#define GNSS_NAVIGATION_MESSAGE_TYPE_BDS_D1        0x0501
-/** Beidou D2 message contained in the structure. */
-#define GNSS_NAVIGATION_MESSAGE_TYPE_BDS_D2        0x0502
-/** Galileo I/NAV message contained in the structure. */
-#define GNSS_NAVIGATION_MESSAGE_TYPE_GAL_I         0x0601
-/** Galileo F/NAV message contained in the structure. */
-#define GNSS_NAVIGATION_MESSAGE_TYPE_GAL_F         0x0602
-
-/**
- * Status of Navigation Message
- * When a message is received properly without any parity error in its navigation words, the
- * status should be set to NAV_MESSAGE_STATUS_PARITY_PASSED. But if a message is received
- * with words that failed parity check, but GPS is able to correct those words, the status
- * should be set to NAV_MESSAGE_STATUS_PARITY_REBUILT.
- * No need to send any navigation message that contains words with parity error and cannot be
- * corrected.
- */
-typedef uint16_t NavigationMessageStatus;
-#define NAV_MESSAGE_STATUS_UNKNOWN              0
-#define NAV_MESSAGE_STATUS_PARITY_PASSED   (1<<0)
-#define NAV_MESSAGE_STATUS_PARITY_REBUILT  (1<<1)
-
-/* This constant is deprecated, and will be removed in the next release. */
-#define NAV_MESSAGE_STATUS_UNKONW              0
-#endif
-
-/**
- * Flags that indicate information about the satellite
- */
-typedef uint8_t                                 LocGnssSvFlags;
-#define LOC_GNSS_SV_FLAGS_NONE                      0
-#define LOC_GNSS_SV_FLAGS_HAS_EPHEMERIS_DATA        (1 << 0)
-#define LOC_GNSS_SV_FLAGS_HAS_ALMANAC_DATA          (1 << 1)
-#define LOC_GNSS_SV_FLAGS_USED_IN_FIX               (1 << 2)
-
-/**
- * Constellation type of LocGnssSvInfo
- */
-typedef uint8_t                         LocGnssConstellationType;
-#define LOC_GNSS_CONSTELLATION_UNKNOWN      0
-#define LOC_GNSS_CONSTELLATION_GPS          1
-#define LOC_GNSS_CONSTELLATION_SBAS         2
-#define LOC_GNSS_CONSTELLATION_GLONASS      3
-#define LOC_GNSS_CONSTELLATION_QZSS         4
-#define LOC_GNSS_CONSTELLATION_BEIDOU       5
-#define LOC_GNSS_CONSTELLATION_GALILEO      6
-
-/**
- * Name for the GPS XTRA interface.
- */
-#define LOC_GPS_XTRA_INTERFACE      "gps-xtra"
-
-/**
- * Name for the GPS DEBUG interface.
- */
-#define LOC_GPS_DEBUG_INTERFACE      "gps-debug"
-
-/**
- * Name for the AGPS interface.
- */
-
-#define LOC_AGPS_INTERFACE      "agps"
-
-/**
- * Name of the Supl Certificate interface.
- */
-#define LOC_SUPL_CERTIFICATE_INTERFACE  "supl-certificate"
-
-/**
- * Name for NI interface
- */
-#define LOC_GPS_NI_INTERFACE "gps-ni"
-
-/**
- * Name for the AGPS-RIL interface.
- */
-#define LOC_AGPS_RIL_INTERFACE      "agps_ril"
-
-/**
- * Name for the GPS_Geofencing interface.
- */
-#define LOC_GPS_GEOFENCING_INTERFACE   "gps_geofencing"
-
-/**
- * Name of the GPS Measurements interface.
- */
-#define LOC_GPS_MEASUREMENT_INTERFACE   "gps_measurement"
-
-/**
- * Name of the GPS navigation message interface.
- */
-#define LOC_GPS_NAVIGATION_MESSAGE_INTERFACE     "gps_navigation_message"
-
-/**
- * Name of the GNSS/GPS configuration interface.
- */
-#define LOC_GNSS_CONFIGURATION_INTERFACE     "gnss_configuration"
-
-/** Represents a location. */
-typedef struct {
-    /** set to sizeof(LocGpsLocation) */
-    size_t          size;
-    /** Contains LocGpsLocationFlags bits. */
-    uint16_t        flags;
-    /** Represents latitude in degrees. */
-    double          latitude;
-    /** Represents longitude in degrees. */
-    double          longitude;
-    /**
-     * Represents altitude in meters above the WGS 84 reference ellipsoid.
-     */
-    double          altitude;
-    /** Represents speed in meters per second. */
-    float           speed;
-    /** Represents heading in degrees. */
-    float           bearing;
-    /** Represents expected accuracy in meters. */
-    float           accuracy;
-    /** Represents the expected vertical uncertainity in meters*/
-    float           vertUncertainity;
-    /** Timestamp for the location fix. */
-    LocGpsUtcTime      timestamp;
-} LocGpsLocation;
-
-/** Represents the status. */
-typedef struct {
-    /** set to sizeof(LocGpsStatus) */
-    size_t          size;
-    LocGpsStatusValue status;
-} LocGpsStatus;
-
-/**
- * Legacy struct to represents SV information.
- * Deprecated, to be removed in the next Android release.
- * Use LocGnssSvInfo instead.
- */
-typedef struct {
-    /** set to sizeof(LocGpsSvInfo) */
-    size_t          size;
-    /** Pseudo-random number for the SV. */
-    int     prn;
-    /** Signal to noise ratio. */
-    float   snr;
-    /** Elevation of SV in degrees. */
-    float   elevation;
-    /** Azimuth of SV in degrees. */
-    float   azimuth;
-} LocGpsSvInfo;
-
-typedef struct {
-    /** set to sizeof(LocGnssSvInfo) */
-    size_t size;
-
-    /**
-     * Pseudo-random number for the SV, or FCN/OSN number for Glonass. The
-     * distinction is made by looking at constellation field. Values should be
-     * in the range of:
-     *
-     * - GPS:     1-32
-     * - SBAS:    120-151, 183-192
-     * - GLONASS: 1-24, the orbital slot number (OSN), if known.  Or, if not:
-     *            93-106, the frequency channel number (FCN) (-7 to +6) offset by + 100
-     *            i.e. report an FCN of -7 as 93, FCN of 0 as 100, and FCN of +6 as 106.
-     * - QZSS:    193-200
-     * - Galileo: 1-36
-     * - Beidou:  1-37
-     */
-    int16_t svid;
-
-    /**
-     * Defines the constellation of the given SV. Value should be one of those
-     * LOC_GNSS_CONSTELLATION_* constants
-     */
-    LocGnssConstellationType constellation;
-
-    /**
-     * Carrier-to-noise density in dB-Hz, typically in the range [0, 63].
-     * It contains the measured C/N0 value for the signal at the antenna port.
-     *
-     * This is a mandatory value.
-     */
-    float c_n0_dbhz;
-
-    /** Elevation of SV in degrees. */
-    float elevation;
-
-    /** Azimuth of SV in degrees. */
-    float azimuth;
-
-    /**
-     * Contains additional data about the given SV. Value should be one of those
-     * LOC_GNSS_SV_FLAGS_* constants
-     */
-    LocGnssSvFlags flags;
-
-} LocGnssSvInfo;
-
-/**
- * Legacy struct to represents SV status.
- * Deprecated, to be removed in the next Android release.
- * Use LocGnssSvStatus instead.
- */
-typedef struct {
-    /** set to sizeof(LocGpsSvStatus) */
-    size_t size;
-    int num_svs;
-    LocGpsSvInfo sv_list[LOC_GPS_MAX_SVS];
-    uint32_t ephemeris_mask;
-    uint32_t almanac_mask;
-    uint32_t used_in_fix_mask;
-} LocGpsSvStatus;
-
-/**
- * Represents SV status.
- */
-typedef struct {
-    /** set to sizeof(LocGnssSvStatus) */
-    size_t size;
-
-    /** Number of GPS SVs currently visible, refers to the SVs stored in sv_list */
-    int num_svs;
-    /**
-     * Pointer to an array of SVs information for all GNSS constellations,
-     * except GPS, which is reported using sv_list
-     */
-    LocGnssSvInfo gnss_sv_list[LOC_GNSS_MAX_SVS];
-
-} LocGnssSvStatus;
-
-/* CellID for 2G, 3G and LTE, used in AGPS. */
-typedef struct {
-    LocAGpsRefLocationType type;
-    /** Mobile Country Code. */
-    uint16_t mcc;
-    /** Mobile Network Code .*/
-    uint16_t mnc;
-    /** Location Area Code in 2G, 3G and LTE. In 3G lac is discarded. In LTE,
-     * lac is populated with tac, to ensure that we don't break old clients that
-     * might rely in the old (wrong) behavior.
-     */
-    uint16_t lac;
-    /** Cell id in 2G. Utran Cell id in 3G. Cell Global Id EUTRA in LTE. */
-    uint32_t cid;
-    /** Tracking Area Code in LTE. */
-    uint16_t tac;
-    /** Physical Cell id in LTE (not used in 2G and 3G) */
-    uint16_t pcid;
-} LocAGpsRefLocationCellID;
-
-typedef struct {
-    uint8_t mac[6];
-} LocAGpsRefLocationMac;
-
-/** Represents ref locations */
-typedef struct {
-    LocAGpsRefLocationType type;
-    union {
-        LocAGpsRefLocationCellID   cellID;
-        LocAGpsRefLocationMac      mac;
-    } u;
-} LocAGpsRefLocation;
-
-/**
- * Callback with location information. Can only be called from a thread created
- * by create_thread_cb.
- */
-typedef void (* loc_gps_location_callback)(LocGpsLocation* location);
-
-/**
- * Callback with status information. Can only be called from a thread created by
- * create_thread_cb.
- */
-typedef void (* loc_gps_status_callback)(LocGpsStatus* status);
-/**
- * Legacy callback with SV status information.
- * Can only be called from a thread created by create_thread_cb.
- *
- * This callback is deprecated, and will be removed in the next release. Use
- * loc_gnss_sv_status_callback() instead.
- */
-typedef void (* loc_gps_sv_status_callback)(LocGpsSvStatus* sv_info);
-
-/**
- * Callback with SV status information.
- * Can only be called from a thread created by create_thread_cb.
- */
-typedef void (* loc_gnss_sv_status_callback)(LocGnssSvStatus* sv_info);
-
-/**
- * Callback for reporting NMEA sentences. Can only be called from a thread
- * created by create_thread_cb.
- */
-typedef void (* loc_gps_nmea_callback)(LocGpsUtcTime timestamp, const char* nmea, int length);
-
-/**
- * Callback to inform framework of the GPS engine's capabilities. Capability
- * parameter is a bit field of LOC_GPS_CAPABILITY_* flags.
- */
-typedef void (* loc_gps_set_capabilities)(uint32_t capabilities);
-
-/**
- * Callback utility for acquiring the GPS wakelock. This can be used to prevent
- * the CPU from suspending while handling GPS events.
- */
-typedef void (* loc_gps_acquire_wakelock)();
-
-/** Callback utility for releasing the GPS wakelock. */
-typedef void (* loc_gps_release_wakelock)();
-
-/** Callback for requesting NTP time */
-typedef void (* loc_gps_request_utc_time)();
-
-/**
- * Callback for creating a thread that can call into the Java framework code.
- * This must be used to create any threads that report events up to the
- * framework.
- */
-typedef pthread_t (* loc_gps_create_thread)(const char* name, void (*start)(void *), void* arg);
-
-/**
- * Provides information about how new the underlying GPS/GNSS hardware and
- * software is.
- *
- * This information will be available for Android Test Applications. If a GPS
- * HAL does not provide this information, it will be considered "2015 or
- * earlier".
- *
- * If a GPS HAL does provide this information, then newer years will need to
- * meet newer CTS standards. E.g. if the date are 2016 or above, then N+ level
- * LocGpsMeasurement support will be verified.
- */
-typedef struct {
-    /** Set to sizeof(LocGnssSystemInfo) */
-    size_t   size;
-    /* year in which the last update was made to the underlying hardware/firmware
-     * used to capture GNSS signals, e.g. 2016 */
-    uint16_t year_of_hw;
-} LocGnssSystemInfo;
-
-/**
- * Callback to inform framework of the engine's hardware version information.
- */
-typedef void (*loc_gnss_set_system_info)(const LocGnssSystemInfo* info);
-
-/** New GPS callback structure. */
-typedef struct {
-    /** set to sizeof(LocGpsCallbacks) */
-    size_t      size;
-    loc_gps_location_callback location_cb;
-    loc_gps_status_callback status_cb;
-    loc_gps_sv_status_callback sv_status_cb;
-    loc_gps_nmea_callback nmea_cb;
-    loc_gps_set_capabilities set_capabilities_cb;
-    loc_gps_acquire_wakelock acquire_wakelock_cb;
-    loc_gps_release_wakelock release_wakelock_cb;
-    loc_gps_create_thread create_thread_cb;
-    loc_gps_request_utc_time request_utc_time_cb;
-
-    loc_gnss_set_system_info set_system_info_cb;
-    loc_gnss_sv_status_callback gnss_sv_status_cb;
-} LocGpsCallbacks;
-
-/** Represents the standard GPS interface. */
-typedef struct {
-    /** set to sizeof(LocGpsInterface) */
-    size_t          size;
-    /**
-     * Opens the interface and provides the callback routines
-     * to the implementation of this interface.
-     */
-    int   (*init)( LocGpsCallbacks* callbacks );
-
-    /** Starts navigating. */
-    int   (*start)( void );
-
-    /** Stops navigating. */
-    int   (*stop)( void );
-
-    /** Closes the interface. */
-    void  (*cleanup)( void );
-
-    /** Injects the current time. */
-    int   (*inject_time)(LocGpsUtcTime time, int64_t timeReference,
-                         int uncertainty);
-
-    /**
-     * Injects current location from another location provider (typically cell
-     * ID). Latitude and longitude are measured in degrees expected accuracy is
-     * measured in meters
-     */
-    int  (*inject_location)(double latitude, double longitude, float accuracy);
-
-    /**
-     * Specifies that the next call to start will not use the
-     * information defined in the flags. LOC_GPS_DELETE_ALL is passed for
-     * a cold start.
-     */
-    void  (*delete_aiding_data)(LocGpsAidingData flags);
-
-    /**
-     * min_interval represents the time between fixes in milliseconds.
-     * preferred_accuracy represents the requested fix accuracy in meters.
-     * preferred_time represents the requested time to first fix in milliseconds.
-     *
-     * 'mode' parameter should be one of LOC_GPS_POSITION_MODE_MS_BASED
-     * or LOC_GPS_POSITION_MODE_STANDALONE.
-     * It is allowed by the platform (and it is recommended) to fallback to
-     * LOC_GPS_POSITION_MODE_MS_BASED if LOC_GPS_POSITION_MODE_MS_ASSISTED is passed in, and
-     * LOC_GPS_POSITION_MODE_MS_BASED is supported.
-     */
-    int   (*set_position_mode)(LocGpsPositionMode mode, LocGpsPositionRecurrence recurrence,
-            uint32_t min_interval, uint32_t preferred_accuracy, uint32_t preferred_time);
-
-    /** Get a pointer to extension information. */
-    const void* (*get_extension)(const char* name);
-} LocGpsInterface;
-
-/**
- * Callback to request the client to download XTRA data. The client should
- * download XTRA data and inject it by calling inject_xtra_data(). Can only be
- * called from a thread created by create_thread_cb.
- */
-typedef void (* loc_gps_xtra_download_request)();
-
-/** Callback structure for the XTRA interface. */
-typedef struct {
-    loc_gps_xtra_download_request download_request_cb;
-    loc_gps_create_thread create_thread_cb;
-} LocGpsXtraCallbacks;
-
-/** Extended interface for XTRA support. */
-typedef struct {
-    /** set to sizeof(LocGpsXtraInterface) */
-    size_t          size;
-    /**
-     * Opens the XTRA interface and provides the callback routines
-     * to the implementation of this interface.
-     */
-    int  (*init)( LocGpsXtraCallbacks* callbacks );
-    /** Injects XTRA data into the GPS. */
-    int  (*inject_xtra_data)( char* data, int length );
-} LocGpsXtraInterface;
-
-#if 0
-/** Extended interface for DEBUG support. */
-typedef struct {
-    /** set to sizeof(LocGpsDebugInterface) */
-    size_t          size;
-
-    /**
-     * This function should return any information that the native
-     * implementation wishes to include in a bugreport.
-     */
-    size_t (*get_internal_state)(char* buffer, size_t bufferSize);
-} LocGpsDebugInterface;
-#endif
-
-/*
- * Represents the status of AGPS augmented to support IPv4 and IPv6.
- */
-typedef struct {
-    /** set to sizeof(LocAGpsStatus) */
-    size_t                  size;
-
-    LocAGpsType                type;
-    LocAGpsStatusValue         status;
-
-    /**
-     * Must be set to a valid IPv4 address if the field 'addr' contains an IPv4
-     * address, or set to INADDR_NONE otherwise.
-     */
-    uint32_t                ipaddr;
-
-    /**
-     * Must contain the IPv4 (AF_INET) or IPv6 (AF_INET6) address to report.
-     * Any other value of addr.ss_family will be rejected.
-     */
-    struct sockaddr_storage addr;
-} LocAGpsStatus;
-
-/**
- * Callback with AGPS status information. Can only be called from a thread
- * created by create_thread_cb.
- */
-typedef void (* loc_agps_status_callback)(LocAGpsStatus* status);
-
-/** Callback structure for the AGPS interface. */
-typedef struct {
-    loc_agps_status_callback status_cb;
-    loc_gps_create_thread create_thread_cb;
-} LocAGpsCallbacks;
-
-/**
- * Extended interface for AGPS support, it is augmented to enable to pass
- * extra APN data.
- */
-typedef struct {
-    /** set to sizeof(LocAGpsInterface) */
-    size_t size;
-
-    /**
-     * Opens the AGPS interface and provides the callback routines to the
-     * implementation of this interface.
-     */
-    void (*init)(LocAGpsCallbacks* callbacks);
-    /**
-     * Deprecated.
-     * If the HAL supports LocAGpsInterface_v2 this API will not be used, see
-     * data_conn_open_with_apn_ip_type for more information.
-     */
-    int (*data_conn_open)(const char* apn);
-    /**
-     * Notifies that the AGPS data connection has been closed.
-     */
-    int (*data_conn_closed)();
-    /**
-     * Notifies that a data connection is not available for AGPS.
-     */
-    int (*data_conn_failed)();
-    /**
-     * Sets the hostname and port for the AGPS server.
-     */
-    int (*set_server)(LocAGpsType type, const char* hostname, int port);
-
-    /**
-     * Notifies that a data connection is available and sets the name of the
-     * APN, and its IP type, to be used for SUPL connections.
-     */
-    int (*data_conn_open_with_apn_ip_type)(
-            const char* apn,
-            LocApnIpType apnIpType);
-} LocAGpsInterface;
-
-/** Error codes associated with certificate operations */
-#define LOC_AGPS_CERTIFICATE_OPERATION_SUCCESS               0
-#define LOC_AGPS_CERTIFICATE_ERROR_GENERIC                -100
-#define LOC_AGPS_CERTIFICATE_ERROR_TOO_MANY_CERTIFICATES  -101
-
-/** A data structure that represents an X.509 certificate using DER encoding */
-typedef struct {
-    size_t  length;
-    u_char* data;
-} LocDerEncodedCertificate;
-
-/**
- * A type definition for SHA1 Fingerprints used to identify X.509 Certificates
- * The Fingerprint is a digest of the DER Certificate that uniquely identifies it.
- */
-typedef struct {
-    u_char data[20];
-} LocSha1CertificateFingerprint;
-
-/** AGPS Interface to handle SUPL certificate operations */
-typedef struct {
-    /** set to sizeof(LocSuplCertificateInterface) */
-    size_t size;
-
-    /**
-     * Installs a set of Certificates used for SUPL connections to the AGPS server.
-     * If needed the HAL should find out internally any certificates that need to be removed to
-     * accommodate the certificates to install.
-     * The certificates installed represent a full set of valid certificates needed to connect to
-     * AGPS SUPL servers.
-     * The list of certificates is required, and all must be available at the same time, when trying
-     * to establish a connection with the AGPS Server.
-     *
-     * Parameters:
-     *      certificates - A pointer to an array of DER encoded certificates that are need to be
-     *                     installed in the HAL.
-     *      length - The number of certificates to install.
-     * Returns:
-     *      LOC_AGPS_CERTIFICATE_OPERATION_SUCCESS if the operation is completed successfully
-     *      LOC_AGPS_CERTIFICATE_ERROR_TOO_MANY_CERTIFICATES if the HAL cannot store the number of
-     *          certificates attempted to be installed, the state of the certificates stored should
-     *          remain the same as before on this error case.
-     *
-     * IMPORTANT:
-     *      If needed the HAL should find out internally the set of certificates that need to be
-     *      removed to accommodate the certificates to install.
-     */
-    int  (*install_certificates) ( const LocDerEncodedCertificate* certificates, size_t length );
-
-    /**
-     * Notifies the HAL that a list of certificates used for SUPL connections are revoked. It is
-     * expected that the given set of certificates is removed from the internal store of the HAL.
-     *
-     * Parameters:
-     *      fingerprints - A pointer to an array of SHA1 Fingerprints to identify the set of
-     *                     certificates to revoke.
-     *      length - The number of fingerprints provided.
-     * Returns:
-     *      LOC_AGPS_CERTIFICATE_OPERATION_SUCCESS if the operation is completed successfully.
-     *
-     * IMPORTANT:
-     *      If any of the certificates provided (through its fingerprint) is not known by the HAL,
-     *      it should be ignored and continue revoking/deleting the rest of them.
-     */
-    int  (*revoke_certificates) ( const LocSha1CertificateFingerprint* fingerprints, size_t length );
-} LocSuplCertificateInterface;
-
-/** Represents an NI request */
-typedef struct {
-    /** set to sizeof(LocGpsNiNotification) */
-    size_t          size;
-
-    /**
-     * An ID generated by HAL to associate NI notifications and UI
-     * responses
-     */
-    int             notification_id;
-
-    /**
-     * An NI type used to distinguish different categories of NI
-     * events, such as LOC_GPS_NI_TYPE_VOICE, LOC_GPS_NI_TYPE_UMTS_SUPL, ...
-     */
-    LocGpsNiType       ni_type;
-
-    /**
-     * Notification/verification options, combinations of LocGpsNiNotifyFlags constants
-     */
-    LocGpsNiNotifyFlags notify_flags;
-
-    /**
-     * Timeout period to wait for user response.
-     * Set to 0 for no time out limit.
-     */
-    int             timeout;
-
-    /**
-     * Default response when time out.
-     */
-    LocGpsUserResponseType default_response;
-
-    /**
-     * Requestor ID
-     */
-    char            requestor_id[LOC_GPS_NI_SHORT_STRING_MAXLEN];
-
-    /**
-     * Notification message. It can also be used to store client_id in some cases
-     */
-    char            text[LOC_GPS_NI_LONG_STRING_MAXLEN];
-
-    /**
-     * Client name decoding scheme
-     */
-    LocGpsNiEncodingType requestor_id_encoding;
-
-    /**
-     * Client name decoding scheme
-     */
-    LocGpsNiEncodingType text_encoding;
-
-    /**
-     * A pointer to extra data. Format:
-     * key_1 = value_1
-     * key_2 = value_2
-     */
-    char           extras[LOC_GPS_NI_LONG_STRING_MAXLEN];
-
-} LocGpsNiNotification;
-
-/**
- * Callback with NI notification. Can only be called from a thread created by
- * create_thread_cb.
- */
-typedef void (*loc_gps_ni_notify_callback)(LocGpsNiNotification *notification);
-
-/** GPS NI callback structure. */
-typedef struct
-{
-    /**
-     * Sends the notification request from HAL to GPSLocationProvider.
-     */
-    loc_gps_ni_notify_callback notify_cb;
-    loc_gps_create_thread create_thread_cb;
-} LocGpsNiCallbacks;
-
-/**
- * Extended interface for Network-initiated (NI) support.
- */
-typedef struct
-{
-    /** set to sizeof(LocGpsNiInterface) */
-    size_t          size;
-
-   /** Registers the callbacks for HAL to use. */
-   void (*init) (LocGpsNiCallbacks *callbacks);
-
-   /** Sends a response to HAL. */
-   void (*respond) (int notif_id, LocGpsUserResponseType user_response);
-} LocGpsNiInterface;
-
-#define LOC_AGPS_RIL_REQUEST_SETID_IMSI     (1<<0L)
-#define LOC_AGPS_RIL_REQUEST_SETID_MSISDN   (1<<1L)
-
-#define LOC_AGPS_RIL_REQUEST_REFLOC_CELLID  (1<<0L)
-#define LOC_AGPS_RIL_REQUEST_REFLOC_MAC     (1<<1L)
-
-typedef void (*loc_agps_ril_request_set_id)(uint32_t flags);
-typedef void (*loc_agps_ril_request_ref_loc)(uint32_t flags);
-
-typedef struct {
-    loc_agps_ril_request_set_id request_setid;
-    loc_agps_ril_request_ref_loc request_refloc;
-    loc_gps_create_thread create_thread_cb;
-} LocAGpsRilCallbacks;
-
-/** Extended interface for AGPS_RIL support. */
-typedef struct {
-    /** set to sizeof(LocAGpsRilInterface) */
-    size_t          size;
-    /**
-     * Opens the AGPS interface and provides the callback routines
-     * to the implementation of this interface.
-     */
-    void  (*init)( LocAGpsRilCallbacks* callbacks );
-
-    /**
-     * Sets the reference location.
-     */
-    void (*set_ref_location) (const LocAGpsRefLocation *agps_reflocation, size_t sz_struct);
-    /**
-     * Sets the set ID.
-     */
-    void (*set_set_id) (LocAGpsSetIDType type, const char* setid);
-
-    /**
-     * Send network initiated message.
-     */
-    void (*ni_message) (uint8_t *msg, size_t len);
-
-    /**
-     * Notify GPS of network status changes.
-     * These parameters match values in the android.net.NetworkInfo class.
-     */
-    void (*update_network_state) (int connected, int type, int roaming, const char* extra_info);
-
-    /**
-     * Notify GPS of network status changes.
-     * These parameters match values in the android.net.NetworkInfo class.
-     */
-    void (*update_network_availability) (int avaiable, const char* apn);
-} LocAGpsRilInterface;
-
-/**
- * GPS Geofence.
- *      There are 3 states associated with a Geofence: Inside, Outside, Unknown.
- * There are 3 transitions: ENTERED, EXITED, UNCERTAIN.
- *
- * An example state diagram with confidence level: 95% and Unknown time limit
- * set as 30 secs is shown below. (confidence level and Unknown time limit are
- * explained latter)
- *                         ____________________________
- *                        |       Unknown (30 secs)   |
- *                         """"""""""""""""""""""""""""
- *                            ^ |                  |  ^
- *                   UNCERTAIN| |ENTERED     EXITED|  |UNCERTAIN
- *                            | v                  v  |
- *                        ________    EXITED     _________
- *                       | Inside | -----------> | Outside |
- *                       |        | <----------- |         |
- *                        """"""""    ENTERED    """""""""
- *
- * Inside state: We are 95% confident that the user is inside the geofence.
- * Outside state: We are 95% confident that the user is outside the geofence
- * Unknown state: Rest of the time.
- *
- * The Unknown state is better explained with an example:
- *
- *                            __________
- *                           |         c|
- *                           |  ___     |    _______
- *                           |  |a|     |   |   b   |
- *                           |  """     |    """""""
- *                           |          |
- *                            """"""""""
- * In the diagram above, "a" and "b" are 2 geofences and "c" is the accuracy
- * circle reported by the GPS subsystem. Now with regard to "b", the system is
- * confident that the user is outside. But with regard to "a" is not confident
- * whether it is inside or outside the geofence. If the accuracy remains the
- * same for a sufficient period of time, the UNCERTAIN transition would be
- * triggered with the state set to Unknown. If the accuracy improves later, an
- * appropriate transition should be triggered.  This "sufficient period of time"
- * is defined by the parameter in the add_geofence_area API.
- *     In other words, Unknown state can be interpreted as a state in which the
- * GPS subsystem isn't confident enough that the user is either inside or
- * outside the Geofence. It moves to Unknown state only after the expiry of the
- * timeout.
- *
- * The geofence callback needs to be triggered for the ENTERED and EXITED
- * transitions, when the GPS system is confident that the user has entered
- * (Inside state) or exited (Outside state) the Geofence. An implementation
- * which uses a value of 95% as the confidence is recommended. The callback
- * should be triggered only for the transitions requested by the
- * add_geofence_area call.
- *
- * Even though the diagram and explanation talks about states and transitions,
- * the callee is only interested in the transistions. The states are mentioned
- * here for illustrative purposes.
- *
- * Startup Scenario: When the device boots up, if an application adds geofences,
- * and then we get an accurate GPS location fix, it needs to trigger the
- * appropriate (ENTERED or EXITED) transition for every Geofence it knows about.
- * By default, all the Geofences will be in the Unknown state.
- *
- * When the GPS system is unavailable, loc_gps_geofence_status_callback should be
- * called to inform the upper layers of the same. Similarly, when it becomes
- * available the callback should be called. This is a global state while the
- * UNKNOWN transition described above is per geofence.
- *
- * An important aspect to note is that users of this API (framework), will use
- * other subsystems like wifi, sensors, cell to handle Unknown case and
- * hopefully provide a definitive state transition to the third party
- * application. GPS Geofence will just be a signal indicating what the GPS
- * subsystem knows about the Geofence.
- *
- */
-#define LOC_GPS_GEOFENCE_ENTERED     (1<<0L)
-#define LOC_GPS_GEOFENCE_EXITED      (1<<1L)
-#define LOC_GPS_GEOFENCE_UNCERTAIN   (1<<2L)
-
-#define LOC_GPS_GEOFENCE_UNAVAILABLE (1<<0L)
-#define LOC_GPS_GEOFENCE_AVAILABLE   (1<<1L)
-
-#define LOC_GPS_GEOFENCE_OPERATION_SUCCESS           0
-#define LOC_GPS_GEOFENCE_ERROR_TOO_MANY_GEOFENCES -100
-#define LOC_GPS_GEOFENCE_ERROR_ID_EXISTS          -101
-#define LOC_GPS_GEOFENCE_ERROR_ID_UNKNOWN         -102
-#define LOC_GPS_GEOFENCE_ERROR_INVALID_TRANSITION -103
-#define LOC_GPS_GEOFENCE_ERROR_GENERIC            -149
-
-/**
- * The callback associated with the geofence.
- * Parameters:
- *      geofence_id - The id associated with the add_geofence_area.
- *      location    - The current GPS location.
- *      transition  - Can be one of LOC_GPS_GEOFENCE_ENTERED, LOC_GPS_GEOFENCE_EXITED,
- *                    LOC_GPS_GEOFENCE_UNCERTAIN.
- *      timestamp   - Timestamp when the transition was detected.
- *
- * The callback should only be called when the caller is interested in that
- * particular transition. For instance, if the caller is interested only in
- * ENTERED transition, then the callback should NOT be called with the EXITED
- * transition.
- *
- * IMPORTANT: If a transition is triggered resulting in this callback, the GPS
- * subsystem will wake up the application processor, if its in suspend state.
- */
-typedef void (*loc_gps_geofence_transition_callback) (int32_t geofence_id,  LocGpsLocation* location,
-        int32_t transition, LocGpsUtcTime timestamp);
-
-/**
- * The callback associated with the availability of the GPS system for geofencing
- * monitoring. If the GPS system determines that it cannot monitor geofences
- * because of lack of reliability or unavailability of the GPS signals, it will
- * call this callback with LOC_GPS_GEOFENCE_UNAVAILABLE parameter.
- *
- * Parameters:
- *  status - LOC_GPS_GEOFENCE_UNAVAILABLE or LOC_GPS_GEOFENCE_AVAILABLE.
- *  last_location - Last known location.
- */
-typedef void (*loc_gps_geofence_status_callback) (int32_t status, LocGpsLocation* last_location);
-
-/**
- * The callback associated with the add_geofence call.
- *
- * Parameter:
- * geofence_id - Id of the geofence.
- * status - LOC_GPS_GEOFENCE_OPERATION_SUCCESS
- *          LOC_GPS_GEOFENCE_ERROR_TOO_MANY_GEOFENCES  - geofence limit has been reached.
- *          LOC_GPS_GEOFENCE_ERROR_ID_EXISTS  - geofence with id already exists
- *          LOC_GPS_GEOFENCE_ERROR_INVALID_TRANSITION - the monitorTransition contains an
- *              invalid transition
- *          LOC_GPS_GEOFENCE_ERROR_GENERIC - for other errors.
- */
-typedef void (*loc_gps_geofence_add_callback) (int32_t geofence_id, int32_t status);
-
-/**
- * The callback associated with the remove_geofence call.
- *
- * Parameter:
- * geofence_id - Id of the geofence.
- * status - LOC_GPS_GEOFENCE_OPERATION_SUCCESS
- *          LOC_GPS_GEOFENCE_ERROR_ID_UNKNOWN - for invalid id
- *          LOC_GPS_GEOFENCE_ERROR_GENERIC for others.
- */
-typedef void (*loc_gps_geofence_remove_callback) (int32_t geofence_id, int32_t status);
-
-
-/**
- * The callback associated with the pause_geofence call.
- *
- * Parameter:
- * geofence_id - Id of the geofence.
- * status - LOC_GPS_GEOFENCE_OPERATION_SUCCESS
- *          LOC_GPS_GEOFENCE_ERROR_ID_UNKNOWN - for invalid id
- *          LOC_GPS_GEOFENCE_ERROR_INVALID_TRANSITION -
- *                    when monitor_transitions is invalid
- *          LOC_GPS_GEOFENCE_ERROR_GENERIC for others.
- */
-typedef void (*loc_gps_geofence_pause_callback) (int32_t geofence_id, int32_t status);
-
-/**
- * The callback associated with the resume_geofence call.
- *
- * Parameter:
- * geofence_id - Id of the geofence.
- * status - LOC_GPS_GEOFENCE_OPERATION_SUCCESS
- *          LOC_GPS_GEOFENCE_ERROR_ID_UNKNOWN - for invalid id
- *          LOC_GPS_GEOFENCE_ERROR_GENERIC for others.
- */
-typedef void (*loc_gps_geofence_resume_callback) (int32_t geofence_id, int32_t status);
-
-typedef struct {
-    loc_gps_geofence_transition_callback geofence_transition_callback;
-    loc_gps_geofence_status_callback geofence_status_callback;
-    loc_gps_geofence_add_callback geofence_add_callback;
-    loc_gps_geofence_remove_callback geofence_remove_callback;
-    loc_gps_geofence_pause_callback geofence_pause_callback;
-    loc_gps_geofence_resume_callback geofence_resume_callback;
-    loc_gps_create_thread create_thread_cb;
-} LocGpsGeofenceCallbacks;
-
-/** Extended interface for GPS_Geofencing support */
-typedef struct {
-   /** set to sizeof(LocGpsGeofencingInterface) */
-   size_t          size;
-
-   /**
-    * Opens the geofence interface and provides the callback routines
-    * to the implementation of this interface.
-    */
-   void  (*init)( LocGpsGeofenceCallbacks* callbacks );
-
-   /**
-    * Add a geofence area. This api currently supports circular geofences.
-    * Parameters:
-    *    geofence_id - The id for the geofence. If a geofence with this id
-    *       already exists, an error value (LOC_GPS_GEOFENCE_ERROR_ID_EXISTS)
-    *       should be returned.
-    *    latitude, longtitude, radius_meters - The lat, long and radius
-    *       (in meters) for the geofence
-    *    last_transition - The current state of the geofence. For example, if
-    *       the system already knows that the user is inside the geofence,
-    *       this will be set to LOC_GPS_GEOFENCE_ENTERED. In most cases, it
-    *       will be LOC_GPS_GEOFENCE_UNCERTAIN.
-    *    monitor_transition - Which transitions to monitor. Bitwise OR of
-    *       LOC_GPS_GEOFENCE_ENTERED, LOC_GPS_GEOFENCE_EXITED and
-    *       LOC_GPS_GEOFENCE_UNCERTAIN.
-    *    notification_responsiveness_ms - Defines the best-effort description
-    *       of how soon should the callback be called when the transition
-    *       associated with the Geofence is triggered. For instance, if set
-    *       to 1000 millseconds with LOC_GPS_GEOFENCE_ENTERED, the callback
-    *       should be called 1000 milliseconds within entering the geofence.
-    *       This parameter is defined in milliseconds.
-    *       NOTE: This is not to be confused with the rate that the GPS is
-    *       polled at. It is acceptable to dynamically vary the rate of
-    *       sampling the GPS for power-saving reasons; thus the rate of
-    *       sampling may be faster or slower than this.
-    *    unknown_timer_ms - The time limit after which the UNCERTAIN transition
-    *       should be triggered. This parameter is defined in milliseconds.
-    *       See above for a detailed explanation.
-    */
-   void (*add_geofence_area) (int32_t geofence_id, double latitude, double longitude,
-       double radius_meters, int last_transition, int monitor_transitions,
-       int notification_responsiveness_ms, int unknown_timer_ms);
-
-   /**
-    * Pause monitoring a particular geofence.
-    * Parameters:
-    *   geofence_id - The id for the geofence.
-    */
-   void (*pause_geofence) (int32_t geofence_id);
-
-   /**
-    * Resume monitoring a particular geofence.
-    * Parameters:
-    *   geofence_id - The id for the geofence.
-    *   monitor_transitions - Which transitions to monitor. Bitwise OR of
-    *       LOC_GPS_GEOFENCE_ENTERED, LOC_GPS_GEOFENCE_EXITED and
-    *       LOC_GPS_GEOFENCE_UNCERTAIN.
-    *       This supersedes the value associated provided in the
-    *       add_geofence_area call.
-    */
-   void (*resume_geofence) (int32_t geofence_id, int monitor_transitions);
-
-   /**
-    * Remove a geofence area. After the function returns, no notifications
-    * should be sent.
-    * Parameter:
-    *   geofence_id - The id for the geofence.
-    */
-   void (*remove_geofence_area) (int32_t geofence_id);
-} LocGpsGeofencingInterface;
-
-/**
- * Legacy struct to represent an estimate of the GPS clock time.
- * Deprecated, to be removed in the next Android release.
- * Use LocGnssClock instead.
- */
-typedef struct {
-    /** set to sizeof(LocGpsClock) */
-    size_t size;
-    LocGpsClockFlags flags;
-    int16_t leap_second;
-    LocGpsClockType type;
-    int64_t time_ns;
-    double time_uncertainty_ns;
-    int64_t full_bias_ns;
-    double bias_ns;
-    double bias_uncertainty_ns;
-    double drift_nsps;
-    double drift_uncertainty_nsps;
-} LocGpsClock;
-
-/**
- * Represents an estimate of the GPS clock time.
- */
-typedef struct {
-    /** set to sizeof(LocGnssClock) */
-    size_t size;
-
-    /**
-     * A set of flags indicating the validity of the fields in this data
-     * structure.
-     */
-    LocGnssClockFlags flags;
-
-    /**
-     * Leap second data.
-     * The sign of the value is defined by the following equation:
-     *      utc_time_ns = time_ns - (full_bias_ns + bias_ns) - leap_second *
-     *      1,000,000,000
-     *
-     * If the data is available 'flags' must contain LOC_GNSS_CLOCK_HAS_LEAP_SECOND.
-     */
-    int16_t leap_second;
-
-    /**
-     * The GNSS receiver internal clock value. This is the local hardware clock
-     * value.
-     *
-     * For local hardware clock, this value is expected to be monotonically
-     * increasing while the hardware clock remains power on. (For the case of a
-     * HW clock that is not continuously on, see the
-     * hw_clock_discontinuity_count field). The receiver's estimate of GPS time
-     * can be derived by substracting the sum of full_bias_ns and bias_ns (when
-     * available) from this value.
-     *
-     * This GPS time is expected to be the best estimate of current GPS time
-     * that GNSS receiver can achieve.
-     *
-     * Sub-nanosecond accuracy can be provided by means of the 'bias_ns' field.
-     * The value contains the 'time uncertainty' in it.
-     *
-     * This field is mandatory.
-     */
-    int64_t time_ns;
-
-    /**
-     * 1-Sigma uncertainty associated with the clock's time in nanoseconds.
-     * The uncertainty is represented as an absolute (single sided) value.
-     *
-     * If the data is available, 'flags' must contain
-     * LOC_GNSS_CLOCK_HAS_TIME_UNCERTAINTY. This value is effectively zero (it is
-     * the reference local clock, by which all other times and time
-     * uncertainties are measured.)  (And thus this field can be not provided,
-     * per LOC_GNSS_CLOCK_HAS_TIME_UNCERTAINTY flag, or provided & set to 0.)
-     */
-    double time_uncertainty_ns;
-
-    /**
-     * The difference between hardware clock ('time' field) inside GPS receiver
-     * and the true GPS time since 0000Z, January 6, 1980, in nanoseconds.
-     *
-     * The sign of the value is defined by the following equation:
-     *      local estimate of GPS time = time_ns - (full_bias_ns + bias_ns)
-     *
-     * This value is mandatory if the receiver has estimated GPS time. If the
-     * computed time is for a non-GPS constellation, the time offset of that
-     * constellation to GPS has to be applied to fill this value. The error
-     * estimate for the sum of this and the bias_ns is the bias_uncertainty_ns,
-     * and the caller is responsible for using this uncertainty (it can be very
-     * large before the GPS time has been solved for.) If the data is available
-     * 'flags' must contain LOC_GNSS_CLOCK_HAS_FULL_BIAS.
-     */
-    int64_t full_bias_ns;
-
-    /**
-     * Sub-nanosecond bias.
-     * The error estimate for the sum of this and the full_bias_ns is the
-     * bias_uncertainty_ns
-     *
-     * If the data is available 'flags' must contain LOC_GNSS_CLOCK_HAS_BIAS. If GPS
-     * has computed a position fix. This value is mandatory if the receiver has
-     * estimated GPS time.
-     */
-    double bias_ns;
-
-    /**
-     * 1-Sigma uncertainty associated with the local estimate of GPS time (clock
-     * bias) in nanoseconds. The uncertainty is represented as an absolute
-     * (single sided) value.
-     *
-     * If the data is available 'flags' must contain
-     * LOC_GNSS_CLOCK_HAS_BIAS_UNCERTAINTY. This value is mandatory if the receiver
-     * has estimated GPS time.
-     */
-    double bias_uncertainty_ns;
-
-    /**
-     * The clock's drift in nanoseconds (per second).
-     *
-     * A positive value means that the frequency is higher than the nominal
-     * frequency, and that the (full_bias_ns + bias_ns) is growing more positive
-     * over time.
-     *
-     * The value contains the 'drift uncertainty' in it.
-     * If the data is available 'flags' must contain LOC_GNSS_CLOCK_HAS_DRIFT.
-     *
-     * This value is mandatory if the receiver has estimated GNSS time
-     */
-    double drift_nsps;
-
-    /**
-     * 1-Sigma uncertainty associated with the clock's drift in nanoseconds (per second).
-     * The uncertainty is represented as an absolute (single sided) value.
-     *
-     * If the data is available 'flags' must contain
-     * LOC_GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY. If GPS has computed a position fix this
-     * field is mandatory and must be populated.
-     */
-    double drift_uncertainty_nsps;
-
-    /**
-     * When there are any discontinuities in the HW clock, this field is
-     * mandatory.
-     *
-     * A "discontinuity" is meant to cover the case of a switch from one source
-     * of clock to another.  A single free-running crystal oscillator (XO)
-     * should generally not have any discontinuities, and this can be set and
-     * left at 0.
-     *
-     * If, however, the time_ns value (HW clock) is derived from a composite of
-     * sources, that is not as smooth as a typical XO, or is otherwise stopped &
-     * restarted, then this value shall be incremented each time a discontinuity
-     * occurs.  (E.g. this value may start at zero at device boot-up and
-     * increment each time there is a change in clock continuity. In the
-     * unlikely event that this value reaches full scale, rollover (not
-     * clamping) is required, such that this value continues to change, during
-     * subsequent discontinuity events.)
-     *
-     * While this number stays the same, between LocGnssClock reports, it can be
-     * safely assumed that the time_ns value has been running continuously, e.g.
-     * derived from a single, high quality clock (XO like, or better, that's
-     * typically used during continuous GNSS signal sampling.)
-     *
-     * It is expected, esp. during periods where there are few GNSS signals
-     * available, that the HW clock be discontinuity-free as long as possible,
-     * as this avoids the need to use (waste) a GNSS measurement to fully
-     * re-solve for the GPS clock bias and drift, when using the accompanying
-     * measurements, from consecutive LocGnssData reports.
-     */
-    uint32_t hw_clock_discontinuity_count;
-
-} LocGnssClock;
-
-/**
- * Legacy struct to represent a GPS Measurement, it contains raw and computed
- * information.
- * Deprecated, to be removed in the next Android release.
- * Use LocGnssMeasurement instead.
- */
-typedef struct {
-    /** set to sizeof(LocGpsMeasurement) */
-    size_t size;
-    LocGpsMeasurementFlags flags;
-    int8_t prn;
-    double time_offset_ns;
-    LocGpsMeasurementState state;
-    int64_t received_gps_tow_ns;
-    int64_t received_gps_tow_uncertainty_ns;
-    double c_n0_dbhz;
-    double pseudorange_rate_mps;
-    double pseudorange_rate_uncertainty_mps;
-    LocGpsAccumulatedDeltaRangeState accumulated_delta_range_state;
-    double accumulated_delta_range_m;
-    double accumulated_delta_range_uncertainty_m;
-    double pseudorange_m;
-    double pseudorange_uncertainty_m;
-    double code_phase_chips;
-    double code_phase_uncertainty_chips;
-    float carrier_frequency_hz;
-    int64_t carrier_cycles;
-    double carrier_phase;
-    double carrier_phase_uncertainty;
-    LocGpsLossOfLock loss_of_lock;
-    int32_t bit_number;
-    int16_t time_from_last_bit_ms;
-    double doppler_shift_hz;
-    double doppler_shift_uncertainty_hz;
-    LocGpsMultipathIndicator multipath_indicator;
-    double snr_db;
-    double elevation_deg;
-    double elevation_uncertainty_deg;
-    double azimuth_deg;
-    double azimuth_uncertainty_deg;
-    bool used_in_fix;
-} LocGpsMeasurement;
-
-/**
- * Represents a GNSS Measurement, it contains raw and computed information.
- *
- * Independence - All signal measurement information (e.g. sv_time,
- * pseudorange_rate, multipath_indicator) reported in this struct should be
- * based on GNSS signal measurements only. You may not synthesize measurements
- * by calculating or reporting expected measurements based on known or estimated
- * position, velocity, or time.
- */
-typedef struct {
-    /** set to sizeof(LocGnssMeasurement) */
-    size_t size;
-
-    /** A set of flags indicating the validity of the fields in this data structure. */
-    LocGnssMeasurementFlags flags;
-
-    /**
-     * Satellite vehicle ID number, as defined in LocGnssSvInfo::svid
-     * This is a mandatory value.
-     */
-    int16_t svid;
-
-    /**
-     * Defines the constellation of the given SV. Value should be one of those
-     * LOC_GNSS_CONSTELLATION_* constants
-     */
-    LocGnssConstellationType constellation;
-
-    /**
-     * Time offset at which the measurement was taken in nanoseconds.
-     * The reference receiver's time is specified by LocGpsData::clock::time_ns and should be
-     * interpreted in the same way as indicated by LocGpsClock::type.
-     *
-     * The sign of time_offset_ns is given by the following equation:
-     *      measurement time = LocGpsClock::time_ns + time_offset_ns
-     *
-     * It provides an individual time-stamp for the measurement, and allows sub-nanosecond accuracy.
-     * This is a mandatory value.
-     */
-    double time_offset_ns;
-
-    /**
-     * Per satellite sync state. It represents the current sync state for the associated satellite.
-     * Based on the sync state, the 'received GPS tow' field should be interpreted accordingly.
-     *
-     * This is a mandatory value.
-     */
-    LocGnssMeasurementState state;
-
-    /**
-     * The received GNSS Time-of-Week at the measurement time, in nanoseconds.
-     * Ensure that this field is independent (see comment at top of
-     * LocGnssMeasurement struct.)
-     *
-     * For GPS & QZSS, this is:
-     *   Received GPS Time-of-Week at the measurement time, in nanoseconds.
-     *   The value is relative to the beginning of the current GPS week.
-     *
-     *   Given the highest sync state that can be achieved, per each satellite, valid range
-     *   for this field can be:
-     *     Searching       : [ 0       ]   : LOC_GNSS_MEASUREMENT_STATE_UNKNOWN
-     *     C/A code lock   : [ 0   1ms ]   : LOC_GNSS_MEASUREMENT_STATE_CODE_LOCK is set
-     *     Bit sync        : [ 0  20ms ]   : LOC_GNSS_MEASUREMENT_STATE_BIT_SYNC is set
-     *     Subframe sync   : [ 0    6s ]   : LOC_GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC is set
-     *     TOW decoded     : [ 0 1week ]   : LOC_GNSS_MEASUREMENT_STATE_TOW_DECODED is set
-     *
-     *   Note well: if there is any ambiguity in integer millisecond,
-     *   LOC_GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS should be set accordingly, in the 'state' field.
-     *
-     *   This value must be populated if 'state' != LOC_GNSS_MEASUREMENT_STATE_UNKNOWN.
-     *
-     * For Glonass, this is:
-     *   Received Glonass time of day, at the measurement time in nanoseconds.
-     *
-     *   Given the highest sync state that can be achieved, per each satellite, valid range for
-     *   this field can be:
-     *     Searching       : [ 0       ]   : LOC_GNSS_MEASUREMENT_STATE_UNKNOWN
-     *     C/A code lock   : [ 0   1ms ]   : LOC_GNSS_MEASUREMENT_STATE_CODE_LOCK is set
-     *     Symbol sync     : [ 0  10ms ]   : LOC_GNSS_MEASUREMENT_STATE_SYMBOL_SYNC is set
-     *     Bit sync        : [ 0  20ms ]   : LOC_GNSS_MEASUREMENT_STATE_BIT_SYNC is set
-     *     String sync     : [ 0    2s ]   : LOC_GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC is set
-     *     Time of day     : [ 0  1day ]   : LOC_GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED is set
-     *
-     * For Beidou, this is:
-     *   Received Beidou time of week, at the measurement time in nanoseconds.
-     *
-     *   Given the highest sync state that can be achieved, per each satellite, valid range for
-     *   this field can be:
-     *     Searching    : [ 0       ] : LOC_GNSS_MEASUREMENT_STATE_UNKNOWN
-     *     C/A code lock: [ 0   1ms ] : LOC_GNSS_MEASUREMENT_STATE_CODE_LOCK is set
-     *     Bit sync (D2): [ 0   2ms ] : LOC_GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC is set
-     *     Bit sync (D1): [ 0  20ms ] : LOC_GNSS_MEASUREMENT_STATE_BIT_SYNC is set
-     *     Subframe (D2): [ 0  0.6s ] : LOC_GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC is set
-     *     Subframe (D1): [ 0    6s ] : LOC_GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC is set
-     *     Time of week : [ 0 1week ] : LOC_GNSS_MEASUREMENT_STATE_TOW_DECODED is set
-     *
-     * For Galileo, this is:
-     *   Received Galileo time of week, at the measurement time in nanoseconds.
-     *
-     *     E1BC code lock   : [ 0   4ms ]   : LOC_GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK is set
-     *     E1C 2nd code lock: [ 0 100ms ]   :
-     *     LOC_GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK is set
-     *
-     *     E1B page    : [ 0    2s ] : LOC_GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC is set
-     *     Time of week: [ 0 1week ] : LOC_GNSS_MEASUREMENT_STATE_TOW_DECODED is set
-     *
-     * For SBAS, this is:
-     *   Received SBAS time, at the measurement time in nanoseconds.
-     *
-     *   Given the highest sync state that can be achieved, per each satellite,
-     *   valid range for this field can be:
-     *     Searching    : [ 0     ] : LOC_GNSS_MEASUREMENT_STATE_UNKNOWN
-     *     C/A code lock: [ 0 1ms ] : LOC_GNSS_MEASUREMENT_STATE_CODE_LOCK is set
-     *     Symbol sync  : [ 0 2ms ] : LOC_GNSS_MEASUREMENT_STATE_SYMBOL_SYNC is set
-     *     Message      : [ 0  1s ] : LOC_GNSS_MEASUREMENT_STATE_SBAS_SYNC is set
-    */
-    int64_t received_sv_time_in_ns;
-
-    /**
-     * 1-Sigma uncertainty of the Received GPS Time-of-Week in nanoseconds.
-     *
-     * This value must be populated if 'state' != LOC_GPS_MEASUREMENT_STATE_UNKNOWN.
-     */
-    int64_t received_sv_time_uncertainty_in_ns;
-
-    /**
-     * Carrier-to-noise density in dB-Hz, typically in the range [0, 63].
-     * It contains the measured C/N0 value for the signal at the antenna port.
-     *
-     * This is a mandatory value.
-     */
-    double c_n0_dbhz;
-
-    /**
-     * Pseudorange rate at the timestamp in m/s. The correction of a given
-     * Pseudorange Rate value includes corrections for receiver and satellite
-     * clock frequency errors. Ensure that this field is independent (see
-     * comment at top of LocGnssMeasurement struct.)
-     *
-     * It is mandatory to provide the 'uncorrected' 'pseudorange rate', and provide LocGpsClock's
-     * 'drift' field as well (When providing the uncorrected pseudorange rate, do not apply the
-     * corrections described above.)
-     *
-     * The value includes the 'pseudorange rate uncertainty' in it.
-     * A positive 'uncorrected' value indicates that the SV is moving away from the receiver.
-     *
-     * The sign of the 'uncorrected' 'pseudorange rate' and its relation to the sign of 'doppler
-     * shift' is given by the equation:
-     *      pseudorange rate = -k * doppler shift   (where k is a constant)
-     *
-     * This should be the most accurate pseudorange rate available, based on
-     * fresh signal measurements from this channel.
-     *
-     * It is mandatory that this value be provided at typical carrier phase PRR
-     * quality (few cm/sec per second of uncertainty, or better) - when signals
-     * are sufficiently strong & stable, e.g. signals from a GPS simulator at >=
-     * 35 dB-Hz.
-     */
-    double pseudorange_rate_mps;
-
-    /**
-     * 1-Sigma uncertainty of the pseudorange_rate_mps.
-     * The uncertainty is represented as an absolute (single sided) value.
-     *
-     * This is a mandatory value.
-     */
-    double pseudorange_rate_uncertainty_mps;
-
-    /**
-     * Accumulated delta range's state. It indicates whether ADR is reset or there is a cycle slip
-     * (indicating loss of lock).
-     *
-     * This is a mandatory value.
-     */
-    LocGnssAccumulatedDeltaRangeState accumulated_delta_range_state;
-
-    /**
-     * Accumulated delta range since the last channel reset in meters.
-     * A positive value indicates that the SV is moving away from the receiver.
-     *
-     * The sign of the 'accumulated delta range' and its relation to the sign of 'carrier phase'
-     * is given by the equation:
-     *          accumulated delta range = -k * carrier phase    (where k is a constant)
-     *
-     * This value must be populated if 'accumulated delta range state' != LOC_GPS_ADR_STATE_UNKNOWN.
-     * However, it is expected that the data is only accurate when:
-     *      'accumulated delta range state' == LOC_GPS_ADR_STATE_VALID.
-     */
-    double accumulated_delta_range_m;
-
-    /**
-     * 1-Sigma uncertainty of the accumulated delta range in meters.
-     * This value must be populated if 'accumulated delta range state' != LOC_GPS_ADR_STATE_UNKNOWN.
-     */
-    double accumulated_delta_range_uncertainty_m;
-
-    /**
-     * Carrier frequency at which codes and messages are modulated, it can be L1 or L2.
-     * If the field is not set, the carrier frequency is assumed to be L1.
-     *
-     * If the data is available, 'flags' must contain
-     * LOC_GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY.
-     */
-    float carrier_frequency_hz;
-
-    /**
-     * The number of full carrier cycles between the satellite and the receiver.
-     * The reference frequency is given by the field 'carrier_frequency_hz'.
-     * Indications of possible cycle slips and resets in the accumulation of
-     * this value can be inferred from the accumulated_delta_range_state flags.
-     *
-     * If the data is available, 'flags' must contain
-     * LOC_GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
-     */
-    int64_t carrier_cycles;
-
-    /**
-     * The RF phase detected by the receiver, in the range [0.0, 1.0].
-     * This is usually the fractional part of the complete carrier phase measurement.
-     *
-     * The reference frequency is given by the field 'carrier_frequency_hz'.
-     * The value contains the 'carrier-phase uncertainty' in it.
-     *
-     * If the data is available, 'flags' must contain
-     * LOC_GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
-     */
-    double carrier_phase;
-
-    /**
-     * 1-Sigma uncertainty of the carrier-phase.
-     * If the data is available, 'flags' must contain
-     * LOC_GNSS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY.
-     */
-    double carrier_phase_uncertainty;
-
-    /**
-     * An enumeration that indicates the 'multipath' state of the event.
-     *
-     * The multipath Indicator is intended to report the presence of overlapping
-     * signals that manifest as distorted correlation peaks.
-     *
-     * - if there is a distorted correlation peak shape, report that multipath
-     *   is LOC_GNSS_MULTIPATH_INDICATOR_PRESENT.
-     * - if there is not a distorted correlation peak shape, report
-     *   LOC_GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
-     * - if signals are too weak to discern this information, report
-     *   LOC_GNSS_MULTIPATH_INDICATOR_UNKNOWN
-     *
-     * Example: when doing the standardized overlapping Multipath Performance
-     * test (3GPP TS 34.171) the Multipath indicator should report
-     * LOC_GNSS_MULTIPATH_INDICATOR_PRESENT for those signals that are tracked, and
-     * contain multipath, and LOC_GNSS_MULTIPATH_INDICATOR_NOT_PRESENT for those
-     * signals that are tracked and do not contain multipath.
-     */
-    LocGnssMultipathIndicator multipath_indicator;
-
-    /**
-     * Signal-to-noise ratio at correlator output in dB.
-     * If the data is available, 'flags' must contain LOC_GNSS_MEASUREMENT_HAS_SNR.
-     * This is the power ratio of the "correlation peak height above the
-     * observed noise floor" to "the noise RMS".
-     */
-    double snr_db;
-} LocGnssMeasurement;
-
-/**
- * Legacy struct to represents a reading of GPS measurements.
- * Deprecated, to be removed in the next Android release.
- * Use LocGnssData instead.
- */
-typedef struct {
-    /** set to sizeof(LocGpsData) */
-    size_t size;
-    size_t measurement_count;
-    LocGpsMeasurement measurements[LOC_GPS_MAX_MEASUREMENT];
-
-    /** The GPS clock time reading. */
-    LocGpsClock clock;
-} LocGpsData;
-
-/**
- * Represents a reading of GNSS measurements. For devices where LocGnssSystemInfo's
- * year_of_hw is set to 2016+, it is mandatory that these be provided, on
- * request, when the GNSS receiver is searching/tracking signals.
- *
- * - Reporting of GPS constellation measurements is mandatory.
- * - Reporting of all tracked constellations are encouraged.
- */
-typedef struct {
-    /** set to sizeof(LocGnssData) */
-    size_t size;
-
-    /** Number of measurements. */
-    size_t measurement_count;
-
-    /** The array of measurements. */
-    LocGnssMeasurement measurements[LOC_GNSS_MAX_MEASUREMENT];
-
-    /** The GPS clock time reading. */
-    LocGnssClock clock;
-} LocGnssData;
-
-/**
- * The legacy callback for to report measurements from the HAL.
- *
- * This callback is deprecated, and will be removed in the next release. Use
- * loc_gnss_measurement_callback() instead.
- *
- * Parameters:
- *    data - A data structure containing the measurements.
- */
-typedef void (*loc_gps_measurement_callback) (LocGpsData* data);
-
-/**
- * The callback for to report measurements from the HAL.
- *
- * Parameters:
- *    data - A data structure containing the measurements.
- */
-typedef void (*loc_gnss_measurement_callback) (LocGnssData* data);
-
-typedef struct {
-    /** set to sizeof(LocGpsMeasurementCallbacks) */
-    size_t size;
-    loc_gps_measurement_callback measurement_callback;
-    loc_gnss_measurement_callback loc_gnss_measurement_callback;
-} LocGpsMeasurementCallbacks;
-
-#define LOC_GPS_MEASUREMENT_OPERATION_SUCCESS          0
-#define LOC_GPS_MEASUREMENT_ERROR_ALREADY_INIT      -100
-#define LOC_GPS_MEASUREMENT_ERROR_GENERIC           -101
-
-/**
- * Extended interface for GPS Measurements support.
- */
-typedef struct {
-    /** Set to sizeof(LocGpsMeasurementInterface) */
-    size_t size;
-
-    /**
-     * Initializes the interface and registers the callback routines with the HAL.
-     * After a successful call to 'init' the HAL must begin to provide updates at its own phase.
-     *
-     * Status:
-     *    LOC_GPS_MEASUREMENT_OPERATION_SUCCESS
-     *    LOC_GPS_MEASUREMENT_ERROR_ALREADY_INIT - if a callback has already been registered without a
-     *              corresponding call to 'close'
-     *    LOC_GPS_MEASUREMENT_ERROR_GENERIC - if any other error occurred, it is expected that the HAL
-     *              will not generate any updates upon returning this error code.
-     */
-    int (*init) (LocGpsMeasurementCallbacks* callbacks);
-
-    /**
-     * Stops updates from the HAL, and unregisters the callback routines.
-     * After a call to stop, the previously registered callbacks must be considered invalid by the
-     * HAL.
-     * If stop is invoked without a previous 'init', this function should perform no work.
-     */
-    void (*close) ();
-
-} LocGpsMeasurementInterface;
-
-#if 0
-/**
- * Legacy struct to represents a GPS navigation message (or a fragment of it).
- * Deprecated, to be removed in the next Android release.
- * Use GnssNavigationMessage instead.
- */
-typedef struct {
-    /** set to sizeof(GpsNavigationMessage) */
-    size_t size;
-    int8_t prn;
-    GpsNavigationMessageType type;
-    NavigationMessageStatus status;
-    int16_t message_id;
-    int16_t submessage_id;
-    size_t data_length;
-    uint8_t* data;
-} GpsNavigationMessage;
-
-/** Represents a GPS navigation message (or a fragment of it). */
-typedef struct {
-    /** set to sizeof(GnssNavigationMessage) */
-    size_t size;
-
-    /**
-     * Satellite vehicle ID number, as defined in LocGnssSvInfo::svid
-     * This is a mandatory value.
-     */
-    int16_t svid;
-
-    /**
-     * The type of message contained in the structure.
-     * This is a mandatory value.
-     */
-    GnssNavigationMessageType type;
-
-    /**
-     * The status of the received navigation message.
-     * No need to send any navigation message that contains words with parity error and cannot be
-     * corrected.
-     */
-    NavigationMessageStatus status;
-
-    /**
-     * Message identifier. It provides an index so the complete Navigation
-     * Message can be assembled.
-     *
-     * - For GPS L1 C/A subframe 4 and 5, this value corresponds to the 'frame
-     *   id' of the navigation message, in the range of 1-25 (Subframe 1, 2, 3
-     *   does not contain a 'frame id' and this value can be set to -1.)
-     *
-     * - For Glonass L1 C/A, this refers to the frame ID, in the range of 1-5.
-     *
-     * - For BeiDou D1, this refers to the frame number in the range of 1-24
-     *
-     * - For Beidou D2, this refers to the frame number, in the range of 1-120
-     *
-     * - For Galileo F/NAV nominal frame structure, this refers to the subframe
-     *   number, in the range of 1-12
-     *
-     * - For Galileo I/NAV nominal frame structure, this refers to the subframe
-     *   number in the range of 1-24
-     */
-    int16_t message_id;
-
-    /**
-     * Sub-message identifier. If required by the message 'type', this value
-     * contains a sub-index within the current message (or frame) that is being
-     * transmitted.
-     *
-     * - For GPS L1 C/A, BeiDou D1 & BeiDou D2, the submessage id corresponds to
-     *   the subframe number of the navigation message, in the range of 1-5.
-     *
-     * - For Glonass L1 C/A, this refers to the String number, in the range from
-     *   1-15
-     *
-     * - For Galileo F/NAV, this refers to the page type in the range 1-6
-     *
-     * - For Galileo I/NAV, this refers to the word type in the range 1-10+
-     */
-    int16_t submessage_id;
-
-    /**
-     * The length of the data (in bytes) contained in the current message.
-     * If this value is different from zero, 'data' must point to an array of the same size.
-     * e.g. for L1 C/A the size of the sub-frame will be 40 bytes (10 words, 30 bits/word).
-     *
-     * This is a mandatory value.
-     */
-    size_t data_length;
-
-    /**
-     * The data of the reported GPS message. The bytes (or words) specified
-     * using big endian format (MSB first).
-     *
-     * - For GPS L1 C/A, Beidou D1 & Beidou D2, each subframe contains 10 30-bit
-     *   words. Each word (30 bits) should be fit into the last 30 bits in a
-     *   4-byte word (skip B31 and B32), with MSB first, for a total of 40
-     *   bytes, covering a time period of 6, 6, and 0.6 seconds, respectively.
-     *
-     * - For Glonass L1 C/A, each string contains 85 data bits, including the
-     *   checksum.  These bits should be fit into 11 bytes, with MSB first (skip
-     *   B86-B88), covering a time period of 2 seconds.
-     *
-     * - For Galileo F/NAV, each word consists of 238-bit (sync & tail symbols
-     *   excluded). Each word should be fit into 30-bytes, with MSB first (skip
-     *   B239, B240), covering a time period of 10 seconds.
-     *
-     * - For Galileo I/NAV, each page contains 2 page parts, even and odd, with
-     *   a total of 2x114 = 228 bits, (sync & tail excluded) that should be fit
-     *   into 29 bytes, with MSB first (skip B229-B232).
-     */
-    uint8_t* data;
-
-} GnssNavigationMessage;
-
-/**
- * The legacy callback to report an available fragment of a GPS navigation
- * messages from the HAL.
- *
- * This callback is deprecated, and will be removed in the next release. Use
- * gnss_navigation_message_callback() instead.
- *
- * Parameters:
- *      message - The GPS navigation submessage/subframe representation.
- */
-typedef void (*gps_navigation_message_callback) (GpsNavigationMessage* message);
-
-/**
- * The callback to report an available fragment of a GPS navigation messages from the HAL.
- *
- * Parameters:
- *      message - The GPS navigation submessage/subframe representation.
- */
-typedef void (*gnss_navigation_message_callback) (GnssNavigationMessage* message);
-
-typedef struct {
-    /** set to sizeof(GpsNavigationMessageCallbacks) */
-    size_t size;
-    gps_navigation_message_callback navigation_message_callback;
-    gnss_navigation_message_callback gnss_navigation_message_callback;
-} GpsNavigationMessageCallbacks;
-
-#define GPS_NAVIGATION_MESSAGE_OPERATION_SUCCESS             0
-#define GPS_NAVIGATION_MESSAGE_ERROR_ALREADY_INIT         -100
-#define GPS_NAVIGATION_MESSAGE_ERROR_GENERIC              -101
-
-/**
- * Extended interface for GPS navigation message reporting support.
- */
-typedef struct {
-    /** Set to sizeof(GpsNavigationMessageInterface) */
-    size_t size;
-
-    /**
-     * Initializes the interface and registers the callback routines with the HAL.
-     * After a successful call to 'init' the HAL must begin to provide updates as they become
-     * available.
-     *
-     * Status:
-     *      GPS_NAVIGATION_MESSAGE_OPERATION_SUCCESS
-     *      GPS_NAVIGATION_MESSAGE_ERROR_ALREADY_INIT - if a callback has already been registered
-     *              without a corresponding call to 'close'.
-     *      GPS_NAVIGATION_MESSAGE_ERROR_GENERIC - if any other error occurred, it is expected that
-     *              the HAL will not generate any updates upon returning this error code.
-     */
-    int (*init) (GpsNavigationMessageCallbacks* callbacks);
-
-    /**
-     * Stops updates from the HAL, and unregisters the callback routines.
-     * After a call to stop, the previously registered callbacks must be considered invalid by the
-     * HAL.
-     * If stop is invoked without a previous 'init', this function should perform no work.
-     */
-    void (*close) ();
-
-} GpsNavigationMessageInterface;
-#endif
-
-/**
- * Interface for passing GNSS configuration contents from platform to HAL.
- */
-typedef struct {
-    /** Set to sizeof(LocGnssConfigurationInterface) */
-    size_t size;
-
-    /**
-     * Deliver GNSS configuration contents to HAL.
-     * Parameters:
-     *     config_data - a pointer to a char array which holds what usually is expected from
-                         file(/vendor/etc/gps.conf), i.e., a sequence of UTF8 strings separated by '\n'.
-     *     length - total number of UTF8 characters in configuraiton data.
-     *
-     * IMPORTANT:
-     *      GPS HAL should expect this function can be called multiple times. And it may be
-     *      called even when GpsLocationProvider is already constructed and enabled. GPS HAL
-     *      should maintain the existing requests for various callback regardless the change
-     *      in configuration data.
-     */
-    void (*configuration_update) (const char* config_data, int32_t length);
-} LocGnssConfigurationInterface;
-
-__END_DECLS
-
-#endif /* LOC_GPS_H */
-
diff --git a/sdm845/utils/loc_log.cpp b/sdm845/utils/loc_log.cpp
deleted file mode 100644
index 23b2894..0000000
--- a/sdm845/utils/loc_log.cpp
+++ /dev/null
@@ -1,238 +0,0 @@
-/* Copyright (c) 2011-2012, 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 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 "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.
- *
- */
-
-#define LOG_NDEBUG 0
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/time.h>
-#include "loc_log.h"
-#include "msg_q.h"
-#include <platform_lib_includes.h>
-
-#define  BUFFER_SIZE  120
-
-// Logging Improvements
-const char *loc_logger_boolStr[]={"False","True"};
-const char VOID_RET[]   = "None";
-const char FROM_AFW[]   = "===>";
-const char TO_MODEM[]   = "--->";
-const char FROM_MODEM[] = "<---";
-const char TO_AFW[]     = "<===";
-const char EXIT_TAG[]   = "Exiting";
-const char ENTRY_TAG[]  = "Entering";
-const char EXIT_ERROR_TAG[]  = "Exiting with error";
-
-/* Logging Mechanism */
-loc_logger_s_type loc_logger;
-
-/* Get names from value */
-const char* loc_get_name_from_mask(const loc_name_val_s_type table[], size_t table_size, long mask)
-{
-   size_t i;
-   for (i = 0; i < table_size; i++)
-   {
-      if (table[i].val & (long) mask)
-      {
-         return table[i].name;
-      }
-   }
-   return UNKNOWN_STR;
-}
-
-/* Get names from value */
-const char* loc_get_name_from_val(const loc_name_val_s_type table[], size_t table_size, long value)
-{
-   size_t i;
-   for (i = 0; i < table_size; i++)
-   {
-      if (table[i].val == (long) value)
-      {
-         return table[i].name;
-      }
-   }
-   return UNKNOWN_STR;
-}
-
-static const loc_name_val_s_type loc_msg_q_status[] =
-{
-    NAME_VAL( eMSG_Q_SUCCESS ),
-    NAME_VAL( eMSG_Q_FAILURE_GENERAL ),
-    NAME_VAL( eMSG_Q_INVALID_PARAMETER ),
-    NAME_VAL( eMSG_Q_INVALID_HANDLE ),
-    NAME_VAL( eMSG_Q_UNAVAILABLE_RESOURCE ),
-    NAME_VAL( eMSG_Q_INSUFFICIENT_BUFFER )
-};
-static const size_t loc_msg_q_status_num = LOC_TABLE_SIZE(loc_msg_q_status);
-
-/* Find msg_q status name */
-const char* loc_get_msg_q_status(int status)
-{
-   return loc_get_name_from_val(loc_msg_q_status, loc_msg_q_status_num, (long) status);
-}
-
-const char* log_succ_fail_string(int is_succ)
-{
-   return is_succ? "successful" : "failed";
-}
-
-//Target names
-static const loc_name_val_s_type target_name[] =
-{
-    NAME_VAL(GNSS_NONE),
-    NAME_VAL(GNSS_MSM),
-    NAME_VAL(GNSS_GSS),
-    NAME_VAL(GNSS_MDM),
-    NAME_VAL(GNSS_QCA1530),
-    NAME_VAL(GNSS_AUTO),
-    NAME_VAL(GNSS_UNKNOWN)
-};
-
-static const size_t target_name_num = LOC_TABLE_SIZE(target_name);
-
-/*===========================================================================
-
-FUNCTION loc_get_target_name
-
-DESCRIPTION
-   Returns pointer to a string that contains name of the target
-
-   XX:XX:XX.000\0
-
-RETURN VALUE
-   The target name string
-
-===========================================================================*/
-const char *loc_get_target_name(unsigned int target)
-{
-    int index = 0;
-    static char ret[BUFFER_SIZE];
-
-    index =  getTargetGnssType(target);
-    if( index < 0 || (unsigned)index >= target_name_num )
-        index = target_name_num - 1;
-
-    if( (target & HAS_SSC) == HAS_SSC ) {
-        snprintf(ret, sizeof(ret), " %s with SSC",
-           loc_get_name_from_val(target_name, target_name_num, (long)index) );
-    }
-    else {
-       snprintf(ret, sizeof(ret), " %s  without SSC",
-           loc_get_name_from_val(target_name, target_name_num, (long)index) );
-    }
-    return ret;
-}
-
-
-/*===========================================================================
-
-FUNCTION loc_get_time
-
-DESCRIPTION
-   Logs a callback event header.
-   The pointer time_string should point to a buffer of at least 13 bytes:
-
-   XX:XX:XX.000\0
-
-RETURN VALUE
-   The time string
-
-===========================================================================*/
-char *loc_get_time(char *time_string, size_t buf_size)
-{
-   struct timeval now;     /* sec and usec     */
-   struct tm now_tm;       /* broken-down time */
-   char hms_string[80];    /* HH:MM:SS         */
-
-   gettimeofday(&now, NULL);
-   localtime_r(&now.tv_sec, &now_tm);
-
-   strftime(hms_string, sizeof hms_string, "%H:%M:%S", &now_tm);
-   snprintf(time_string, buf_size, "%s.%03d", hms_string, (int) (now.tv_usec / 1000));
-
-   return time_string;
-}
-
-
-/*===========================================================================
-FUNCTION loc_logger_init
-
-DESCRIPTION
-   Initializes the state of DEBUG_LEVEL and TIMESTAMP
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   None
-
-SIDE EFFECTS
-   N/A
-===========================================================================*/
-void loc_logger_init(unsigned long debug, unsigned long timestamp)
-{
-   loc_logger.DEBUG_LEVEL = debug;
-#ifdef TARGET_BUILD_VARIANT_USER
-   // force user builds to 2 or less
-   if (loc_logger.DEBUG_LEVEL > 2) {
-       loc_logger.DEBUG_LEVEL = 2;
-   }
-#endif
-   loc_logger.TIMESTAMP   = timestamp;
-}
-
-
-/*===========================================================================
-FUNCTION get_timestamp
-
-DESCRIPTION
-   Generates a timestamp using the current system time
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Char pointer to the parameter str
-
-SIDE EFFECTS
-   N/A
-===========================================================================*/
-char * get_timestamp(char *str, unsigned long buf_size)
-{
-  struct timeval tv;
-  struct timezone tz;
-  int hh, mm, ss;
-  gettimeofday(&tv, &tz);
-  hh = tv.tv_sec/3600%24;
-  mm = (tv.tv_sec%3600)/60;
-  ss = tv.tv_sec%60;
-  snprintf(str, buf_size, "%02d:%02d:%02d.%06ld", hh, mm, ss, tv.tv_usec);
-  return str;
-}
-
diff --git a/sdm845/utils/loc_log.h b/sdm845/utils/loc_log.h
deleted file mode 100644
index be492b1..0000000
--- a/sdm845/utils/loc_log.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright (c) 2011-2012, 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 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 "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 LOC_LOG_H
-#define LOC_LOG_H
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#include <ctype.h>
-#include <stdlib.h>
-#include "loc_target.h"
-
-typedef struct
-{
-   const char *name;
-   long        val;
-} loc_name_val_s_type;
-
-#define NAME_VAL(x) {"" #x "", x }
-
-#define UNKNOWN_STR "UNKNOWN"
-
-#define CHECK_MASK(type, value, mask_var, mask) \
-   (((mask_var) & (mask)) ? (type) (value) : (type) (-1))
-
-#define LOC_TABLE_SIZE(table) (sizeof(table)/sizeof((table)[0]))
-
-/* Get names from value */
-const char* loc_get_name_from_mask(const loc_name_val_s_type table[], size_t table_size, long mask);
-const char* loc_get_name_from_val(const loc_name_val_s_type table[], size_t table_size, long value);
-const char* loc_get_msg_q_status(int status);
-const char* loc_get_target_name(unsigned int target);
-
-extern const char* log_succ_fail_string(int is_succ);
-
-extern char *loc_get_time(char *time_string, size_t buf_size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LOC_LOG_H */
diff --git a/sdm845/utils/loc_misc_utils.cpp b/sdm845/utils/loc_misc_utils.cpp
deleted file mode 100644
index 5d66991..0000000
--- a/sdm845/utils/loc_misc_utils.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright (c) 2014, 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 "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 <stdio.h>
-#include <string.h>
-#include <platform_lib_log_util.h>
-#include <loc_misc_utils.h>
-#include <ctype.h>
-
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_misc_utils"
-
-int loc_util_split_string(char *raw_string, char **split_strings_ptr,
-                          int max_num_substrings, char delimiter)
-{
-    int raw_string_index=0;
-    int num_split_strings=0;
-    unsigned char end_string=0;
-    int raw_string_length=0;
-
-    if(!raw_string || !split_strings_ptr) {
-        LOC_LOGE("%s:%d]: NULL parameters", __func__, __LINE__);
-        num_split_strings = -1;
-        goto err;
-    }
-    LOC_LOGD("%s:%d]: raw string: %s\n", __func__, __LINE__, raw_string);
-    raw_string_length = strlen(raw_string) + 1;
-    split_strings_ptr[num_split_strings] = &raw_string[raw_string_index];
-    for(raw_string_index=0; raw_string_index < raw_string_length; raw_string_index++) {
-        if(raw_string[raw_string_index] == '\0')
-            end_string=1;
-        if((raw_string[raw_string_index] == delimiter) || end_string) {
-            raw_string[raw_string_index] = '\0';
-            LOC_LOGD("%s:%d]: split string: %s\n",
-                     __func__, __LINE__, split_strings_ptr[num_split_strings]);
-            num_split_strings++;
-            if(((raw_string_index + 1) < raw_string_length) &&
-               (num_split_strings < max_num_substrings)) {
-                split_strings_ptr[num_split_strings] = &raw_string[raw_string_index+1];
-            }
-            else {
-                break;
-            }
-        }
-        if(end_string)
-            break;
-    }
-err:
-    LOC_LOGD("%s:%d]: num_split_strings: %d\n", __func__, __LINE__, num_split_strings);
-    return num_split_strings;
-}
-
-void loc_util_trim_space(char *org_string)
-{
-    char *scan_ptr, *write_ptr;
-    char *first_nonspace = NULL, *last_nonspace = NULL;
-
-    if(org_string == NULL) {
-        LOC_LOGE("%s:%d]: NULL parameter", __func__, __LINE__);
-        goto err;
-    }
-
-    scan_ptr = write_ptr = org_string;
-
-    while (*scan_ptr) {
-        //Find the first non-space character
-        if ( !isspace(*scan_ptr) && first_nonspace == NULL) {
-            first_nonspace = scan_ptr;
-        }
-        //Once the first non-space character is found in the
-        //above check, keep shifting the characters to the left
-        //to replace the spaces
-        if (first_nonspace != NULL) {
-            *(write_ptr++) = *scan_ptr;
-            //Keep track of which was the last non-space character
-            //encountered
-            //last_nonspace will not be updated in the case where
-            //the string ends with spaces
-            if ( !isspace(*scan_ptr)) {
-                last_nonspace = write_ptr;
-            }
-        }
-        scan_ptr++;
-    }
-    //Add NULL terminator after the last non-space character
-    if (last_nonspace) { *last_nonspace = '\0'; }
-err:
-    return;
-}
diff --git a/sdm845/utils/loc_misc_utils.h b/sdm845/utils/loc_misc_utils.h
deleted file mode 100644
index 7d66d84..0000000
--- a/sdm845/utils/loc_misc_utils.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright (c) 2014, 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 "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 _LOC_MISC_UTILS_H_
-#define _LOC_MISC_UTILS_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*===========================================================================
-FUNCTION loc_split_string
-
-DESCRIPTION:
-    This function is used to split a delimiter separated string into
-    sub-strings. This function does not allocate new memory to store the split
-    strings. Instead, it places '\0' in places of delimiters and assings the
-    starting address of the substring within the raw string as the string address
-    The input raw_string no longer remains to be a collection of sub-strings
-    after this function is executed.
-    Please make a copy of the input string before calling this function if
-    necessary
-
-PARAMETERS:
-    char *raw_string: is the original string with delimiter separated substrings
-    char **split_strings_ptr: is the arraw of pointers which will hold the addresses
-                              of individual substrings
-    int max_num_substrings: is the maximum number of substrings that are expected
-                            by the caller. The array of pointers in the above parameter
-                            is usually this long
-    char delimiter: is the delimiter that separates the substrings. Examples: ' ', ';'
-
-DEPENDENCIES
-    N/A
-
-RETURN VALUE
-    int Number of split strings
-
-SIDE EFFECTS
-    The input raw_string no longer remains a delimiter separated single string.
-
-EXAMPLE
-    delimiter = ' ' //space
-    raw_string = "hello new user" //delimiter is space ' '
-    addresses  =  0123456789abcd
-    split_strings_ptr[0] = &raw_string[0]; //split_strings_ptr[0] contains "hello"
-    split_strings_ptr[1] = &raw_string[6]; //split_strings_ptr[1] contains "new"
-    split_strings_ptr[2] = &raw_string[a]; //split_strings_ptr[2] contains "user"
-
-===========================================================================*/
-int loc_util_split_string(char *raw_string, char **split_strings_ptr, int max_num_substrings,
-                     char delimiter);
-
-/*===========================================================================
-FUNCTION trim_space
-
-DESCRIPTION
-   Removes leading and trailing spaces of the string
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   None
-
-SIDE EFFECTS
-   N/A
-===========================================================================*/
-void loc_util_trim_space(char *org_string);
-#ifdef __cplusplus
-}
-#endif
-
-#endif //_LOC_MISC_UTILS_H_
diff --git a/sdm845/utils/loc_nmea.cpp b/sdm845/utils/loc_nmea.cpp
deleted file mode 100644
index eb193cc..0000000
--- a/sdm845/utils/loc_nmea.cpp
+++ /dev/null
@@ -1,1106 +0,0 @@
-/* Copyright (c) 2012-2017, 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 "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.
- *
- */
-
-#define LOG_NDEBUG 0
-#define LOG_TAG "LocSvc_nmea"
-#include <loc_nmea.h>
-#include <math.h>
-#include <platform_lib_includes.h>
-
-#define GLONASS_SV_ID_OFFSET 64
-#define MAX_SATELLITES_IN_USE 12
-
-// GNSS system id according to NMEA spec
-#define SYSTEM_ID_GPS          1
-#define SYSTEM_ID_GLONASS      2
-#define SYSTEM_ID_GALILEO      3
-// Extended systems
-#define SYSTEM_ID_BEIDOU       4
-#define SYSTEM_ID_QZSS         5
-
-typedef struct loc_nmea_sv_meta_s
-{
-    char talker[3];
-    LocGnssConstellationType svType;
-    uint32_t mask;
-    uint32_t svCount;
-    uint32_t svIdOffset;
-    uint32_t systemId;
-} loc_nmea_sv_meta;
-
-typedef struct loc_sv_cache_info_s
-{
-    uint32_t gps_used_mask;
-    uint32_t glo_used_mask;
-    uint32_t gal_used_mask;
-    uint32_t qzss_used_mask;
-    uint32_t bds_used_mask;
-    uint32_t gps_count;
-    uint32_t glo_count;
-    uint32_t gal_count;
-    uint32_t qzss_count;
-    uint32_t bds_count;
-    float hdop;
-    float pdop;
-    float vdop;
-} loc_sv_cache_info;
-
-static loc_sv_cache_info sv_cache_info;
-
-/*===========================================================================
-FUNCTION    loc_nmea_sv_meta_init
-
-DESCRIPTION
-   Init loc_nmea_sv_meta passed in
-
-DEPENDENCIES
-   NONE
-
-RETURN VALUE
-   Pointer to loc_nmea_sv_meta
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-static loc_nmea_sv_meta* loc_nmea_sv_meta_init(loc_nmea_sv_meta& sv_meta,
-                                               GnssSvType svType,
-                                               bool needCombine)
-{
-    memset(&sv_meta, 0, sizeof(sv_meta));
-    sv_meta.svType = svType;
-
-    switch (svType)
-    {
-        case GNSS_SV_TYPE_GPS:
-            sv_meta.talker[0] = 'G';
-            sv_meta.talker[1] = 'P';
-            sv_meta.mask = sv_cache_info.gps_used_mask;
-            sv_meta.svCount = sv_cache_info.gps_count;
-            sv_meta.systemId = SYSTEM_ID_GPS;
-            break;
-        case GNSS_SV_TYPE_GLONASS:
-            sv_meta.talker[0] = 'G';
-            sv_meta.talker[1] = 'L';
-            sv_meta.mask = sv_cache_info.glo_used_mask;
-            sv_meta.svCount = sv_cache_info.glo_count;
-            // GLONASS SV ids are from 65-96
-            sv_meta.svIdOffset = GLONASS_SV_ID_OFFSET;
-            sv_meta.systemId = SYSTEM_ID_GLONASS;
-            break;
-        case GNSS_SV_TYPE_GALILEO:
-            sv_meta.talker[0] = 'G';
-            sv_meta.talker[1] = 'A';
-            sv_meta.mask = sv_cache_info.gal_used_mask;
-            sv_meta.svCount = sv_cache_info.gal_count;
-            sv_meta.systemId = SYSTEM_ID_GALILEO;
-            break;
-        case GNSS_SV_TYPE_QZSS:
-            sv_meta.talker[0] = 'P';
-            sv_meta.talker[1] = 'Q';
-            sv_meta.mask = sv_cache_info.qzss_used_mask;
-            sv_meta.svCount = sv_cache_info.qzss_count;
-            // QZSS SV ids are from 193-197. So keep svIdOffset 0
-            sv_meta.systemId = SYSTEM_ID_QZSS;
-            break;
-        case GNSS_SV_TYPE_BEIDOU:
-            sv_meta.talker[0] = 'P';
-            sv_meta.talker[1] = 'Q';
-            sv_meta.mask = sv_cache_info.bds_used_mask;
-            sv_meta.svCount = sv_cache_info.bds_count;
-            // BDS SV ids are from 201-235. So keep svIdOffset 0
-            sv_meta.systemId = SYSTEM_ID_BEIDOU;
-            break;
-        default:
-            LOC_LOGE("NMEA Error unknow constellation type: %d", svType);
-            return NULL;
-    }
-    if (needCombine &&
-                (sv_cache_info.gps_used_mask ? 1 : 0) +
-                (sv_cache_info.glo_used_mask ? 1 : 0) +
-                (sv_cache_info.gal_used_mask ? 1 : 0) +
-                (sv_cache_info.qzss_used_mask ? 1 : 0) +
-                (sv_cache_info.bds_used_mask ? 1 : 0) > 1)
-    {
-        // If GPS, GLONASS, Galileo, QZSS, BDS etc. are combined
-        // to obtain the reported position solution,
-        // talker shall be set to GN, to indicate that
-        // the satellites are used in a combined solution
-        sv_meta.talker[0] = 'G';
-        sv_meta.talker[1] = 'N';
-    }
-    return &sv_meta;
-}
-
-/*===========================================================================
-FUNCTION    loc_nmea_put_checksum
-
-DESCRIPTION
-   Generate NMEA sentences generated based on position report
-
-DEPENDENCIES
-   NONE
-
-RETURN VALUE
-   Total length of the nmea sentence
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-static int loc_nmea_put_checksum(char *pNmea, int maxSize)
-{
-    uint8_t checksum = 0;
-    int length = 0;
-    if(NULL == pNmea)
-        return 0;
-
-    pNmea++; //skip the $
-    while (*pNmea != '\0')
-    {
-        checksum ^= *pNmea++;
-        length++;
-    }
-
-    // length now contains nmea sentence string length not including $ sign.
-    int checksumLength = snprintf(pNmea,(maxSize-length-1),"*%02X\r\n", checksum);
-
-    // total length of nmea sentence is length of nmea sentence inc $ sign plus
-    // length of checksum (+1 is to cover the $ character in the length).
-    return (length + checksumLength + 1);
-}
-
-/*===========================================================================
-FUNCTION    loc_nmea_generate_GSA
-
-DESCRIPTION
-   Generate NMEA GSA sentences generated based on position report
-   Currently below sentences are generated:
-   - $GPGSA : GPS DOP and active SVs
-   - $GLGSA : GLONASS DOP and active SVs
-   - $GAGSA : GALILEO DOP and active SVs
-   - $GNGSA : GNSS DOP and active SVs
-
-DEPENDENCIES
-   NONE
-
-RETURN VALUE
-   Number of SVs used
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-static uint32_t loc_nmea_generate_GSA(const GpsLocationExtended &locationExtended,
-                              char* sentence,
-                              int bufSize,
-                              loc_nmea_sv_meta* sv_meta_p,
-                              std::vector<std::string> &nmeaArraystr)
-{
-    if (!sentence || bufSize <= 0 || !sv_meta_p)
-    {
-        LOC_LOGE("NMEA Error invalid arguments.");
-        return 0;
-    }
-
-    char* pMarker = sentence;
-    int lengthRemaining = bufSize;
-    int length = 0;
-
-    uint32_t svUsedCount = 0;
-    uint32_t svUsedList[32] = {0};
-
-    char fixType = '\0';
-
-    const char* talker = sv_meta_p->talker;
-    uint32_t svIdOffset = sv_meta_p->svIdOffset;
-    uint32_t mask = sv_meta_p->mask;
-
-    for (uint8_t i = 1; mask > 0 && svUsedCount < 32; i++)
-    {
-        if (mask & 1)
-            svUsedList[svUsedCount++] = i + svIdOffset;
-        mask = mask >> 1;
-    }
-
-    if (svUsedCount == 0 && GNSS_SV_TYPE_GPS != sv_meta_p->svType)
-        return 0;
-
-    if (svUsedCount == 0)
-        fixType = '1'; // no fix
-    else if (svUsedCount <= 3)
-        fixType = '2'; // 2D fix
-    else
-        fixType = '3'; // 3D fix
-
-    // Start printing the sentence
-    // Format: $--GSA,a,x,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,p.p,h.h,v.v*cc
-    // a : Mode  : A : Automatic, allowed to automatically switch 2D/3D
-    // x : Fixtype : 1 (no fix), 2 (2D fix), 3 (3D fix)
-    // xx : 12 SV ID
-    // p.p : Position DOP (Dilution of Precision)
-    // h.h : Horizontal DOP
-    // v.v : Vertical DOP
-    // cc : Checksum value
-    length = snprintf(pMarker, lengthRemaining, "$%sGSA,A,%c,", talker, fixType);
-
-    if (length < 0 || length >= lengthRemaining)
-    {
-        LOC_LOGE("NMEA Error in string formatting");
-        return 0;
-    }
-    pMarker += length;
-    lengthRemaining -= length;
-
-    // Add first 12 satellite IDs
-    for (uint8_t i = 0; i < 12; i++)
-    {
-        if (i < svUsedCount)
-            length = snprintf(pMarker, lengthRemaining, "%02d,", svUsedList[i]);
-        else
-            length = snprintf(pMarker, lengthRemaining, ",");
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return 0;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-    }
-
-    // Add the position/horizontal/vertical DOP values
-    if (locationExtended.flags & GPS_LOCATION_EXTENDED_HAS_DOP)
-    {
-        length = snprintf(pMarker, lengthRemaining, "%.1f,%.1f,%.1f,",
-                locationExtended.pdop,
-                locationExtended.hdop,
-                locationExtended.vdop);
-    }
-    else
-    {   // no dop
-        length = snprintf(pMarker, lengthRemaining, ",,,");
-    }
-    pMarker += length;
-    lengthRemaining -= length;
-
-    // system id
-    length = snprintf(pMarker, lengthRemaining, "%d", sv_meta_p->systemId);
-    pMarker += length;
-    lengthRemaining -= length;
-
-    /* Sentence is ready, add checksum and broadcast */
-    length = loc_nmea_put_checksum(sentence, bufSize);
-    nmeaArraystr.push_back(sentence);
-
-    return svUsedCount;
-}
-
-/*===========================================================================
-FUNCTION    loc_nmea_generate_GSV
-
-DESCRIPTION
-   Generate NMEA GSV sentences generated based on sv report
-   Currently below sentences are generated:
-   - $GPGSV: GPS Satellites in View
-   - $GNGSV: GLONASS Satellites in View
-   - $GAGSV: GALILEO Satellites in View
-
-DEPENDENCIES
-   NONE
-
-RETURN VALUE
-   NONE
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-static void loc_nmea_generate_GSV(const GnssSvNotification &svNotify,
-                              char* sentence,
-                              int bufSize,
-                              loc_nmea_sv_meta* sv_meta_p,
-                              std::vector<std::string> &nmeaArraystr)
-{
-    if (!sentence || bufSize <= 0)
-    {
-        LOC_LOGE("NMEA Error invalid argument.");
-        return;
-    }
-
-    char* pMarker = sentence;
-    int lengthRemaining = bufSize;
-    int length = 0;
-    int sentenceCount = 0;
-    int sentenceNumber = 1;
-    size_t svNumber = 1;
-
-    const char* talker = sv_meta_p->talker;
-    uint32_t svIdOffset = sv_meta_p->svIdOffset;
-    int svCount = sv_meta_p->svCount;
-
-    if (svCount <= 0)
-    {
-        // no svs in view, so just send a blank $--GSV sentence
-        snprintf(sentence, lengthRemaining, "$%sGSV,1,1,0,", talker);
-        length = loc_nmea_put_checksum(sentence, bufSize);
-        nmeaArraystr.push_back(sentence);
-        return;
-    }
-
-    svNumber = 1;
-    sentenceNumber = 1;
-    sentenceCount = svCount / 4 + (svCount % 4 != 0);
-
-    while (sentenceNumber <= sentenceCount)
-    {
-        pMarker = sentence;
-        lengthRemaining = bufSize;
-
-        length = snprintf(pMarker, lengthRemaining, "$%sGSV,%d,%d,%02d",
-                talker, sentenceCount, sentenceNumber, svCount);
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        for (int i=0; (svNumber <= svNotify.count) && (i < 4);  svNumber++)
-        {
-            if (sv_meta_p->svType == svNotify.gnssSvs[svNumber - 1].type)
-            {
-                length = snprintf(pMarker, lengthRemaining,",%02d,%02d,%03d,",
-                        svNotify.gnssSvs[svNumber - 1].svId + svIdOffset,
-                        (int)(0.5 + svNotify.gnssSvs[svNumber - 1].elevation), //float to int
-                        (int)(0.5 + svNotify.gnssSvs[svNumber - 1].azimuth)); //float to int
-
-                if (length < 0 || length >= lengthRemaining)
-                {
-                    LOC_LOGE("NMEA Error in string formatting");
-                    return;
-                }
-                pMarker += length;
-                lengthRemaining -= length;
-
-                if (svNotify.gnssSvs[svNumber - 1].cN0Dbhz > 0)
-                {
-                    length = snprintf(pMarker, lengthRemaining,"%02d",
-                            (int)(0.5 + svNotify.gnssSvs[svNumber - 1].cN0Dbhz)); //float to int
-
-                    if (length < 0 || length >= lengthRemaining)
-                    {
-                        LOC_LOGE("NMEA Error in string formatting");
-                        return;
-                    }
-                    pMarker += length;
-                    lengthRemaining -= length;
-                }
-
-                i++;
-            }
-
-        }
-
-        // The following entries are specific to QZSS and BDS
-        if ((sv_meta_p->svType == GNSS_SV_TYPE_QZSS) ||
-            (sv_meta_p->svType == GNSS_SV_TYPE_BEIDOU))
-        {
-            // last one is System id and second last is Signal Id which is always zero
-            length = snprintf(pMarker, lengthRemaining,",%d,%d",0,sv_meta_p->systemId);
-            pMarker += length;
-            lengthRemaining -= length;
-        }
-
-        length = loc_nmea_put_checksum(sentence, bufSize);
-        nmeaArraystr.push_back(sentence);
-        sentenceNumber++;
-
-    }  //while
-}
-
-/*===========================================================================
-FUNCTION    loc_nmea_generate_pos
-
-DESCRIPTION
-   Generate NMEA sentences generated based on position report
-   Currently below sentences are generated within this function:
-   - $GPGSA : GPS DOP and active SVs
-   - $GLGSA : GLONASS DOP and active SVs
-   - $GAGSA : GALILEO DOP and active SVs
-   - $GNGSA : GNSS DOP and active SVs
-   - $--VTG : Track made good and ground speed
-   - $--RMC : Recommended minimum navigation information
-   - $--GGA : Time, position and fix related data
-
-DEPENDENCIES
-   NONE
-
-RETURN VALUE
-   0
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-void loc_nmea_generate_pos(const UlpLocation &location,
-                               const GpsLocationExtended &locationExtended,
-                               unsigned char generate_nmea,
-                               std::vector<std::string> &nmeaArraystr)
-{
-    ENTRY_LOG();
-    time_t utcTime(location.gpsLocation.timestamp/1000);
-    tm * pTm = gmtime(&utcTime);
-    if (NULL == pTm) {
-        LOC_LOGE("gmtime failed");
-        return;
-    }
-
-    char sentence[NMEA_SENTENCE_MAX_LENGTH] = {0};
-    char* pMarker = sentence;
-    int lengthRemaining = sizeof(sentence);
-    int length = 0;
-    int utcYear = pTm->tm_year % 100; // 2 digit year
-    int utcMonth = pTm->tm_mon + 1; // tm_mon starts at zero
-    int utcDay = pTm->tm_mday;
-    int utcHours = pTm->tm_hour;
-    int utcMinutes = pTm->tm_min;
-    int utcSeconds = pTm->tm_sec;
-    int utcMSeconds = (location.gpsLocation.timestamp)%1000;
-
-    if (generate_nmea) {
-        char talker[3] = {'G', 'P', '\0'};
-        uint32_t svUsedCount = 0;
-        uint32_t count = 0;
-        loc_nmea_sv_meta sv_meta;
-        // -------------------
-        // ---$GPGSA/$GNGSA---
-        // -------------------
-
-        count = loc_nmea_generate_GSA(locationExtended, sentence, sizeof(sentence),
-                loc_nmea_sv_meta_init(sv_meta, GNSS_SV_TYPE_GPS, true), nmeaArraystr);
-        if (count > 0)
-        {
-            svUsedCount += count;
-            talker[0] = sv_meta.talker[0];
-            talker[1] = sv_meta.talker[1];
-        }
-
-        // -------------------
-        // ---$GLGSA/$GNGSA---
-        // -------------------
-
-        count = loc_nmea_generate_GSA(locationExtended, sentence, sizeof(sentence),
-                loc_nmea_sv_meta_init(sv_meta, GNSS_SV_TYPE_GLONASS, true), nmeaArraystr);
-        if (count > 0)
-        {
-            svUsedCount += count;
-            talker[0] = sv_meta.talker[0];
-            talker[1] = sv_meta.talker[1];
-        }
-
-        // -------------------
-        // ---$GAGSA/$GNGSA---
-        // -------------------
-
-        count = loc_nmea_generate_GSA(locationExtended, sentence, sizeof(sentence),
-                loc_nmea_sv_meta_init(sv_meta, GNSS_SV_TYPE_GALILEO, true), nmeaArraystr);
-        if (count > 0)
-        {
-            svUsedCount += count;
-            talker[0] = sv_meta.talker[0];
-            talker[1] = sv_meta.talker[1];
-        }
-
-        // --------------------------
-        // ---$PQGSA/$GNGSA (QZSS)---
-        // --------------------------
-
-        count = loc_nmea_generate_GSA(locationExtended, sentence, sizeof(sentence),
-                loc_nmea_sv_meta_init(sv_meta, GNSS_SV_TYPE_QZSS, false), nmeaArraystr);
-        if (count > 0)
-        {
-            svUsedCount += count;
-            // talker should be default "GP". If GPS, GLO etc is used, it should be "GN"
-        }
-
-        // ----------------------------
-        // ---$PQGSA/$GNGSA (BEIDOU)---
-        // ----------------------------
-        count = loc_nmea_generate_GSA(locationExtended, sentence, sizeof(sentence),
-                loc_nmea_sv_meta_init(sv_meta, GNSS_SV_TYPE_BEIDOU, false), nmeaArraystr);
-        if (count > 0)
-        {
-            svUsedCount += count;
-            // talker should be default "GP". If GPS, GLO etc is used, it should be "GN"
-        }
-
-        // -------------------
-        // ------$--VTG-------
-        // -------------------
-
-        pMarker = sentence;
-        lengthRemaining = sizeof(sentence);
-
-        if (location.gpsLocation.flags & LOC_GPS_LOCATION_HAS_BEARING)
-        {
-            float magTrack = location.gpsLocation.bearing;
-            if (locationExtended.flags & GPS_LOCATION_EXTENDED_HAS_MAG_DEV)
-            {
-                float magTrack = location.gpsLocation.bearing - locationExtended.magneticDeviation;
-                if (magTrack < 0.0)
-                    magTrack += 360.0;
-                else if (magTrack > 360.0)
-                    magTrack -= 360.0;
-            }
-
-            length = snprintf(pMarker, lengthRemaining, "$%sVTG,%.1lf,T,%.1lf,M,", talker, location.gpsLocation.bearing, magTrack);
-        }
-        else
-        {
-            length = snprintf(pMarker, lengthRemaining, "$%sVTG,,T,,M,", talker);
-        }
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        if (location.gpsLocation.flags & LOC_GPS_LOCATION_HAS_SPEED)
-        {
-            float speedKnots = location.gpsLocation.speed * (3600.0/1852.0);
-            float speedKmPerHour = location.gpsLocation.speed * 3.6;
-
-            length = snprintf(pMarker, lengthRemaining, "%.1lf,N,%.1lf,K,", speedKnots, speedKmPerHour);
-        }
-        else
-        {
-            length = snprintf(pMarker, lengthRemaining, ",N,,K,");
-        }
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        if (!(location.gpsLocation.flags & LOC_GPS_LOCATION_HAS_LAT_LONG))
-            // N means no fix
-            length = snprintf(pMarker, lengthRemaining, "%c", 'N');
-        else if (LOC_NAV_MASK_SBAS_CORRECTION_IONO & locationExtended.navSolutionMask)
-            // D means differential
-            length = snprintf(pMarker, lengthRemaining, "%c", 'D');
-        else if (LOC_POS_TECH_MASK_SENSORS == locationExtended.tech_mask)
-            // E means estimated (dead reckoning)
-            length = snprintf(pMarker, lengthRemaining, "%c", 'E');
-        else // A means autonomous
-            length = snprintf(pMarker, lengthRemaining, "%c", 'A');
-
-        length = loc_nmea_put_checksum(sentence, sizeof(sentence));
-        nmeaArraystr.push_back(sentence);
-
-        // -------------------
-        // ------$--RMC-------
-        // -------------------
-
-        pMarker = sentence;
-        lengthRemaining = sizeof(sentence);
-
-        length = snprintf(pMarker, lengthRemaining, "$%sRMC,%02d%02d%02d.%02d,A," ,
-                          talker, utcHours, utcMinutes, utcSeconds,utcMSeconds/10);
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        if (location.gpsLocation.flags & LOC_GPS_LOCATION_HAS_LAT_LONG)
-        {
-            double latitude = location.gpsLocation.latitude;
-            double longitude = location.gpsLocation.longitude;
-            char latHemisphere;
-            char lonHemisphere;
-            double latMinutes;
-            double lonMinutes;
-
-            if (latitude > 0)
-            {
-                latHemisphere = 'N';
-            }
-            else
-            {
-                latHemisphere = 'S';
-                latitude *= -1.0;
-            }
-
-            if (longitude < 0)
-            {
-                lonHemisphere = 'W';
-                longitude *= -1.0;
-            }
-            else
-            {
-                lonHemisphere = 'E';
-            }
-
-            latMinutes = fmod(latitude * 60.0 , 60.0);
-            lonMinutes = fmod(longitude * 60.0 , 60.0);
-
-            length = snprintf(pMarker, lengthRemaining, "%02d%09.6lf,%c,%03d%09.6lf,%c,",
-                              (uint8_t)floor(latitude), latMinutes, latHemisphere,
-                              (uint8_t)floor(longitude),lonMinutes, lonHemisphere);
-        }
-        else
-        {
-            length = snprintf(pMarker, lengthRemaining,",,,,");
-        }
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        if (location.gpsLocation.flags & LOC_GPS_LOCATION_HAS_SPEED)
-        {
-            float speedKnots = location.gpsLocation.speed * (3600.0/1852.0);
-            length = snprintf(pMarker, lengthRemaining, "%.1lf,", speedKnots);
-        }
-        else
-        {
-            length = snprintf(pMarker, lengthRemaining, ",");
-        }
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        if (location.gpsLocation.flags & LOC_GPS_LOCATION_HAS_BEARING)
-        {
-            length = snprintf(pMarker, lengthRemaining, "%.1lf,", location.gpsLocation.bearing);
-        }
-        else
-        {
-            length = snprintf(pMarker, lengthRemaining, ",");
-        }
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        length = snprintf(pMarker, lengthRemaining, "%2.2d%2.2d%2.2d,",
-                          utcDay, utcMonth, utcYear);
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        if (locationExtended.flags & GPS_LOCATION_EXTENDED_HAS_MAG_DEV)
-        {
-            float magneticVariation = locationExtended.magneticDeviation;
-            char direction;
-            if (magneticVariation < 0.0)
-            {
-                direction = 'W';
-                magneticVariation *= -1.0;
-            }
-            else
-            {
-                direction = 'E';
-            }
-
-            length = snprintf(pMarker, lengthRemaining, "%.1lf,%c,",
-                              magneticVariation, direction);
-        }
-        else
-        {
-            length = snprintf(pMarker, lengthRemaining, ",,");
-        }
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        if (!(location.gpsLocation.flags & LOC_GPS_LOCATION_HAS_LAT_LONG))
-            // N means no fix
-            length = snprintf(pMarker, lengthRemaining, "%c", 'N');
-        else if (LOC_NAV_MASK_SBAS_CORRECTION_IONO & locationExtended.navSolutionMask)
-            // D means differential
-            length = snprintf(pMarker, lengthRemaining, "%c", 'D');
-        else if (LOC_POS_TECH_MASK_SENSORS == locationExtended.tech_mask)
-            // E means estimated (dead reckoning)
-            length = snprintf(pMarker, lengthRemaining, "%c", 'E');
-        else  // A means autonomous
-            length = snprintf(pMarker, lengthRemaining, "%c", 'A');
-
-        length = loc_nmea_put_checksum(sentence, sizeof(sentence));
-        nmeaArraystr.push_back(sentence);
-
-        // -------------------
-        // ------$--GGA-------
-        // -------------------
-
-        pMarker = sentence;
-        lengthRemaining = sizeof(sentence);
-
-        length = snprintf(pMarker, lengthRemaining, "$%sGGA,%02d%02d%02d.%02d," ,
-                          talker, utcHours, utcMinutes, utcSeconds, utcMSeconds/10);
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        if (location.gpsLocation.flags & LOC_GPS_LOCATION_HAS_LAT_LONG)
-        {
-            double latitude = location.gpsLocation.latitude;
-            double longitude = location.gpsLocation.longitude;
-            char latHemisphere;
-            char lonHemisphere;
-            double latMinutes;
-            double lonMinutes;
-
-            if (latitude > 0)
-            {
-                latHemisphere = 'N';
-            }
-            else
-            {
-                latHemisphere = 'S';
-                latitude *= -1.0;
-            }
-
-            if (longitude < 0)
-            {
-                lonHemisphere = 'W';
-                longitude *= -1.0;
-            }
-            else
-            {
-                lonHemisphere = 'E';
-            }
-
-            latMinutes = fmod(latitude * 60.0 , 60.0);
-            lonMinutes = fmod(longitude * 60.0 , 60.0);
-
-            length = snprintf(pMarker, lengthRemaining, "%02d%09.6lf,%c,%03d%09.6lf,%c,",
-                              (uint8_t)floor(latitude), latMinutes, latHemisphere,
-                              (uint8_t)floor(longitude),lonMinutes, lonHemisphere);
-        }
-        else
-        {
-            length = snprintf(pMarker, lengthRemaining,",,,,");
-        }
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        char gpsQuality;
-        if (!(location.gpsLocation.flags & LOC_GPS_LOCATION_HAS_LAT_LONG))
-            gpsQuality = '0'; // 0 means no fix
-        else if (LOC_NAV_MASK_SBAS_CORRECTION_IONO & locationExtended.navSolutionMask)
-            gpsQuality = '2'; // 2 means DGPS fix
-        else if (LOC_POS_TECH_MASK_SENSORS == locationExtended.tech_mask)
-            gpsQuality = '6'; // 6 means estimated (dead reckoning)
-        else
-            gpsQuality = '1'; // 1 means GPS fix
-
-        // Number of satellites in use, 00-12
-        if (svUsedCount > MAX_SATELLITES_IN_USE)
-            svUsedCount = MAX_SATELLITES_IN_USE;
-        if (locationExtended.flags & GPS_LOCATION_EXTENDED_HAS_DOP)
-        {
-            length = snprintf(pMarker, lengthRemaining, "%c,%02d,%.1f,",
-                              gpsQuality, svUsedCount, locationExtended.hdop);
-        }
-        else
-        {   // no hdop
-            length = snprintf(pMarker, lengthRemaining, "%c,%02d,,",
-                              gpsQuality, svUsedCount);
-        }
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        if (locationExtended.flags & GPS_LOCATION_EXTENDED_HAS_ALTITUDE_MEAN_SEA_LEVEL)
-        {
-            length = snprintf(pMarker, lengthRemaining, "%.1lf,M,",
-                              locationExtended.altitudeMeanSeaLevel);
-        }
-        else
-        {
-            length = snprintf(pMarker, lengthRemaining,",,");
-        }
-
-        if (length < 0 || length >= lengthRemaining)
-        {
-            LOC_LOGE("NMEA Error in string formatting");
-            return;
-        }
-        pMarker += length;
-        lengthRemaining -= length;
-
-        if ((location.gpsLocation.flags & LOC_GPS_LOCATION_HAS_ALTITUDE) &&
-            (locationExtended.flags & GPS_LOCATION_EXTENDED_HAS_ALTITUDE_MEAN_SEA_LEVEL))
-        {
-            length = snprintf(pMarker, lengthRemaining, "%.1lf,M,,",
-                              location.gpsLocation.altitude - locationExtended.altitudeMeanSeaLevel);
-        }
-        else
-        {
-            length = snprintf(pMarker, lengthRemaining,",,,");
-        }
-
-        length = loc_nmea_put_checksum(sentence, sizeof(sentence));
-        nmeaArraystr.push_back(sentence);
-
-        // clear the cache so they can't be used again
-        sv_cache_info.gps_used_mask = 0;
-        sv_cache_info.glo_used_mask = 0;
-        sv_cache_info.gal_used_mask = 0;
-        sv_cache_info.qzss_used_mask = 0;
-        sv_cache_info.bds_used_mask = 0;
-    }
-    //Send blank NMEA reports for non-final fixes
-    else {
-        strlcpy(sentence, "$GPGSA,A,1,,,,,,,,,,,,,,,", sizeof(sentence));
-        length = loc_nmea_put_checksum(sentence, sizeof(sentence));
-        nmeaArraystr.push_back(sentence);
-
-        strlcpy(sentence, "$GNGSA,A,1,,,,,,,,,,,,,,,", sizeof(sentence));
-        length = loc_nmea_put_checksum(sentence, sizeof(sentence));
-        nmeaArraystr.push_back(sentence);
-
-        strlcpy(sentence, "$PQGSA,A,1,,,,,,,,,,,,,,,", sizeof(sentence));
-        length = loc_nmea_put_checksum(sentence, sizeof(sentence));
-        nmeaArraystr.push_back(sentence);
-
-        strlcpy(sentence, "$GPVTG,,T,,M,,N,,K,N", sizeof(sentence));
-        length = loc_nmea_put_checksum(sentence, sizeof(sentence));
-        nmeaArraystr.push_back(sentence);
-
-        strlcpy(sentence, "$GPRMC,,V,,,,,,,,,,N", sizeof(sentence));
-        length = loc_nmea_put_checksum(sentence, sizeof(sentence));
-        nmeaArraystr.push_back(sentence);
-
-        strlcpy(sentence, "$GPGGA,,,,,,0,,,,,,,,", sizeof(sentence));
-        length = loc_nmea_put_checksum(sentence, sizeof(sentence));
-        nmeaArraystr.push_back(sentence);
-    }
-
-    EXIT_LOG(%d, 0);
-}
-
-
-
-/*===========================================================================
-FUNCTION    loc_nmea_generate_sv
-
-DESCRIPTION
-   Generate NMEA sentences generated based on sv report
-
-DEPENDENCIES
-   NONE
-
-RETURN VALUE
-   0
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-void loc_nmea_generate_sv(const GnssSvNotification &svNotify,
-                              std::vector<std::string> &nmeaArraystr)
-{
-    ENTRY_LOG();
-
-    char sentence[NMEA_SENTENCE_MAX_LENGTH] = {0};
-    char* pMarker = sentence;
-    int lengthRemaining = sizeof(sentence);
-    int length = 0;
-    int svCount = svNotify.count;
-    int sentenceCount = 0;
-    int sentenceNumber = 1;
-    int svNumber = 1;
-
-    //Count GPS SVs for saparating GPS from GLONASS and throw others
-
-    sv_cache_info.gps_used_mask = 0;
-    sv_cache_info.glo_used_mask = 0;
-    sv_cache_info.gal_used_mask = 0;
-    sv_cache_info.qzss_used_mask = 0;
-    sv_cache_info.bds_used_mask = 0;
-
-    sv_cache_info.gps_count = 0;
-    sv_cache_info.glo_count = 0;
-    sv_cache_info.gal_count = 0;
-    sv_cache_info.qzss_count = 0;
-    sv_cache_info.bds_count = 0;
-    for(svNumber=1; svNumber <= svCount; svNumber++) {
-        if (GNSS_SV_TYPE_GPS == svNotify.gnssSvs[svNumber - 1].type)
-        {
-            // cache the used in fix mask, as it will be needed to send $GPGSA
-            // during the position report
-            if (GNSS_SV_OPTIONS_USED_IN_FIX_BIT ==
-                    (svNotify.gnssSvs[svNumber - 1].gnssSvOptionsMask &
-                      GNSS_SV_OPTIONS_USED_IN_FIX_BIT))
-            {
-                sv_cache_info.gps_used_mask |= (1 << (svNotify.gnssSvs[svNumber - 1].svId - 1));
-            }
-            sv_cache_info.gps_count++;
-        }
-        else if (GNSS_SV_TYPE_GLONASS == svNotify.gnssSvs[svNumber - 1].type)
-        {
-            // cache the used in fix mask, as it will be needed to send $GNGSA
-            // during the position report
-            if (GNSS_SV_OPTIONS_USED_IN_FIX_BIT ==
-                    (svNotify.gnssSvs[svNumber - 1].gnssSvOptionsMask &
-                      GNSS_SV_OPTIONS_USED_IN_FIX_BIT))
-            {
-                sv_cache_info.glo_used_mask |= (1 << (svNotify.gnssSvs[svNumber - 1].svId - 1));
-            }
-            sv_cache_info.glo_count++;
-        }
-        else if (GNSS_SV_TYPE_GALILEO == svNotify.gnssSvs[svNumber - 1].type)
-        {
-            // cache the used in fix mask, as it will be needed to send $GAGSA
-            // during the position report
-            if (GNSS_SV_OPTIONS_USED_IN_FIX_BIT ==
-                    (svNotify.gnssSvs[svNumber - 1].gnssSvOptionsMask &
-                      GNSS_SV_OPTIONS_USED_IN_FIX_BIT))
-            {
-                sv_cache_info.gal_used_mask |= (1 << (svNotify.gnssSvs[svNumber - 1].svId - 1));
-            }
-            sv_cache_info.gal_count++;
-        }
-        else if (GNSS_SV_TYPE_QZSS == svNotify.gnssSvs[svNumber - 1].type)
-        {
-            // cache the used in fix mask, as it will be needed to send $PQGSA
-            // during the position report
-            if (GNSS_SV_OPTIONS_USED_IN_FIX_BIT ==
-                (svNotify.gnssSvs[svNumber - 1].gnssSvOptionsMask &
-                  GNSS_SV_OPTIONS_USED_IN_FIX_BIT))
-            {
-                sv_cache_info.qzss_used_mask |= (1 << (svNotify.gnssSvs[svNumber - 1].svId - 1));
-            }
-            sv_cache_info.qzss_count++;
-        }
-        else if (GNSS_SV_TYPE_BEIDOU == svNotify.gnssSvs[svNumber - 1].type)
-        {
-            // cache the used in fix mask, as it will be needed to send $PQGSA
-            // during the position report
-            if (GNSS_SV_OPTIONS_USED_IN_FIX_BIT ==
-                (svNotify.gnssSvs[svNumber - 1].gnssSvOptionsMask &
-                  GNSS_SV_OPTIONS_USED_IN_FIX_BIT))
-            {
-                sv_cache_info.bds_used_mask |= (1 << (svNotify.gnssSvs[svNumber - 1].svId - 1));
-            }
-            sv_cache_info.bds_count++;
-        }
-    }
-
-    loc_nmea_sv_meta sv_meta;
-    // ------------------
-    // ------$GPGSV------
-    // ------------------
-
-    loc_nmea_generate_GSV(svNotify, sentence, sizeof(sentence),
-            loc_nmea_sv_meta_init(sv_meta, GNSS_SV_TYPE_GPS, false), nmeaArraystr);
-
-    // ------------------
-    // ------$GLGSV------
-    // ------------------
-
-    loc_nmea_generate_GSV(svNotify, sentence, sizeof(sentence),
-            loc_nmea_sv_meta_init(sv_meta, GNSS_SV_TYPE_GLONASS, false), nmeaArraystr);
-
-    // ------------------
-    // ------$GAGSV------
-    // ------------------
-
-    loc_nmea_generate_GSV(svNotify, sentence, sizeof(sentence),
-            loc_nmea_sv_meta_init(sv_meta, GNSS_SV_TYPE_GALILEO, false), nmeaArraystr);
-
-    // -------------------------
-    // ------$PQGSV (QZSS)------
-    // -------------------------
-
-    loc_nmea_generate_GSV(svNotify, sentence, sizeof(sentence),
-            loc_nmea_sv_meta_init(sv_meta, GNSS_SV_TYPE_QZSS, false), nmeaArraystr);
-
-    // ---------------------------
-    // ------$PQGSV (BEIDOU)------
-    // ---------------------------
-
-    loc_nmea_generate_GSV(svNotify, sentence, sizeof(sentence),
-            loc_nmea_sv_meta_init(sv_meta, GNSS_SV_TYPE_BEIDOU, false), nmeaArraystr);
-
-    EXIT_LOG(%d, 0);
-}
diff --git a/sdm845/utils/loc_nmea.h b/sdm845/utils/loc_nmea.h
deleted file mode 100644
index 585a9c1..0000000
--- a/sdm845/utils/loc_nmea.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (c) 2012-2013, 2015-2017 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 "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 LOC_ENG_NMEA_H
-#define LOC_ENG_NMEA_H
-
-#include <gps_extended.h>
-#include <vector>
-#include <string>
-#define NMEA_SENTENCE_MAX_LENGTH 200
-
-void loc_nmea_generate_sv(const GnssSvNotification &svNotify,
-                              std::vector<std::string> &nmeaArraystr);
-
-void loc_nmea_generate_pos(const UlpLocation &location,
-                               const GpsLocationExtended &locationExtended,
-                               unsigned char generate_nmea,
-                               std::vector<std::string> &nmeaArraystr);
-
-#define DEBUG_NMEA_MINSIZE 6
-#define DEBUG_NMEA_MAXSIZE 4096
-inline bool loc_nmea_is_debug(const char* nmea, int length) {
-    return ((nullptr != nmea) &&
-            (length >= DEBUG_NMEA_MINSIZE) && (length <= DEBUG_NMEA_MAXSIZE) &&
-            (nmea[0] == '$') && (nmea[1] == 'P') && (nmea[2] == 'Q') && (nmea[3] == 'W'));
-}
-
-#endif // LOC_ENG_NMEA_H
diff --git a/sdm845/utils/loc_target.cpp b/sdm845/utils/loc_target.cpp
deleted file mode 100644
index 7e475eb..0000000
--- a/sdm845/utils/loc_target.cpp
+++ /dev/null
@@ -1,296 +0,0 @@
-/* Copyright (c) 2012-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 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 "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 <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <cutils/properties.h>
-#include "loc_target.h"
-#include "loc_log.h"
-#include <platform_lib_includes.h>
-
-#define APQ8064_ID_1 "109"
-#define APQ8064_ID_2 "153"
-#define MPQ8064_ID_1 "130"
-#define MSM8930_ID_1 "142"
-#define MSM8930_ID_2 "116"
-#define APQ8030_ID_1 "157"
-#define APQ8074_ID_1 "184"
-
-#define LINE_LEN 100
-#define STR_LIQUID      "Liquid"
-#define STR_SURF        "Surf"
-#define STR_MTP         "MTP"
-#define STR_APQ         "apq"
-#define STR_SDC         "sdc"  // alternative string for APQ targets
-#define STR_MSM         "msm"
-#define STR_SDM         "sdm"  // alternative string for MSM targets
-#define STR_APQ_NO_WGR  "baseband_apq_nowgr"
-#define STR_AUTO        "auto"
-#define IS_STR_END(c) ((c) == '\0' || (c) == '\n' || (c) == '\r')
-#define LENGTH(s) (sizeof(s) - 1)
-#define GPS_CHECK_NO_ERROR 0
-#define GPS_CHECK_NO_GPS_HW 1
-/* When system server is started, it uses 20 seconds as ActivityManager
- * timeout. After that it sends SIGSTOP signal to process.
- */
-#define QCA1530_DETECT_TIMEOUT 15
-#define QCA1530_DETECT_PRESENT "yes"
-#define QCA1530_DETECT_PROGRESS "detect"
-
-static unsigned int gTarget = (unsigned int)-1;
-
-static int read_a_line(const char * file_path, char * line, int line_size)
-{
-    FILE *fp;
-    int result = 0;
-
-    * line = '\0';
-    fp = fopen(file_path, "r" );
-    if( fp == NULL ) {
-        LOC_LOGE("open failed: %s: %s\n", file_path, strerror(errno));
-        result = -1;
-    } else {
-        int len;
-        fgets(line, line_size, fp);
-        len = strlen(line);
-        len = len < line_size - 1? len : line_size - 1;
-        line[len] = '\0';
-        LOC_LOGD("cat %s: %s", file_path, line);
-        fclose(fp);
-    }
-    return result;
-}
-
-/*!
- * \brief Checks if QCA1530 is avalable.
- *
- * Function verifies if qca1530 SoC is configured on the device. The test is
- * based on property value. For 1530 scenario, the value shall be one of the
- * following: "yes", "no", "detect". All other values are treated equally to
- * "no". When the value is "detect" the system waits for SoC detection to
- * finish before returning result.
- *
- * \retval true - QCA1530 is available.
- * \retval false - QCA1530 is not available.
- */
-static bool is_qca1530(void)
-{
-    static const char qca1530_property_name[] = "sys.qca1530";
-    bool res = false;
-    int ret, i;
-    char buf[PROPERTY_VALUE_MAX];
-
-    memset(buf, 0, sizeof(buf));
-
-    for (i = 0; i < QCA1530_DETECT_TIMEOUT; ++i)
-    {
-        ret = platform_lib_abstraction_property_get(qca1530_property_name, buf, NULL);
-        if (ret < 0)
-        {
-            LOC_LOGV( "qca1530: property %s is not accessible, ret=%d",
-                  qca1530_property_name,
-                  ret);
-
-            break;
-        }
-
-        LOC_LOGV( "qca1530: property %s is set to %s",
-                  qca1530_property_name,
-                  buf);
-
-        if (!memcmp(buf, QCA1530_DETECT_PRESENT,
-                    sizeof(QCA1530_DETECT_PRESENT)))
-        {
-            res = true;
-            break;
-        }
-        if (!memcmp(buf, QCA1530_DETECT_PROGRESS,
-                    sizeof(QCA1530_DETECT_PROGRESS)))
-        {
-            LOC_LOGV("qca1530: SoC detection is in progress.");
-            sleep(1);
-            continue;
-        }
-        break;
-    }
-
-    LOC_LOGD("qca1530: detected=%s", res ? "true" : "false");
-    return res;
-}
-
-/*The character array passed to this function should have length
-  of atleast PROPERTY_VALUE_MAX*/
-void loc_get_target_baseband(char *baseband, int array_length)
-{
-    if(baseband && (array_length >= PROPERTY_VALUE_MAX)) {
-        property_get("ro.baseband", baseband, "");
-        LOC_LOGD("%s:%d]: Baseband: %s\n", __func__, __LINE__, baseband);
-    }
-    else {
-        LOC_LOGE("%s:%d]: NULL parameter or array length less than PROPERTY_VALUE_MAX\n",
-                 __func__, __LINE__);
-    }
-}
-
-/*The character array passed to this function should have length
-  of atleast PROPERTY_VALUE_MAX*/
-void loc_get_platform_name(char *platform_name, int array_length)
-{
-    if(platform_name && (array_length >= PROPERTY_VALUE_MAX)) {
-        property_get("ro.board.platform", platform_name, "");
-        LOC_LOGD("%s:%d]: Target name: %s\n", __func__, __LINE__, platform_name);
-    }
-    else {
-        LOC_LOGE("%s:%d]: Null parameter or array length less than PROPERTY_VALUE_MAX\n",
-                 __func__, __LINE__);
-    }
-}
-
-/*The character array passed to this function should have length
-  of atleast PROPERTY_VALUE_MAX*/
-void loc_get_auto_platform_name(char *platform_name, int array_length)
-{
-    if(platform_name && (array_length >= PROPERTY_VALUE_MAX)) {
-        property_get("ro.hardware.type", platform_name, "");
-        LOC_LOGD("%s:%d]: Autoplatform name: %s\n", __func__, __LINE__, platform_name);
-    }
-    else {
-        LOC_LOGE("%s:%d]: Null parameter or array length less than PROPERTY_VALUE_MAX\n",
-                 __func__, __LINE__);
-    }
-}
-
-unsigned int loc_get_target(void)
-{
-    if (gTarget != (unsigned int)-1)
-        return gTarget;
-
-    static const char hw_platform[]      = "/sys/devices/soc0/hw_platform";
-    static const char id[]               = "/sys/devices/soc0/soc_id";
-    static const char hw_platform_dep[]  =
-        "/sys/devices/system/soc/soc0/hw_platform";
-    static const char id_dep[]           = "/sys/devices/system/soc/soc0/id";
-    static const char mdm[]              = "/target"; // mdm target we are using
-
-    char rd_hw_platform[LINE_LEN];
-    char rd_id[LINE_LEN];
-    char rd_mdm[LINE_LEN];
-    char baseband[LINE_LEN];
-    char rd_auto_platform[LINE_LEN];
-
-    if (is_qca1530()) {
-        gTarget = TARGET_QCA1530;
-        goto detected;
-    }
-
-    loc_get_target_baseband(baseband, sizeof(baseband));
-
-    if (!access(hw_platform, F_OK)) {
-        read_a_line(hw_platform, rd_hw_platform, LINE_LEN);
-    } else {
-        read_a_line(hw_platform_dep, rd_hw_platform, LINE_LEN);
-    }
-    if (!access(id, F_OK)) {
-        read_a_line(id, rd_id, LINE_LEN);
-    } else {
-        read_a_line(id_dep, rd_id, LINE_LEN);
-    }
-
-    /*check automotive platform*/
-    loc_get_auto_platform_name(rd_auto_platform, sizeof(rd_auto_platform));
-    if( !memcmp(rd_auto_platform, STR_AUTO, LENGTH(STR_AUTO)) )
-    {
-          gTarget = TARGET_AUTO;
-          goto detected;
-    }
-
-    if( !memcmp(baseband, STR_APQ_NO_WGR, LENGTH(STR_APQ_NO_WGR)) ){
-
-        gTarget = TARGET_NO_GNSS;
-        goto detected;
-    }
-
-    if( !memcmp(baseband, STR_APQ, LENGTH(STR_APQ)) ||
-            !memcmp(baseband, STR_SDC, LENGTH(STR_SDC)) ){
-
-        if( !memcmp(rd_id, MPQ8064_ID_1, LENGTH(MPQ8064_ID_1))
-            && IS_STR_END(rd_id[LENGTH(MPQ8064_ID_1)]) )
-            gTarget = TARGET_NO_GNSS;
-        else
-            gTarget = TARGET_APQ_SA;
-    }
-    else {
-        if( (!memcmp(rd_hw_platform, STR_LIQUID, LENGTH(STR_LIQUID))
-             && IS_STR_END(rd_hw_platform[LENGTH(STR_LIQUID)])) ||
-            (!memcmp(rd_hw_platform, STR_SURF,   LENGTH(STR_SURF))
-             && IS_STR_END(rd_hw_platform[LENGTH(STR_SURF)])) ||
-            (!memcmp(rd_hw_platform, STR_MTP,   LENGTH(STR_MTP))
-             && IS_STR_END(rd_hw_platform[LENGTH(STR_MTP)]))) {
-
-            if (!read_a_line( mdm, rd_mdm, LINE_LEN))
-                gTarget = TARGET_MDM;
-        }
-
-        else if( (!memcmp(rd_id, MSM8930_ID_1, LENGTH(MSM8930_ID_1))
-                   && IS_STR_END(rd_id[LENGTH(MSM8930_ID_1)])) ||
-                  (!memcmp(rd_id, MSM8930_ID_2, LENGTH(MSM8930_ID_2))
-                   && IS_STR_END(rd_id[LENGTH(MSM8930_ID_2)])) )
-             gTarget = TARGET_MSM_NO_SSC;
-
-        else if ( !memcmp(baseband, STR_MSM, LENGTH(STR_MSM)) ||
-                    !memcmp(baseband, STR_SDM, LENGTH(STR_SDM)) )
-             gTarget = TARGET_DEFAULT;
-
-        else
-             gTarget = TARGET_UNKNOWN;
-    }
-
-detected:
-    LOC_LOGD("HAL: %s returned %d", __FUNCTION__, gTarget);
-    return gTarget;
-}
-
-/*Reads the property ro.lean to identify if this is a lean target
-  Returns:
-  0 if not a lean and mean target
-  1 if this is a lean and mean target
-*/
-int loc_identify_lean_target()
-{
-    int ret = 0;
-    char lean_target[PROPERTY_VALUE_MAX];
-    property_get("ro.lean", lean_target, "");
-    LOC_LOGD("%s:%d]: lean target: %s\n", __func__, __LINE__, lean_target);
-    return !(strncmp(lean_target, "true", PROPERTY_VALUE_MAX));
-}
diff --git a/sdm845/utils/loc_target.h b/sdm845/utils/loc_target.h
deleted file mode 100644
index 69395db..0000000
--- a/sdm845/utils/loc_target.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (c) 2012-2014, 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 "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 LOC_TARGET_H
-#define LOC_TARGET_H
-#define TARGET_SET(gnss,ssc) ( (gnss<<1)|ssc )
-#define TARGET_DEFAULT       TARGET_SET(GNSS_MSM, HAS_SSC)
-#define TARGET_MDM           TARGET_SET(GNSS_MDM, HAS_SSC)
-#define TARGET_APQ_SA        TARGET_SET(GNSS_GSS, NO_SSC)
-#define TARGET_NO_GNSS       TARGET_SET(GNSS_NONE, NO_SSC)
-#define TARGET_MSM_NO_SSC    TARGET_SET(GNSS_MSM, NO_SSC)
-#define TARGET_QCA1530       TARGET_SET(GNSS_QCA1530, NO_SSC)
-#define TARGET_AUTO          TARGET_SET(GNSS_AUTO, NO_SSC)
-#define TARGET_UNKNOWN       TARGET_SET(GNSS_UNKNOWN, NO_SSC)
-#define getTargetGnssType(target)  (target>>1)
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-unsigned int loc_get_target(void);
-
-/*The character array passed to this function should have length
-  of atleast PROPERTY_VALUE_MAX*/
-void loc_get_target_baseband(char *baseband, int array_length);
-/*The character array passed to this function should have length
-  of atleast PROPERTY_VALUE_MAX*/
-void loc_get_platform_name(char *platform_name, int array_length);
-/*The character array passed to this function should have length
-  of atleast PROPERTY_VALUE_MAX*/
-void loc_get_auto_platform_name(char *platform_name, int array_length);
-
-/*Reads the property ro.lean to identify if this is a lean target
-  Returns:
-  0 if not a lean and mean target
-  1 if this is a lean and mean target*/
-int loc_identify_lean_target();
-
-/* Please remember to update 'target_name' in loc_log.cpp,
-   if do any changes to this enum. */
-typedef enum {
-    GNSS_NONE = 0,
-    GNSS_MSM,
-    GNSS_GSS,
-    GNSS_MDM,
-    GNSS_QCA1530,
-    GNSS_AUTO,
-    GNSS_UNKNOWN
-}GNSS_TARGET;
-
-typedef enum {
-    NO_SSC = 0,
-    HAS_SSC
-}SSC_TYPE;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /*LOC_TARGET_H*/
diff --git a/sdm845/utils/loc_timer.h b/sdm845/utils/loc_timer.h
deleted file mode 100644
index 25fd179..0000000
--- a/sdm845/utils/loc_timer.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (c) 2013,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 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 "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 __LOC_DELAY_H__
-#define __LOC_DELAY_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-#include <stddef.h>
-#include <platform_lib_includes.h>
-/*
-    user_data: client context pointer, passthrough. Originally received
-               from calling client when loc_timer_start() is called.
-    result:    0 if timer successfully timed out; else timer failed.
-*/
-typedef void (*loc_timer_callback)(void *user_data, int32_t result);
-
-
-/*
-    delay_msec:         timeout value for the timer.
-    cb_func:            callback function pointer, implemented by client.
-                        Can not be NULL.
-    user_data:          client context pointer, passthrough.  Will be
-                        returned when loc_timer_callback() is called.
-    wakeOnExpire:       true if to wake up CPU (if sleeping) upon timer
-                                expiration and notify the client.
-                        false if to wait until next time CPU wakes up (if
-                                 sleeping) and then notify the client.
-    Returns the handle, which can be used to stop the timer
-                        NULL, if timer start fails (e.g. if cb_func is NULL).
-*/
-void* loc_timer_start(uint64_t delay_msec,
-                      loc_timer_callback cb_func,
-                      void *user_data,
-                      bool wake_on_expire=false);
-
-/*
-    handle becomes invalid upon the return of the callback
-*/
-void loc_timer_stop(void*& handle);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif //__LOC_DELAY_H__
diff --git a/sdm845/utils/log_util.h b/sdm845/utils/log_util.h
deleted file mode 100644
index 7eb338a..0000000
--- a/sdm845/utils/log_util.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/* Copyright (c) 2011-2014 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 "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 __LOG_UTIL_H__
-#define __LOG_UTIL_H__
-
-#ifndef USE_GLIB
-#include <utils/Log.h>
-#endif /* USE_GLIB */
-
-#ifdef USE_GLIB
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#ifndef LOG_TAG
-#define LOG_TAG "GPS_UTILS"
-
-#endif  // LOG_TAG
-
-#endif /* USE_GLIB */
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/*=============================================================================
- *
- *                         LOC LOGGER TYPE DECLARATION
- *
- *============================================================================*/
-/* LOC LOGGER */
-typedef struct loc_logger_s
-{
-  unsigned long  DEBUG_LEVEL;
-  unsigned long  TIMESTAMP;
-} loc_logger_s_type;
-
-/*=============================================================================
- *
- *                               EXTERNAL DATA
- *
- *============================================================================*/
-extern loc_logger_s_type loc_logger;
-
-// Logging Improvements
-extern const char *loc_logger_boolStr[];
-
-extern const char *boolStr[];
-extern const char VOID_RET[];
-extern const char FROM_AFW[];
-extern const char TO_MODEM[];
-extern const char FROM_MODEM[];
-extern const char TO_AFW[];
-extern const char EXIT_TAG[];
-extern const char ENTRY_TAG[];
-extern const char EXIT_ERROR_TAG[];
-
-/*=============================================================================
- *
- *                        MODULE EXPORTED FUNCTIONS
- *
- *============================================================================*/
-extern void loc_logger_init(unsigned long debug, unsigned long timestamp);
-extern char* get_timestamp(char* str, unsigned long buf_size);
-
-#ifndef DEBUG_DMN_LOC_API
-
-/* LOGGING MACROS */
-/*loc_logger.DEBUG_LEVEL is initialized to 0xff in loc_cfg.cpp
-  if that value remains unchanged, it means gps.conf did not
-  provide a value and we default to the initial value to use
-  Android's logging levels*/
-#define IF_LOC_LOGE if((loc_logger.DEBUG_LEVEL >= 1) && (loc_logger.DEBUG_LEVEL <= 5))
-#define IF_LOC_LOGW if((loc_logger.DEBUG_LEVEL >= 2) && (loc_logger.DEBUG_LEVEL <= 5))
-#define IF_LOC_LOGI if((loc_logger.DEBUG_LEVEL >= 3) && (loc_logger.DEBUG_LEVEL <= 5))
-#define IF_LOC_LOGD if((loc_logger.DEBUG_LEVEL >= 4) && (loc_logger.DEBUG_LEVEL <= 5))
-#define IF_LOC_LOGV if((loc_logger.DEBUG_LEVEL >= 5) && (loc_logger.DEBUG_LEVEL <= 5))
-
-#define LOC_LOGE(...) IF_LOC_LOGE { ALOGE(__VA_ARGS__); }
-#define LOC_LOGW(...) IF_LOC_LOGW { ALOGW(__VA_ARGS__); }
-#define LOC_LOGI(...) IF_LOC_LOGI { ALOGI(__VA_ARGS__); }
-#define LOC_LOGD(...) IF_LOC_LOGD { ALOGD(__VA_ARGS__); }
-#define LOC_LOGV(...) IF_LOC_LOGV { ALOGV(__VA_ARGS__); }
-
-#else /* DEBUG_DMN_LOC_API */
-
-#define LOC_LOGE(...) ALOGE(__VA_ARGS__)
-#define LOC_LOGW(...) ALOGW(__VA_ARGS__)
-#define LOC_LOGI(...) ALOGI(__VA_ARGS__)
-#define LOC_LOGD(...) ALOGD(__VA_ARGS__)
-#define LOC_LOGV(...) ALOGV(__VA_ARGS__)
-
-#endif /* DEBUG_DMN_LOC_API */
-
-/*=============================================================================
- *
- *                          LOGGING IMPROVEMENT MACROS
- *
- *============================================================================*/
-#define LOG_(LOC_LOG, ID, WHAT, SPEC, VAL)                                    \
-    do {                                                                      \
-        if (loc_logger.TIMESTAMP) {                                           \
-            char ts[32];                                                      \
-            LOC_LOG("[%s] %s %s line %d " #SPEC,                              \
-                     get_timestamp(ts, sizeof(ts)), ID, WHAT, __LINE__, VAL); \
-        } else {                                                              \
-            LOC_LOG("%s %s line %d " #SPEC,                                   \
-                     ID, WHAT, __LINE__, VAL);                                \
-        }                                                                     \
-    } while(0)
-
-#define LOC_LOG_HEAD(fmt) "%s:%d] " fmt
-#define LOC_LOGv(fmt,...) LOC_LOGV(LOC_LOG_HEAD(fmt), __FUNCTION__, __LINE__, ##__VA_ARGS__)
-#define LOC_LOGw(fmt,...) LOC_LOGW(LOC_LOG_HEAD(fmt), __FUNCTION__, __LINE__, ##__VA_ARGS__)
-#define LOC_LOGd(fmt,...) LOC_LOGD(LOC_LOG_HEAD(fmt), __FUNCTION__, __LINE__, ##__VA_ARGS__)
-#define LOC_LOGe(fmt,...) LOC_LOGE(LOC_LOG_HEAD(fmt), __FUNCTION__, __LINE__, ##__VA_ARGS__)
-
-#define LOG_I(ID, WHAT, SPEC, VAL) LOG_(LOC_LOGI, ID, WHAT, SPEC, VAL)
-#define LOG_V(ID, WHAT, SPEC, VAL) LOG_(LOC_LOGV, ID, WHAT, SPEC, VAL)
-#define LOG_E(ID, WHAT, SPEC, VAL) LOG_(LOC_LOGE, ID, WHAT, SPEC, VAL)
-
-#define ENTRY_LOG() LOG_V(ENTRY_TAG, __FUNCTION__, %s, "")
-#define EXIT_LOG(SPEC, VAL) LOG_V(EXIT_TAG, __FUNCTION__, SPEC, VAL)
-#define EXIT_LOG_WITH_ERROR(SPEC, VAL)                       \
-    if (VAL != 0) {                                          \
-        LOG_E(EXIT_ERROR_TAG, __FUNCTION__, SPEC, VAL);          \
-    } else {                                                 \
-        LOG_V(EXIT_TAG, __FUNCTION__, SPEC, VAL);                \
-    }
-
-
-// Used for logging callflow from Android Framework
-#define ENTRY_LOG_CALLFLOW() LOG_I(FROM_AFW, __FUNCTION__, %s, "")
-// Used for logging callflow to Modem
-#define EXIT_LOG_CALLFLOW(SPEC, VAL) LOG_I(TO_MODEM, __FUNCTION__, SPEC, VAL)
-// Used for logging callflow from Modem(TO_MODEM, __FUNCTION__, %s, "")
-#define MODEM_LOG_CALLFLOW(SPEC, VAL) LOG_I(FROM_MODEM, __FUNCTION__, SPEC, VAL)
-// Used for logging callflow to Android Framework
-#define CALLBACK_LOG_CALLFLOW(CB, SPEC, VAL) LOG_I(TO_AFW, CB, SPEC, VAL)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // __LOG_UTIL_H__
diff --git a/sdm845/utils/msg_q.c b/sdm845/utils/msg_q.c
deleted file mode 100644
index 10c4e48..0000000
--- a/sdm845/utils/msg_q.c
+++ /dev/null
@@ -1,333 +0,0 @@
-/* Copyright (c) 2011-2012, 2014, 2017 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 "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 "msg_q.h"
-
-#define LOG_TAG "LocSvc_utils_q"
-#include <platform_lib_includes.h>
-#include "linked_list.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <pthread.h>
-
-typedef struct msg_q {
-   void* msg_list;                  /* Linked list to store information */
-   pthread_cond_t  list_cond;       /* Condition variable for waiting on msg queue */
-   pthread_mutex_t list_mutex;      /* Mutex for exclusive access to message queue */
-   int unblocked;                   /* Has this message queue been unblocked? */
-} msg_q;
-
-/*===========================================================================
-FUNCTION    convert_linked_list_err_type
-
-DESCRIPTION
-   Converts from one set of enum values to another.
-
-   linked_list_val: Value to convert to msg_q_enum_type
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Corresponding linked_list_enum_type in msg_q_enum_type
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-static msq_q_err_type convert_linked_list_err_type(linked_list_err_type linked_list_val)
-{
-   switch( linked_list_val )
-   {
-   case eLINKED_LIST_SUCCESS:
-      return eMSG_Q_SUCCESS;
-   case eLINKED_LIST_INVALID_PARAMETER:
-      return eMSG_Q_INVALID_PARAMETER;
-   case eLINKED_LIST_INVALID_HANDLE:
-      return eMSG_Q_INVALID_HANDLE;
-   case eLINKED_LIST_UNAVAILABLE_RESOURCE:
-      return eMSG_Q_UNAVAILABLE_RESOURCE;
-   case eLINKED_LIST_INSUFFICIENT_BUFFER:
-      return eMSG_Q_INSUFFICIENT_BUFFER;
-
-   case eLINKED_LIST_FAILURE_GENERAL:
-   default:
-      return eMSG_Q_FAILURE_GENERAL;
-   }
-}
-
-/* ----------------------- END INTERNAL FUNCTIONS ---------------------------------------- */
-
-/*===========================================================================
-
-  FUNCTION:   msg_q_init
-
-  ===========================================================================*/
-msq_q_err_type msg_q_init(void** msg_q_data)
-{
-   if( msg_q_data == NULL )
-   {
-      LOC_LOGE("%s: Invalid msg_q_data parameter!\n", __FUNCTION__);
-      return eMSG_Q_INVALID_PARAMETER;
-   }
-
-   msg_q* tmp_msg_q;
-   tmp_msg_q = (msg_q*)calloc(1, sizeof(msg_q));
-   if( tmp_msg_q == NULL )
-   {
-      LOC_LOGE("%s: Unable to allocate space for message queue!\n", __FUNCTION__);
-      return eMSG_Q_FAILURE_GENERAL;
-   }
-
-   if( linked_list_init(&tmp_msg_q->msg_list) != 0 )
-   {
-      LOC_LOGE("%s: Unable to initialize storage list!\n", __FUNCTION__);
-      free(tmp_msg_q);
-      return eMSG_Q_FAILURE_GENERAL;
-   }
-
-   if( pthread_mutex_init(&tmp_msg_q->list_mutex, NULL) != 0 )
-   {
-      LOC_LOGE("%s: Unable to initialize list mutex!\n", __FUNCTION__);
-      linked_list_destroy(&tmp_msg_q->msg_list);
-      free(tmp_msg_q);
-      return eMSG_Q_FAILURE_GENERAL;
-   }
-
-   if( pthread_cond_init(&tmp_msg_q->list_cond, NULL) != 0 )
-   {
-      LOC_LOGE("%s: Unable to initialize msg q cond var!\n", __FUNCTION__);
-      linked_list_destroy(&tmp_msg_q->msg_list);
-      pthread_mutex_destroy(&tmp_msg_q->list_mutex);
-      free(tmp_msg_q);
-      return eMSG_Q_FAILURE_GENERAL;
-   }
-
-   tmp_msg_q->unblocked = 0;
-
-   *msg_q_data = tmp_msg_q;
-
-   return eMSG_Q_SUCCESS;
-}
-
-/*===========================================================================
-
-  FUNCTION:   msg_q_init2
-
-  ===========================================================================*/
-const void* msg_q_init2()
-{
-  void* q = NULL;
-  if (eMSG_Q_SUCCESS != msg_q_init(&q)) {
-    q = NULL;
-  }
-  return q;
-}
-
-/*===========================================================================
-
-  FUNCTION:   msg_q_destroy
-
-  ===========================================================================*/
-msq_q_err_type msg_q_destroy(void** msg_q_data)
-{
-   if( msg_q_data == NULL )
-   {
-      LOC_LOGE("%s: Invalid msg_q_data parameter!\n", __FUNCTION__);
-      return eMSG_Q_INVALID_HANDLE;
-   }
-
-   msg_q* p_msg_q = (msg_q*)*msg_q_data;
-
-   linked_list_destroy(&p_msg_q->msg_list);
-   pthread_mutex_destroy(&p_msg_q->list_mutex);
-   pthread_cond_destroy(&p_msg_q->list_cond);
-
-   p_msg_q->unblocked = 0;
-
-   free(*msg_q_data);
-   *msg_q_data = NULL;
-
-   return eMSG_Q_SUCCESS;
-}
-
-/*===========================================================================
-
-  FUNCTION:   msg_q_snd
-
-  ===========================================================================*/
-msq_q_err_type msg_q_snd(void* msg_q_data, void* msg_obj, void (*dealloc)(void*))
-{
-   msq_q_err_type rv;
-   if( msg_q_data == NULL )
-   {
-      LOC_LOGE("%s: Invalid msg_q_data parameter!\n", __FUNCTION__);
-      return eMSG_Q_INVALID_HANDLE;
-   }
-   if( msg_obj == NULL )
-   {
-      LOC_LOGE("%s: Invalid msg_obj parameter!\n", __FUNCTION__);
-      return eMSG_Q_INVALID_PARAMETER;
-   }
-
-   msg_q* p_msg_q = (msg_q*)msg_q_data;
-
-   pthread_mutex_lock(&p_msg_q->list_mutex);
-   LOC_LOGV("%s: Sending message with handle = 0x%08X\n", __FUNCTION__, msg_obj);
-
-   if( p_msg_q->unblocked )
-   {
-      LOC_LOGE("%s: Message queue has been unblocked.\n", __FUNCTION__);
-      pthread_mutex_unlock(&p_msg_q->list_mutex);
-      return eMSG_Q_UNAVAILABLE_RESOURCE;
-   }
-
-   rv = convert_linked_list_err_type(linked_list_add(p_msg_q->msg_list, msg_obj, dealloc));
-
-   /* Show data is in the message queue. */
-   pthread_cond_signal(&p_msg_q->list_cond);
-
-   pthread_mutex_unlock(&p_msg_q->list_mutex);
-
-   LOC_LOGV("%s: Finished Sending message with handle = 0x%08X\n", __FUNCTION__, msg_obj);
-
-   return rv;
-}
-
-/*===========================================================================
-
-  FUNCTION:   msg_q_rcv
-
-  ===========================================================================*/
-msq_q_err_type msg_q_rcv(void* msg_q_data, void** msg_obj)
-{
-   msq_q_err_type rv;
-   if( msg_q_data == NULL )
-   {
-      LOC_LOGE("%s: Invalid msg_q_data parameter!\n", __FUNCTION__);
-      return eMSG_Q_INVALID_HANDLE;
-   }
-
-   if( msg_obj == NULL )
-   {
-      LOC_LOGE("%s: Invalid msg_obj parameter!\n", __FUNCTION__);
-      return eMSG_Q_INVALID_PARAMETER;
-   }
-
-   msg_q* p_msg_q = (msg_q*)msg_q_data;
-
-   pthread_mutex_lock(&p_msg_q->list_mutex);
-
-   if( p_msg_q->unblocked )
-   {
-      LOC_LOGE("%s: Message queue has been unblocked.\n", __FUNCTION__);
-      pthread_mutex_unlock(&p_msg_q->list_mutex);
-      return eMSG_Q_UNAVAILABLE_RESOURCE;
-   }
-
-   /* Wait for data in the message queue */
-   while( linked_list_empty(p_msg_q->msg_list) && !p_msg_q->unblocked )
-   {
-      pthread_cond_wait(&p_msg_q->list_cond, &p_msg_q->list_mutex);
-   }
-
-   rv = convert_linked_list_err_type(linked_list_remove(p_msg_q->msg_list, msg_obj));
-
-   pthread_mutex_unlock(&p_msg_q->list_mutex);
-
-   LOC_LOGV("%s: Received message 0x%08X rv = %d\n", __FUNCTION__, *msg_obj, rv);
-
-   return rv;
-}
-
-/*===========================================================================
-
-  FUNCTION:   msg_q_flush
-
-  ===========================================================================*/
-msq_q_err_type msg_q_flush(void* msg_q_data)
-{
-   msq_q_err_type rv;
-   if ( msg_q_data == NULL )
-   {
-      LOC_LOGE("%s: Invalid msg_q_data parameter!\n", __FUNCTION__);
-      return eMSG_Q_INVALID_HANDLE;
-   }
-
-   msg_q* p_msg_q = (msg_q*)msg_q_data;
-
-   LOC_LOGD("%s: Flushing Message Queue\n", __FUNCTION__);
-
-   pthread_mutex_lock(&p_msg_q->list_mutex);
-
-   /* Remove all elements from the list */
-   rv = convert_linked_list_err_type(linked_list_flush(p_msg_q->msg_list));
-
-   pthread_mutex_unlock(&p_msg_q->list_mutex);
-
-   LOC_LOGD("%s: Message Queue flushed\n", __FUNCTION__);
-
-   return rv;
-}
-
-/*===========================================================================
-
-  FUNCTION:   msg_q_unblock
-
-  ===========================================================================*/
-msq_q_err_type msg_q_unblock(void* msg_q_data)
-{
-   if ( msg_q_data == NULL )
-   {
-      LOC_LOGE("%s: Invalid msg_q_data parameter!\n", __FUNCTION__);
-      return eMSG_Q_INVALID_HANDLE;
-   }
-
-   msg_q* p_msg_q = (msg_q*)msg_q_data;
-   pthread_mutex_lock(&p_msg_q->list_mutex);
-
-   if( p_msg_q->unblocked )
-   {
-      LOC_LOGE("%s: Message queue has been unblocked.\n", __FUNCTION__);
-      pthread_mutex_unlock(&p_msg_q->list_mutex);
-      return eMSG_Q_UNAVAILABLE_RESOURCE;
-   }
-
-   LOC_LOGD("%s: Unblocking Message Queue\n", __FUNCTION__);
-   /* Unblocking message queue */
-   p_msg_q->unblocked = 1;
-
-   /* Allow all the waiters to wake up */
-   pthread_cond_broadcast(&p_msg_q->list_cond);
-
-   pthread_mutex_unlock(&p_msg_q->list_mutex);
-
-   LOC_LOGD("%s: Message Queue unblocked\n", __FUNCTION__);
-
-   return eMSG_Q_SUCCESS;
-}
diff --git a/sdm845/utils/msg_q.h b/sdm845/utils/msg_q.h
deleted file mode 100644
index 453b8ce..0000000
--- a/sdm845/utils/msg_q.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/* Copyright (c) 2011, 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 "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 __MSG_Q_H__
-#define __MSG_Q_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include <stdlib.h>
-
-/** Linked List Return Codes */
-typedef enum
-{
-  eMSG_Q_SUCCESS                             = 0,
-     /**< Request was successful. */
-  eMSG_Q_FAILURE_GENERAL                     = -1,
-     /**< Failed because of a general failure. */
-  eMSG_Q_INVALID_PARAMETER                   = -2,
-     /**< Failed because the request contained invalid parameters. */
-  eMSG_Q_INVALID_HANDLE                      = -3,
-     /**< Failed because an invalid handle was specified. */
-  eMSG_Q_UNAVAILABLE_RESOURCE                = -4,
-     /**< Failed because an there were not enough resources. */
-  eMSG_Q_INSUFFICIENT_BUFFER                 = -5,
-     /**< Failed because an the supplied buffer was too small. */
-}msq_q_err_type;
-
-/*===========================================================================
-FUNCTION    msg_q_init
-
-DESCRIPTION
-   Initializes internal structures for message queue.
-
-   msg_q_data: pointer to an opaque Q handle to be returned; NULL if fails
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-msq_q_err_type msg_q_init(void** msg_q_data);
-
-/*===========================================================================
-FUNCTION    msg_q_init2
-
-DESCRIPTION
-   Initializes internal structures for message queue.
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   opaque handle to the Q created; NULL if create fails
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-const void* msg_q_init2();
-
-/*===========================================================================
-FUNCTION    msg_q_destroy
-
-DESCRIPTION
-   Releases internal structures for message queue.
-
-   msg_q_data: State of message queue to be released.
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-msq_q_err_type msg_q_destroy(void** msg_q_data);
-
-/*===========================================================================
-FUNCTION    msg_q_snd
-
-DESCRIPTION
-   Sends data to the message queue. The passed in data pointer
-   is not modified or freed. Passed in msg_obj is expected to live throughout
-   the use of the msg_q (i.e. data is not allocated internally)
-
-   msg_q_data: Message Queue to add the element to.
-   msgp:       Pointer to data to add into message queue.
-   dealloc:    Function used to deallocate memory for this element. Pass NULL
-               if you do not want data deallocated during a flush operation
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-msq_q_err_type msg_q_snd(void* msg_q_data, void* msg_obj, void (*dealloc)(void*));
-
-/*===========================================================================
-FUNCTION    msg_q_rcv
-
-DESCRIPTION
-   Retrieves data from the message queue. msg_obj is the oldest message received
-   and pointer is simply removed from message queue.
-
-   msg_q_data: Message Queue to copy data from into msgp.
-   msg_obj:    Pointer to space to copy msg_q contents to.
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-msq_q_err_type msg_q_rcv(void* msg_q_data, void** msg_obj);
-
-/*===========================================================================
-FUNCTION    msg_q_flush
-
-DESCRIPTION
-   Function removes all elements from the message queue.
-
-   msg_q_data: Message Queue to remove elements from.
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-msq_q_err_type msg_q_flush(void* msg_q_data);
-
-/*===========================================================================
-FUNCTION    msg_q_unblock
-
-DESCRIPTION
-   This function will stop use of the message queue. All waiters will wake up
-   and likely receive nothing from the queue resulting in a negative return
-   value. The message queue can no longer be used until it is destroyed
-   and initialized again after calling this function.
-
-   msg_q_data: Message queue to unblock.
-
-DEPENDENCIES
-   N/A
-
-RETURN VALUE
-   Look at error codes above.
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-msq_q_err_type msg_q_unblock(void* msg_q_data);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __MSG_Q_H__ */
diff --git a/sdm845/utils/platform_lib_abstractions/Android.mk b/sdm845/utils/platform_lib_abstractions/Android.mk
deleted file mode 100644
index b923a4c..0000000
--- a/sdm845/utils/platform_lib_abstractions/Android.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-ifneq ($(BUILD_TINY_ANDROID),true)
-
-include $(call all-subdir-makefiles)
-
-endif
diff --git a/sdm845/utils/platform_lib_abstractions/elapsed_millis_since_boot.cpp b/sdm845/utils/platform_lib_abstractions/elapsed_millis_since_boot.cpp
deleted file mode 100644
index e8cb93a..0000000
--- a/sdm845/utils/platform_lib_abstractions/elapsed_millis_since_boot.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (c) 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 "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 <stdlib.h>
-#include <sys/time.h>
-#include "platform_lib_time.h"
-
-int64_t systemTime(int clock)
-{
-    struct timeval t;
-    t.tv_sec = t.tv_usec = 0;
-    gettimeofday(&t, NULL);
-    return t.tv_sec*1000000LL + t.tv_usec;
-}
-
-
-int64_t elapsedMillisSinceBoot()
-{
-    int64_t t_us = systemTime(0);
-    return (int64_t) t_us / 1000LL;
-}
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/Android.mk b/sdm845/utils/platform_lib_abstractions/loc_pla/Android.mk
deleted file mode 100644
index b923a4c..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/Android.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-ifneq ($(BUILD_TINY_ANDROID),true)
-
-include $(call all-subdir-makefiles)
-
-endif
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/Makefile.am b/sdm845/utils/platform_lib_abstractions/loc_pla/Makefile.am
deleted file mode 100644
index 8996763..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-# Makefile.am for gps loc-pla
-#
-
-ACLOCAL_AMFLAGS = -I m4
-
-SUBDIRS = src
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = loc-pla.pc
-EXTRA_DIST = $(pkgconfig_DATA)
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/configure.ac b/sdm845/utils/platform_lib_abstractions/loc_pla/configure.ac
deleted file mode 100644
index a8b892b..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/configure.ac
+++ /dev/null
@@ -1,61 +0,0 @@
-# configure.ac -- Autoconf script for gps loc-pla
-#
-# Process this file with autoconf to produce a configure script
-
-# Requires autoconf tool later than 2.61
-AC_PREREQ(2.61)
-# Initialize the gps loc-pla package version 1.0.0
-AC_INIT([loc-pla],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([include/platform_lib_includes.h])
-# 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([LOCSTUB], [loc-stub])
-AC_SUBST([LOCSTUB_CFLAGS])
-AC_SUBST([LOCSTUB_LIBS])
-
-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 \
-        src/Makefile \
-        loc-pla.pc \
-        ])
-
-AC_OUTPUT
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_gettid.h b/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_gettid.h
deleted file mode 100644
index 340c3c5..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_gettid.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (c) 2014, 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 "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 __PLATFORM_LIB_GETTID_H__
-#define __PLATFORM_LIB_GETTID_H__
-
-#include <sys/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifdef USE_GLIB
-const char* getprogname();
-#endif /* USE_GLIB */
-
-pid_t platform_lib_abstraction_gettid();
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* __PLATFORM_LIB_GETTID_H__ */
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_includes.h b/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_includes.h
deleted file mode 100644
index ebb7119..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_includes.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (c) 2014, 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 "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 __PLATFORM_LIB_INCLUDES_H__
-#define __PLATFORM_LIB_INCLUDES_H__
-
-#include "platform_lib_gettid.h"
-#include "platform_lib_log_util.h"
-#include "platform_lib_macros.h"
-#include "platform_lib_property_service.h"
-#include "platform_lib_sched_policy.h"
-#include "platform_lib_time.h"
-
-#endif /* __PLATFORM_LIB_INCLUDES_H__ */
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_log_util.h b/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_log_util.h
deleted file mode 100644
index 26d3c29..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_log_util.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/* Copyright (c) 2011-2014 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 "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 __PLATFORM_LIB_LOG_UTIL_H__
-#define __PLATFORM_LIB_LOG_UTIL_H__
-
-#include "platform_lib_macros.h"
-
-#ifndef USE_GLIB
-#include <log_util.h>
-#else
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <time.h>
-#include <unistd.h>
-
-#ifndef LOG_TAG
-#define LOG_TAG "GPS_UTILS"
-#endif /* LOG_TAG */
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/*=============================================================================
- *
- *                         LOC LOGGER TYPE DECLARATION
- *
- *============================================================================*/
-/* LOC LOGGER */
-typedef struct loc_logger_s
-{
-  unsigned long  DEBUG_LEVEL;
-  unsigned long  TIMESTAMP;
-} loc_logger_s_type;
-
-/*=============================================================================
- *
- *                               EXTERNAL DATA
- *
- *============================================================================*/
-extern loc_logger_s_type loc_logger;
-
-// Logging Improvements
-extern const char *loc_logger_boolStr[];
-
-extern const char *boolStr[];
-extern const char VOID_RET[];
-extern const char FROM_AFW[];
-extern const char TO_MODEM[];
-extern const char FROM_MODEM[];
-extern const char TO_AFW[];
-extern const char EXIT_TAG[];
-extern const char ENTRY_TAG[];
-extern const char EXIT_ERROR_TAG[];
-
-/*=============================================================================
- *
- *                        MODULE EXPORTED FUNCTIONS
- *
- *============================================================================*/
-void loc_logger_init(unsigned long debug, unsigned long timestamp);
-char* get_timestamp(char* str, unsigned long buf_size);
-
-#ifndef DEBUG_DMN_LOC_API
-
-/* LOGGING MACROS */
-/*loc_logger.DEBUG_LEVEL is initialized to 0xff in loc_cfg.cpp
-  if that value remains unchanged, it means gps.conf did not
-  provide a value and we default to the initial value to use
-  Android's logging levels*/
-#define IF_LOC_LOGE if((loc_logger.DEBUG_LEVEL >= 1) && (loc_logger.DEBUG_LEVEL <= 5))
-#define IF_LOC_LOGW if((loc_logger.DEBUG_LEVEL >= 2) && (loc_logger.DEBUG_LEVEL <= 5))
-#define IF_LOC_LOGI if((loc_logger.DEBUG_LEVEL >= 3) && (loc_logger.DEBUG_LEVEL <= 5))
-#define IF_LOC_LOGD if((loc_logger.DEBUG_LEVEL >= 4) && (loc_logger.DEBUG_LEVEL <= 5))
-#define IF_LOC_LOGV if((loc_logger.DEBUG_LEVEL >= 5) && (loc_logger.DEBUG_LEVEL <= 5))
-
-#define LOC_LOGE(...) IF_LOC_LOGE { ALOGE(__VA_ARGS__); }
-#define LOC_LOGW(...) IF_LOC_LOGW { ALOGW(__VA_ARGS__); }
-#define LOC_LOGI(...) IF_LOC_LOGI { ALOGI(__VA_ARGS__); }
-#define LOC_LOGD(...) IF_LOC_LOGD { ALOGD(__VA_ARGS__); }
-#define LOC_LOGV(...) IF_LOC_LOGV { ALOGV(__VA_ARGS__); }
-
-#else /* DEBUG_DMN_LOC_API */
-
-#define LOC_LOGE(...) ALOGE(__VA_ARGS__)
-#define LOC_LOGW(...) ALOGW(__VA_ARGS__)
-#define LOC_LOGI(...) ALOGI(__VA_ARGS__)
-#define LOC_LOGD(...) ALOGD(__VA_ARGS__)
-#define LOC_LOGV(...) ALOGV(__VA_ARGS__)
-
-#endif /* DEBUG_DMN_LOC_API */
-
-/*=============================================================================
- *
- *                          LOGGING IMPROVEMENT MACROS
- *
- *============================================================================*/
-#define LOG_(LOC_LOG, ID, WHAT, SPEC, VAL)                                    \
-    do {                                                                      \
-        if (loc_logger.TIMESTAMP) {                                           \
-            char ts[32];                                                      \
-            LOC_LOG("[%s] %s %s line %d " #SPEC,                              \
-                     get_timestamp(ts, sizeof(ts)), ID, WHAT, __LINE__, VAL); \
-        } else {                                                              \
-            LOC_LOG("%s %s line %d " #SPEC,                                   \
-                     ID, WHAT, __LINE__, VAL);                                \
-        }                                                                     \
-    } while(0)
-
-#define LOC_LOG_HEAD(fmt) "%s:%d] " fmt
-#define LOC_LOGv(fmt,...) LOC_LOGV(LOC_LOG_HEAD(fmt), __FUNCTION__, __LINE__, ##__VA_ARGS__)
-#define LOC_LOGw(fmt,...) LOC_LOGW(LOC_LOG_HEAD(fmt), __FUNCTION__, __LINE__, ##__VA_ARGS__)
-#define LOC_LOGd(fmt,...) LOC_LOGD(LOC_LOG_HEAD(fmt), __FUNCTION__, __LINE__, ##__VA_ARGS__)
-#define LOC_LOGe(fmt,...) LOC_LOGE(LOC_LOG_HEAD(fmt), __FUNCTION__, __LINE__, ##__VA_ARGS__)
-
-#define LOG_I(ID, WHAT, SPEC, VAL) LOG_(LOC_LOGI, ID, WHAT, SPEC, VAL)
-#define LOG_V(ID, WHAT, SPEC, VAL) LOG_(LOC_LOGV, ID, WHAT, SPEC, VAL)
-#define LOG_E(ID, WHAT, SPEC, VAL) LOG_(LOC_LOGE, ID, WHAT, SPEC, VAL)
-
-#define ENTRY_LOG() LOG_V(ENTRY_TAG, __FUNCTION__, %s, "")
-#define EXIT_LOG(SPEC, VAL) LOG_V(EXIT_TAG, __FUNCTION__, SPEC, VAL)
-#define EXIT_LOG_WITH_ERROR(SPEC, VAL)                       \
-    if (VAL != 0) {                                          \
-        LOG_E(EXIT_ERROR_TAG, __FUNCTION__, SPEC, VAL);          \
-    } else {                                                 \
-        LOG_V(EXIT_TAG, __FUNCTION__, SPEC, VAL);                \
-    }
-
-
-// Used for logging callflow from Android Framework
-#define ENTRY_LOG_CALLFLOW() LOG_I(FROM_AFW, __FUNCTION__, %s, "")
-// Used for logging callflow to Modem
-#define EXIT_LOG_CALLFLOW(SPEC, VAL) LOG_I(TO_MODEM, __FUNCTION__, SPEC, VAL)
-// Used for logging callflow from Modem(TO_MODEM, __FUNCTION__, %s, "")
-#define MODEM_LOG_CALLFLOW(SPEC, VAL) LOG_I(FROM_MODEM, __FUNCTION__, SPEC, VAL)
-// Used for logging callflow to Android Framework
-#define CALLBACK_LOG_CALLFLOW(CB, SPEC, VAL) LOG_I(TO_AFW, CB, SPEC, VAL)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* USE_GLIB */
-
-#endif /* __PLATFORM_LIB_LOG_UTIL_H__ */
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_macros.h b/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_macros.h
deleted file mode 100644
index d0795eb..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_macros.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (c) 2014, 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 "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 __PLATFORM_LIB_MACROS_H__
-#define __PLATFORM_LIB_MACROS_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef USE_GLIB
-#include <sys/time.h>
-#include <string.h>
-#include <stdlib.h>
-#ifndef OFF_TARGET
-#include <glib.h>
-#define strlcat g_strlcat
-#define strlcpy g_strlcpy
-#else
-#define strlcat strncat
-#define strlcpy strncpy
-#endif
-
-#define TS_PRINTF(format, x...)                                \
-{                                                              \
-  struct timeval tv;                                           \
-  struct timezone tz;                                          \
-  int hh, mm, ss;                                              \
-  gettimeofday(&tv, &tz);                                      \
-  hh = tv.tv_sec/3600%24;                                      \
-  mm = (tv.tv_sec%3600)/60;                                    \
-  ss = tv.tv_sec%60;                                           \
-  fprintf(stdout,"%02d:%02d:%02d.%06ld]" format "\n", hh, mm, ss, tv.tv_usec,##x);    \
-}
-
-#define ALOGE(format, x...) TS_PRINTF("E/%s (%d): " format , LOG_TAG, getpid(), ##x)
-#define ALOGW(format, x...) TS_PRINTF("W/%s (%d): " format , LOG_TAG, getpid(), ##x)
-#define ALOGI(format, x...) TS_PRINTF("I/%s (%d): " format , LOG_TAG, getpid(), ##x)
-#define ALOGD(format, x...) TS_PRINTF("D/%s (%d): " format , LOG_TAG, getpid(), ##x)
-#define ALOGV(format, x...) TS_PRINTF("V/%s (%d): " format , LOG_TAG, getpid(), ##x)
-
-#endif /* USE_GLIB */
-
-
-// Below are the location conf file paths
-extern const char LOC_PATH_GPS_CONF[];
-extern const char LOC_PATH_IZAT_CONF[];
-extern const char LOC_PATH_FLP_CONF[];
-extern const char LOC_PATH_LOWI_CONF[];
-extern const char LOC_PATH_SAP_CONF[];
-extern const char LOC_PATH_APDR_CONF[];
-extern const char LOC_PATH_XTWIFI_CONF[];
-extern const char LOC_PATH_QUIPC_CONF[];
-
-
-#ifdef __cplusplus
-}
-#endif /*__cplusplus */
-
-#endif /* __PLATFORM_LIB_MACROS_H__ */
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_property_service.h b/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_property_service.h
deleted file mode 100644
index ed2041f..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_property_service.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (c) 2014, 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 "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 __PLATFORM_LIB_PROPERTY_SERVICE_H__
-#define __PLATFORM_LIB_PROPERTY_SERVICE_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifndef PROPERTY_VALUE_MAX
-#define PROPERTY_VALUE_MAX  92
-#endif
-int platform_lib_abstraction_property_get(const char *key, char *value, const char *default_value);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __PLATFORM_LIB_PROPERTY_SERVICE_H__ */
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_sched_policy.h b/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_sched_policy.h
deleted file mode 100644
index d10f151..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_sched_policy.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (c) 2014, 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 "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 __PLATFORM_LIB_SCHED_POLICY_H__
-#define __PLATFORM_LIB_SCHED_POLICY_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-typedef enum {
-    PLA_SP_BACKGROUND = 0,
-    PLA_SP_FOREGROUND = 1,
-} PLASchedPolicy;
-
-int platform_lib_abstraction_set_sched_policy(int tid, PLASchedPolicy policy);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __PLATFORM_LIB_SCHED_POLICY_H__ */
-
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_time.h b/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_time.h
deleted file mode 100644
index ae25ae6..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/include/platform_lib_time.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (c) 2014, 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 "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 __PLATFORM_LIB_TIME_H__
-#define __PLATFORM_LIB_TIME_H__
-
-#include <stdint.h>
-int64_t platform_lib_abstraction_elapsed_millis_since_boot();
-int64_t platform_lib_abstraction_elapsed_micros_since_boot();
-
-#endif /* __PLATFORM_LIB_TIME_H__ */
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/loc-pla.pc.in b/sdm845/utils/platform_lib_abstractions/loc_pla/loc-pla.pc.in
deleted file mode 100644
index 1aad2f4..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/loc-pla.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: loc-pla
-Description: QTI GPS Location Platform Library Abstractions
-Version: @VERSION@
-Libs: -L${libdir} -lloc_pla
-Cflags: -I${includedir}/loc-pla
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/src/Android.mk b/sdm845/utils/platform_lib_abstractions/loc_pla/src/Android.mk
deleted file mode 100644
index 7d321ef..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/src/Android.mk
+++ /dev/null
@@ -1,53 +0,0 @@
-ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),)
-ifneq ($(BUILD_TINY_ANDROID),true)
-#Compile this library only for builds with the latest modem image
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-## Libs
-LOCAL_SHARED_LIBRARIES := \
-    libutils \
-    libcutils \
-    liblog \
-    libloc_stub
-
-LOCAL_SRC_FILES += \
-        platform_lib_gettid.cpp \
-        platform_lib_log_util.cpp \
-        platform_lib_property_service.cpp \
-        platform_lib_sched_policy.cpp \
-        platform_lib_time.cpp
-
-LOCAL_CFLAGS += \
-     -fno-short-enums \
-     -D_ANDROID_ \
-     -std=c++11
-
-## Includes
-LOCAL_C_INCLUDES:= \
-    $(LOCAL_PATH)/../include \
-    $(TARGET_OUT_HEADERS)/gps.utils \
-    $(TARGET_OUT_HEADERS)/libloc_stub
-
-LOCAL_COPY_HEADERS_TO:= libloc_pla/
-LOCAL_COPY_HEADERS:= \
-        ../include/platform_lib_gettid.h \
-        ../include/platform_lib_includes.h \
-        ../include/platform_lib_log_util.h \
-        ../include/platform_lib_macros.h \
-        ../include/platform_lib_property_service.h \
-        ../include/platform_lib_sched_policy.h \
-        ../include/platform_lib_time.h
-
-LOCAL_MODULE := libloc_pla
-LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib
-LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR)/lib64
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_PRELINK_MODULE := false
-
-include $(BUILD_SHARED_LIBRARY)
-endif # not BUILD_TINY_ANDROID
-endif # BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/src/Makefile.am b/sdm845/utils/platform_lib_abstractions/loc_pla/src/Makefile.am
deleted file mode 100644
index d82aa55..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/src/Makefile.am
+++ /dev/null
@@ -1,41 +0,0 @@
-AM_CFLAGS = \
-     $(LOCSTUB_CFLAGS) \
-     -I../include \
-     -D__func__=__PRETTY_FUNCTION__ \
-     -fno-short-enums
-
-h_sources = \
-    ../include/platform_lib_android_runtime.h \
-    ../include/platform_lib_gettid.h \
-    ../include/platform_lib_includes.h \
-    ../include/platform_lib_log_util.h \
-    ../include/platform_lib_macros.h \
-    ../include/platform_lib_property_service.h \
-    ../include/platform_lib_sched_policy.h \
-    ../include/platform_lib_time.h
-
-library_includedir = $(pkgincludedir)
-library_include_HEADERS = $(h_sources)
-
-libloc_pla_la_SOURCES = \
-    platform_lib_android_runtime.cpp \
-    platform_lib_gettid.cpp \
-    platform_lib_log_util.cpp \
-    platform_lib_property_service.cpp \
-    platform_lib_sched_policy.cpp \
-    platform_lib_time.cpp
-
-if USE_GLIB
-libloc_pla_la_CFLAGS = -DUSE_GLIB $(AM_CFLAGS) @GLIB_CFLAGS@
-libloc_pla_la_LDFLAGS = -lstdc++ -Wl,-z,defs -lpthread @GLIB_LIBS@ -shared -version-info 1:0:0
-libloc_pla_la_CPPFLAGS = -DUSE_GLIB $(AM_CFLAGS) $(AM_CPPFLAGS) @GLIB_CFLAGS@
-else
-libloc_pla_la_CFLAGS = $(AM_CFLAGS)
-libloc_pla_la_LDFLAGS = -Wl,-z,defs -lpthread -shared -version-info 1:0:0
-libloc_pla_la_CPPFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS)
-endif
-
-libloc_pla_la_LIBADD = -lstdc++ -ldl -llog $(LOCSTUB_LIBS)
-
-#Create and Install libraries
-lib_LTLIBRARIES = libloc_pla.la
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_gettid.cpp b/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_gettid.cpp
deleted file mode 100644
index 1b7aa32..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_gettid.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (c) 2014, 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 "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 "platform_lib_gettid.h"
-
-#ifdef USE_GLIB
-#include <loc_stub_gettid.h>
-
-#include <errno.h>
-const char* getprogname() {
-    return program_invocation_short_name;
-}
-
-#else
-#include <unistd.h>
-#endif /* USE_GLIB */
-
-pid_t platform_lib_abstraction_gettid()
-{
-    return gettid();
-}
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_log_util.cpp b/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_log_util.cpp
deleted file mode 100644
index 3cb51a3..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_log_util.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (c) 2014, 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 "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 "platform_lib_log_util.h"
-#include "platform_lib_macros.h"
-
-char * get_timestamp(char *str, unsigned long buf_size)
-{
-  struct timeval tv;
-  struct timezone tz;
-  int hh, mm, ss;
-  gettimeofday(&tv, &tz);
-  hh = tv.tv_sec/3600%24;
-  mm = (tv.tv_sec%3600)/60;
-  ss = tv.tv_sec%60;
-  snprintf(str, buf_size, "%02d:%02d:%02d.%06ld", hh, mm, ss, tv.tv_usec);
-  return str;
-}
-
-// Below are the location conf file paths
-#ifdef __ANDROID__
-
-#define LOC_PATH_GPS_CONF_STR      "/vendor/etc/gps.conf"
-#define LOC_PATH_IZAT_CONF_STR     "/vendor/etc/izat.conf"
-#define LOC_PATH_FLP_CONF_STR      "/vendor/etc/flp.conf"
-#define LOC_PATH_LOWI_CONF_STR     "/vendor/etc/lowi.conf"
-#define LOC_PATH_SAP_CONF_STR      "/vendor/etc/sap.conf"
-#define LOC_PATH_APDR_CONF_STR     "/vendor/etc/apdr.conf"
-#define LOC_PATH_XTWIFI_CONF_STR   "/vendor/etc/xtwifi.conf"
-#define LOC_PATH_QUIPC_CONF_STR    "/vendor/etc/quipc.conf"
-
-#else
-
-#define LOC_PATH_GPS_CONF_STR      "/etc/gps.conf"
-#define LOC_PATH_IZAT_CONF_STR     "/etc/izat.conf"
-#define LOC_PATH_FLP_CONF_STR      "/etc/flp.conf"
-#define LOC_PATH_LOWI_CONF_STR     "/etc/lowi.conf"
-#define LOC_PATH_SAP_CONF_STR      "/etc/sap.conf"
-#define LOC_PATH_APDR_CONF_STR     "/etc/apdr.conf"
-#define LOC_PATH_XTWIFI_CONF_STR   "/etc/xtwifi.conf"
-#define LOC_PATH_QUIPC_CONF_STR    "/etc/quipc.conf"
-
-#endif // __ANDROID__
-
-// Reference below arrays wherever needed to avoid duplicating
-// same conf path string over and again in location code.
-const char LOC_PATH_GPS_CONF[]    = LOC_PATH_GPS_CONF_STR;
-const char LOC_PATH_IZAT_CONF[]   = LOC_PATH_IZAT_CONF_STR;
-const char LOC_PATH_FLP_CONF[]    = LOC_PATH_FLP_CONF_STR;
-const char LOC_PATH_LOWI_CONF[]   = LOC_PATH_LOWI_CONF_STR;
-const char LOC_PATH_SAP_CONF[]    = LOC_PATH_SAP_CONF_STR;
-const char LOC_PATH_APDR_CONF[]   = LOC_PATH_APDR_CONF_STR;
-const char LOC_PATH_XTWIFI_CONF[] = LOC_PATH_XTWIFI_CONF_STR;
-const char LOC_PATH_QUIPC_CONF[]  = LOC_PATH_QUIPC_CONF_STR;
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_property_service.cpp b/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_property_service.cpp
deleted file mode 100644
index 1cc63ab..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_property_service.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (c) 2014, 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 "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 "platform_lib_property_service.h"
-
-#ifdef USE_GLIB
-#include <loc_stub_property_service.h>
-#else
-#include <cutils/properties.h>
-#endif /* USE_GLIB */
-
-int platform_lib_abstraction_property_get(const char *key, char *value, const char *default_value)
-{
-    return property_get(key, value, default_value);
-}
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_sched_policy.cpp b/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_sched_policy.cpp
deleted file mode 100644
index ba6b350..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_sched_policy.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (c) 2014, 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 "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 "platform_lib_sched_policy.h"
-
-#ifdef USE_GLIB
-#include <loc_stub_sched_policy.h>
-#else
-#include <cutils/sched_policy.h>
-#endif /* USE_GLIB */
-
-int platform_lib_abstraction_set_sched_policy(int tid, PLASchedPolicy policy)
-{
-    return set_sched_policy(tid, (SchedPolicy)policy);
-}
-
diff --git a/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_time.cpp b/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_time.cpp
deleted file mode 100644
index 3dcd4d3..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_pla/src/platform_lib_time.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (c) 2014, 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 "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 "platform_lib_time.h"
-
-#ifdef USE_GLIB
-#include <loc_stub_time.h>
-#else
-#include <utils/SystemClock.h>
-#include <utils/Timers.h>
-
-#endif /* USE_GLIB */
-
-int64_t platform_lib_abstraction_elapsed_millis_since_boot()
-{
-#ifdef USE_GLIB
-
-    return elapsedMillisSinceBoot();
-
-#else
-
-    //return android::nanoseconds_to_microseconds(systemTime(SYSTEM_TIME_BOOTTIME))/1000;
-    return nanoseconds_to_microseconds(systemTime(SYSTEM_TIME_BOOTTIME))/1000;
-#endif
-}
-int64_t platform_lib_abstraction_elapsed_micros_since_boot()
-{
-#ifdef USE_GLIB
-    return elapsedMicrosSinceBoot();
-
-#else
-    //return android::nanoseconds_to_microseconds(systemTime(SYSTEM_TIME_BOOTTIME));
-    return nanoseconds_to_microseconds(systemTime(SYSTEM_TIME_BOOTTIME));
-#endif
-}
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/Android.mk b/sdm845/utils/platform_lib_abstractions/loc_stub/Android.mk
deleted file mode 100644
index b923a4c..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/Android.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-ifneq ($(BUILD_TINY_ANDROID),true)
-
-include $(call all-subdir-makefiles)
-
-endif
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/Makefile.am b/sdm845/utils/platform_lib_abstractions/loc_stub/Makefile.am
deleted file mode 100644
index d81e363..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-# Makefile.am for gps loc-stub
-
-ACLOCAL_AMFLAGS = -I m4
-
-SUBDIRS = src
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = loc-stub.pc
-EXTRA_DIST = $(pkgconfig_DATA)
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/configure.ac b/sdm845/utils/platform_lib_abstractions/loc_stub/configure.ac
deleted file mode 100644
index 8900f04..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/configure.ac
+++ /dev/null
@@ -1,67 +0,0 @@
-# configure.ac -- Autoconf script for gps loc-stub
-#
-# Process this file with autoconf to produce a configure script
-
-# Requires autoconf tool later than 2.61
-AC_PREREQ(2.61)
-# Initialize the gps loc-stub package version 1.0.0
-AC_INIT([loc-stub],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.
-AC_ARG_WITH([hardware_include],
-                  AC_HELP_STRING([--with-hardware-include=@<:@dir@:>@],
-                                 [Specify the location of the hardware headers]),
-                                 [hardware_incdir=$withval],
-                                 with_hardware_include=no)
-
-if test "x$with_hardware_include" != "xno"; then
-       CPPFLAGS="${CPPFLAGS} -I${hardware_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 \
-        src/Makefile \
-        loc-stub.pc
-        ])
-
-AC_OUTPUT
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_android_runtime.h b/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_android_runtime.h
deleted file mode 100644
index c8764ee..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_android_runtime.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (c) 2014, 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 "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 __LOC_STUB_ANDROID_RUNTIME_H__
-#define __LOC_STUB_ANDROID_RUNTIME_H__
-
-#include <pthread.h>
-
-namespace android {
-
-class AndroidRuntime
-{
-public:
-    /** create a new thread that is visible from Java */
-    static pthread_t createJavaThread(const char* name, void (*start)(void *),
-        void* arg);
-};
-
-}
-#endif /* __LOC_STUB_ANDROID_RUNTIME_H__ */
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_gettid.h b/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_gettid.h
deleted file mode 100644
index 677bc81..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_gettid.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (c) 2014, 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 "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 __LOC_STUB_GETTID_H__
-#define __LOC_STUB_GETTID_H__
-
-#include <pthread.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-pid_t gettid(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LOC_STUB_GETTID_H__ */
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_property_service.h b/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_property_service.h
deleted file mode 100644
index 3677cdf..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_property_service.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (c) 2014, 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 "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 __LOC_STUB_PROPERTY_SERVICE_H__
-#define __LOC_STUB_PROPERTY_SERVICE_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int property_get(const char *key, char *value, const char *default_value);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __LOC_STUB_PROPERTY_SERVICE_H__ */
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_sched_policy.h b/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_sched_policy.h
deleted file mode 100644
index a42b117..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_sched_policy.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright (c) 2014, 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 "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 __LOC_STUB_SCHED_POLICY_H__
-#define __LOC_STUB_SCHED_POLICY_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-    SP_BACKGROUND = 0,
-    SP_FOREGROUND = 1,
-} SchedPolicy;
-
-/*===========================================================================
-FUNCTION set_sched_policy
-
-DESCRIPTION
-   Local copy of this function which bypasses android set_sched_policy
-
-DEPENDENCIES
-   None
-
-RETURN VALUE
-   0
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-int set_sched_policy(int tid, SchedPolicy policy);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __LOC_STUB_SCHED_POLICY_H__ */
-
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_time.h b/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_time.h
deleted file mode 100644
index f00a49b..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/include/loc_stub_time.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (c) 2014, 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 "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 __LOC_STUB_TIME_H__
-#define __LOC_STUB_TIME_H__
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int64_t systemTime(int clock);
-int64_t elapsedMillisSinceBoot();
-int64_t elapsedMicrosSinceBoot();
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __LOC_STUB_TIME_H__ */
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/loc-stub.pc.in b/sdm845/utils/platform_lib_abstractions/loc_stub/loc-stub.pc.in
deleted file mode 100644
index c2ae764..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/loc-stub.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: loc-stub
-Description: QTI GPS Location Stub
-Version: @VERSION
-Libs: -L${libdir} -lloc_stub
-Cflags: -I${includedir}/loc-stub
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/src/Android.mk b/sdm845/utils/platform_lib_abstractions/loc_stub/src/Android.mk
deleted file mode 100644
index e899ca3..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/src/Android.mk
+++ /dev/null
@@ -1,52 +0,0 @@
-ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),)
-ifneq ($(BUILD_TINY_ANDROID),true)
-#Compile this library only for builds with the latest modem image
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-## Libs
-LOCAL_SHARED_LIBRARIES := \
-    libutils \
-    libcutils \
-    liblog
-
-LOCAL_SRC_FILES += \
-        loc_stub_android_runtime.cpp \
-        loc_stub_gettid.cpp \
-        loc_stub_property_service.cpp \
-        loc_stub_sched_policy.cpp \
-        loc_stub_time.cpp
-
-LOCAL_CFLAGS += \
-     -fno-short-enums \
-     -D_ANDROID_ \
-     -std=c++11
-
-
-LOCAL_LDFLAGS += -Wl,--export-dynamic
-
-## Includes
-LOCAL_C_INCLUDES:= \
-    $(LOCAL_PATH)/../include \
-
-
-LOCAL_COPY_HEADERS_TO:= libloc_stub/
-LOCAL_COPY_HEADERS:= \
-        ../include/loc_stub_android_runtime.h \
-        ../include/loc_stub_gettid.h \
-        ../include/loc_stub_property_service.h \
-        ../include/loc_stub_sched_policy.h \
-        ../include/loc_stub_time.h
-
-LOCAL_MODULE := libloc_stub
-LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib
-LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR)/lib64
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_PRELINK_MODULE := false
-
-include $(BUILD_SHARED_LIBRARY)
-endif # not BUILD_TINY_ANDROID
-endif # BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/src/Makefile.am b/sdm845/utils/platform_lib_abstractions/loc_stub/src/Makefile.am
deleted file mode 100644
index ba823a2..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/src/Makefile.am
+++ /dev/null
@@ -1,40 +0,0 @@
-AM_CFLAGS = \
-     -I../include \
-     -D__func__=__PRETTY_FUNCTION__ \
-     -fno-short-enums
-
-libloc_stub_la_extra_h = \
-     ../include/utils/Log.h
-
-libloc_stub_la_c_sources = \
-     loc_stub_android_runtime.cpp \
-     loc_stub_gettid.cpp \
-     loc_stub_property_service.cpp \
-     loc_stub_sched_policy.cpp \
-     loc_stub_time.cpp
-
-libloc_stub_la_SOURCES = $(libloc_stub_la_c_sources) $(libloc_stub_la_extra_h)
-
-library_include_HEADERS = \
-     ../include/loc_stub_android_runtime.h \
-     ../include/loc_stub_gettid.h \
-     ../include/loc_stub_property_service.h \
-     ../include/loc_stub_sched_policy.h \
-     ../include/loc_stub_time.h
-
-library_includedir = $(pkgincludedir)
-
-if USE_GLIB
-libloc_stub_la_CFLAGS = -DUSE_GLIB $(AM_CFLAGS) @GLIB_CFLAGS@
-libloc_stub_la_LDFLAGS = -lstdc++ -Wl,-z,defs -lpthread @GLIB_LIBS@ -shared -version-info 1:0:0
-libloc_stub_la_CPPFLAGS = -DUSE_GLIB $(AM_CFLAGS) $(AM_CPPFLAGS) @GLIB_CFLAGS@
-else
-libloc_stub_la_CFLAGS = $(AM_CFLAGS)
-libloc_stub_la_LDFLAGS = -Wl,-z,defs -lpthread -shared -version-info 1:0:0
-libloc_stub_la_CPPFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS)
-endif
-
-libloc_stub_la_LIBADD = -lstdc++ -ldl -llog
-
-#Create and Install libraries
-lib_LTLIBRARIES = libloc_stub.la
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_android_runtime.cpp b/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_android_runtime.cpp
deleted file mode 100644
index 1db69b2..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_android_runtime.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (c) 2014, 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 "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 "loc_stub_android_runtime.h"
-
-namespace android {
-
-pthread_t AndroidRuntime::createJavaThread(const char* name,
-    void (*start)(void *), void* arg)
-{
-    pthread_t threadId = 0;
-    pthread_create(&threadId, NULL, (void *(*)(void*))start, arg);
-    return threadId;
-}
-
-}
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_gettid.cpp b/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_gettid.cpp
deleted file mode 100644
index 55ef48a..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_gettid.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (c) 2014, 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 "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 "loc_stub_gettid.h"
-#include <sys/syscall.h>
-#include <unistd.h>
-
-// Required for off-target environment to compile properly
-pid_t gettid(void)
-{
-    return syscall(SYS_gettid);
-}
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_property_service.cpp b/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_property_service.cpp
deleted file mode 100644
index f9d9e3e..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_property_service.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (c) 2014, 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 "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 "loc_stub_property_service.h"
-#include <stdio.h>
-#include <string.h>
-
-int property_get(const char *key, char * value, const char *default_value)
-{
-    /* This will disable gps interface
-       value[0] = '1';
-     */
-    if (strcmp(key, "ro.baseband") == 0) {
-        memcpy(value, "msm", 4);
-    }
-    return 0;
-}
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_sched_policy.cpp b/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_sched_policy.cpp
deleted file mode 100644
index 781be29..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_sched_policy.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (c) 2014, 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 "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 "loc_stub_sched_policy.h"
-
-/*===========================================================================
-FUNCTION set_sched_policy
-
-DESCRIPTION
-   Local copy of this function which bypasses android set_sched_policy
-
-DEPENDENCIES
-   None
-
-RETURN VALUE
-   0
-
-SIDE EFFECTS
-   N/A
-
-===========================================================================*/
-int set_sched_policy(int tid, SchedPolicy policy)
-{
-    return 0;
-}
diff --git a/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_time.cpp b/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_time.cpp
deleted file mode 100644
index 499cf00..0000000
--- a/sdm845/utils/platform_lib_abstractions/loc_stub/src/loc_stub_time.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (c) 2014, 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 "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 "loc_stub_time.h"
-#include <stdlib.h>
-#include <sys/time.h>
-#include <time.h>
-
-int64_t systemTime(int clock)
-{
-    struct timeval t;
-    t.tv_sec = t.tv_usec = 0;
-    gettimeofday(&t, NULL);
-    return t.tv_sec*1000000LL + t.tv_usec;
-}
-
-int64_t elapsedMicrosSinceBoot()
-{
-    struct timespec ts;
-    int64_t time_ms = 0;
-    clock_gettime(CLOCK_BOOTTIME, &ts);
-    time_ms += (ts.tv_sec * 1000000000LL);     /* Seconds to nanoseconds */
-    time_ms += ts.tv_nsec;   /* Add Nanoseconds  */
-    return time_ms;
-}
-
-int64_t elapsedMillisSinceBoot()
-{
-    return (int64_t) (elapsedMicrosSinceBoot() /1000000LL);
-}