OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / hardware / qcom / gps / loc_api / libloc_api-rpc / gen-1240 / loc_api_common.xdr
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
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) 2010 QUALCOMM Incorporated.
12   All Rights Reserved. QUALCOMM Proprietary and Confidential.
13   ---------------------------------------------------------------------------
14 =============================================================================*/
15
16 /*=============================================================================
17
18                               Edit History
19
20                              AUTO GENERATED
21
22 Generated by following versions of Htorpc modules:
23 Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/htorpc.pl#20 
24 Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/Start.pm#3 
25 Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/Htoxdr.pm#1 
26 Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/XDR.pm#7 
27 Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/Output.pm#29 
28 Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/Parser.pm#2 
29 Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/Metacomments.pm#6 
30 Id: //source/qcom/qct/core/mproc/tools/rel/04.01/htorpc/lib/Htorpc/SymbolTable.pm#3  
31
32 loc_api Definition File(s):
33 Id: //source/qcom/qct/modem/api/gps/main/latest/loc_api.h#16
34 =============================================================================*/
35 /*=============================================================================
36 $Header$ 
37 =============================================================================*/
38
39
40
41 const LOC_API_TOOLVERS = 0x00040024;
42 const LOC_API_FEATURES = 0x00000001;
43
44 const RPC_LOC_EVENT_NI_NOTIFY_VERIFY_REQUEST = 0x00000010;
45
46 const RPC_LOC_EVENT_WPS_NEEDED_REQUEST = 0x00000200;
47
48 const RPC_LOC_EVENT_IOCTL_REPORT = 0x00000080;
49
50 const RPC_LOC_EVENT_LOCATION_SERVER_REQUEST = 0x00000040;
51
52 const RPC_LOC_EVENT_RESERVED = 0x8000000000000000;
53
54 const RPC_LOC_EVENT_PARSED_POSITION_REPORT = 0x00000001;
55
56 const RPC_LOC_EVENT_ASSISTANCE_DATA_REQUEST = 0x00000020;
57
58 const RPC_LOC_EVENT_NMEA_POSITION_REPORT = 0x00000008;
59
60 const RPC_LOC_EVENT_SATELLITE_REPORT = 0x00000002;
61
62 const RPC_LOC_EVENT_STATUS_REPORT = 0x00000100;
63
64 const RPC_LOC_EVENT_CB_F_TYPE_VERSION = 0x00040001;
65 const RPC_LOC_OPEN_VERSION = 0x00040001;
66 const RPC_LOC_API_RPC_GLUE_CODE_INFO_REMOTE_VERSION = 0x00040001;
67 const RPC_LOC_API_NULL_VERSION = 0x00040001;
68 const RPC_LOC_STOP_FIX_VERSION = 0x00040001;
69 const RPC_LOC_IOCTL_VERSION = 0x00040001;
70 const RPC_LOC_START_FIX_VERSION = 0x00040001;
71 const RPC_LOC_CLOSE_VERSION = 0x00040001;
72 const RPC_LOC_API_API_VERSIONS_VERSION = 0x00040001;
73 const RPC_LOC_API_API_MAJOR_NUM = 0x0004;
74 const RPC_LOC_APIAPI_VERSION_IS_HASHKEY = 0;
75
76 typedef bool rpc_boolean;
77
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<80>; /* EVAL:[LOC_API_MAX_SV_COUNT]*/  
189 };
190
191 struct rpc_loc_nmea_report_s_type {
192   rpc_uint16 length;
193     opaque nmea_sentences[1200]; /* EVAL:[1200]*/  
194 };
195
196 enum 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
202 enum 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
208 enum 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
214 union 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
223 struct 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
228 enum 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
234 struct rpc_loc_server_addr_ipv4_type {
235   rpc_uint32 addr;
236   rpc_uint16 port;
237 };
238
239 struct rpc_loc_server_addr_url_type {
240   rpc_uint16 length;
241     opaque addr[256]; /* EVAL:[256]*/  
242 };
243
244 union 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
253 struct 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
258 enum 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
267 enum 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
275 enum 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
311 enum 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
325 enum 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
333 struct rpc_loc_ni_vx_requester_id_s_type {
334   unsigned char requester_id_length;
335     opaque requester_id[200]; /* EVAL:[200]*/  
336 };
337
338 struct 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
350 enum 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
364 struct 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
370 struct 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
376 struct 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
382 struct 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
390 struct 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
403 struct 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
408 enum 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
415 struct rpc_loc_ni_deferred_location_s_type {
416   unsigned char unused_bits;
417   unsigned char ms_available;
418 };
419
420 struct 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
426 struct rpc_loc_ni_service_type_id_s_type {
427   unsigned char lcs_service_type_id;
428 };
429
430 struct 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
446 enum 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
451 struct 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
456 union 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
469 struct 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
474 enum 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
484 struct 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
493 struct 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
499 union 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
508 struct 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
513 typedef rpc_uint32 rpc_loc_server_connection_handle;
514
515 enum 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
523 enum 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
529 struct 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
534 struct rpc_loc_server_close_req_s_type {
535   rpc_loc_server_connection_handle conn_handle;
536 };
537
538 union 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
547 struct rpc_loc_server_request_s_type {
548   rpc_loc_server_request_e_type event;
549   rpc_loc_server_request_u_type payload;
550 };
551
552 enum 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
560 struct rpc_loc_qwip_request_s_type {
561   rpc_loc_qwip_request_e_type request_type;
562   rpc_uint16 tbf_ms;
563 };
564
565 struct rpc_loc_reserved_payload_s_type {
566   rpc_uint16 data_size;
567   opaque data<>;
568 };
569
570 enum 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
611 struct rpc_loc_api_version_s_type {
612   unsigned char major;
613   unsigned char minor;
614 };
615
616 enum 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
622 enum 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
634 enum 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
642 struct 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
655 enum 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
662 struct 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
667 enum 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
672 struct 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
681 struct rpc_loc_predicted_orbits_data_validity_report_s_type {
682   rpc_uint64 start_time_utc;
683   rpc_uint16 valid_duration_hrs;
684 };
685
686 struct rpc_loc_predicted_orbits_auto_download_config_s_type {
687   rpc_boolean enable;
688   unsigned char auto_check_every_hrs;
689 };
690
691 struct rpc_loc_assist_data_time_s_type {
692   rpc_uint64 time_utc;
693   rpc_uint32 uncertainty;
694 };
695
696 typedef rpc_uint64 rpc_loc_assist_pos_valid_mask_type;
697
698 struct 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
712 enum 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
718 struct 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
724 enum 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
730 struct 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
735 struct rpc_loc_wiper_fix_time_s_type {
736   rpc_uint32 slow_clock_count;
737 };
738
739 struct 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
747 struct 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
754 struct 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
759 struct 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
766 enum 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
772 enum 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
780 struct 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
791 enum 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
799 typedef rpc_uint32 rpc_loc_nmea_sentence_type;
800
801 typedef rpc_uint32 rpc_loc_assist_data_type;
802
803 struct rpc_loc_assist_data_delete_s_type {
804   rpc_loc_assist_data_type type;
805     rpc_uint32 reserved[8]; /* EVAL:[8]*/  
806 };
807
808 union 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
850 union 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
876 struct 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
882 union 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