Home | History | Annotate | Download | only in xdr
      1 /* Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
      2  *
      3  * Redistribution and use in source and binary forms, with or without
      4  * modification, are permitted provided that the following conditions are
      5  * met:
      6  *     * Redistributions of source code must retain the above copyright
      7  *       notice, this list of conditions and the following disclaimer.
      8  *     * Redistributions in binary form must reproduce the above
      9  *       copyright notice, this list of conditions and the following
     10  *       disclaimer in the documentation and/or other materials provided
     11  *       with the distribution.
     12  *     * Neither the name of The Linux Foundation, nor the names of its
     13  *       contributors may be used to endorse or promote products derived
     14  *       from this software without specific prior written permission.
     15  *
     16  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
     17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
     19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
     20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
     23  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     24  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
     25  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
     26  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27  *
     28  */
     29 /* LOC_API TOOL VERSION: 4.48 */
     30 /* GENERATED: TUE JUN 14 2011 */
     31 /*=============================================================================
     32                       L O C _ A P I _ C O M M O N . X D R
     33 
     34 GENERAL DESCRIPTION
     35   This is an AUTO GENERATED file that provides an xdr compatible definition of
     36   an api that represents the grouping of the different callback functions the
     37   loc_api API supports.
     38 
     39   ---------------------------------------------------------------------------
     40 
     41 
     42   ---------------------------------------------------------------------------
     43 =============================================================================*/
     44 
     45 /*=============================================================================
     46 
     47                               Edit History
     48 
     49                              AUTO GENERATED
     50 
     51 Generated by following versions of Htorpc modules:
     52 Id: //source/qcom/qct/core/mproc/tools/rel/2h09/htorpc/htorpc.pl#1
     53 Id: //source/qcom/qct/core/mproc/tools/rel/2h09/htorpc/lib/Htorpc/Start.pm#1
     54 Id: //source/qcom/qct/core/mproc/tools/rel/2h09/htorpc/lib/Htorpc/Htoxdr.pm#1
     55 Id: //source/qcom/qct/core/mproc/tools/rel/2h09/htorpc/lib/Htorpc/XDR.pm#3
     56 Id: //source/qcom/qct/core/mproc/tools/rel/2h09/htorpc/lib/Htorpc/Output.pm#5
     57 Id: //source/qcom/qct/core/mproc/tools/rel/2h09/htorpc/lib/Htorpc/Parser.pm#1
     58 Id: //source/qcom/qct/core/mproc/tools/rel/2h09/htorpc/lib/Htorpc/Metacomments.pm#1
     59 Id: //source/qcom/qct/core/mproc/tools/rel/2h09/htorpc/lib/Htorpc/SymbolTable.pm#1
     60 
     61 loc_api Definition File(s):
     62 Id: //source/qcom/qct/modem/api/gps/main/latest/loc_api.h#24
     63 =============================================================================*/
     64 /*=============================================================================
     65 $Header$
     66 =============================================================================*/
     67 
     68 
     69 
     70 const LOC_API_TOOLVERS = 0x00040030;
     71 const LOC_API_FEATURES = 0x00000001;
     72 
     73 const RPC_LOC_EVENT_STATUS_REPORT = 0x00000100;
     74 
     75 const RPC_LOC_EVENT_ASSISTANCE_DATA_REQUEST = 0x00000020;
     76 
     77 const RPC_LOC_EVENT_WPS_NEEDED_REQUEST = 0x00000200;
     78 
     79 const RPC_LOC_EVENT_SATELLITE_REPORT = 0x00000002;
     80 
     81 const RPC_LOC_EVENT_PARSED_POSITION_REPORT = 0x00000001;
     82 
     83 const RPC_LOC_EVENT_RESERVED = 0x8000000000000000;
     84 
     85 const RPC_LOC_EVENT_LOCATION_SERVER_REQUEST = 0x00000040;
     86 
     87 const RPC_LOC_EVENT_NMEA_POSITION_REPORT = 0x00000008;
     88 
     89 const RPC_LOC_EVENT_IOCTL_REPORT = 0x00000080;
     90 
     91 const RPC_LOC_EVENT_NMEA_1HZ_REPORT = 0x00000004;
     92 
     93 const RPC_LOC_EVENT_NI_NOTIFY_VERIFY_REQUEST = 0x00000010;
     94 
     95 const RPC_LOC_API_CB_NULL_VERSION = 0x00050002;
     96 const RPC_LOC_EVENT_CB_F_TYPE_VERSION = 0x00050001;
     97 const RPC_LOC_API_API_VERSIONS_VERSION = 0x00050001;
     98 const RPC_LOC_STOP_FIX_VERSION = 0x00050001;
     99 const RPC_LOC_START_FIX_VERSION = 0x00050001;
    100 const RPC_LOC_IOCTL_VERSION = 0x00050001;
    101 const RPC_LOC_CLOSE_VERSION = 0x00050001;
    102 const RPC_LOC_API_RPC_GLUE_CODE_INFO_REMOTE_VERSION = 0x00050001;
    103 const RPC_LOC_OPEN_VERSION = 0x00050001;
    104 const RPC_LOC_API_NULL_VERSION = 0x00050001;
    105 const RPC_LOC_API_API_MAJOR_NUM = 0x0005;
    106 const RPC_LOC_APIAPI_VERSION_IS_HASHKEY = 0;
    107 
    108 typedef rpc_int32 rpc_loc_client_handle_type;
    109 
    110 typedef rpc_uint64 rpc_loc_event_mask_type;
    111 
    112 typedef rpc_uint64 rpc_loc_position_valid_mask_type;
    113 
    114 typedef rpc_uint32 rpc_loc_pos_technology_mask_type;
    115 
    116 enum rpc_loc_session_status_e_type {
    117   RPC_LOC_SESS_STATUS_SUCCESS = 0,
    118   RPC_LOC_SESS_STATUS_IN_PROGESS = 1,
    119   RPC_LOC_SESS_STATUS_GENERAL_FAILURE = 2,
    120   RPC_LOC_SESS_STATUS_TIMEOUT = 3,
    121   RPC_LOC_SESS_STATUS_USER_END = 4,
    122   RPC_LOC_SESS_STATUS_BAD_PARAMETER = 5,
    123   RPC_LOC_SESS_STATUS_PHONE_OFFLINE = 6,
    124   RPC_LOC_SESS_STATUS_ENGINE_LOCKED = 7,
    125   RPC_LOC_SESS_STATUS_MAX = 268435456
    126 };
    127 
    128 struct rpc_loc_calendar_time_s_type {
    129   rpc_uint16 year;
    130   unsigned char month;
    131   unsigned char day_of_week;
    132   unsigned char day;
    133   unsigned char hour;
    134   unsigned char minute;
    135   unsigned char second;
    136   rpc_uint16 millisecond;
    137 };
    138 
    139 struct rpc_loc_parsed_position_s_type {
    140   rpc_loc_position_valid_mask_type valid_mask;
    141   rpc_loc_session_status_e_type session_status;
    142   rpc_loc_calendar_time_s_type timestamp_calendar;
    143   rpc_uint64 timestamp_utc;
    144   rpc_uint8 leap_seconds;
    145   float time_unc;
    146   double latitude;
    147   double longitude;
    148   float altitude_wrt_ellipsoid;
    149   float altitude_wrt_mean_sea_level;
    150   float speed_horizontal;
    151   float speed_vertical;
    152   float heading;
    153   float hor_unc_circular;
    154   float hor_unc_ellipse_semi_major;
    155   float hor_unc_ellipse_semi_minor;
    156   float hor_unc_ellipse_orient_azimuth;
    157   float vert_unc;
    158   float speed_unc;
    159   float heading_unc;
    160   unsigned char confidence_horizontal;
    161   unsigned char confidence_vertical;
    162   float magnetic_deviation;
    163   rpc_loc_pos_technology_mask_type technology_mask;
    164 };
    165 
    166 enum rpc_loc_sv_system_e_type {
    167   RPC_LOC_SV_SYSTEM_GPS = 1,
    168   RPC_LOC_SV_SYSTEM_GALILEO = 2,
    169   RPC_LOC_SV_SYSTEM_SBAS = 3,
    170   RPC_LOC_SV_SYSTEM_COMPASS = 4,
    171   RPC_LOC_SV_SYSTEM_GLONASS = 5,
    172   RPC_LOC_SV_SYSTEM_MAX = 268435456
    173 };
    174 
    175 enum rpc_loc_sv_status_e_type {
    176   RPC_LOC_SV_STATUS_IDLE = 1,
    177   RPC_LOC_SV_STATUS_SEARCH = 2,
    178   RPC_LOC_SV_STATUS_TRACK = 3,
    179   RPC_LOC_SV_STATUS_MAX = 268435456
    180 };
    181 
    182 typedef rpc_uint32 rpc_loc_sv_info_valid_mask_type;
    183 
    184 struct rpc_loc_sv_info_s_type {
    185   rpc_loc_sv_info_valid_mask_type valid_mask;
    186   rpc_loc_sv_system_e_type system;
    187   rpc_uint8 prn;
    188   rpc_uint8 health_status;
    189   rpc_loc_sv_status_e_type process_status;
    190   rpc_boolean has_eph;
    191   rpc_boolean has_alm;
    192   float elevation;
    193   float azimuth;
    194   float snr;
    195 };
    196 
    197 typedef rpc_uint32 rpc_loc_gnss_info_valid_mask_type;
    198 
    199 struct rpc_loc_gnss_info_s_type {
    200   rpc_loc_gnss_info_valid_mask_type valid_mask;
    201   float position_dop;
    202   float horizontal_dop;
    203   float vertical_dop;
    204   rpc_boolean altitude_assumed;
    205   rpc_uint16 sv_count;
    206     rpc_loc_sv_info_s_type sv_list<80>; /* EVAL:[LOC_API_MAX_SV_COUNT]*/
    207 };
    208 
    209 struct rpc_loc_nmea_report_s_type {
    210   rpc_uint16 length;
    211   opaque nmea_sentences[200];
    212 };
    213 
    214 enum rpc_loc_status_event_e_type {
    215   RPC_LOC_STATUS_EVENT_ENGINE_STATE = 1,
    216   RPC_LOC_STATUS_EVENT_FIX_SESSION_STATE = 2,
    217   RPC_LOC_STATUS_EVENT_MAX = 268435456
    218 };
    219 
    220 enum rpc_loc_engine_state_e_type {
    221   RPC_LOC_ENGINE_STATE_ON = 1,
    222   RPC_LOC_ENGINE_STATE_OFF = 2,
    223   RPC_LOC_ENGINE_STATE_MAX = 268435456
    224 };
    225 
    226 enum rpc_loc_fix_session_state_e_type {
    227   RPC_LOC_FIX_SESSION_STATE_BEGIN = 1,
    228   RPC_LOC_FIX_SESSION_STATE_END = 2,
    229   RPC_LOC_FIX_SESSION_STATE_MAX = 268435456
    230 };
    231 
    232 union rpc_loc_status_event_payload_u_type switch (rpc_loc_status_event_e_type disc) {
    233   case RPC_LOC_STATUS_EVENT_ENGINE_STATE:
    234     rpc_loc_engine_state_e_type engine_state;
    235   case RPC_LOC_STATUS_EVENT_FIX_SESSION_STATE:
    236     rpc_loc_fix_session_state_e_type fix_session_state;
    237   default:
    238     void;
    239 };
    240 
    241 struct rpc_loc_status_event_s_type {
    242   rpc_loc_status_event_e_type event;
    243   rpc_loc_status_event_payload_u_type payload;
    244 };
    245 
    246 enum rpc_loc_server_addr_e_type {
    247   RPC_LOC_SERVER_ADDR_IPV4 = 1,
    248   RPC_LOC_SERVER_ADDR_URL = 2,
    249   RPC_LOC_SERVER_ADDR_IPV6 = 3,
    250   RPC_LOC_SERVER_ADDR_MAX = 268435456
    251 };
    252 
    253 struct rpc_loc_server_addr_ipv4_type {
    254   rpc_uint32 addr;
    255   rpc_uint16 port;
    256 };
    257 
    258 struct rpc_loc_server_addr_url_type {
    259   rpc_uint16 length;
    260   opaque addr[256];
    261 };
    262 
    263 struct rpc_loc_server_addr_ipv6_type {
    264   rpc_uint16 addr[8];
    265   rpc_uint32 port;
    266 };
    267 
    268 union rpc_loc_server_addr_u_type switch (rpc_loc_server_addr_e_type disc) {
    269   case RPC_LOC_SERVER_ADDR_IPV4:
    270     rpc_loc_server_addr_ipv4_type ipv4;
    271   case RPC_LOC_SERVER_ADDR_URL:
    272     rpc_loc_server_addr_url_type url;
    273   case RPC_LOC_SERVER_ADDR_IPV6:
    274     rpc_loc_server_addr_ipv6_type ipv6;
    275   default:
    276     void;
    277 };
    278 
    279 struct rpc_loc_server_info_s_type {
    280   rpc_loc_server_addr_e_type addr_type;
    281   rpc_loc_server_addr_u_type addr_info;
    282 };
    283 
    284 enum rpc_loc_ni_notify_verify_e_type {
    285   RPC_LOC_NI_USER_NO_NOTIFY_NO_VERIFY = 1,
    286   RPC_LOC_NI_USER_NOTIFY_ONLY = 2,
    287   RPC_LOC_NI_USER_NOTIFY_VERIFY_ALLOW_NO_RESP = 3,
    288   RPC_LOC_NI_USER_NOTIFY_VERIFY_NOT_ALLOW_NO_RESP = 4,
    289   RPC_LOC_NI_USER_PRIVACY_OVERRIDE = 5,
    290   RPC_LOC_NI_USER_NOTIFY_VERITY_TYPE_MAX = 268435456
    291 };
    292 
    293 enum rpc_loc_ni_event_e_type {
    294   RPC_LOC_NI_EVENT_VX_NOTIFY_VERIFY_REQ = 1,
    295   RPC_LOC_NI_EVENT_SUPL_NOTIFY_VERIFY_REQ = 2,
    296   RPC_LOC_NI_EVENT_UMTS_CP_NOTIFY_VERIFY_REQ = 3,
    297   RPC_LOC_NI_EVENT_VX_SERVICE_INTERACTION_REQ = 4,
    298   RPC_LOC_NI_EVENT_MAX = 268435456
    299 };
    300 
    301 enum rpc_loc_ni_datacoding_scheme_e_type {
    302   RPC_LOC_NI_PRESUPL_ISO646IRV = 0,
    303   RPC_LOC_NI_PRESUPL_ISO8859 = 1,
    304   RPC_LOC_NI_PRESUPL_UTF8 = 2,
    305   RPC_LOC_NI_PRESUPL_UTF16 = 3,
    306   RPC_LOC_NI_PRESUPL_UCS2 = 4,
    307   RPC_LOC_NI_PRESUPL_GSM_DEFAULT = 5,
    308   RPC_LOC_NI_PRESUPL_SHIFT_JIS = 6,
    309   RPC_LOC_NI_PRESUPL_JIS = 7,
    310   RPC_LOC_NI_PRESUPL_EUC = 8,
    311   RPC_LOC_NI_PRESUPL_GB2312 = 9,
    312   RPC_LOC_NI_PRESUPL_CNS11643 = 10,
    313   RPC_LOC_NI_PRESUPL_KSC1001 = 11,
    314   RPC_LOC_NI_PRESUPL_ENCODING_UNKNOWN = 2147483647,
    315   RPC_LOC_NI_SS_GERMAN = 12,
    316   RPC_LOC_NI_SS_ENGLISH = 13,
    317   RPC_LOC_NI_SS_ITALIAN = 14,
    318   RPC_LOC_NI_SS_FRENCH = 15,
    319   RPC_LOC_NI_SS_SPANISH = 16,
    320   RPC_LOC_NI_SS_DUTCH = 17,
    321   RPC_LOC_NI_SS_SWEDISH = 18,
    322   RPC_LOC_NI_SS_DANISH = 19,
    323   RPC_LOC_NI_SS_PORTUGUESE = 20,
    324   RPC_LOC_NI_SS_FINNISH = 21,
    325   RPC_LOC_NI_SS_NORWEGIAN = 22,
    326   RPC_LOC_NI_SS_GREEK = 23,
    327   RPC_LOC_NI_SS_TURKISH = 24,
    328   RPC_LOC_NI_SS_HUNGARIAN = 25,
    329   RPC_LOC_NI_SS_POLISH = 26,
    330   RPC_LOC_NI_SS_LANGUAGE_UNSPEC = 27,
    331   RPC_LOC_NI_SUPL_UTF8 = 28,
    332   RPC_LOC_NI_SUPL_UCS2 = 29,
    333   RPC_LOC_NI_SUPL_GSM_DEFAULT = 30,
    334   RPC_LOC_NI_SUPL_ENCODING_UNKNOWN = 2147483647
    335 };
    336 
    337 enum rpc_loc_ni_vx_requester_id_encoding_scheme_e_type {
    338   RPC_LOC_NI_VX_OCTET = 0,
    339   RPC_LOC_NI_VX_EXN_PROTOCOL_MSG = 1,
    340   RPC_LOC_NI_VX_ASCII = 2,
    341   RPC_LOC_NI_VX_IA5 = 3,
    342   RPC_LOC_NI_VX_UNICODE = 4,
    343   RPC_LOC_NI_VX_SHIFT_JIS = 5,
    344   RPC_LOC_NI_VX_KOREAN = 6,
    345   RPC_LOC_NI_VX_LATIN_HEBREW = 7,
    346   RPC_LOC_NI_VX_LATIN = 8,
    347   RPC_LOC_NI_VX_GSM = 9,
    348   RPC_LOC_NI_VX_ENCODING_TYPE_MAX = 268435456
    349 };
    350 
    351 enum rpc_loc_ni_vx_pos_mode_e_type {
    352   RPC_LOC_VX_MS_ASSISTED_ONLY = 1,
    353   RPC_LOC_VX_MS_BASED_ONLY = 2,
    354   RPC_LOC_VX_MS_ASSISTED_PREF_MSBASED_ALLWD = 3,
    355   RPC_LOC_VX_MS_BASED_PREF_ASSISTED_ALLWD = 4,
    356   RPC_LOC_VX_POS_MODE_MAX = 268435456
    357 };
    358 
    359 struct rpc_loc_ni_vx_requester_id_s_type {
    360   unsigned char requester_id_length;
    361   opaque requester_id[200];
    362 };
    363 
    364 struct rpc_loc_ni_vx_notify_verify_req_s_type {
    365   rpc_loc_ni_notify_verify_e_type notification_priv_type;
    366   unsigned char pos_qos_incl;
    367   unsigned char pos_qos;
    368   rpc_uint32 num_fixes;
    369   rpc_uint32 tbf;
    370   rpc_loc_ni_vx_pos_mode_e_type pos_mode;
    371   rpc_loc_ni_vx_requester_id_encoding_scheme_e_type encoding_scheme;
    372   rpc_loc_ni_vx_requester_id_s_type requester_id;
    373   rpc_uint16 user_resp_timer_val;
    374 };
    375 
    376 enum rpc_loc_ni_supl_pos_method_e_type {
    377   RPC_LOC_NI_POSMETHOD_AGPS_SETASSISTED = 1,
    378   RPC_LOC_NI_POSMETHOD_AGPS_SETBASED = 2,
    379   RPC_LOC_NI_POSMETHOD_AGPS_SETASSISTED_PREF = 3,
    380   RPC_LOC_NI_POSMETHOD_AGPS_SETBASED_PREF = 4,
    381   RPC_LOC_NI_POSMETHOD_AUTONOMOUS_GPS = 5,
    382   RPC_LOC_NI_POSMETHOD_AFLT = 6,
    383   RPC_LOC_NI_POSMETHOD_ECID = 7,
    384   RPC_LOC_NI_POSMETHOD_EOTD = 8,
    385   RPC_LOC_NI_POSMETHOD_OTDOA = 9,
    386   RPC_LOC_NI_POSMETHOD_NO_POSITION = 10,
    387   RPC_LOC_NI_POSMETHOD_MAX = 268435456
    388 };
    389 
    390 struct rpc_loc_ni_supl_slp_session_id_s_type {
    391   unsigned char presence;
    392   opaque session_id[4];
    393   rpc_loc_server_info_s_type slp_address;
    394 };
    395 
    396 struct rpc_loc_ni_requestor_id_s_type {
    397   unsigned char data_coding_scheme;
    398   opaque requestor_id_string[200];
    399   unsigned char string_len;
    400 };
    401 
    402 struct rpc_loc_ni_supl_client_name_s_type {
    403   unsigned char data_coding_scheme;
    404   opaque client_name_string[64];
    405   unsigned char string_len;
    406 };
    407 
    408 struct rpc_loc_ni_supl_qop_s_type {
    409   unsigned char bit_mask;
    410   unsigned char horacc;
    411   unsigned char veracc;
    412   rpc_uint16 maxLocAge;
    413   unsigned char delay;
    414 };
    415 
    416 struct rpc_loc_ni_supl_notify_verify_req_s_type {
    417   rpc_loc_ni_notify_verify_e_type notification_priv_type;
    418   rpc_uint16 flags;
    419   rpc_loc_ni_supl_slp_session_id_s_type supl_slp_session_id;
    420   opaque supl_hash[8];
    421   rpc_loc_ni_datacoding_scheme_e_type datacoding_scheme;
    422   rpc_loc_ni_supl_pos_method_e_type pos_method;
    423   rpc_loc_ni_requestor_id_s_type requestor_id;
    424   rpc_loc_ni_supl_client_name_s_type client_name;
    425   rpc_loc_ni_supl_qop_s_type supl_qop;
    426   rpc_uint16 user_response_timer;
    427 };
    428 
    429 struct rpc_loc_ni_ext_client_address_s_type {
    430   unsigned char ext_client_address_len;
    431   opaque ext_client_address[20];
    432 };
    433 
    434 enum rpc_loc_ni_location_type_e_type {
    435   RPC_LOC_NI_LOCATIONTYPE_CURRENT_LOCATION = 1,
    436   RPC_LOC_NI_LOCATIONTYPE_CURRENT_OR_LAST_KNOWN_LOCATION = 2,
    437   RPC_LOC_NI_LOCATIONTYPE_INITIAL_LOCATION = 3,
    438   RPC_LOC_NI_LOCATIONTYPE_MAX = 268435456
    439 };
    440 
    441 struct rpc_loc_ni_deferred_location_s_type {
    442   unsigned char unused_bits;
    443   unsigned char ms_available;
    444 };
    445 
    446 struct rpc_loc_ni_codeword_string_s_type {
    447   unsigned char data_coding_scheme;
    448   opaque lcs_codeword_string[20];
    449   unsigned char string_len;
    450 };
    451 
    452 struct rpc_loc_ni_service_type_id_s_type {
    453   unsigned char lcs_service_type_id;
    454 };
    455 
    456 struct rpc_loc_ni_umts_cp_notify_verify_req_s_type {
    457   rpc_loc_ni_notify_verify_e_type notification_priv_type;
    458   unsigned char invoke_id;
    459   rpc_uint16 flags;
    460   unsigned char notification_length;
    461   opaque notification_text[64];
    462   rpc_loc_ni_datacoding_scheme_e_type datacoding_scheme;
    463   rpc_loc_ni_ext_client_address_s_type ext_client_address_data;
    464   rpc_loc_ni_location_type_e_type location_type;
    465   rpc_loc_ni_deferred_location_s_type deferred_location;
    466   rpc_loc_ni_requestor_id_s_type requestor_id;
    467   rpc_loc_ni_codeword_string_s_type codeword_string;
    468   rpc_loc_ni_service_type_id_s_type service_type_id;
    469   rpc_uint16 user_response_timer;
    470 };
    471 
    472 enum rpc_loc_ni_service_interaction_e_type {
    473   RPC_LOC_NI_SERVICE_INTERACTION_ONGOING_NI_INCOMING_MO = 1,
    474   RPC_LOC_NI_SERVICE_INTERACTION_MAX = 268435456
    475 };
    476 
    477 struct rpc_loc_ni_vx_service_interaction_req_s_type {
    478   rpc_loc_ni_vx_notify_verify_req_s_type ni_vx_req;
    479   rpc_loc_ni_service_interaction_e_type service_interation_type;
    480 };
    481 
    482 union rpc_loc_ni_event_payload_u_type switch (rpc_loc_ni_event_e_type disc) {
    483   case RPC_LOC_NI_EVENT_VX_NOTIFY_VERIFY_REQ:
    484     rpc_loc_ni_vx_notify_verify_req_s_type vx_req;
    485   case RPC_LOC_NI_EVENT_SUPL_NOTIFY_VERIFY_REQ:
    486     rpc_loc_ni_supl_notify_verify_req_s_type supl_req;
    487   case RPC_LOC_NI_EVENT_UMTS_CP_NOTIFY_VERIFY_REQ:
    488     rpc_loc_ni_umts_cp_notify_verify_req_s_type umts_cp_req;
    489   case RPC_LOC_NI_EVENT_VX_SERVICE_INTERACTION_REQ:
    490     rpc_loc_ni_vx_service_interaction_req_s_type service_interaction_req;
    491   default:
    492     void;
    493 };
    494 
    495 struct rpc_loc_ni_event_s_type {
    496   rpc_loc_ni_event_e_type event;
    497   rpc_loc_ni_event_payload_u_type payload;
    498 };
    499 
    500 enum rpc_loc_assist_data_request_e_type {
    501   RPC_LOC_ASSIST_DATA_TIME_REQ = 1,
    502   RPC_LOC_ASSIST_DATA_PREDICTED_ORBITS_REQ = 2,
    503   RPC_LOC_ASSIST_DATA_POSITION_INJECTION_REQ = 3,
    504   RPC_LOC_ASSIST_DATA_MAX = 268435456
    505 };
    506 
    507 typedef string rpc_struct_loc_time_download_source_s_type_servers_ptr<256>; /* EVAL:[LOC_API_MAX_SERVER_ADDR_LENGTH]*/
    508 
    509 typedef rpc_struct_loc_time_download_source_s_type_servers_ptr rpc_struct_loc_time_download_source_s_type_servers[3];
    510 
    511 struct rpc_loc_time_download_source_s_type {
    512   rpc_uint32 delay_threshold;
    513   rpc_struct_loc_time_download_source_s_type_servers servers;
    514 };
    515 
    516 typedef string rpc_struct_loc_predicted_orbits_data_source_s_type_servers_ptr<LOC_API_MAX_SERVER_ADDR_LENGTH>;
    517 
    518 typedef rpc_struct_loc_predicted_orbits_data_source_s_type_servers_ptr rpc_struct_loc_predicted_orbits_data_source_s_type_servers[3];
    519 
    520 struct rpc_loc_predicted_orbits_data_source_s_type {
    521   rpc_uint32 max_file_size;
    522   rpc_uint32 max_part_size;
    523   rpc_struct_loc_predicted_orbits_data_source_s_type_servers servers;
    524 };
    525 
    526 struct rpc_loc_pos_inj_request_s_type {
    527   rpc_uint32 flags;
    528   double latitude;
    529   double longitude;
    530   rpc_uint32 position_uncertainty;
    531   rpc_uint64 timestamp;
    532 };
    533 
    534 union rpc_loc_assist_data_request_payload_u_type switch (rpc_loc_assist_data_request_e_type disc) {
    535   case RPC_LOC_ASSIST_DATA_TIME_REQ:
    536     rpc_loc_time_download_source_s_type time_download;
    537   case RPC_LOC_ASSIST_DATA_PREDICTED_ORBITS_REQ:
    538     rpc_loc_predicted_orbits_data_source_s_type data_download;
    539   case RPC_LOC_ASSIST_DATA_POSITION_INJECTION_REQ:
    540     rpc_loc_pos_inj_request_s_type pos_injection;
    541   default:
    542     void;
    543 };
    544 
    545 struct rpc_loc_assist_data_request_s_type {
    546   rpc_loc_assist_data_request_e_type event;
    547   rpc_loc_assist_data_request_payload_u_type payload;
    548 };
    549 
    550 typedef rpc_uint32 rpc_loc_server_connection_handle;
    551 
    552 enum rpc_loc_server_protocol_e_type {
    553   RPC_LOC_SERVER_PROTOCOL_DEFAULT = 0,
    554   RPC_LOC_SERVER_PROTOCOL_SUPL = 1,
    555   RPC_LOC_SERVER_PROTOCOL_VX_MPC = 2,
    556   RPC_LOC_SERVER_PROTOCOL_VX_PDE = 3,
    557   RPC_LOC_SERVER_PROTOCOL_MAX = 16777216
    558 };
    559 
    560 enum rpc_loc_server_connection_e_type {
    561   RPC_LOC_SERVER_CONNECTION_LBS = 0,
    562   RPC_LOC_SERVER_CONNECTION_WWAN_INTERNET,
    563   RPC_LOC_SERVER_CONNECTION_MAX = 16777216
    564 };
    565 
    566 enum rpc_loc_server_request_e_type {
    567   RPC_LOC_SERVER_REQUEST_OPEN = 1,
    568   RPC_LOC_SERVER_REQUEST_CLOSE = 2,
    569   RPC_LOC_SERVER_REQUEST_MULTI_OPEN = 3,
    570   RPC_LOC_SERVER_REQUEST_MAX = 268435456
    571 };
    572 
    573 struct rpc_loc_server_open_req_s_type {
    574   rpc_loc_server_connection_handle conn_handle;
    575   rpc_loc_server_protocol_e_type protocol;
    576 };
    577 
    578 struct rpc_loc_server_multi_open_req_s_type {
    579   rpc_loc_server_connection_handle conn_handle;
    580   rpc_loc_server_protocol_e_type protocol;
    581   rpc_loc_server_connection_e_type connection_type;
    582 };
    583 
    584 struct rpc_loc_server_close_req_s_type {
    585   rpc_loc_server_connection_handle conn_handle;
    586 };
    587 
    588 union rpc_loc_server_request_u_type switch (rpc_loc_server_request_e_type disc) {
    589   case RPC_LOC_SERVER_REQUEST_OPEN:
    590     rpc_loc_server_open_req_s_type open_req;
    591   case RPC_LOC_SERVER_REQUEST_CLOSE:
    592     rpc_loc_server_close_req_s_type close_req;
    593   case RPC_LOC_SERVER_REQUEST_MULTI_OPEN:
    594     rpc_loc_server_multi_open_req_s_type multi_open_req;
    595   default:
    596     void;
    597 };
    598 
    599 struct rpc_loc_server_request_s_type {
    600   rpc_loc_server_request_e_type event;
    601   rpc_loc_server_request_u_type payload;
    602 };
    603 
    604 enum rpc_loc_qwip_request_e_type {
    605   RPC_LOC_QWIP_START_PERIODIC_HI_FREQ_FIXES = 0,
    606   RPC_LOC_QWIP_START_PERIODIC_KEEP_WARM,
    607   RPC_LOC_QWIP_STOP_PERIODIC_FIXES,
    608   RPC_LOC_QWIP_SUSPEND,
    609   RPC_LOC_QWIP_REQUEST_MAX = 268435456
    610 };
    611 
    612 struct rpc_loc_qwip_request_s_type {
    613   rpc_loc_qwip_request_e_type request_type;
    614   rpc_uint16 tbf_ms;
    615 };
    616 
    617 struct rpc_loc_reserved_payload_s_type {
    618   rpc_uint16 data_size;
    619   opaque data<>;
    620 };
    621 
    622 enum rpc_loc_ioctl_e_type {
    623   RPC_LOC_IOCTL_GET_API_VERSION = 1,
    624   RPC_LOC_IOCTL_SET_FIX_CRITERIA = 2,
    625   RPC_LOC_IOCTL_GET_FIX_CRITERIA = 3,
    626   RPC_LOC_IOCTL_SERVICE_START_INDEX = 400,
    627   RPC_LOC_IOCTL_INFORM_NI_USER_RESPONSE = 400,
    628   RPC_LOC_IOCTL_INJECT_PREDICTED_ORBITS_DATA = 401,
    629   RPC_LOC_IOCTL_QUERY_PREDICTED_ORBITS_DATA_VALIDITY = 402,
    630   RPC_LOC_IOCTL_QUERY_PREDICTED_ORBITS_DATA_SOURCE = 403,
    631   RPC_LOC_IOCTL_SET_PREDICTED_ORBITS_DATA_AUTO_DOWNLOAD = 404,
    632   RPC_LOC_IOCTL_INJECT_UTC_TIME = 405,
    633   RPC_LOC_IOCTL_INJECT_RTC_VALUE = 406,
    634   RPC_LOC_IOCTL_INJECT_POSITION = 407,
    635   RPC_LOC_IOCTL_QUERY_ENGINE_STATE = 408,
    636   RPC_LOC_IOCTL_INFORM_SERVER_OPEN_STATUS = 409,
    637   RPC_LOC_IOCTL_INFORM_SERVER_CLOSE_STATUS = 410,
    638   RPC_LOC_IOCTL_SEND_WIPER_POSITION_REPORT = 411,
    639   RPC_LOC_IOCTL_NOTIFY_WIPER_STATUS = 412,
    640   RPC_LOC_IOCTL_ACCESS_EFS_DATA = 413,
    641   RPC_LOC_IOCTL_ERROR_ESTIMATE_CONFIG = 414,
    642   RPC_LOC_IOCTL_INFORM_SERVER_MULTI_OPEN_STATUS = 415,
    643   RPC_LOC_IOCTL_NV_SETTINGS_START_INDEX = 800,
    644   RPC_LOC_IOCTL_SET_ENGINE_LOCK = 800,
    645   RPC_LOC_IOCTL_GET_ENGINE_LOCK = 801,
    646   RPC_LOC_IOCTL_SET_SBAS_CONFIG = 802,
    647   RPC_LOC_IOCTL_GET_SBAS_CONFIG = 803,
    648   RPC_LOC_IOCTL_SET_NMEA_TYPES = 804,
    649   RPC_LOC_IOCTL_GET_NMEA_TYPES = 805,
    650   RPC_LOC_IOCTL_SET_CDMA_PDE_SERVER_ADDR = 806,
    651   RPC_LOC_IOCTL_GET_CDMA_PDE_SERVER_ADDR = 807,
    652   RPC_LOC_IOCTL_SET_CDMA_MPC_SERVER_ADDR = 808,
    653   RPC_LOC_IOCTL_GET_CDMA_MPC_SERVER_ADDR = 809,
    654   RPC_LOC_IOCTL_SET_UMTS_SLP_SERVER_ADDR = 810,
    655   RPC_LOC_IOCTL_GET_UMTS_SLP_SERVER_ADDR = 811,
    656   RPC_LOC_IOCTL_SET_ON_DEMAND_LPM = 812,
    657   RPC_LOC_IOCTL_GET_ON_DEMAND_LPM = 813,
    658   RPC_LOC_IOCTL_SET_XTRA_T_SESSION_CONTROL = 814,
    659   RPC_LOC_IOCTL_GET_XTRA_T_SESSION_CONTROL = 815,
    660   RPC_LOC_IOCTL_SET_LBS_APN_PROFILE = 816,
    661   RPC_LOC_IOCTL_GET_LBS_APN_PROFILE = 817,
    662   RPC_LOC_IOCTL_SET_XTRA_APN_PROFILE = 818,
    663   RPC_LOC_IOCTL_GET_XTRA_APN_PROFILE = 819,
    664   RPC_LOC_IOCTL_SET_DATA_ENABLE = 820,
    665   RPC_LOC_IOCTL_SET_SUPL_VERSION = 821,
    666   RPC_LOC_IOCTL_GET_SUPL_VERSION = 822,
    667   RPC_LOC_IOCTL_PROPRIETARY_START_INDEX = 1000,
    668   RPC_LOC_IOCTL_DELETE_ASSIST_DATA = 1000,
    669   RPC_LOC_IOCTL_SET_CUSTOM_PDE_SERVER_ADDR = 1001,
    670   RPC_LOC_IOCTL_GET_CUSTOM_PDE_SERVER_ADDR = 1002,
    671   RPC_LOC_IOCTL_RESERVED_CMD = 8000,
    672   RPC_LOC_IOCTL_THIRD_PARTY_START_INDEX = 1073741824
    673 };
    674 
    675 struct rpc_loc_api_version_s_type {
    676   unsigned char major;
    677   unsigned char minor;
    678 };
    679 
    680 enum rpc_loc_fix_recurrence_e_type {
    681   RPC_LOC_PERIODIC_FIX = 1,
    682   RPC_LOC_SINGLE_FIX = 2,
    683   RPC_LOC_FIX_SESSION_TYPE_MAX = 268435456
    684 };
    685 
    686 enum rpc_loc_operation_mode_e_type {
    687   RPC_LOC_OPER_MODE_DEFAULT = 1,
    688   RPC_LOC_OPER_MODE_MSB = 2,
    689   RPC_LOC_OPER_MODE_MSA = 3,
    690   RPC_LOC_OPER_MODE_STANDALONE = 4,
    691   RPC_LOC_OPER_MODE_SPEED_OPTIMAL = 5,
    692   RPC_LOC_OPER_MODE_ACCURACY_OPTIMAL = 6,
    693   RPC_LOC_OPER_MODE_DATA_OPTIMAL = 7,
    694   RPC_LOC_OPER_MODE_CELL_ID = 8,
    695   RPC_LOC_OPER_MODE_MAX = 268435456
    696 };
    697 
    698 enum rpc_loc_notify_e_type {
    699   RPC_LOC_NOTIFY_ON_INTERVAL = 1,
    700   RPC_LOC_NOTIFY_ON_DISTANCE = 2,
    701   RPC_LOC_NOTIFY_ON_ANY = 3,
    702   RPC_LOC_NOTIFY_ON_ALL = 4,
    703   RPC_LOC_NOTIFY_TYPE_MAX = 268435456
    704 };
    705 
    706 struct rpc_loc_fix_criteria_s_type {
    707   rpc_uint32 valid_mask;
    708   rpc_loc_fix_recurrence_e_type recurrence_type;
    709   rpc_loc_operation_mode_e_type preferred_operation_mode;
    710   rpc_uint32 preferred_accuracy;
    711   rpc_uint32 preferred_response_time;
    712   rpc_boolean intermediate_pos_report_enabled;
    713   rpc_loc_notify_e_type notify_type;
    714   rpc_uint32 min_interval;
    715   float min_distance;
    716   rpc_uint32 min_dist_sample_interval;
    717 };
    718 
    719 enum rpc_loc_ni_user_resp_e_type {
    720   RPC_LOC_NI_LCS_NOTIFY_VERIFY_ACCEPT = 1,
    721   RPC_LOC_NI_LCS_NOTIFY_VERIFY_DENY = 2,
    722   RPC_LOC_NI_LCS_NOTIFY_VERIFY_NORESP = 3,
    723   RPC_LOC_NI_LCS_NOTIFY_VERIFY_MAX = 268435456
    724 };
    725 
    726 struct rpc_loc_user_verify_s_type {
    727   rpc_loc_ni_user_resp_e_type user_resp;
    728   rpc_loc_ni_event_s_type ni_event_pass_back;
    729 };
    730 
    731 enum rpc_loc_predicted_orbits_data_format_e_type {
    732   RPC_LOC_PREDICTED_ORBITS_XTRA = 0,
    733   RPC_LOC_PREDICTED_ORBITS_FORMAT_MAX = 268435456
    734 };
    735 
    736 struct rpc_loc_predicted_orbits_data_s_type {
    737   rpc_loc_predicted_orbits_data_format_e_type format_type;
    738   rpc_uint32 total_size;
    739   rpc_uint8 total_parts;
    740   rpc_uint8 part;
    741   rpc_uint16 part_len;
    742   opaque data_ptr<>;
    743 };
    744 
    745 struct rpc_loc_predicted_orbits_data_validity_report_s_type {
    746   rpc_uint64 start_time_utc;
    747   rpc_uint16 valid_duration_hrs;
    748 };
    749 
    750 struct rpc_loc_predicted_orbits_auto_download_config_s_type {
    751   rpc_boolean enable;
    752   unsigned char auto_check_every_hrs;
    753 };
    754 
    755 struct rpc_loc_assist_data_time_s_type {
    756   rpc_uint64 time_utc;
    757   rpc_uint32 uncertainty;
    758 };
    759 
    760 typedef rpc_uint64 rpc_loc_assist_pos_valid_mask_type;
    761 
    762 struct rpc_loc_assist_data_pos_s_type {
    763   rpc_loc_assist_pos_valid_mask_type valid_mask;
    764   rpc_uint64 timestamp_utc;
    765   double latitude;
    766   double longitude;
    767   float altitude_wrt_ellipsoid;
    768   float altitude_wrt_mean_sea_level;
    769   float hor_unc_circular;
    770   float vert_unc;
    771   unsigned char confidence_horizontal;
    772   unsigned char confidence_vertical;
    773   rpc_int32 timestamp_age;
    774 };
    775 
    776 enum rpc_loc_server_open_status_e_type {
    777   RPC_LOC_SERVER_OPEN_SUCCESS = 1,
    778   RPC_LOC_SERVER_OPEN_FAIL = 2,
    779   RPC_LOC_SERVER_OPEN_STATUS_MAX = 268435456
    780 };
    781 
    782 enum rpc_loc_server_pdp_type_e_type {
    783   RPC_LOC_SERVER_PDP_IP = 0,
    784   RPC_LOC_SERVER_PDP_PPP,
    785   RPC_LOC_SERVER_PDP_IPV6,
    786   RPC_LOC_SERVER_PDP_IPV4V6,
    787   RPC_LOC_SERVER_PDP_MAX = 268435456
    788 };
    789 
    790 struct rpc_loc_server_open_status_s_type {
    791   rpc_loc_server_connection_handle conn_handle;
    792   rpc_loc_server_open_status_e_type open_status;
    793   opaque apn_name[100];
    794 };
    795 
    796 struct rpc_loc_server_multi_open_status_s_type {
    797   rpc_loc_server_connection_handle conn_handle;
    798   rpc_loc_server_open_status_e_type open_status;
    799   rpc_loc_server_pdp_type_e_type pdp_type;
    800   opaque apn_name[100];
    801 };
    802 
    803 enum rpc_loc_server_close_status_e_type {
    804   RPC_LOC_SERVER_CLOSE_SUCCESS = 1,
    805   RPC_LOC_SERVER_CLOSE_FAIL = 2,
    806   RPC_LOC_SERVER_CLOSE_STATUS_MAX = 268435456
    807 };
    808 
    809 struct rpc_loc_server_close_status_s_type {
    810   rpc_loc_server_connection_handle conn_handle;
    811   rpc_loc_server_close_status_e_type close_status;
    812 };
    813 
    814 struct rpc_loc_wiper_fix_time_s_type {
    815   rpc_uint32 slow_clock_count;
    816 };
    817 
    818 struct rpc_loc_wiper_fix_pos_s_type {
    819   rpc_int32 lat;
    820   rpc_int32 lon;
    821   rpc_uint16 HEPE;
    822   rpc_uint8 num_of_aps_used;
    823   rpc_uint8 fix_error_code;
    824 };
    825 
    826 struct rpc_loc_wiper_ap_info_s_type {
    827   opaque mac_addr[6];
    828   rpc_int32 rssi;
    829   rpc_uint16 channel;
    830   rpc_uint8 ap_qualifier;
    831 };
    832 
    833 struct rpc_loc_wiper_ap_set_s_type {
    834   rpc_uint8 num_of_aps;
    835   rpc_loc_wiper_ap_info_s_type ap_info[50];
    836 };
    837 
    838 struct rpc_loc_wiper_position_report_s_type {
    839   rpc_uint8 wiper_valid_info_flag;
    840   rpc_loc_wiper_fix_time_s_type wiper_fix_time;
    841   rpc_loc_wiper_fix_pos_s_type wiper_fix_position;
    842   rpc_loc_wiper_ap_set_s_type wiper_ap_set;
    843 };
    844 
    845 enum rpc_loc_wiper_status_e_type {
    846   RPC_LOC_WIPER_STATUS_AVAILABLE = 1,
    847   RPC_LOC_WIPER_STATUS_UNAVAILABLE = 2,
    848   RPC_LOC_WIPER_STATUS_E_SIZE = 268435456
    849 };
    850 
    851 enum rpc_loc_fs_operation_e_type {
    852   RPC_LOC_FS_CREATE_WRITE_FILE = 1,
    853   RPC_LOC_FS_APPEND_FILE = 2,
    854   RPC_LOC_FS_DELETE_FILE = 3,
    855   RPC_LOC_FS_READ_FILE = 4,
    856   RPC_LOC_FS_MAX = 268435456
    857 };
    858 
    859 struct rpc_loc_efs_data_s_type {
    860   opaque filename[64];
    861   rpc_loc_fs_operation_e_type operation;
    862   rpc_uint32 total_size;
    863   opaque data_ptr<>;
    864   rpc_uint32 part_len;
    865   rpc_uint8 part;
    866   rpc_uint8 total_parts;
    867   rpc_uint32 reserved;
    868 };
    869 
    870 enum rpc_loc_error_estimate_config_e_type {
    871   RPC_LOC_ERROR_ESTIMATE_CONFIG_SET = 1,
    872   RPC_LOC_ERROR_ESTIMATE_CONFIG_CLEAR = 2,
    873   RPC_LOC_ERROR_ESTIMATE_MAX = 268435456
    874 };
    875 
    876 struct rpc_loc_apn_profiles_type {
    877   rpc_uint32 srv_system_type;
    878   rpc_uint32 pdp_type;
    879   rpc_uint32 reserved;
    880   opaque apn_name[100];
    881 };
    882 
    883 enum rpc_loc_lock_e_type {
    884   RPC_LOC_LOCK_NONE = 1,
    885   RPC_LOC_LOCK_MI = 2,
    886   RPC_LOC_LOCK_MT = 3,
    887   RPC_LOC_LOCK_ALL = 4,
    888   RPC_LOC_LOCK_MAX = 268435456
    889 };
    890 
    891 typedef rpc_uint32 rpc_loc_nmea_sentence_type;
    892 
    893 typedef rpc_uint32 rpc_loc_assist_data_type;
    894 
    895 struct rpc_loc_assist_data_delete_s_type {
    896   rpc_loc_assist_data_type type;
    897   rpc_uint32 reserved[8];
    898 };
    899 
    900 union rpc_loc_ioctl_data_u_type switch (rpc_loc_ioctl_e_type disc) {
    901   case RPC_LOC_IOCTL_SET_FIX_CRITERIA:
    902     rpc_loc_fix_criteria_s_type fix_criteria;
    903   case RPC_LOC_IOCTL_INFORM_NI_USER_RESPONSE:
    904     rpc_loc_user_verify_s_type user_verify_resp;
    905   case RPC_LOC_IOCTL_INJECT_PREDICTED_ORBITS_DATA:
    906     rpc_loc_predicted_orbits_data_s_type predicted_orbits_data;
    907   case RPC_LOC_IOCTL_SET_PREDICTED_ORBITS_DATA_AUTO_DOWNLOAD:
    908     rpc_loc_predicted_orbits_auto_download_config_s_type predicted_orbits_auto_download;
    909   case RPC_LOC_IOCTL_INJECT_UTC_TIME:
    910     rpc_loc_assist_data_time_s_type assistance_data_time;
    911   case RPC_LOC_IOCTL_INJECT_POSITION:
    912     rpc_loc_assist_data_pos_s_type assistance_data_position;
    913   case RPC_LOC_IOCTL_INFORM_SERVER_OPEN_STATUS:
    914     rpc_loc_server_open_status_s_type conn_open_status;
    915   case RPC_LOC_IOCTL_INFORM_SERVER_CLOSE_STATUS:
    916     rpc_loc_server_close_status_s_type conn_close_status;
    917   case RPC_LOC_IOCTL_SEND_WIPER_POSITION_REPORT:
    918     rpc_loc_wiper_position_report_s_type wiper_pos;
    919   case RPC_LOC_IOCTL_NOTIFY_WIPER_STATUS:
    920     rpc_loc_wiper_status_e_type wiper_status;
    921   case RPC_LOC_IOCTL_SET_ENGINE_LOCK:
    922     rpc_loc_lock_e_type engine_lock;
    923   case RPC_LOC_IOCTL_SET_SBAS_CONFIG:
    924     rpc_boolean sbas_mode;
    925   case RPC_LOC_IOCTL_SET_NMEA_TYPES:
    926     rpc_loc_nmea_sentence_type nmea_types;
    927   case RPC_LOC_IOCTL_SET_ON_DEMAND_LPM:
    928     rpc_boolean on_demand_lpm;
    929   case  RPC_LOC_IOCTL_SET_CDMA_PDE_SERVER_ADDR:
    930   case  RPC_LOC_IOCTL_SET_CDMA_MPC_SERVER_ADDR:
    931   case  RPC_LOC_IOCTL_SET_UMTS_SLP_SERVER_ADDR:
    932   case  RPC_LOC_IOCTL_SET_CUSTOM_PDE_SERVER_ADDR:
    933     rpc_loc_server_info_s_type server_addr;
    934   case RPC_LOC_IOCTL_DELETE_ASSIST_DATA:
    935     rpc_loc_assist_data_delete_s_type assist_data_delete;
    936   case RPC_LOC_IOCTL_ACCESS_EFS_DATA:
    937     rpc_loc_efs_data_s_type efs_data;
    938   case RPC_LOC_IOCTL_ERROR_ESTIMATE_CONFIG:
    939     rpc_loc_error_estimate_config_e_type error_estimate_config;
    940   case RPC_LOC_IOCTL_SET_XTRA_T_SESSION_CONTROL:
    941     rpc_uint8 xtra_t_session_control;
    942   case  RPC_LOC_IOCTL_SET_LBS_APN_PROFILE:
    943   case  RPC_LOC_IOCTL_SET_XTRA_APN_PROFILE:
    944     rpc_loc_apn_profiles_type apn_profiles[6];
    945   case RPC_LOC_IOCTL_SET_DATA_ENABLE:
    946     rpc_boolean data_enable;
    947   case RPC_LOC_IOCTL_SET_SUPL_VERSION:
    948     rpc_uint32 supl_version;
    949   case RPC_LOC_IOCTL_INFORM_SERVER_MULTI_OPEN_STATUS:
    950     rpc_loc_server_multi_open_status_s_type multi_conn_open_status;
    951   case RPC_LOC_IOCTL_RESERVED_CMD:
    952     rpc_loc_reserved_payload_s_type reserved;
    953   default:
    954     void;
    955 };
    956 
    957 union rpc_loc_ioctl_callback_data_u_type switch (rpc_loc_ioctl_e_type disc) {
    958   case RPC_LOC_IOCTL_GET_API_VERSION:
    959     rpc_loc_api_version_s_type api_version;
    960   case RPC_LOC_IOCTL_GET_FIX_CRITERIA:
    961     rpc_loc_fix_criteria_s_type fix_criteria;
    962   case RPC_LOC_IOCTL_GET_ENGINE_LOCK:
    963     rpc_loc_lock_e_type engine_lock;
    964   case RPC_LOC_IOCTL_GET_SBAS_CONFIG:
    965     rpc_boolean sbas_mode;
    966   case RPC_LOC_IOCTL_GET_NMEA_TYPES:
    967     rpc_loc_nmea_sentence_type nmea_types;
    968   case RPC_LOC_IOCTL_GET_ON_DEMAND_LPM:
    969     rpc_boolean on_demand_lpm;
    970   case  RPC_LOC_IOCTL_GET_CDMA_PDE_SERVER_ADDR:
    971   case  RPC_LOC_IOCTL_GET_CDMA_MPC_SERVER_ADDR:
    972   case  RPC_LOC_IOCTL_GET_UMTS_SLP_SERVER_ADDR:
    973   case  RPC_LOC_IOCTL_GET_CUSTOM_PDE_SERVER_ADDR:
    974     rpc_loc_server_info_s_type server_addr;
    975   case RPC_LOC_IOCTL_QUERY_PREDICTED_ORBITS_DATA_SOURCE:
    976     rpc_loc_predicted_orbits_data_source_s_type predicted_orbits_data_source;
    977   case RPC_LOC_IOCTL_QUERY_PREDICTED_ORBITS_DATA_VALIDITY:
    978     rpc_loc_predicted_orbits_data_validity_report_s_type predicted_orbits_data_validity;
    979   case RPC_LOC_IOCTL_GET_XTRA_T_SESSION_CONTROL:
    980     rpc_uint8 xtra_t_session_control;
    981   case  RPC_LOC_IOCTL_GET_LBS_APN_PROFILE:
    982   case  RPC_LOC_IOCTL_GET_XTRA_APN_PROFILE:
    983     rpc_loc_apn_profiles_type apn_profiles[6];
    984   case RPC_LOC_IOCTL_GET_SUPL_VERSION:
    985     rpc_uint32 supl_version;
    986   default:
    987     void;
    988 };
    989 
    990 struct rpc_loc_ioctl_callback_s_type {
    991   rpc_loc_ioctl_e_type type;
    992   rpc_int32 status;
    993   rpc_loc_ioctl_callback_data_u_type data;
    994 };
    995 
    996 union rpc_loc_event_payload_u_type switch (unsigned hyper disc) {
    997   case RPC_LOC_EVENT_PARSED_POSITION_REPORT:
    998     rpc_loc_parsed_position_s_type parsed_location_report;
    999   case RPC_LOC_EVENT_SATELLITE_REPORT:
   1000     rpc_loc_gnss_info_s_type gnss_report;
   1001   case RPC_LOC_EVENT_NMEA_POSITION_REPORT:
   1002   case RPC_LOC_EVENT_NMEA_1HZ_REPORT:
   1003     rpc_loc_nmea_report_s_type nmea_report;
   1004   case RPC_LOC_EVENT_NI_NOTIFY_VERIFY_REQUEST:
   1005     rpc_loc_ni_event_s_type ni_request;
   1006   case RPC_LOC_EVENT_ASSISTANCE_DATA_REQUEST:
   1007     rpc_loc_assist_data_request_s_type assist_data_request;
   1008   case RPC_LOC_EVENT_LOCATION_SERVER_REQUEST:
   1009     rpc_loc_server_request_s_type loc_server_request;
   1010   case RPC_LOC_EVENT_IOCTL_REPORT:
   1011     rpc_loc_ioctl_callback_s_type ioctl_report;
   1012   case RPC_LOC_EVENT_STATUS_REPORT:
   1013     rpc_loc_status_event_s_type status_report;
   1014   case RPC_LOC_EVENT_WPS_NEEDED_REQUEST:
   1015     rpc_loc_qwip_request_s_type qwip_request;
   1016   case RPC_LOC_EVENT_RESERVED:
   1017     rpc_loc_reserved_payload_s_type reserved;
   1018   default:
   1019     void;
   1020 };
   1021 
   1022