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