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
5GENERAL 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  ---------------------------------------------------------------------------
11Copyright (c) 2009, QUALCOMM USA, INC.
12
13All rights reserved.
14
15Redistribution 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
23THIS 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
33Generated by following versions of Htorpc modules:
34Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/htorpc.pl#9
35Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/Start.pm#4
36Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/Htoxdr.pm#1
37Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/XDR.pm#7
38Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/Output.pm#26
39Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/Parser.pm#3
40Id: //source/qcom/qct/core/mproc/tools/rel/03.01/htorpc/lib/Htorpc/Metacomments.pm#2
41Id: //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
51const RPC_LOC_EVENT_NI_NOTIFY_VERIFY_REQUEST = 0x00000010;
52
53const RPC_LOC_EVENT_IOCTL_REPORT = 0x00000080;
54
55const RPC_LOC_EVENT_LOCATION_SERVER_REQUEST = 0x00000040;
56
57const RPC_LOC_EVENT_RESERVED = 0x8000000000000000;
58
59const RPC_LOC_EVENT_PARSED_POSITION_REPORT = 0x00000001;
60
61const RPC_LOC_EVENT_ASSISTANCE_DATA_REQUEST = 0x00000020;
62
63const RPC_LOC_EVENT_NMEA_POSITION_REPORT = 0x00000008;
64
65const RPC_LOC_EVENT_SATELLITE_REPORT = 0x00000002;
66
67const RPC_LOC_EVENT_STATUS_REPORT = 0x00000100;
68
69const RPC_LOC_OPEN_VERSION = 0x00010001;
70const RPC_LOC_CLOSE_VERSION = 0x00010001;
71const RPC_LOC_START_FIX_VERSION = 0x00010001;
72const RPC_LOC_STOP_FIX_VERSION = 0x00010001;
73const RPC_LOC_IOCTL_VERSION = 0x00010001;
74const RPC_LOC_EVENT_CB_F_TYPE_VERSION = 0x00010001;
75const RPC_LOC_APIAPI_VERSION_IS_HASHKEY = 0;
76const RPC_LOC_API_API_MAJOR_NUM = 0x0001;
77typedef bool rpc_boolean;
78typedef unsigned long rpc_uint32;
79
80typedef unsigned short rpc_uint16;
81
82typedef unsigned char rpc_uint8;
83
84typedef long rpc_int32;
85
86typedef unsigned char rpc_byte;
87
88typedef unsigned hyper rpc_uint64;
89
90typedef rpc_int32 rpc_loc_client_handle_type;
91
92typedef rpc_uint64 rpc_loc_event_mask_type;
93
94typedef rpc_uint64 rpc_loc_position_valid_mask_type;
95
96typedef rpc_uint32 rpc_loc_pos_technology_mask_type;
97
98enum 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
110struct 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
121struct 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
148enum 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
157enum 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
164typedef rpc_uint32 rpc_loc_sv_info_valid_mask_type;
165
166struct 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
179typedef rpc_uint32 rpc_loc_gnss_info_valid_mask_type;
180
181struct 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
191struct rpc_loc_nmea_report_s_type {
192  rpc_uint16 length;
193  opaque nmea_sentences<RPC_LOC_API_MAX_NMEA_STRING_LENGTH>;
194};
195
196enum rpc_loc_status_event_e_type {
197  RPC_LOC_STATUS_EVENT_ENGINE_STATE = 1,
198  RPC_LOC_STATUS_EVENT_MAX = 268435456
199};
200
201enum 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
207union 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
214struct 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
219enum 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
225struct rpc_loc_server_addr_ipv4_type {
226  rpc_uint32 addr;
227  rpc_uint16 port;
228};
229
230struct rpc_loc_server_addr_url_type {
231  rpc_uint16 length;
232  opaque addr<RPC_LOC_API_MAX_SERVER_ADDR_LENGTH>;
233};
234
235union 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
244struct 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
249enum 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
258enum 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
265enum 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
301enum 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
315enum 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
323struct rpc_loc_ni_vx_requester_id_s_type {
324  unsigned char requester_id_length;
325  opaque requester_id[200];
326};
327
328struct 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
340enum 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
354struct 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
360struct 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
366struct 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
372struct 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
380struct 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
393struct 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
398enum 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
405struct rpc_loc_ni_deferred_location_s_type {
406  unsigned char unused_bits;
407  unsigned char ms_available;
408};
409
410struct 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
416struct rpc_loc_ni_service_type_id_s_type {
417  unsigned char lcs_service_type_id;
418};
419
420struct 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
436union 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
447struct 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
452enum 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
458typedef string rpc_struct_loc_time_download_source_s_type_servers_ptr<RPC_LOC_API_MAX_SERVER_ADDR_LENGTH>;
459
460typedef rpc_struct_loc_time_download_source_s_type_servers_ptr rpc_struct_loc_time_download_source_s_type_servers[3];
461
462struct 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
467typedef string rpc_struct_loc_predicted_orbits_data_source_s_type_servers_ptr<RPC_LOC_API_MAX_SERVER_ADDR_LENGTH>;
468
469typedef rpc_struct_loc_predicted_orbits_data_source_s_type_servers_ptr rpc_struct_loc_predicted_orbits_data_source_s_type_servers[3];
470
471struct 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
477union 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
486struct 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
491typedef rpc_uint32 rpc_loc_server_connection_handle;
492
493enum 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
501enum 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
507struct 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
512struct rpc_loc_server_close_req_s_type {
513  rpc_loc_server_connection_handle conn_handle;
514};
515
516union 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
525struct rpc_loc_server_request_s_type {
526  rpc_loc_server_request_e_type event;
527  rpc_loc_server_request_u_type payload;
528};
529
530struct rpc_loc_reserved_payload_s_type {
531  rpc_uint16 data_size;
532  opaque data<>;
533};
534
535enum 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
573struct rpc_loc_api_version_s_type {
574  unsigned char major;
575  unsigned char minor;
576};
577
578enum 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
584enum 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
595enum 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
603struct 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
616enum 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
623struct 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
628enum 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
633struct 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
642struct rpc_loc_predicted_orbits_data_validity_report_s_type {
643  rpc_uint64 start_time_utc;
644  rpc_uint16 valid_duration_hrs;
645};
646
647struct rpc_loc_predicted_orbits_auto_download_config_s_type {
648  rpc_boolean enable;
649  unsigned char auto_check_every_hrs;
650};
651
652struct rpc_loc_assist_data_time_s_type {
653  rpc_uint64 time_utc;
654  rpc_uint32 uncertainty;
655};
656
657typedef rpc_uint64 rpc_loc_assist_pos_valid_mask_type;
658
659struct 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
672enum 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
678struct 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
684enum 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
690struct 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
695enum 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
703typedef rpc_uint32 rpc_loc_nmea_sentence_type;
704
705typedef rpc_uint32 rpc_loc_assist_data_type;
706
707struct rpc_loc_assist_data_delete_s_type {
708  rpc_loc_assist_data_type type;
709  rpc_uint32 reserved[8];
710};
711
712union 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
748union 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
773struct 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
779union 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
802const RPC_LOC_API_NULL_VERSION = 0x00010001;
803const RPC_LOC_API_RPC_GLUE_CODE_INFO_REMOTE_VERSION = 0x00010001;
804