1/* LOC_API TOOL VERSION: 4.36 */
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  ---------------------------------------------------------------------------
11  Copyright (c) 2010 QUALCOMM Incorporated.
12  All Rights Reserved. QUALCOMM Proprietary and Confidential.
13  ---------------------------------------------------------------------------
14=============================================================================*/
15
16/*=============================================================================
17
18                              Edit History
19
20                             AUTO GENERATED
21
22Generated by following versions of Htorpc modules:
23Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/htorpc.pl#20
24Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/Start.pm#3
25Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/Htoxdr.pm#1
26Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/XDR.pm#7
27Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/Output.pm#29
28Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/Parser.pm#2
29Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/Metacomments.pm#6
30Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/SymbolTable.pm#3
31
32loc_api Definition File(s):
33Id: //source/qcom/qct/modem/api/gps/main/latest/loc_api.h#16
34=============================================================================*/
35/*=============================================================================
36$Header$
37=============================================================================*/
38
39
40
41const LOC_API_TOOLVERS = 0x00040024;
42const LOC_API_FEATURES = 0x00000001;
43
44const RPC_LOC_EVENT_NI_NOTIFY_VERIFY_REQUEST = 0x00000010;
45
46const RPC_LOC_EVENT_WPS_NEEDED_REQUEST = 0x00000200;
47
48const RPC_LOC_EVENT_IOCTL_REPORT = 0x00000080;
49
50const RPC_LOC_EVENT_LOCATION_SERVER_REQUEST = 0x00000040;
51
52const RPC_LOC_EVENT_RESERVED = 0x8000000000000000;
53
54const RPC_LOC_EVENT_PARSED_POSITION_REPORT = 0x00000001;
55
56const RPC_LOC_EVENT_ASSISTANCE_DATA_REQUEST = 0x00000020;
57
58const RPC_LOC_EVENT_NMEA_POSITION_REPORT = 0x00000008;
59
60const RPC_LOC_EVENT_SATELLITE_REPORT = 0x00000002;
61
62const RPC_LOC_EVENT_STATUS_REPORT = 0x00000100;
63
64const RPC_LOC_EVENT_CB_F_TYPE_VERSION = 0x00040001;
65const RPC_LOC_OPEN_VERSION = 0x00040001;
66const RPC_LOC_API_RPC_GLUE_CODE_INFO_REMOTE_VERSION = 0x00040001;
67const RPC_LOC_API_NULL_VERSION = 0x00040001;
68const RPC_LOC_STOP_FIX_VERSION = 0x00040001;
69const RPC_LOC_IOCTL_VERSION = 0x00040001;
70const RPC_LOC_START_FIX_VERSION = 0x00040001;
71const RPC_LOC_CLOSE_VERSION = 0x00040001;
72const RPC_LOC_API_API_VERSIONS_VERSION = 0x00040001;
73const RPC_LOC_API_API_MAJOR_NUM = 0x0004;
74const RPC_LOC_APIAPI_VERSION_IS_HASHKEY = 0;
75
76typedef bool rpc_boolean;
77
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<80>; /* EVAL:[LOC_API_MAX_SV_COUNT]*/
189};
190
191struct rpc_loc_nmea_report_s_type {
192  rpc_uint16 length;
193    opaque nmea_sentences[1200]; /* EVAL:[1200]*/
194};
195
196enum rpc_loc_status_event_e_type {
197  RPC_LOC_STATUS_EVENT_ENGINE_STATE = 1,
198  RPC_LOC_STATUS_EVENT_FIX_SESSION_STATE = 2,
199  RPC_LOC_STATUS_EVENT_MAX = 268435456
200};
201
202enum rpc_loc_engine_state_e_type {
203  RPC_LOC_ENGINE_STATE_ON = 1,
204  RPC_LOC_ENGINE_STATE_OFF = 2,
205  RPC_LOC_ENGINE_STATE_MAX = 268435456
206};
207
208enum rpc_loc_fix_session_state_e_type {
209  RPC_LOC_FIX_SESSION_STATE_BEGIN = 1,
210  RPC_LOC_FIX_SESSION_STATE_END = 2,
211  RPC_LOC_FIX_SESSION_STATE_MAX = 268435456
212};
213
214union rpc_loc_status_event_payload_u_type switch (rpc_loc_status_event_e_type disc) {
215  case RPC_LOC_STATUS_EVENT_ENGINE_STATE:
216    rpc_loc_engine_state_e_type engine_state;
217  case RPC_LOC_STATUS_EVENT_FIX_SESSION_STATE:
218    rpc_loc_fix_session_state_e_type fix_session_state;
219  default:
220    void;
221};
222
223struct rpc_loc_status_event_s_type {
224  rpc_loc_status_event_e_type event;
225  rpc_loc_status_event_payload_u_type payload;
226};
227
228enum rpc_loc_server_addr_e_type {
229  RPC_LOC_SERVER_ADDR_IPV4 = 1,
230  RPC_LOC_SERVER_ADDR_URL = 2,
231  RPC_LOC_SERVER_ADDR_MAX = 268435456
232};
233
234struct rpc_loc_server_addr_ipv4_type {
235  rpc_uint32 addr;
236  rpc_uint16 port;
237};
238
239struct rpc_loc_server_addr_url_type {
240  rpc_uint16 length;
241    opaque addr[256]; /* EVAL:[256]*/
242};
243
244union rpc_loc_server_addr_u_type switch (rpc_loc_server_addr_e_type disc) {
245  case RPC_LOC_SERVER_ADDR_IPV4:
246    rpc_loc_server_addr_ipv4_type ipv4;
247  case RPC_LOC_SERVER_ADDR_URL:
248    rpc_loc_server_addr_url_type url;
249  default:
250    void;
251};
252
253struct rpc_loc_server_info_s_type {
254  rpc_loc_server_addr_e_type addr_type;
255  rpc_loc_server_addr_u_type addr_info;
256};
257
258enum rpc_loc_ni_notify_verify_e_type {
259  RPC_LOC_NI_USER_NO_NOTIFY_NO_VERIFY = 1,
260  RPC_LOC_NI_USER_NOTIFY_ONLY = 2,
261  RPC_LOC_NI_USER_NOTIFY_VERIFY_ALLOW_NO_RESP = 3,
262  RPC_LOC_NI_USER_NOTIFY_VERIFY_NOT_ALLOW_NO_RESP = 4,
263  RPC_LOC_NI_USER_PRIVACY_OVERRIDE = 5,
264  RPC_LOC_NI_USER_NOTIFY_VERITY_TYPE_MAX = 268435456
265};
266
267enum rpc_loc_ni_event_e_type {
268  RPC_LOC_NI_EVENT_VX_NOTIFY_VERIFY_REQ = 1,
269  RPC_LOC_NI_EVENT_SUPL_NOTIFY_VERIFY_REQ = 2,
270  RPC_LOC_NI_EVENT_UMTS_CP_NOTIFY_VERIFY_REQ = 3,
271  RPC_LOC_NI_EVENT_VX_SERVICE_INTERACTION_REQ = 4,
272  RPC_LOC_NI_EVENT_MAX = 268435456
273};
274
275enum rpc_loc_ni_datacoding_scheme_e_type {
276  RPC_LOC_NI_PRESUPL_ISO646IRV = 0,
277  RPC_LOC_NI_PRESUPL_ISO8859 = 1,
278  RPC_LOC_NI_PRESUPL_UTF8 = 2,
279  RPC_LOC_NI_PRESUPL_UTF16 = 3,
280  RPC_LOC_NI_PRESUPL_UCS2 = 4,
281  RPC_LOC_NI_PRESUPL_GSM_DEFAULT = 5,
282  RPC_LOC_NI_PRESUPL_SHIFT_JIS = 6,
283  RPC_LOC_NI_PRESUPL_JIS = 7,
284  RPC_LOC_NI_PRESUPL_EUC = 8,
285  RPC_LOC_NI_PRESUPL_GB2312 = 9,
286  RPC_LOC_NI_PRESUPL_CNS11643 = 10,
287  RPC_LOC_NI_PRESUPL_KSC1001 = 11,
288  RPC_LOC_NI_PRESUPL_ENCODING_UNKNOWN = 2147483647,
289  RPC_LOC_NI_SS_GERMAN = 12,
290  RPC_LOC_NI_SS_ENGLISH = 13,
291  RPC_LOC_NI_SS_ITALIAN = 14,
292  RPC_LOC_NI_SS_FRENCH = 15,
293  RPC_LOC_NI_SS_SPANISH = 16,
294  RPC_LOC_NI_SS_DUTCH = 17,
295  RPC_LOC_NI_SS_SWEDISH = 18,
296  RPC_LOC_NI_SS_DANISH = 19,
297  RPC_LOC_NI_SS_PORTUGUESE = 20,
298  RPC_LOC_NI_SS_FINNISH = 21,
299  RPC_LOC_NI_SS_NORWEGIAN = 22,
300  RPC_LOC_NI_SS_GREEK = 23,
301  RPC_LOC_NI_SS_TURKISH = 24,
302  RPC_LOC_NI_SS_HUNGARIAN = 25,
303  RPC_LOC_NI_SS_POLISH = 26,
304  RPC_LOC_NI_SS_LANGUAGE_UNSPEC = 27,
305  RPC_LOC_NI_SUPL_UTF8 = 28,
306  RPC_LOC_NI_SUPL_UCS2 = 29,
307  RPC_LOC_NI_SUPL_GSM_DEFAULT = 30,
308  RPC_LOC_NI_SUPL_ENCODING_UNKNOWN = 2147483647
309};
310
311enum rpc_loc_ni_vx_requester_id_encoding_scheme_e_type {
312  RPC_LOC_NI_VX_OCTET = 0,
313  RPC_LOC_NI_VX_EXN_PROTOCOL_MSG = 1,
314  RPC_LOC_NI_VX_ASCII = 2,
315  RPC_LOC_NI_VX_IA5 = 3,
316  RPC_LOC_NI_VX_UNICODE = 4,
317  RPC_LOC_NI_VX_SHIFT_JIS = 5,
318  RPC_LOC_NI_VX_KOREAN = 6,
319  RPC_LOC_NI_VX_LATIN_HEBREW = 7,
320  RPC_LOC_NI_VX_LATIN = 8,
321  RPC_LOC_NI_VX_GSM = 9,
322  RPC_LOC_NI_VX_ENCODING_TYPE_MAX = 268435456
323};
324
325enum rpc_loc_ni_vx_pos_mode_e_type {
326  RPC_LOC_VX_MS_ASSISTED_ONLY = 1,
327  RPC_LOC_VX_MS_BASED_ONLY = 2,
328  RPC_LOC_VX_MS_ASSISTED_PREF_MSBASED_ALLWD = 3,
329  RPC_LOC_VX_MS_BASED_PREF_ASSISTED_ALLWD = 4,
330  RPC_LOC_VX_POS_MODE_MAX = 268435456
331};
332
333struct rpc_loc_ni_vx_requester_id_s_type {
334  unsigned char requester_id_length;
335    opaque requester_id[200]; /* EVAL:[200]*/
336};
337
338struct rpc_loc_ni_vx_notify_verify_req_s_type {
339  rpc_loc_ni_notify_verify_e_type notification_priv_type;
340  unsigned char pos_qos_incl;
341  unsigned char pos_qos;
342  rpc_uint32 num_fixes;
343  rpc_uint32 tbf;
344  rpc_loc_ni_vx_pos_mode_e_type pos_mode;
345  rpc_loc_ni_vx_requester_id_encoding_scheme_e_type encoding_scheme;
346  rpc_loc_ni_vx_requester_id_s_type requester_id;
347  rpc_uint16 user_resp_timer_val;
348};
349
350enum rpc_loc_ni_supl_pos_method_e_type {
351  RPC_LOC_NI_POSMETHOD_AGPS_SETASSISTED = 1,
352  RPC_LOC_NI_POSMETHOD_AGPS_SETBASED = 2,
353  RPC_LOC_NI_POSMETHOD_AGPS_SETASSISTED_PREF = 3,
354  RPC_LOC_NI_POSMETHOD_AGPS_SETBASED_PREF = 4,
355  RPC_LOC_NI_POSMETHOD_AUTONOMOUS_GPS = 5,
356  RPC_LOC_NI_POSMETHOD_AFLT = 6,
357  RPC_LOC_NI_POSMETHOD_ECID = 7,
358  RPC_LOC_NI_POSMETHOD_EOTD = 8,
359  RPC_LOC_NI_POSMETHOD_OTDOA = 9,
360  RPC_LOC_NI_POSMETHOD_NO_POSITION = 10,
361  RPC_LOC_NI_POSMETHOD_MAX = 268435456
362};
363
364struct rpc_loc_ni_supl_slp_session_id_s_type {
365  unsigned char presence;
366    opaque session_id[4]; /* EVAL:[4]*/
367  rpc_loc_server_info_s_type slp_address;
368};
369
370struct rpc_loc_ni_requestor_id_s_type {
371  unsigned char data_coding_scheme;
372    opaque requestor_id_string[200]; /* EVAL:[200]*/
373  unsigned char string_len;
374};
375
376struct rpc_loc_ni_supl_client_name_s_type {
377  unsigned char data_coding_scheme;
378    opaque client_name_string[64]; /* EVAL:[64]*/
379  unsigned char string_len;
380};
381
382struct rpc_loc_ni_supl_qop_s_type {
383  unsigned char bit_mask;
384  unsigned char horacc;
385  unsigned char veracc;
386  rpc_uint16 maxLocAge;
387  unsigned char delay;
388};
389
390struct rpc_loc_ni_supl_notify_verify_req_s_type {
391  rpc_loc_ni_notify_verify_e_type notification_priv_type;
392  rpc_uint16 flags;
393  rpc_loc_ni_supl_slp_session_id_s_type supl_slp_session_id;
394    opaque supl_hash[8]; /* EVAL:[8]*/
395  rpc_loc_ni_datacoding_scheme_e_type datacoding_scheme;
396  rpc_loc_ni_supl_pos_method_e_type pos_method;
397  rpc_loc_ni_requestor_id_s_type requestor_id;
398  rpc_loc_ni_supl_client_name_s_type client_name;
399  rpc_loc_ni_supl_qop_s_type supl_qop;
400  rpc_uint16 user_response_timer;
401};
402
403struct rpc_loc_ni_ext_client_address_s_type {
404  unsigned char ext_client_address_len;
405    opaque ext_client_address[20]; /* EVAL:[20]*/
406};
407
408enum rpc_loc_ni_location_type_e_type {
409  RPC_LOC_NI_LOCATIONTYPE_CURRENT_LOCATION = 1,
410  RPC_LOC_NI_LOCATIONTYPE_CURRENT_OR_LAST_KNOWN_LOCATION = 2,
411  RPC_LOC_NI_LOCATIONTYPE_INITIAL_LOCATION = 3,
412  RPC_LOC_NI_LOCATIONTYPE_MAX = 268435456
413};
414
415struct rpc_loc_ni_deferred_location_s_type {
416  unsigned char unused_bits;
417  unsigned char ms_available;
418};
419
420struct rpc_loc_ni_codeword_string_s_type {
421  unsigned char data_coding_scheme;
422    opaque lcs_codeword_string[20]; /* EVAL:[20]*/
423  unsigned char string_len;
424};
425
426struct rpc_loc_ni_service_type_id_s_type {
427  unsigned char lcs_service_type_id;
428};
429
430struct rpc_loc_ni_umts_cp_notify_verify_req_s_type {
431  rpc_loc_ni_notify_verify_e_type notification_priv_type;
432  unsigned char invoke_id;
433  rpc_uint16 flags;
434  unsigned char notification_length;
435    opaque notification_text[64]; /* EVAL:[64]*/
436  rpc_loc_ni_datacoding_scheme_e_type datacoding_scheme;
437  rpc_loc_ni_ext_client_address_s_type ext_client_address_data;
438  rpc_loc_ni_location_type_e_type location_type;
439  rpc_loc_ni_deferred_location_s_type deferred_location;
440  rpc_loc_ni_requestor_id_s_type requestor_id;
441  rpc_loc_ni_codeword_string_s_type codeword_string;
442  rpc_loc_ni_service_type_id_s_type service_type_id;
443  rpc_uint16 user_response_timer;
444};
445
446enum rpc_loc_ni_service_interaction_e_type {
447  RPC_LOC_NI_SERVICE_INTERACTION_ONGOING_NI_INCOMING_MO = 1,
448  RPC_LOC_NI_SERVICE_INTERACTION_MAX = 268435456
449};
450
451struct rpc_loc_ni_vx_service_interaction_req_s_type {
452  rpc_loc_ni_vx_notify_verify_req_s_type ni_vx_req;
453  rpc_loc_ni_service_interaction_e_type service_interation_type;
454};
455
456union rpc_loc_ni_event_payload_u_type switch (rpc_loc_ni_event_e_type disc) {
457  case RPC_LOC_NI_EVENT_VX_NOTIFY_VERIFY_REQ:
458    rpc_loc_ni_vx_notify_verify_req_s_type vx_req;
459  case RPC_LOC_NI_EVENT_SUPL_NOTIFY_VERIFY_REQ:
460    rpc_loc_ni_supl_notify_verify_req_s_type supl_req;
461  case RPC_LOC_NI_EVENT_UMTS_CP_NOTIFY_VERIFY_REQ:
462    rpc_loc_ni_umts_cp_notify_verify_req_s_type umts_cp_req;
463  case RPC_LOC_NI_EVENT_VX_SERVICE_INTERACTION_REQ:
464    rpc_loc_ni_vx_service_interaction_req_s_type service_interaction_req;
465  default:
466    void;
467};
468
469struct rpc_loc_ni_event_s_type {
470  rpc_loc_ni_event_e_type event;
471  rpc_loc_ni_event_payload_u_type payload;
472};
473
474enum rpc_loc_assist_data_request_e_type {
475  RPC_LOC_ASSIST_DATA_TIME_REQ = 1,
476  RPC_LOC_ASSIST_DATA_PREDICTED_ORBITS_REQ = 2,
477  RPC_LOC_ASSIST_DATA_MAX = 268435456
478};
479
480  typedef string rpc_struct_loc_time_download_source_s_type_servers_ptr<256>; /* EVAL:[LOC_API_MAX_SERVER_ADDR_LENGTH]*/
481
482  typedef rpc_struct_loc_time_download_source_s_type_servers_ptr rpc_struct_loc_time_download_source_s_type_servers[3]; /* EVAL:[3]*/
483
484struct rpc_loc_time_download_source_s_type {
485  rpc_uint32 delay_threshold;
486  rpc_struct_loc_time_download_source_s_type_servers servers;
487};
488
489  typedef string rpc_struct_loc_predicted_orbits_data_source_s_type_servers_ptr<256>; /* EVAL:[LOC_API_MAX_SERVER_ADDR_LENGTH]*/
490
491  typedef rpc_struct_loc_predicted_orbits_data_source_s_type_servers_ptr rpc_struct_loc_predicted_orbits_data_source_s_type_servers[3]; /* EVAL:[3]*/
492
493struct rpc_loc_predicted_orbits_data_source_s_type {
494  rpc_uint32 max_file_size;
495  rpc_uint32 max_part_size;
496  rpc_struct_loc_predicted_orbits_data_source_s_type_servers servers;
497};
498
499union rpc_loc_assist_data_request_payload_u_type switch (rpc_loc_assist_data_request_e_type disc) {
500  case RPC_LOC_ASSIST_DATA_TIME_REQ:
501    rpc_loc_time_download_source_s_type time_download;
502  case RPC_LOC_ASSIST_DATA_PREDICTED_ORBITS_REQ:
503    rpc_loc_predicted_orbits_data_source_s_type data_download;
504  default:
505    void;
506};
507
508struct rpc_loc_assist_data_request_s_type {
509  rpc_loc_assist_data_request_e_type event;
510  rpc_loc_assist_data_request_payload_u_type payload;
511};
512
513typedef rpc_uint32 rpc_loc_server_connection_handle;
514
515enum rpc_loc_server_protocol_e_type {
516  RPC_LOC_SERVER_PROTOCOL_DEFAULT = 0,
517  RPC_LOC_SERVER_PROTOCOL_SUPL = 1,
518  RPC_LOC_SERVER_PROTOCOL_VX_MPC = 2,
519  RPC_LOC_SERVER_PROTOCOL_VX_PDE = 3,
520  RPC_LOC_SERVER_PROTOCOL_MAX = 16777216
521};
522
523enum rpc_loc_server_request_e_type {
524  RPC_LOC_SERVER_REQUEST_OPEN = 1,
525  RPC_LOC_SERVER_REQUEST_CLOSE = 2,
526  RPC_LOC_SERVER_REQUEST_MAX = 268435456
527};
528
529struct rpc_loc_server_open_req_s_type {
530  rpc_loc_server_connection_handle conn_handle;
531  rpc_loc_server_protocol_e_type protocol;
532};
533
534struct rpc_loc_server_close_req_s_type {
535  rpc_loc_server_connection_handle conn_handle;
536};
537
538union rpc_loc_server_request_u_type switch (rpc_loc_server_request_e_type disc) {
539  case RPC_LOC_SERVER_REQUEST_OPEN:
540    rpc_loc_server_open_req_s_type open_req;
541  case RPC_LOC_SERVER_REQUEST_CLOSE:
542    rpc_loc_server_close_req_s_type close_req;
543  default:
544    void;
545};
546
547struct rpc_loc_server_request_s_type {
548  rpc_loc_server_request_e_type event;
549  rpc_loc_server_request_u_type payload;
550};
551
552enum rpc_loc_qwip_request_e_type {
553  RPC_LOC_QWIP_START_PERIODIC_HI_FREQ_FIXES = 0,
554  RPC_LOC_QWIP_START_PERIODIC_KEEP_WARM,
555  RPC_LOC_QWIP_STOP_PERIODIC_FIXES,
556  RPC_LOC_QWIP_SUSPEND,
557  RPC_LOC_QWIP_REQUEST_MAX = 268435456
558};
559
560struct rpc_loc_qwip_request_s_type {
561  rpc_loc_qwip_request_e_type request_type;
562  rpc_uint16 tbf_ms;
563};
564
565struct rpc_loc_reserved_payload_s_type {
566  rpc_uint16 data_size;
567  opaque data<>;
568};
569
570enum rpc_loc_ioctl_e_type {
571  RPC_LOC_IOCTL_GET_API_VERSION = 1,
572  RPC_LOC_IOCTL_SET_FIX_CRITERIA = 2,
573  RPC_LOC_IOCTL_GET_FIX_CRITERIA = 3,
574  RPC_LOC_IOCTL_SERVICE_START_INDEX = 400,
575  RPC_LOC_IOCTL_INFORM_NI_USER_RESPONSE = 400,
576  RPC_LOC_IOCTL_INJECT_PREDICTED_ORBITS_DATA = 401,
577  RPC_LOC_IOCTL_QUERY_PREDICTED_ORBITS_DATA_VALIDITY = 402,
578  RPC_LOC_IOCTL_QUERY_PREDICTED_ORBITS_DATA_SOURCE = 403,
579  RPC_LOC_IOCTL_SET_PREDICTED_ORBITS_DATA_AUTO_DOWNLOAD = 404,
580  RPC_LOC_IOCTL_INJECT_UTC_TIME = 405,
581  RPC_LOC_IOCTL_INJECT_RTC_VALUE = 406,
582  RPC_LOC_IOCTL_INJECT_POSITION = 407,
583  RPC_LOC_IOCTL_QUERY_ENGINE_STATE = 408,
584  RPC_LOC_IOCTL_INFORM_SERVER_OPEN_STATUS = 409,
585  RPC_LOC_IOCTL_INFORM_SERVER_CLOSE_STATUS = 410,
586  RPC_LOC_IOCTL_SEND_WIPER_POSITION_REPORT = 411,
587  RPC_LOC_IOCTL_NOTIFY_WIPER_STATUS = 412,
588  RPC_LOC_IOCTL_ACCESS_EFS_DATA = 413,
589  RPC_LOC_IOCTL_NV_SETTINGS_START_INDEX = 800,
590  RPC_LOC_IOCTL_SET_ENGINE_LOCK = 800,
591  RPC_LOC_IOCTL_GET_ENGINE_LOCK = 801,
592  RPC_LOC_IOCTL_SET_SBAS_CONFIG = 802,
593  RPC_LOC_IOCTL_GET_SBAS_CONFIG = 803,
594  RPC_LOC_IOCTL_SET_NMEA_TYPES = 804,
595  RPC_LOC_IOCTL_GET_NMEA_TYPES = 805,
596  RPC_LOC_IOCTL_SET_CDMA_PDE_SERVER_ADDR = 806,
597  RPC_LOC_IOCTL_GET_CDMA_PDE_SERVER_ADDR = 807,
598  RPC_LOC_IOCTL_SET_CDMA_MPC_SERVER_ADDR = 808,
599  RPC_LOC_IOCTL_GET_CDMA_MPC_SERVER_ADDR = 809,
600  RPC_LOC_IOCTL_SET_UMTS_SLP_SERVER_ADDR = 810,
601  RPC_LOC_IOCTL_GET_UMTS_SLP_SERVER_ADDR = 811,
602  RPC_LOC_IOCTL_SET_ON_DEMAND_LPM = 812,
603  RPC_LOC_IOCTL_GET_ON_DEMAND_LPM = 813,
604  RPC_LOC_IOCTL_PROPRIETARY_START_INDEX = 1000,
605  RPC_LOC_IOCTL_DELETE_ASSIST_DATA = 1000,
606  RPC_LOC_IOCTL_SET_CUSTOM_PDE_SERVER_ADDR = 1001,
607  RPC_LOC_IOCTL_GET_CUSTOM_PDE_SERVER_ADDR = 1002,
608  RPC_LOC_IOCTL_THIRD_PARTY_START_INDEX = 1073741824
609};
610
611struct rpc_loc_api_version_s_type {
612  unsigned char major;
613  unsigned char minor;
614};
615
616enum rpc_loc_fix_recurrence_e_type {
617  RPC_LOC_PERIODIC_FIX = 1,
618  RPC_LOC_SINGLE_FIX = 2,
619  RPC_LOC_FIX_SESSION_TYPE_MAX = 268435456
620};
621
622enum rpc_loc_operation_mode_e_type {
623  RPC_LOC_OPER_MODE_DEFAULT = 1,
624  RPC_LOC_OPER_MODE_MSB = 2,
625  RPC_LOC_OPER_MODE_MSA = 3,
626  RPC_LOC_OPER_MODE_STANDALONE = 4,
627  RPC_LOC_OPER_MODE_SPEED_OPTIMAL = 5,
628  RPC_LOC_OPER_MODE_ACCURACY_OPTIMAL = 6,
629  RPC_LOC_OPER_MODE_DATA_OPTIMAL = 7,
630  RPC_LOC_OPER_MODE_CELL_ID = 8,
631  RPC_LOC_OPER_MODE_MAX = 268435456
632};
633
634enum rpc_loc_notify_e_type {
635  RPC_LOC_NOTIFY_ON_INTERVAL = 1,
636  RPC_LOC_NOTIFY_ON_DISTANCE = 2,
637  RPC_LOC_NOTIFY_ON_ANY = 3,
638  RPC_LOC_NOTIFY_ON_ALL = 4,
639  RPC_LOC_NOTIFY_TYPE_MAX = 268435456
640};
641
642struct rpc_loc_fix_criteria_s_type {
643  rpc_uint32 valid_mask;
644  rpc_loc_fix_recurrence_e_type recurrence_type;
645  rpc_loc_operation_mode_e_type preferred_operation_mode;
646  rpc_uint32 preferred_accuracy;
647  rpc_uint32 preferred_response_time;
648  rpc_boolean intermediate_pos_report_enabled;
649  rpc_loc_notify_e_type notify_type;
650  rpc_uint32 min_interval;
651  float min_distance;
652  rpc_uint32 min_dist_sample_interval;
653};
654
655enum rpc_loc_ni_user_resp_e_type {
656  RPC_LOC_NI_LCS_NOTIFY_VERIFY_ACCEPT = 1,
657  RPC_LOC_NI_LCS_NOTIFY_VERIFY_DENY = 2,
658  RPC_LOC_NI_LCS_NOTIFY_VERIFY_NORESP = 3,
659  RPC_LOC_NI_LCS_NOTIFY_VERIFY_MAX = 268435456
660};
661
662struct rpc_loc_user_verify_s_type {
663  rpc_loc_ni_user_resp_e_type user_resp;
664  rpc_loc_ni_event_s_type ni_event_pass_back;
665};
666
667enum rpc_loc_predicted_orbits_data_format_e_type {
668  RPC_LOC_PREDICTED_ORBITS_XTRA = 0,
669  RPC_LOC_PREDICTED_ORBITS_FORMAT_MAX = 268435456
670};
671
672struct rpc_loc_predicted_orbits_data_s_type {
673  rpc_loc_predicted_orbits_data_format_e_type format_type;
674  rpc_uint32 total_size;
675  rpc_uint8 total_parts;
676  rpc_uint8 part;
677  rpc_uint16 part_len;
678  opaque data_ptr<>;
679};
680
681struct rpc_loc_predicted_orbits_data_validity_report_s_type {
682  rpc_uint64 start_time_utc;
683  rpc_uint16 valid_duration_hrs;
684};
685
686struct rpc_loc_predicted_orbits_auto_download_config_s_type {
687  rpc_boolean enable;
688  unsigned char auto_check_every_hrs;
689};
690
691struct rpc_loc_assist_data_time_s_type {
692  rpc_uint64 time_utc;
693  rpc_uint32 uncertainty;
694};
695
696typedef rpc_uint64 rpc_loc_assist_pos_valid_mask_type;
697
698struct rpc_loc_assist_data_pos_s_type {
699  rpc_loc_assist_pos_valid_mask_type valid_mask;
700  rpc_uint64 timestamp_utc;
701  double latitude;
702  double longitude;
703  float altitude_wrt_ellipsoid;
704  float altitude_wrt_mean_sea_level;
705  float hor_unc_circular;
706  float vert_unc;
707  unsigned char confidence_horizontal;
708  unsigned char confidence_vertical;
709  rpc_int32 timestamp_age;
710};
711
712enum rpc_loc_server_open_status_e_type {
713  RPC_LOC_SERVER_OPEN_SUCCESS = 1,
714  RPC_LOC_SERVER_OPEN_FAIL = 2,
715  RPC_LOC_SERVER_OPEN_STATUS_MAX = 268435456
716};
717
718struct rpc_loc_server_open_status_s_type {
719  rpc_loc_server_connection_handle conn_handle;
720  rpc_loc_server_open_status_e_type open_status;
721    opaque apn_name[100]; /* EVAL:[100]*/
722};
723
724enum rpc_loc_server_close_status_e_type {
725  RPC_LOC_SERVER_CLOSE_SUCCESS = 1,
726  RPC_LOC_SERVER_CLOSE_FAIL = 2,
727  RPC_LOC_SERVER_CLOSE_STATUS_MAX = 268435456
728};
729
730struct rpc_loc_server_close_status_s_type {
731  rpc_loc_server_connection_handle conn_handle;
732  rpc_loc_server_close_status_e_type close_status;
733};
734
735struct rpc_loc_wiper_fix_time_s_type {
736  rpc_uint32 slow_clock_count;
737};
738
739struct rpc_loc_wiper_fix_pos_s_type {
740  rpc_int32 lat;
741  rpc_int32 lon;
742  rpc_uint16 HEPE;
743  rpc_uint8 num_of_aps_used;
744  rpc_uint8 fix_error_code;
745};
746
747struct rpc_loc_wiper_ap_info_s_type {
748    opaque mac_addr[6]; /* EVAL:[6]*/
749  rpc_int32 rssi;
750  rpc_uint16 channel;
751  rpc_uint8 ap_qualifier;
752};
753
754struct rpc_loc_wiper_ap_set_s_type {
755  rpc_uint8 num_of_aps;
756    rpc_loc_wiper_ap_info_s_type ap_info[50]; /* EVAL:[50]*/
757};
758
759struct rpc_loc_wiper_position_report_s_type {
760  rpc_uint8 wiper_valid_info_flag;
761  rpc_loc_wiper_fix_time_s_type wiper_fix_time;
762  rpc_loc_wiper_fix_pos_s_type wiper_fix_position;
763  rpc_loc_wiper_ap_set_s_type wiper_ap_set;
764};
765
766enum rpc_loc_wiper_status_e_type {
767  RPC_LOC_WIPER_STATUS_AVAILABLE = 1,
768  RPC_LOC_WIPER_STATUS_UNAVAILABLE = 2,
769  RPC_LOC_WIPER_STATUS_E_SIZE = 268435456
770};
771
772enum rpc_loc_fs_operation_e_type {
773  RPC_LOC_FS_CREATE_WRITE_FILE = 1,
774  RPC_LOC_FS_APPEND_FILE = 2,
775  RPC_LOC_FS_DELETE_FILE = 3,
776  RPC_LOC_FS_READ_FILE = 4,
777  RPC_LOC_FS_MAX = 268435456
778};
779
780struct rpc_loc_efs_data_s_type {
781    opaque filename[64]; /* EVAL:[64]*/
782  rpc_loc_fs_operation_e_type operation;
783  rpc_uint32 total_size;
784  opaque data_ptr<>;
785  rpc_uint32 part_len;
786  rpc_uint8 part;
787  rpc_uint8 total_parts;
788  rpc_uint32 reserved;
789};
790
791enum rpc_loc_lock_e_type {
792  RPC_LOC_LOCK_NONE = 1,
793  RPC_LOC_LOCK_MI = 2,
794  RPC_LOC_LOCK_MT = 3,
795  RPC_LOC_LOCK_ALL = 4,
796  RPC_LOC_LOCK_MAX = 268435456
797};
798
799typedef rpc_uint32 rpc_loc_nmea_sentence_type;
800
801typedef rpc_uint32 rpc_loc_assist_data_type;
802
803struct rpc_loc_assist_data_delete_s_type {
804  rpc_loc_assist_data_type type;
805    rpc_uint32 reserved[8]; /* EVAL:[8]*/
806};
807
808union rpc_loc_ioctl_data_u_type switch (rpc_loc_ioctl_e_type disc) {
809  case RPC_LOC_IOCTL_SET_FIX_CRITERIA:
810    rpc_loc_fix_criteria_s_type fix_criteria;
811  case RPC_LOC_IOCTL_INFORM_NI_USER_RESPONSE:
812    rpc_loc_user_verify_s_type user_verify_resp;
813  case RPC_LOC_IOCTL_INJECT_PREDICTED_ORBITS_DATA:
814    rpc_loc_predicted_orbits_data_s_type predicted_orbits_data;
815  case RPC_LOC_IOCTL_SET_PREDICTED_ORBITS_DATA_AUTO_DOWNLOAD:
816    rpc_loc_predicted_orbits_auto_download_config_s_type predicted_orbits_auto_download;
817  case RPC_LOC_IOCTL_INJECT_UTC_TIME:
818    rpc_loc_assist_data_time_s_type assistance_data_time;
819  case RPC_LOC_IOCTL_INJECT_POSITION:
820    rpc_loc_assist_data_pos_s_type assistance_data_position;
821  case RPC_LOC_IOCTL_INFORM_SERVER_OPEN_STATUS:
822    rpc_loc_server_open_status_s_type conn_open_status;
823  case RPC_LOC_IOCTL_INFORM_SERVER_CLOSE_STATUS:
824    rpc_loc_server_close_status_s_type conn_close_status;
825  case RPC_LOC_IOCTL_SEND_WIPER_POSITION_REPORT:
826    rpc_loc_wiper_position_report_s_type wiper_pos;
827  case RPC_LOC_IOCTL_NOTIFY_WIPER_STATUS:
828    rpc_loc_wiper_status_e_type wiper_status;
829  case RPC_LOC_IOCTL_SET_ENGINE_LOCK:
830    rpc_loc_lock_e_type engine_lock;
831  case RPC_LOC_IOCTL_SET_SBAS_CONFIG:
832    rpc_boolean sbas_mode;
833  case RPC_LOC_IOCTL_SET_NMEA_TYPES:
834    rpc_loc_nmea_sentence_type nmea_types;
835  case RPC_LOC_IOCTL_SET_ON_DEMAND_LPM:
836    rpc_boolean on_demand_lpm;
837  case  RPC_LOC_IOCTL_SET_CDMA_PDE_SERVER_ADDR:
838  case  RPC_LOC_IOCTL_SET_CDMA_MPC_SERVER_ADDR:
839  case  RPC_LOC_IOCTL_SET_UMTS_SLP_SERVER_ADDR:
840  case  RPC_LOC_IOCTL_SET_CUSTOM_PDE_SERVER_ADDR:
841    rpc_loc_server_info_s_type server_addr;
842  case RPC_LOC_IOCTL_DELETE_ASSIST_DATA:
843    rpc_loc_assist_data_delete_s_type assist_data_delete;
844  case RPC_LOC_IOCTL_ACCESS_EFS_DATA:
845    rpc_loc_efs_data_s_type efs_data;
846  default:
847    void;
848};
849
850union rpc_loc_ioctl_callback_data_u_type switch (rpc_loc_ioctl_e_type disc) {
851  case RPC_LOC_IOCTL_GET_API_VERSION:
852    rpc_loc_api_version_s_type api_version;
853  case RPC_LOC_IOCTL_GET_FIX_CRITERIA:
854    rpc_loc_fix_criteria_s_type fix_criteria;
855  case RPC_LOC_IOCTL_GET_ENGINE_LOCK:
856    rpc_loc_lock_e_type engine_lock;
857  case RPC_LOC_IOCTL_GET_SBAS_CONFIG:
858    rpc_boolean sbas_mode;
859  case RPC_LOC_IOCTL_GET_NMEA_TYPES:
860    rpc_loc_nmea_sentence_type nmea_types;
861  case RPC_LOC_IOCTL_GET_ON_DEMAND_LPM:
862    rpc_boolean on_demand_lpm;
863  case  RPC_LOC_IOCTL_GET_CDMA_PDE_SERVER_ADDR:
864  case  RPC_LOC_IOCTL_GET_CDMA_MPC_SERVER_ADDR:
865  case  RPC_LOC_IOCTL_GET_UMTS_SLP_SERVER_ADDR:
866  case  RPC_LOC_IOCTL_GET_CUSTOM_PDE_SERVER_ADDR:
867    rpc_loc_server_info_s_type server_addr;
868  case RPC_LOC_IOCTL_QUERY_PREDICTED_ORBITS_DATA_SOURCE:
869    rpc_loc_predicted_orbits_data_source_s_type predicted_orbits_data_source;
870  case RPC_LOC_IOCTL_QUERY_PREDICTED_ORBITS_DATA_VALIDITY:
871    rpc_loc_predicted_orbits_data_validity_report_s_type predicted_orbits_data_validity;
872  default:
873    void;
874};
875
876struct rpc_loc_ioctl_callback_s_type {
877  rpc_loc_ioctl_e_type type;
878  rpc_int32 status;
879  rpc_loc_ioctl_callback_data_u_type data;
880};
881
882union rpc_loc_event_payload_u_type switch (unsigned hyper disc) {
883  case RPC_LOC_EVENT_PARSED_POSITION_REPORT:
884    rpc_loc_parsed_position_s_type parsed_location_report;
885  case RPC_LOC_EVENT_SATELLITE_REPORT:
886    rpc_loc_gnss_info_s_type gnss_report;
887  case RPC_LOC_EVENT_NMEA_POSITION_REPORT:
888    rpc_loc_nmea_report_s_type nmea_report;
889  case RPC_LOC_EVENT_NI_NOTIFY_VERIFY_REQUEST:
890    rpc_loc_ni_event_s_type ni_request;
891  case RPC_LOC_EVENT_ASSISTANCE_DATA_REQUEST:
892    rpc_loc_assist_data_request_s_type assist_data_request;
893  case RPC_LOC_EVENT_LOCATION_SERVER_REQUEST:
894    rpc_loc_server_request_s_type loc_server_request;
895  case RPC_LOC_EVENT_IOCTL_REPORT:
896    rpc_loc_ioctl_callback_s_type ioctl_report;
897  case RPC_LOC_EVENT_STATUS_REPORT:
898    rpc_loc_status_event_s_type status_report;
899  case RPC_LOC_EVENT_WPS_NEEDED_REQUEST:
900    rpc_loc_qwip_request_s_type qwip_request;
901  case RPC_LOC_EVENT_RESERVED:
902    rpc_loc_reserved_payload_s_type reserved;
903  default:
904    void;
905};
906
907