Home | History | Annotate | Download | only in gen-1240
      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 
    907