18c2d3d5afc51d3f35150f748f263870367771b6fEd Tam/* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved.
28c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *
38c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * Redistribution and use in source and binary forms, with or without
48c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * modification, are permitted provided that the following conditions are
58c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * met:
68c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *     * Redistributions of source code must retain the above copyright
78c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *       notice, this list of conditions and the following disclaimer.
88c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *     * Redistributions in binary form must reproduce the above
98c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *       copyright notice, this list of conditions and the following
108c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *       disclaimer in the documentation and/or other materials provided
118c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *       with the distribution.
128c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *     * Neither the name of The Linux Foundation, nor the names of its
138c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *       contributors may be used to endorse or promote products derived
148c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *       from this software without specific prior written permission.
158c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *
168c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
178c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
188c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
198c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
208c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
218c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
228c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
238c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
248c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
258c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
268c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
278c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *
288c2d3d5afc51d3f35150f748f263870367771b6fEd Tam */
298c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
308c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#define LOG_NDDEBUG 0
318c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#define LOG_TAG "LocSvc_core_log"
328c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
338c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <loc_log.h>
348c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <log_util.h>
358c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <loc_core_log.h>
368c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
378c2d3d5afc51d3f35150f748f263870367771b6fEd Tamvoid LocPosMode::logv() const
388c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
398c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LOC_LOGV ("Position mode: %s\n  Position recurrence: %s\n  "
408c2d3d5afc51d3f35150f748f263870367771b6fEd Tam              "min interval: %d\n  preferred accuracy: %d\n  "
418c2d3d5afc51d3f35150f748f263870367771b6fEd Tam              "preferred time: %d\n  credentials: %s  provider: %s",
428c2d3d5afc51d3f35150f748f263870367771b6fEd Tam              loc_get_position_mode_name(mode),
438c2d3d5afc51d3f35150f748f263870367771b6fEd Tam              loc_get_position_recurrence_name(recurrence),
448c2d3d5afc51d3f35150f748f263870367771b6fEd Tam              min_interval,
458c2d3d5afc51d3f35150f748f263870367771b6fEd Tam              preferred_accuracy,
468c2d3d5afc51d3f35150f748f263870367771b6fEd Tam              preferred_time,
478c2d3d5afc51d3f35150f748f263870367771b6fEd Tam              credentials,
488c2d3d5afc51d3f35150f748f263870367771b6fEd Tam              provider);
498c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
508c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
518c2d3d5afc51d3f35150f748f263870367771b6fEd Tam/* GPS status names */
528c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic loc_name_val_s_type gps_status_name[] =
538c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
548c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_STATUS_NONE ),
558c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_STATUS_SESSION_BEGIN ),
568c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_STATUS_SESSION_END ),
578c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_STATUS_ENGINE_ON ),
588c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_STATUS_ENGINE_OFF ),
598c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
608c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic int gps_status_num = sizeof(gps_status_name) / sizeof(loc_name_val_s_type);
618c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
628c2d3d5afc51d3f35150f748f263870367771b6fEd Tam/* Find Android GPS status name */
638c2d3d5afc51d3f35150f748f263870367771b6fEd Tamconst char* loc_get_gps_status_name(GpsStatusValue gps_status)
648c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
658c2d3d5afc51d3f35150f748f263870367771b6fEd Tam   return loc_get_name_from_val(gps_status_name, gps_status_num,
668c2d3d5afc51d3f35150f748f263870367771b6fEd Tam         (long) gps_status);
678c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
688c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
698c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
708c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
718c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic loc_name_val_s_type loc_eng_position_modes[] =
728c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
738c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_POSITION_MODE_STANDALONE ),
748c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_POSITION_MODE_MS_BASED ),
758c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_POSITION_MODE_MS_ASSISTED ),
768c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_POSITION_MODE_RESERVED_1 ),
778c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_POSITION_MODE_RESERVED_2 ),
788c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_POSITION_MODE_RESERVED_3 ),
798c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_POSITION_MODE_RESERVED_4 ),
808c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_POSITION_MODE_RESERVED_5 )
818c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
828c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic int loc_eng_position_mode_num = sizeof(loc_eng_position_modes) / sizeof(loc_name_val_s_type);
838c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
848c2d3d5afc51d3f35150f748f263870367771b6fEd Tamconst char* loc_get_position_mode_name(GpsPositionMode mode)
858c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
868c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    return loc_get_name_from_val(loc_eng_position_modes, loc_eng_position_mode_num, (long) mode);
878c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
888c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
898c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
908c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
918c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic loc_name_val_s_type loc_eng_position_recurrences[] =
928c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
938c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_POSITION_RECURRENCE_PERIODIC ),
948c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_POSITION_RECURRENCE_SINGLE )
958c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
968c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic int loc_eng_position_recurrence_num = sizeof(loc_eng_position_recurrences) / sizeof(loc_name_val_s_type);
978c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
988c2d3d5afc51d3f35150f748f263870367771b6fEd Tamconst char* loc_get_position_recurrence_name(GpsPositionRecurrence recur)
998c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
1008c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    return loc_get_name_from_val(loc_eng_position_recurrences, loc_eng_position_recurrence_num, (long) recur);
1018c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
1028c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1038c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1048c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1058c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic loc_name_val_s_type loc_eng_aiding_data_bits[] =
1068c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
1078c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_EPHEMERIS ),
1088c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_ALMANAC ),
1098c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_POSITION ),
1108c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_TIME ),
1118c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_IONO ),
1128c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_UTC ),
1138c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_HEALTH ),
1148c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_SVDIR ),
1158c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_SVSTEER ),
1168c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_SADATA ),
1178c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_RTI ),
1188c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_CELLDB_INFO ),
1198c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#ifndef PDK_FEATURE_SET
1208c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_ALMANAC_CORR ),
1218c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_FREQ_BIAS_EST ),
1228c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GLO_DELETE_EPHEMERIS ),
1238c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GLO_DELETE_ALMANAC ),
1248c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GLO_DELETE_SVDIR ),
1258c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GLO_DELETE_SVSTEER ),
1268c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GLO_DELETE_ALMANAC_CORR ),
1278c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_TIME_GPS ),
1288c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GLO_DELETE_TIME ),
1298c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( BDS_DELETE_SVDIR ),
1308c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( BDS_DELETE_SVSTEER ),
1318c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( BDS_DELETE_TIME ),
1328c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( BDS_DELETE_ALMANAC_CORR ),
1338c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( BDS_DELETE_EPHEMERIS ),
1348c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( BDS_DELETE_ALMANAC ),
1358c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#endif
1368c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_DELETE_ALL)
1378c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1388c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic int loc_eng_aiding_data_bit_num = sizeof(loc_eng_aiding_data_bits) / sizeof(loc_name_val_s_type);
1398c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1408c2d3d5afc51d3f35150f748f263870367771b6fEd Tamconst char* loc_get_aiding_data_mask_names(GpsAidingData data)
1418c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
1428c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    return NULL;
1438c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
1448c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1458c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1468c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic loc_name_val_s_type loc_eng_agps_types[] =
1478c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
1488c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( AGPS_TYPE_INVALID ),
1498c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( AGPS_TYPE_ANY ),
1508c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( AGPS_TYPE_SUPL ),
1518c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( AGPS_TYPE_C2K ),
1528c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( AGPS_TYPE_WWAN_ANY )
1538c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1548c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic int loc_eng_agps_type_num = sizeof(loc_eng_agps_types) / sizeof(loc_name_val_s_type);
1558c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1568c2d3d5afc51d3f35150f748f263870367771b6fEd Tamconst char* loc_get_agps_type_name(AGpsType type)
1578c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
1588c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    return loc_get_name_from_val(loc_eng_agps_types, loc_eng_agps_type_num, (long) type);
1598c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
1608c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1618c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1628c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic loc_name_val_s_type loc_eng_ni_types[] =
1638c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
1648c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_NI_TYPE_VOICE ),
1658c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_NI_TYPE_UMTS_SUPL ),
1668c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_NI_TYPE_UMTS_CTRL_PLANE ),
1678c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_NI_TYPE_EMERGENCY_SUPL )
1688c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1698c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic int loc_eng_ni_type_num = sizeof(loc_eng_ni_types) / sizeof(loc_name_val_s_type);
1708c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1718c2d3d5afc51d3f35150f748f263870367771b6fEd Tamconst char* loc_get_ni_type_name(GpsNiType type)
1728c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
1738c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    return loc_get_name_from_val(loc_eng_ni_types, loc_eng_ni_type_num, (long) type);
1748c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
1758c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1768c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1778c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic loc_name_val_s_type loc_eng_ni_responses[] =
1788c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
1798c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_NI_RESPONSE_ACCEPT ),
1808c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_NI_RESPONSE_DENY ),
1818c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_NI_RESPONSE_DENY )
1828c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1838c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic int loc_eng_ni_reponse_num = sizeof(loc_eng_ni_responses) / sizeof(loc_name_val_s_type);
1848c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1858c2d3d5afc51d3f35150f748f263870367771b6fEd Tamconst char* loc_get_ni_response_name(GpsUserResponseType response)
1868c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
1878c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    return loc_get_name_from_val(loc_eng_ni_responses, loc_eng_ni_reponse_num, (long) response);
1888c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
1898c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1908c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1918c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic loc_name_val_s_type loc_eng_ni_encodings[] =
1928c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
1938c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_ENC_NONE ),
1948c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_ENC_SUPL_GSM_DEFAULT ),
1958c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_ENC_SUPL_UTF8 ),
1968c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_ENC_SUPL_UCS2 ),
1978c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_ENC_UNKNOWN )
1988c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1998c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic int loc_eng_ni_encoding_num = sizeof(loc_eng_ni_encodings) / sizeof(loc_name_val_s_type);
2008c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2018c2d3d5afc51d3f35150f748f263870367771b6fEd Tamconst char* loc_get_ni_encoding_name(GpsNiEncodingType encoding)
2028c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
2038c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    return loc_get_name_from_val(loc_eng_ni_encodings, loc_eng_ni_encoding_num, (long) encoding);
2048c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
2058c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2068c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic loc_name_val_s_type loc_eng_agps_bears[] =
2078c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
2088c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( AGPS_APN_BEARER_INVALID ),
2098c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( AGPS_APN_BEARER_IPV4 ),
2108c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( AGPS_APN_BEARER_IPV6 ),
2118c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( AGPS_APN_BEARER_IPV4V6 )
2128c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2138c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic int loc_eng_agps_bears_num = sizeof(loc_eng_agps_bears) / sizeof(loc_name_val_s_type);
2148c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2158c2d3d5afc51d3f35150f748f263870367771b6fEd Tamconst char* loc_get_agps_bear_name(AGpsBearerType bearer)
2168c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
2178c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    return loc_get_name_from_val(loc_eng_agps_bears, loc_eng_agps_bears_num, (long) bearer);
2188c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
2198c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2208c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic loc_name_val_s_type loc_eng_server_types[] =
2218c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
2228c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_AGPS_CDMA_PDE_SERVER ),
2238c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_AGPS_CUSTOM_PDE_SERVER ),
2248c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_AGPS_MPC_SERVER ),
2258c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_AGPS_SUPL_SERVER )
2268c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2278c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic int loc_eng_server_types_num = sizeof(loc_eng_server_types) / sizeof(loc_name_val_s_type);
2288c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2298c2d3d5afc51d3f35150f748f263870367771b6fEd Tamconst char* loc_get_server_type_name(LocServerType type)
2308c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
2318c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    return loc_get_name_from_val(loc_eng_server_types, loc_eng_server_types_num, (long) type);
2328c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
2338c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2348c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic loc_name_val_s_type loc_eng_position_sess_status_types[] =
2358c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
2368c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_SESS_SUCCESS ),
2378c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_SESS_INTERMEDIATE ),
2388c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( LOC_SESS_FAILURE )
2398c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2408c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic int loc_eng_position_sess_status_num = sizeof(loc_eng_position_sess_status_types) / sizeof(loc_name_val_s_type);
2418c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2428c2d3d5afc51d3f35150f748f263870367771b6fEd Tamconst char* loc_get_position_sess_status_name(enum loc_sess_status status)
2438c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
2448c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    return loc_get_name_from_val(loc_eng_position_sess_status_types, loc_eng_position_sess_status_num, (long) status);
2458c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
2468c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2478c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic loc_name_val_s_type loc_eng_agps_status_names[] =
2488c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
2498c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_REQUEST_AGPS_DATA_CONN ),
2508c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_RELEASE_AGPS_DATA_CONN ),
2518c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_AGPS_DATA_CONNECTED ),
2528c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_AGPS_DATA_CONN_DONE ),
2538c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    NAME_VAL( GPS_AGPS_DATA_CONN_FAILED )
2548c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2558c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstatic int loc_eng_agps_status_num = sizeof(loc_eng_agps_status_names) / sizeof(loc_name_val_s_type);
2568c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2578c2d3d5afc51d3f35150f748f263870367771b6fEd Tamconst char* loc_get_agps_status_name(AGpsStatusValue status)
2588c2d3d5afc51d3f35150f748f263870367771b6fEd Tam{
2598c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    return loc_get_name_from_val(loc_eng_agps_status_names, loc_eng_agps_status_num, (long) status);
2608c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
261