1351d6980abc8e7786068f1c8f879904524d0643eDante Russo/* Copyright (c) 2009-2013,2016, The Linux Foundation. All rights reserved.
2e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *
3e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * Redistribution and use in source and binary forms, with or without
4e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * modification, are permitted provided that the following conditions are
5e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * met:
6e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *     * Redistributions of source code must retain the above copyright
7e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       notice, this list of conditions and the following disclaimer.
8e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *     * Redistributions in binary form must reproduce the above
9e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       copyright notice, this list of conditions and the following
10e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       disclaimer in the documentation and/or other materials provided
11e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       with the distribution.
12e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *     * Neither the name of The Linux Foundation, nor the names of its
13e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       contributors may be used to endorse or promote products derived
14e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       from this software without specific prior written permission.
15e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *
16e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *
28e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti */
29e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
30e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define LOG_NDDEBUG 0
31e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define LOG_TAG "LocSvc_eng"
32e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
33e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <loc_eng.h>
34e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <MsgTask.h>
35e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include "log_util.h"
36e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include "platform_lib_includes.h"
37e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
38e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiusing namespace loc_core;
39e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
40e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletistruct LocEngRequestXtraServer : public LocMsg {
41e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LocEngAdapter* mAdapter;
42e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline LocEngRequestXtraServer(LocEngAdapter* adapter) :
43e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        LocMsg(), mAdapter(adapter)
44e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    {
45e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        locallog();
46e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
47e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual void proc() const {
48e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        mAdapter->requestXtraServer();
49e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
50e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline void locallog() const {
51e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        LOC_LOGV("LocEngRequestXtraServer");
52e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
53e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual void log() const {
54e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        locallog();
55e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
56e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti};
57e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
58e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletistruct LocEngInjectXtraData : public LocMsg {
59e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LocEngAdapter* mAdapter;
60e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    char* mData;
61e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    const int mLen;
62e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline LocEngInjectXtraData(LocEngAdapter* adapter,
63e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                char* data, int len):
64e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        LocMsg(), mAdapter(adapter),
65e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        mData(new char[len]), mLen(len)
66e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    {
67e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        memcpy((void*)mData, (void*)data, len);
68e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        locallog();
69e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
70e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline ~LocEngInjectXtraData()
71e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    {
72e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        delete[] mData;
73e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
74e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual void proc() const {
75e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        mAdapter->setXtraData(mData, mLen);
76e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
77e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline  void locallog() const {
78e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        LOC_LOGV("length: %d\n  data: %p", mLen, mData);
79e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
80e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual void log() const {
81e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        locallog();
82e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
83e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti};
84e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
85e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletistruct LocEngSetXtraVersionCheck : public LocMsg {
86e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LocEngAdapter *mAdapter;
87e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    int mCheck;
88e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline LocEngSetXtraVersionCheck(LocEngAdapter* adapter,
89e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                        int check):
90e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        mAdapter(adapter), mCheck(check) {}
91e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual void proc() const {
92e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        locallog();
93e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        mAdapter->setXtraVersionCheck(mCheck);
94e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
95e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline void locallog() const {
96e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        LOC_LOGD("%s:%d]: mCheck: %d",
97e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                 __func__, __LINE__, mCheck);
98e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
99e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual void log() const {
100e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        locallog();
101e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
102e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti};
103e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
104e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/*===========================================================================
105e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiFUNCTION    loc_eng_xtra_init
106e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
107e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDESCRIPTION
108e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   Initialize XTRA module.
109e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
110e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEPENDENCIES
111e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   N/A
112e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
113e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiRETURN VALUE
114e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   0: success
115e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
116e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiSIDE EFFECTS
117e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   N/A
118e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
119e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti===========================================================================*/
120e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_xtra_init (loc_eng_data_s_type &loc_eng_data,
121e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                       GpsXtraExtCallbacks* callbacks)
122e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
123e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    int ret_val = -1;
124e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    loc_eng_xtra_data_s_type *xtra_module_data_ptr;
125e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    ENTRY_LOG();
126e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
127351d6980abc8e7786068f1c8f879904524d0643eDante Russo    if(!loc_eng_data.adapter->mSupportsTimeInjection
128351d6980abc8e7786068f1c8f879904524d0643eDante Russo       || loc_eng_data.adapter->hasNativeXtraClient()) {
129351d6980abc8e7786068f1c8f879904524d0643eDante Russo        LOC_LOGD("XTRA is already supported. disable it here.\n");
130351d6980abc8e7786068f1c8f879904524d0643eDante Russo        EXIT_LOG(%d, 1); // return 1 denote failure
131351d6980abc8e7786068f1c8f879904524d0643eDante Russo        return 1;
132351d6980abc8e7786068f1c8f879904524d0643eDante Russo    }
133351d6980abc8e7786068f1c8f879904524d0643eDante Russo
134e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    if(callbacks == NULL) {
135e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        LOC_LOGE("loc_eng_xtra_init: failed, cb is NULL");
136e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    } else {
137e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        xtra_module_data_ptr = &loc_eng_data.xtra_module_data;
138e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        xtra_module_data_ptr->download_request_cb = callbacks->download_request_cb;
139e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        xtra_module_data_ptr->report_xtra_server_cb = callbacks->report_xtra_server_cb;
140e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
141e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        ret_val = 0;
142e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
143e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    EXIT_LOG(%d, ret_val);
144e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    return ret_val;
145e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
146e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
147e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/*===========================================================================
148e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiFUNCTION    loc_eng_xtra_inject_data
149e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
150e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDESCRIPTION
151e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   Injects XTRA file into the engine but buffers the data if engine is busy.
152e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
153e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEPENDENCIES
154e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   N/A
155e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
156e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiRETURN VALUE
157e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   0
158e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
159e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiSIDE EFFECTS
160e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   N/A
161e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
162e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti===========================================================================*/
163e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_xtra_inject_data(loc_eng_data_s_type &loc_eng_data,
164e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                             char* data, int length)
165e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
166e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    ENTRY_LOG();
167e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LocEngAdapter* adapter = loc_eng_data.adapter;
168e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    adapter->sendMsg(new LocEngInjectXtraData(adapter, data, length));
169e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    EXIT_LOG(%d, 0);
170e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    return 0;
171e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
172e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/*===========================================================================
173e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiFUNCTION    loc_eng_xtra_request_server
174e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
175e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDESCRIPTION
176e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   Request the Xtra server url from the modem
177e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
178e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEPENDENCIES
179e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   N/A
180e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
181e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiRETURN VALUE
182e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   0
183e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
184e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiSIDE EFFECTS
185e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   N/A
186e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
187e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti===========================================================================*/
188e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_xtra_request_server(loc_eng_data_s_type &loc_eng_data)
189e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
190e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    ENTRY_LOG();
191e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LocEngAdapter* adapter = loc_eng_data.adapter;
192e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    adapter->sendMsg(new LocEngRequestXtraServer(adapter));
193e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    EXIT_LOG(%d, 0);
194e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    return 0;
195e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
196e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/*===========================================================================
197e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiFUNCTION    loc_eng_xtra_version_check
198e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
199e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDESCRIPTION
200e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   Injects the enable/disable value for checking XTRA version
201e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   that is specified in gps.conf
202e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
203e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEPENDENCIES
204e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   N/A
205e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
206e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiRETURN VALUE
207e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   none
208e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
209e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiSIDE EFFECTS
210e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   N/A
211e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
212e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti===========================================================================*/
213e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid loc_eng_xtra_version_check(loc_eng_data_s_type &loc_eng_data,
214e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                int check)
215e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
216e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    ENTRY_LOG();
217e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LocEngAdapter *adapter = loc_eng_data.adapter;
218e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    adapter->sendMsg(new LocEngSetXtraVersionCheck(adapter, check));
219e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    EXIT_LOG(%d, 0);
220e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
221