Home | History | Annotate | Download | only in gen-3200
      1 /* LOC_API TOOL VERSION: 3.28 */
      2 /*=============================================================================
      3                       L O C _ A P I _ C O M M O N . X D R
      4 
      5 GENERAL DESCRIPTION
      6   This is an AUTO GENERATED file that provides an xdr compatible definition of
      7   an api that represents the grouping of the different callback functions the
      8   loc_api API supports.
      9 
     10   ---------------------------------------------------------------------------
     11 Copyright (c) 2009, QUALCOMM USA, INC.
     12 
     13 All rights reserved.
     14 
     15 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
     16 
     17          Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
     18 
     19          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.
     20 
     21          Neither the name of the QUALCOMM USA, INC.  nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
     22 
     23 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.
     24   ---------------------------------------------------------------------------
     25 =============================================================================*/
     26 
     27 /*=============================================================================
     28 
     29                               Edit History
     30 
     31                              AUTO GENERATED
     32 
     33 Generated by following versions of Htorpc modules:
     34 Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/htorpc.pl#9
     35 Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/Start.pm#4
     36 Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/Htoxdr.pm#1
     37 Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/XDR.pm#7
     38 Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/Output.pm#26
     39 Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/Parser.pm#3
     40 Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/Metacomments.pm#2
     41 Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/SymbolTable.pm#4
     42 
     43 =============================================================================*/
     44 /*=============================================================================
     45 $Header$
     46 =============================================================================*/
     47 
     48 
     49 
     50 
     51 const RPC_LOC_EVENT_NI_NOTIFY_VERIFY_REQUEST = 0x00000010;
     52 
     53 const RPC_LOC_EVENT_IOCTL_REPORT = 0x00000080;
     54 
     55 const RPC_LOC_EVENT_LOCATION_SERVER_REQUEST = 0x00000040;
     56 
     57 const RPC_LOC_EVENT_RESERVED = 0x8000000000000000;
     58 
     59 const RPC_LOC_EVENT_PARSED_POSITION_REPORT = 0x00000001;
     60 
     61 const RPC_LOC_EVENT_ASSISTANCE_DATA_REQUEST = 0x00000020;
     62 
     63 const RPC_LOC_EVENT_NMEA_POSITION_REPORT = 0x00000008;
     64 
     65 const RPC_LOC_EVENT_SATELLITE_REPORT = 0x00000002;
     66 
     67 const RPC_LOC_EVENT_STATUS_REPORT = 0x00000100;
     68 
     69 const RPC_LOC_OPEN_VERSION = 0x00010001;
     70 const RPC_LOC_CLOSE_VERSION = 0x00010001;
     71 const RPC_LOC_START_FIX_VERSION = 0x00010001;
     72 const RPC_LOC_STOP_FIX_VERSION = 0x00010001;
     73 const RPC_LOC_IOCTL_VERSION = 0x00010001;
     74 const RPC_LOC_EVENT_CB_F_TYPE_VERSION = 0x00010001;
     75 const RPC_LOC_APIAPI_VERSION_IS_HASHKEY = 0;
     76 const RPC_LOC_API_API_MAJOR_NUM = 0x0001;
     77 typedef bool rpc_boolean;
     78 typedef unsigned long rpc_uint32;
     79 
     80 typedef unsigned short rpc_uint16;
     81 
     82 typedef unsigned char rpc_uint8;
     83 
     84 typedef long rpc_int32;
     85 
     86 typedef unsigned char rpc_byte;
     87 
     88 typedef unsigned hyper rpc_uint64;
     89 
     90 typedef rpc_int32 rpc_loc_client_handle_type;
     91 
     92 typedef rpc_uint64 rpc_loc_event_mask_type;
     93 
     94 typedef rpc_uint64 rpc_loc_position_valid_mask_type;
     95 
     96 typedef rpc_uint32 rpc_loc_pos_technology_mask_type;
     97 
     98 enum rpc_loc_session_status_e_type {
     99   RPC_LOC_SESS_STATUS_SUCCESS = 0,
    100   RPC_LOC_SESS_STATUS_IN_PROGESS = 1,
    101   RPC_LOC_SESS_STATUS_GENERAL_FAILURE = 2,
    102   RPC_LOC_SESS_STATUS_TIMEOUT = 3,
    103   RPC_LOC_SESS_STATUS_USER_END = 4,
    104   RPC_LOC_SESS_STATUS_BAD_PARAMETER = 5,
    105   RPC_LOC_SESS_STATUS_PHONE_OFFLINE = 6,
    106   RPC_LOC_SESS_STATUS_ENGINE_LOCKED = 7,
    107   RPC_LOC_SESS_STATUS_MAX = 268435456
    108 };
    109 
    110 struct rpc_loc_calendar_time_s_type {
    111   rpc_uint16 year;
    112   unsigned char month;
    113   unsigned char day_of_week;
    114   unsigned char day;
    115   unsigned char hour;
    116   unsigned char minute;
    117   unsigned char second;
    118   rpc_uint16 millisecond;
    119 };
    120 
    121 struct rpc_loc_parsed_position_s_type {
    122   rpc_loc_position_valid_mask_type valid_mask;
    123   rpc_loc_session_status_e_type session_status;
    124   rpc_loc_calendar_time_s_type timestamp_calendar;
    125   rpc_uint64 timestamp_utc;
    126   rpc_uint8 leap_seconds;
    127   float time_unc;
    128   double latitude;
    129   double longitude;
    130   float altitude_wrt_ellipsoid;
    131   float altitude_wrt_mean_sea_level;
    132   float speed_horizontal;
    133   float speed_vertical;
    134   float heading;
    135   float hor_unc_circular;
    136   float hor_unc_ellipse_semi_major;
    137   float hor_unc_ellipse_semi_minor;
    138   float hor_unc_ellipse_orient_azimuth;
    139   float vert_unc;
    140   float speed_unc;
    141   float heading_unc;
    142   unsigned char confidence_horizontal;
    143   unsigned char confidence_vertical;
    144   float magnetic_deviation;
    145   rpc_loc_pos_technology_mask_type technology_mask;
    146 };
    147 
    148 enum rpc_loc_sv_system_e_type {
    149   RPC_LOC_SV_SYSTEM_GPS = 1,
    150   RPC_LOC_SV_SYSTEM_GALILEO = 2,
    151   RPC_LOC_SV_SYSTEM_SBAS = 3,
    152   RPC_LOC_SV_SYSTEM_COMPASS = 4,
    153   RPC_LOC_SV_SYSTEM_GLONASS = 5,
    154   RPC_LOC_SV_SYSTEM_MAX = 268435456
    155 };
    156 
    157 enum rpc_loc_sv_status_e_type {
    158   RPC_LOC_SV_STATUS_IDLE = 1,
    159   RPC_LOC_SV_STATUS_SEARCH = 2,
    160   RPC_LOC_SV_STATUS_TRACK = 3,
    161   RPC_LOC_SV_STATUS_MAX = 268435456
    162 };
    163 
    164 typedef rpc_uint32 rpc_loc_sv_info_valid_mask_type;
    165 
    166 struct rpc_loc_sv_info_s_type {
    167   rpc_loc_sv_info_valid_mask_type valid_mask;
    168   rpc_loc_sv_system_e_type system;
    169   rpc_uint8 prn;
    170   rpc_uint8 health_status;
    171   rpc_loc_sv_status_e_type process_status;
    172   rpc_boolean has_eph;
    173   rpc_boolean has_alm;
    174   float elevation;
    175   float azimuth;
    176   float snr;
    177 };
    178 
    179 typedef rpc_uint32 rpc_loc_gnss_info_valid_mask_type;
    180 
    181 struct rpc_loc_gnss_info_s_type {
    182   rpc_loc_gnss_info_valid_mask_type valid_mask;
    183   float position_dop;
    184   float horizontal_dop;
    185   float vertical_dop;
    186   rpc_boolean altitude_assumed;
    187   rpc_uint16 sv_count;
    188   rpc_loc_sv_info_s_type sv_list<RPC_LOC_API_MAX_SV_COUNT>;
    189 };
    190 
    191 struct rpc_loc_nmea_report_s_type {
    192   rpc_uint16 length;
    193   opaque nmea_sentences<RPC_LOC_API_MAX_NMEA_STRING_LENGTH>;
    194 };
    195 
    196 enum rpc_loc_status_event_e_type {
    197   RPC_LOC_STATUS_EVENT_ENGINE_STATE = 1,
    198   RPC_LOC_STATUS_EVENT_MAX = 268435456
    199 };
    200 
    201 enum rpc_loc_engine_state_e_type {
    202   RPC_LOC_ENGINE_STATE_ON = 1,
    203   RPC_LOC_ENGINE_STATE_OFF = 2,
    204   RPC_LOC_ENGINE_STATE_MAX = 268435456
    205 };
    206 
    207 union rpc_loc_status_event_payload_u_type switch (rpc_loc_status_event_e_type disc) {
    208   case RPC_LOC_STATUS_EVENT_ENGINE_STATE:
    209     rpc_loc_engine_state_e_type engine_state;
    210   default:
    211     void;
    212 };
    213 
    214 struct rpc_loc_status_event_s_type {
    215   rpc_loc_status_event_e_type event;
    216   rpc_loc_status_event_payload_u_type payload;
    217 };
    218 
    219 enum rpc_loc_server_addr_e_type {
    220   RPC_LOC_SERVER_ADDR_IPV4 = 1,
    221   RPC_LOC_SERVER_ADDR_URL = 2,
    222   RPC_LOC_SERVER_ADDR_MAX = 268435456
    223 };
    224 
    225 struct rpc_loc_server_addr_ipv4_type {
    226   rpc_uint32 addr;
    227   rpc_uint16 port;
    228 };
    229 
    230 struct rpc_loc_server_addr_url_type {
    231   rpc_uint16 length;
    232   opaque addr<RPC_LOC_API_MAX_SERVER_ADDR_LENGTH>;
    233 };
    234 
    235 union rpc_loc_server_addr_u_type switch (rpc_loc_server_addr_e_type disc) {
    236   case RPC_LOC_SERVER_ADDR_IPV4:
    237     rpc_loc_server_addr_ipv4_type ipv4;
    238   case RPC_LOC_SERVER_ADDR_URL:
    239     rpc_loc_server_addr_url_type url;
    240   default:
    241     void;
    242 };
    243 
    244 struct rpc_loc_server_info_s_type {
    245   rpc_loc_server_addr_e_type addr_type;
    246   rpc_loc_server_addr_u_type addr_info;
    247 };
    248 
    249 enum rpc_loc_ni_notify_verify_e_type {
    250   RPC_LOC_NI_USER_NO_NOTIFY_NO_VERIFY = 1,
    251   RPC_LOC_NI_USER_NOTIFY_ONLY = 2,
    252   RPC_LOC_NI_USER_NOTIFY_VERIFY_ALLOW_NO_RESP = 3,
    253   RPC_LOC_NI_USER_NOTIFY_VERIFY_NOT_ALLOW_NO_RESP = 4,
    254   RPC_LOC_NI_USER_PRIVACY_OVERRIDE = 5,
    255   RPC_LOC_NI_USER_NOTIFY_VERITY_TYPE_MAX = 268435456
    256 };
    257 
    258 enum rpc_loc_ni_event_e_type {
    259   RPC_LOC_NI_EVENT_VX_NOTIFY_VERIFY_REQ = 1,
    260   RPC_LOC_NI_EVENT_SUPL_NOTIFY_VERIFY_REQ = 2,
    261   RPC_LOC_NI_EVENT_UMTS_CP_NOTIFY_VERIFY_REQ = 3,
    262   RPC_LOC_NI_EVENT_MAX = 268435456
    263 };
    264 
    265 enum rpc_loc_ni_datacoding_scheme_e_type {
    266   RPC_LOC_NI_PRESUPL_ISO646IRV = 0,
    267   RPC_LOC_NI_PRESUPL_ISO8859 = 1,
    268   RPC_LOC_NI_PRESUPL_UTF8 = 2,
    269   RPC_LOC_NI_PRESUPL_UTF16 = 3,
    270   RPC_LOC_NI_PRESUPL_UCS2 = 4,
    271   RPC_LOC_NI_PRESUPL_GSM_DEFAULT = 5,
    272   RPC_LOC_NI_PRESUPL_SHIFT_JIS = 6,
    273   RPC_LOC_NI_PRESUPL_JIS = 7,
    274   RPC_LOC_NI_PRESUPL_EUC = 8,
    275   RPC_LOC_NI_PRESUPL_GB2312 = 9,
    276   RPC_LOC_NI_PRESUPL_CNS11643 = 10,
    277   RPC_LOC_NI_PRESUPL_KSC1001 = 11,
    278   RPC_LOC_NI_PRESUPL_ENCODING_UNKNOWN = 2147483647,
    279   RPC_LOC_NI_SS_GERMAN = 12,
    280   RPC_LOC_NI_SS_ENGLISH = 13,
    281   RPC_LOC_NI_SS_ITALIAN = 14,
    282   RPC_LOC_NI_SS_FRENCH = 15,
    283   RPC_LOC_NI_SS_SPANISH = 16,
    284   RPC_LOC_NI_SS_DUTCH = 17,
    285   RPC_LOC_NI_SS_SWEDISH = 18,
    286   RPC_LOC_NI_SS_DANISH = 19,
    287   RPC_LOC_NI_SS_PORTUGUESE = 20,
    288   RPC_LOC_NI_SS_FINNISH = 21,
    289   RPC_LOC_NI_SS_NORWEGIAN = 22,
    290   RPC_LOC_NI_SS_GREEK = 23,
    291   RPC_LOC_NI_SS_TURKISH = 24,
    292   RPC_LOC_NI_SS_HUNGARIAN = 25,
    293   RPC_LOC_NI_SS_POLISH = 26,
    294   RPC_LOC_NI_SS_LANGUAGE_UNSPEC = 27,
    295   RPC_LOC_NI_SUPL_UTF8 = 28,
    296   RPC_LOC_NI_SUPL_UCS2 = 29,
    297   RPC_LOC_NI_SUPL_GSM_DEFAULT = 30,
    298   RPC_LOC_NI_SUPL_ENCODING_UNKNOWN = 2147483647
    299 };
    300 
    301 enum rpc_loc_ni_vx_requester_id_encoding_scheme_e_type {
    302   RPC_LOC_NI_VX_OCTET = 0,
    303   RPC_LOC_NI_VX_EXN_PROTOCOL_MSG = 1,
    304   RPC_LOC_NI_VX_ASCII = 2,
    305   RPC_LOC_NI_VX_IA5 = 3,
    306   RPC_LOC_NI_VX_UNICODE = 4,
    307   RPC_LOC_NI_VX_SHIFT_JIS = 5,
    308   RPC_LOC_NI_VX_KOREAN = 6,
    309   RPC_LOC_NI_VX_LATIN_HEBREW = 7,
    310   RPC_LOC_NI_VX_LATIN = 8,
    311   RPC_LOC_NI_VX_GSM = 9,
    312   RPC_LOC_NI_VX_ENCODING_TYPE_MAX = 268435456
    313 };
    314 
    315 enum rpc_loc_ni_vx_pos_mode_e_type {
    316   RPC_LOC_VX_MS_ASSISTED_ONLY = 1,
    317   RPC_LOC_VX_MS_BASED_ONLY = 2,
    318   RPC_LOC_VX_MS_ASSISTED_PREF_MSBASED_ALLWD = 3,
    319   RPC_LOC_VX_MS_BASED_PREF_ASSISTED_ALLWD = 4,
    320   RPC_LOC_VX_POS_MODE_MAX = 268435456
    321 };
    322 
    323 struct rpc_loc_ni_vx_requester_id_s_type {
    324   unsigned char requester_id_length;
    325   opaque requester_id[200];
    326 };
    327 
    328 struct rpc_loc_ni_vx_notify_verify_req_s_type {
    329   rpc_loc_ni_notify_verify_e_type notification_priv_type;
    330   unsigned char pos_qos_incl;
    331   unsigned char pos_qos;
    332   rpc_uint32 num_fixes;
    333   rpc_uint32 tbf;
    334   rpc_loc_ni_vx_pos_mode_e_type pos_mode;
    335   rpc_loc_ni_vx_requester_id_encoding_scheme_e_type encoding_scheme;
    336   rpc_loc_ni_vx_requester_id_s_type requester_id;
    337   rpc_uint16 user_resp_timer_val;
    338 };
    339 
    340 enum rpc_loc_ni_supl_pos_method_e_type {
    341   RPC_LOC_NI_POSMETHOD_AGPS_SETASSISTED = 1,
    342   RPC_LOC_NI_POSMETHOD_AGPS_SETBASED = 2,
    343   RPC_LOC_NI_POSMETHOD_AGPS_SETASSISTED_PREF = 3,
    344   RPC_LOC_NI_POSMETHOD_AGPS_SETBASED_PREF = 4,
    345   RPC_LOC_NI_POSMETHOD_AUTONOMOUS_GPS = 5,
    346   RPC_LOC_NI_POSMETHOD_AFLT = 6,
    347   RPC_LOC_NI_POSMETHOD_ECID = 7,
    348   RPC_LOC_NI_POSMETHOD_EOTD = 8,
    349   RPC_LOC_NI_POSMETHOD_OTDOA = 9,
    350   RPC_LOC_NI_POSMETHOD_NO_POSITION = 10,
    351   RPC_LOC_NI_POSMETHOD_MAX = 268435456
    352 };
    353 
    354 struct rpc_loc_ni_supl_slp_session_id_s_type {
    355   unsigned char presence;
    356   opaque session_id[4];
    357   rpc_loc_server_info_s_type slp_address;
    358 };
    359 
    360 struct rpc_loc_ni_requestor_id_s_type {
    361   unsigned char data_coding_scheme;
    362   opaque requestor_id_string<RPC_LOC_NI_MAX_REQUESTOR_ID_LENGTH>;
    363   unsigned char string_len;
    364 };
    365 
    366 struct rpc_loc_ni_supl_client_name_s_type {
    367   unsigned char data_coding_scheme;
    368   opaque client_name_string<RPC_LOC_NI_MAX_CLIENT_NAME_LENGTH>;
    369   unsigned char string_len;
    370 };
    371 
    372 struct rpc_loc_ni_supl_qop_s_type {
    373   unsigned char bit_mask;
    374   unsigned char horacc;
    375   unsigned char veracc;
    376   unsigned char maxLocAge;
    377   unsigned char delay;
    378 };
    379 
    380 struct rpc_loc_ni_supl_notify_verify_req_s_type {
    381   rpc_loc_ni_notify_verify_e_type notification_priv_type;
    382   rpc_uint16 flags;
    383   rpc_loc_ni_supl_slp_session_id_s_type supl_slp_session_id;
    384   opaque supl_hash[8];
    385   rpc_loc_ni_datacoding_scheme_e_type datacoding_scheme;
    386   rpc_loc_ni_supl_pos_method_e_type pos_method;
    387   rpc_loc_ni_requestor_id_s_type requestor_id;
    388   rpc_loc_ni_supl_client_name_s_type client_name;
    389   rpc_loc_ni_supl_qop_s_type supl_qop;
    390   rpc_uint16 user_response_timer;
    391 };
    392 
    393 struct rpc_loc_ni_ext_client_address_s_type {
    394   unsigned char ext_client_address_len;
    395   opaque ext_client_address<RPC_LOC_NI_MAX_EXT_CLIENT_ADDRESS>;
    396 };
    397 
    398 enum rpc_loc_ni_location_type_e_type {
    399   RPC_LOC_NI_LOCATIONTYPE_CURRENT_LOCATION = 1,
    400   RPC_LOC_NI_LOCATIONTYPE_CURRENT_OR_LAST_KNOWN_LOCATION = 2,
    401   RPC_LOC_NI_LOCATIONTYPE_INITIAL_LOCATION = 3,
    402   RPC_LOC_NI_LOCATIONTYPE_MAX = 268435456
    403 };
    404 
    405 struct rpc_loc_ni_deferred_location_s_type {
    406   unsigned char unused_bits;
    407   unsigned char ms_available;
    408 };
    409 
    410 struct rpc_loc_ni_codeword_string_s_type {
    411   unsigned char data_coding_scheme;
    412   opaque lcs_codeword_string<RPC_LOC_NI_CODEWORD_LENGTH>;
    413   unsigned char string_len;
    414 };
    415 
    416 struct rpc_loc_ni_service_type_id_s_type {
    417   unsigned char lcs_service_type_id;
    418 };
    419 
    420 struct rpc_loc_ni_umts_cp_notify_verify_req_s_type {
    421   rpc_loc_ni_notify_verify_e_type notification_priv_type;
    422   unsigned char invoke_id;
    423   rpc_uint16 flags;
    424   unsigned char notification_length;
    425   opaque notification_text<RPC_LOC_NI_MAX_CLIENT_NAME_LENGTH>;
    426   rpc_loc_ni_datacoding_scheme_e_type datacoding_scheme;
    427   rpc_loc_ni_ext_client_address_s_type ext_client_address_data;
    428   rpc_loc_ni_location_type_e_type location_type;
    429   rpc_loc_ni_deferred_location_s_type deferred_location;
    430   rpc_loc_ni_requestor_id_s_type requestor_id;
    431   rpc_loc_ni_codeword_string_s_type codeword_string;
    432   rpc_loc_ni_service_type_id_s_type service_type_id;
    433   rpc_uint16 user_response_timer;
    434 };
    435 
    436 union rpc_loc_ni_event_payload_u_type switch (rpc_loc_ni_event_e_type disc) {
    437   case RPC_LOC_NI_EVENT_VX_NOTIFY_VERIFY_REQ:
    438     rpc_loc_ni_vx_notify_verify_req_s_type vx_req;
    439   case RPC_LOC_NI_EVENT_SUPL_NOTIFY_VERIFY_REQ:
    440     rpc_loc_ni_supl_notify_verify_req_s_type supl_req;
    441   case RPC_LOC_NI_EVENT_UMTS_CP_NOTIFY_VERIFY_REQ:
    442     rpc_loc_ni_umts_cp_notify_verify_req_s_type umts_cp_req;
    443   default:
    444     void;
    445 };
    446 
    447 struct rpc_loc_ni_event_s_type {
    448   rpc_loc_ni_event_e_type event;
    449   rpc_loc_ni_event_payload_u_type payload;
    450 };
    451 
    452 enum rpc_loc_assist_data_request_e_type {
    453   RPC_LOC_ASSIST_DATA_TIME_REQ = 1,
    454   RPC_LOC_ASSIST_DATA_PREDICTED_ORBITS_REQ = 2,
    455   RPC_LOC_ASSIST_DATA_MAX = 268435456
    456 };
    457 
    458 typedef string rpc_struct_loc_time_download_source_s_type_servers_ptr<RPC_LOC_API_MAX_SERVER_ADDR_LENGTH>;
    459 
    460 typedef rpc_struct_loc_time_download_source_s_type_servers_ptr rpc_struct_loc_time_download_source_s_type_servers[3];
    461 
    462 struct rpc_loc_time_download_source_s_type {
    463   rpc_uint32 delay_threshold;
    464   rpc_struct_loc_time_download_source_s_type_servers servers;
    465 };
    466 
    467 typedef string rpc_struct_loc_predicted_orbits_data_source_s_type_servers_ptr<RPC_LOC_API_MAX_SERVER_ADDR_LENGTH>;
    468 
    469 typedef rpc_struct_loc_predicted_orbits_data_source_s_type_servers_ptr rpc_struct_loc_predicted_orbits_data_source_s_type_servers[3];
    470 
    471 struct rpc_loc_predicted_orbits_data_source_s_type {
    472   rpc_uint32 max_file_size;
    473   rpc_uint32 max_part_size;
    474   rpc_struct_loc_predicted_orbits_data_source_s_type_servers servers;
    475 };
    476 
    477 union rpc_loc_assist_data_request_payload_u_type switch (rpc_loc_assist_data_request_e_type disc) {
    478   case RPC_LOC_ASSIST_DATA_TIME_REQ:
    479     rpc_loc_time_download_source_s_type time_download;
    480   case RPC_LOC_ASSIST_DATA_PREDICTED_ORBITS_REQ:
    481     rpc_loc_predicted_orbits_data_source_s_type data_download;
    482   default:
    483     void;
    484 };
    485 
    486 struct rpc_loc_assist_data_request_s_type {
    487   rpc_loc_assist_data_request_e_type event;
    488   rpc_loc_assist_data_request_payload_u_type payload;
    489 };
    490 
    491 typedef rpc_uint32 rpc_loc_server_connection_handle;
    492 
    493 enum rpc_loc_server_protocol_e_type {
    494   RPC_LOC_SERVER_PROTOCOL_DEFAULT = 0,
    495   RPC_LOC_SERVER_PROTOCOL_SUPL = 1,
    496   RPC_LOC_SERVER_PROTOCOL_VX_MPC = 2,
    497   RPC_LOC_SERVER_PROTOCOL_VX_PDE = 3,
    498   RPC_LOC_SERVER_PROTOCOL_MAX = 16777216
    499 };
    500 
    501 enum rpc_loc_server_request_e_type {
    502   RPC_LOC_SERVER_REQUEST_OPEN = 1,
    503   RPC_LOC_SERVER_REQUEST_CLOSE = 2,
    504   RPC_LOC_SERVER_REQUEST_MAX = 268435456
    505 };
    506 
    507 struct rpc_loc_server_open_req_s_type {
    508   rpc_loc_server_connection_handle conn_handle;
    509   rpc_loc_server_protocol_e_type protocol;
    510 };
    511 
    512 struct rpc_loc_server_close_req_s_type {
    513   rpc_loc_server_connection_handle conn_handle;
    514 };
    515 
    516 union rpc_loc_server_request_u_type switch (rpc_loc_server_request_e_type disc) {
    517   case RPC_LOC_SERVER_REQUEST_OPEN:
    518     rpc_loc_server_open_req_s_type open_req;
    519   case RPC_LOC_SERVER_REQUEST_CLOSE:
    520     rpc_loc_server_close_req_s_type close_req;
    521   default:
    522     void;
    523 };
    524 
    525 struct rpc_loc_server_request_s_type {
    526   rpc_loc_server_request_e_type event;
    527   rpc_loc_server_request_u_type payload;
    528 };
    529 
    530 struct rpc_loc_reserved_payload_s_type {
    531   rpc_uint16 data_size;
    532   opaque data<>;
    533 };
    534 
    535 enum rpc_loc_ioctl_e_type {
    536   RPC_LOC_IOCTL_GET_API_VERSION = 1,
    537   RPC_LOC_IOCTL_SET_FIX_CRITERIA = 2,
    538   RPC_LOC_IOCTL_GET_FIX_CRITERIA = 3,
    539   RPC_LOC_IOCTL_SERVICE_START_INDEX = 400,
    540   RPC_LOC_IOCTL_INFORM_NI_USER_RESPONSE = 400,
    541   RPC_LOC_IOCTL_INJECT_PREDICTED_ORBITS_DATA = 401,
    542   RPC_LOC_IOCTL_QUERY_PREDICTED_ORBITS_DATA_VALIDITY = 402,
    543   RPC_LOC_IOCTL_QUERY_PREDICTED_ORBITS_DATA_SOURCE = 403,
    544   RPC_LOC_IOCTL_SET_PREDICTED_ORBITS_DATA_AUTO_DOWNLOAD = 404,
    545   RPC_LOC_IOCTL_INJECT_UTC_TIME = 405,
    546   RPC_LOC_IOCTL_INJECT_RTC_VALUE = 406,
    547   RPC_LOC_IOCTL_INJECT_POSITION = 407,
    548   RPC_LOC_IOCTL_QUERY_ENGINE_STATE = 408,
    549   RPC_LOC_IOCTL_INFORM_SERVER_OPEN_STATUS = 409,
    550   RPC_LOC_IOCTL_INFORM_SERVER_CLOSE_STATUS = 410,
    551   RPC_LOC_IOCTL_NV_SETTINGS_START_INDEX = 800,
    552   RPC_LOC_IOCTL_SET_ENGINE_LOCK = 800,
    553   RPC_LOC_IOCTL_GET_ENGINE_LOCK = 801,
    554   RPC_LOC_IOCTL_SET_SBAS_CONFIG = 802,
    555   RPC_LOC_IOCTL_GET_SBAS_CONFIG = 803,
    556   RPC_LOC_IOCTL_SET_NMEA_TYPES = 804,
    557   RPC_LOC_IOCTL_GET_NMEA_TYPES = 805,
    558   RPC_LOC_IOCTL_SET_CDMA_PDE_SERVER_ADDR = 806,
    559   RPC_LOC_IOCTL_GET_CDMA_PDE_SERVER_ADDR = 807,
    560   RPC_LOC_IOCTL_SET_CDMA_MPC_SERVER_ADDR = 808,
    561   RPC_LOC_IOCTL_GET_CDMA_MPC_SERVER_ADDR = 809,
    562   RPC_LOC_IOCTL_SET_UMTS_SLP_SERVER_ADDR = 810,
    563   RPC_LOC_IOCTL_GET_UMTS_SLP_SERVER_ADDR = 811,
    564   RPC_LOC_IOCTL_SET_ON_DEMAND_LPM = 812,
    565   RPC_LOC_IOCTL_GET_ON_DEMAND_LPM = 813,
    566   RPC_LOC_IOCTL_PROPRIETARY_START_INDEX = 1000,
    567   RPC_LOC_IOCTL_DELETE_ASSIST_DATA = 1000,
    568   RPC_LOC_IOCTL_SET_CUSTOM_PDE_SERVER_ADDR = 1001,
    569   RPC_LOC_IOCTL_GET_CUSTOM_PDE_SERVER_ADDR = 1002,
    570   RPC_LOC_IOCTL_THIRD_PARTY_START_INDEX = 1073741824
    571 };
    572 
    573 struct rpc_loc_api_version_s_type {
    574   unsigned char major;
    575   unsigned char minor;
    576 };
    577 
    578 enum rpc_loc_fix_recurrence_e_type {
    579   RPC_LOC_PERIODIC_FIX = 1,
    580   RPC_LOC_SINGLE_FIX = 2,
    581   RPC_LOC_FIX_SESSION_TYPE_MAX = 268435456
    582 };
    583 
    584 enum rpc_loc_operation_mode_e_type {
    585   RPC_LOC_OPER_MODE_DEFAULT = 1,
    586   RPC_LOC_OPER_MODE_MSB = 2,
    587   RPC_LOC_OPER_MODE_MSA = 3,
    588   RPC_LOC_OPER_MODE_STANDALONE = 4,
    589   RPC_LOC_OPER_MODE_SPEED_OPTIMAL = 5,
    590   RPC_LOC_OPER_MODE_ACCURACY_OPTIMAL = 6,
    591   RPC_LOC_OPER_MODE_DATA_OPTIMAL = 7,
    592   RPC_LOC_OPER_MODE_MAX = 268435456
    593 };
    594 
    595 enum rpc_loc_notify_e_type {
    596   RPC_LOC_NOTIFY_ON_INTERVAL = 1,
    597   RPC_LOC_NOTIFY_ON_DISTANCE = 2,
    598   RPC_LOC_NOTIFY_ON_ANY = 3,
    599   RPC_LOC_NOTIFY_ON_ALL = 4,
    600   RPC_LOC_NOTIFY_TYPE_MAX = 268435456
    601 };
    602 
    603 struct rpc_loc_fix_criteria_s_type {
    604   rpc_uint32 valid_mask;
    605   rpc_loc_fix_recurrence_e_type recurrence_type;
    606   rpc_loc_operation_mode_e_type preferred_operation_mode;
    607   rpc_uint32 preferred_accuracy;
    608   rpc_uint32 preferred_response_time;
    609   rpc_boolean intermediate_pos_report_enabled;
    610   rpc_loc_notify_e_type notify_type;
    611   rpc_uint32 min_interval;
    612   float min_distance;
    613   rpc_uint32 min_dist_sample_interval;
    614 };
    615 
    616 enum rpc_loc_ni_user_resp_e_type {
    617   RPC_LOC_NI_LCS_NOTIFY_VERIFY_ACCEPT = 1,
    618   RPC_LOC_NI_LCS_NOTIFY_VERIFY_DENY = 2,
    619   RPC_LOC_NI_LCS_NOTIFY_VERIFY_NORESP = 3,
    620   RPC_LOC_NI_LCS_NOTIFY_VERIFY_MAX = 268435456
    621 };
    622 
    623 struct rpc_loc_user_verify_s_type {
    624   rpc_loc_ni_user_resp_e_type user_resp;
    625   rpc_loc_ni_event_s_type ni_event_pass_back;
    626 };
    627 
    628 enum rpc_loc_predicted_orbits_data_format_e_type {
    629   RPC_LOC_PREDICTED_ORBITS_XTRA = 0,
    630   RPC_LOC_PREDICTED_ORBITS_FORMAT_MAX = 268435456
    631 };
    632 
    633 struct rpc_loc_predicted_orbits_data_s_type {
    634   rpc_loc_predicted_orbits_data_format_e_type format_type;
    635   rpc_uint32 total_size;
    636   rpc_uint8 total_parts;
    637   rpc_uint8 part;
    638   rpc_uint16 part_len;
    639   opaque data_ptr<>;
    640 };
    641 
    642 struct rpc_loc_predicted_orbits_data_validity_report_s_type {
    643   rpc_uint64 start_time_utc;
    644   rpc_uint16 valid_duration_hrs;
    645 };
    646 
    647 struct rpc_loc_predicted_orbits_auto_download_config_s_type {
    648   rpc_boolean enable;
    649   unsigned char auto_check_every_hrs;
    650 };
    651 
    652 struct rpc_loc_assist_data_time_s_type {
    653   rpc_uint64 time_utc;
    654   rpc_uint32 uncertainty;
    655 };
    656 
    657 typedef rpc_uint64 rpc_loc_assist_pos_valid_mask_type;
    658 
    659 struct rpc_loc_assist_data_pos_s_type {
    660   rpc_loc_assist_pos_valid_mask_type valid_mask;
    661   rpc_uint64 timestamp_utc;
    662   double latitude;
    663   double longitude;
    664   float altitude_wrt_ellipsoid;
    665   float altitude_wrt_mean_sea_level;
    666   float hor_unc_circular;
    667   float vert_unc;
    668   unsigned char confidence_horizontal;
    669   unsigned char confidence_vertical;
    670 };
    671 
    672 enum rpc_loc_server_open_status_e_type {
    673   RPC_LOC_SERVER_OPEN_SUCCESS = 1,
    674   RPC_LOC_SERVER_OPEN_FAIL = 2,
    675   RPC_LOC_SERVER_OPEN_STATUS_MAX = 268435456
    676 };
    677 
    678 struct rpc_loc_server_open_status_s_type {
    679   rpc_loc_server_connection_handle conn_handle;
    680   rpc_loc_server_open_status_e_type open_status;
    681   string apn_name<>;
    682 };
    683 
    684 enum rpc_loc_server_close_status_e_type {
    685   RPC_LOC_SERVER_CLOSE_SUCCESS = 1,
    686   RPC_LOC_SERVER_CLOSE_FAIL = 2,
    687   RPC_LOC_SERVER_CLOSE_STATUS_MAX = 268435456
    688 };
    689 
    690 struct rpc_loc_server_close_status_s_type {
    691   rpc_loc_server_connection_handle conn_handle;
    692   rpc_loc_server_close_status_e_type close_status;
    693 };
    694 
    695 enum rpc_loc_lock_e_type {
    696   RPC_LOC_LOCK_NONE = 1,
    697   RPC_LOC_LOCK_MI = 2,
    698   RPC_LOC_LOCK_MT = 3,
    699   RPC_LOC_LOCK_ALL = 4,
    700   RPC_LOC_LOCK_MAX = 268435456
    701 };
    702 
    703 typedef rpc_uint32 rpc_loc_nmea_sentence_type;
    704 
    705 typedef rpc_uint32 rpc_loc_assist_data_type;
    706 
    707 struct rpc_loc_assist_data_delete_s_type {
    708   rpc_loc_assist_data_type type;
    709   rpc_uint32 reserved[8];
    710 };
    711 
    712 union rpc_loc_ioctl_data_u_type switch (rpc_loc_ioctl_e_type disc) {
    713   case RPC_LOC_IOCTL_SET_FIX_CRITERIA:
    714     rpc_loc_fix_criteria_s_type fix_criteria;
    715   case RPC_LOC_IOCTL_INFORM_NI_USER_RESPONSE:
    716     rpc_loc_user_verify_s_type user_verify_resp;
    717   case RPC_LOC_IOCTL_INJECT_PREDICTED_ORBITS_DATA:
    718     rpc_loc_predicted_orbits_data_s_type predicted_orbits_data;
    719   case RPC_LOC_IOCTL_SET_PREDICTED_ORBITS_DATA_AUTO_DOWNLOAD:
    720     rpc_loc_predicted_orbits_auto_download_config_s_type predicted_orbits_auto_download;
    721   case RPC_LOC_IOCTL_INJECT_UTC_TIME:
    722     rpc_loc_assist_data_time_s_type assistance_data_time;
    723   case RPC_LOC_IOCTL_INJECT_POSITION:
    724     rpc_loc_assist_data_pos_s_type assistance_data_position;
    725   case RPC_LOC_IOCTL_INFORM_SERVER_OPEN_STATUS:
    726     rpc_loc_server_open_status_s_type conn_open_status;
    727   case RPC_LOC_IOCTL_INFORM_SERVER_CLOSE_STATUS:
    728     rpc_loc_server_close_status_s_type conn_close_status;
    729   case RPC_LOC_IOCTL_SET_ENGINE_LOCK:
    730     rpc_loc_lock_e_type engine_lock;
    731   case RPC_LOC_IOCTL_SET_SBAS_CONFIG:
    732     rpc_boolean sbas_mode;
    733   case RPC_LOC_IOCTL_SET_NMEA_TYPES:
    734     rpc_loc_nmea_sentence_type nmea_types;
    735   case RPC_LOC_IOCTL_SET_ON_DEMAND_LPM:
    736     rpc_boolean on_demand_lpm;
    737   case  RPC_LOC_IOCTL_SET_CDMA_PDE_SERVER_ADDR:
    738   case  RPC_LOC_IOCTL_SET_CDMA_MPC_SERVER_ADDR:
    739   case  RPC_LOC_IOCTL_SET_UMTS_SLP_SERVER_ADDR:
    740   case  RPC_LOC_IOCTL_SET_CUSTOM_PDE_SERVER_ADDR:
    741     rpc_loc_server_info_s_type server_addr;
    742   case RPC_LOC_IOCTL_DELETE_ASSIST_DATA:
    743     rpc_loc_assist_data_delete_s_type assist_data_delete;
    744   default:
    745     void;
    746 };
    747 
    748 union rpc_loc_ioctl_callback_data_u_type switch (rpc_loc_ioctl_e_type disc) {
    749   case RPC_LOC_IOCTL_GET_API_VERSION:
    750     rpc_loc_api_version_s_type api_version;
    751   case RPC_LOC_IOCTL_GET_FIX_CRITERIA:
    752     rpc_loc_fix_criteria_s_type fix_criteria;
    753   case RPC_LOC_IOCTL_GET_ENGINE_LOCK:
    754     rpc_loc_lock_e_type engine_lock;
    755   case RPC_LOC_IOCTL_GET_SBAS_CONFIG:
    756     rpc_boolean sbas_mode;
    757   case RPC_LOC_IOCTL_GET_NMEA_TYPES:
    758     rpc_loc_nmea_sentence_type nmea_types;
    759   case RPC_LOC_IOCTL_GET_ON_DEMAND_LPM:
    760     rpc_boolean on_demand_lpm;
    761   case  RPC_LOC_IOCTL_GET_CDMA_PDE_SERVER_ADDR:
    762   case  RPC_LOC_IOCTL_GET_CDMA_MPC_SERVER_ADDR:
    763   case  RPC_LOC_IOCTL_GET_UMTS_SLP_SERVER_ADDR:
    764     rpc_loc_server_info_s_type server_addr;
    765   case RPC_LOC_IOCTL_QUERY_PREDICTED_ORBITS_DATA_SOURCE:
    766     rpc_loc_predicted_orbits_data_source_s_type predicted_orbits_data_source;
    767   case RPC_LOC_IOCTL_QUERY_PREDICTED_ORBITS_DATA_VALIDITY:
    768     rpc_loc_predicted_orbits_data_validity_report_s_type predicted_orbits_data_validity;
    769   default:
    770     void;
    771 };
    772 
    773 struct rpc_loc_ioctl_callback_s_type {
    774   rpc_loc_ioctl_e_type type;
    775   rpc_int32 status;
    776   rpc_loc_ioctl_callback_data_u_type data;
    777 };
    778 
    779 union rpc_loc_event_payload_u_type switch (unsigned hyper disc) {
    780   case RPC_LOC_EVENT_PARSED_POSITION_REPORT:
    781     rpc_loc_parsed_position_s_type parsed_location_report;
    782   case RPC_LOC_EVENT_SATELLITE_REPORT:
    783     rpc_loc_gnss_info_s_type gnss_report;
    784   case RPC_LOC_EVENT_NMEA_POSITION_REPORT:
    785     rpc_loc_nmea_report_s_type nmea_report;
    786   case RPC_LOC_EVENT_NI_NOTIFY_VERIFY_REQUEST:
    787     rpc_loc_ni_event_s_type ni_request;
    788   case RPC_LOC_EVENT_ASSISTANCE_DATA_REQUEST:
    789     rpc_loc_assist_data_request_s_type assist_data_request;
    790   case RPC_LOC_EVENT_LOCATION_SERVER_REQUEST:
    791     rpc_loc_server_request_s_type loc_server_request;
    792   case RPC_LOC_EVENT_IOCTL_REPORT:
    793     rpc_loc_ioctl_callback_s_type ioctl_report;
    794   case RPC_LOC_EVENT_STATUS_REPORT:
    795     rpc_loc_status_event_s_type status_report;
    796   case RPC_LOC_EVENT_RESERVED:
    797     rpc_loc_reserved_payload_s_type reserved;
    798   default:
    799     void;
    800 };
    801 
    802 const RPC_LOC_API_NULL_VERSION = 0x00010001;
    803 const RPC_LOC_API_RPC_GLUE_CODE_INFO_REMOTE_VERSION = 0x00010001;
    804