Home | History | Annotate | Download | only in rpc_inc
      1 /* Copyright (c) 2011, 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 #ifndef  LOC_API_FIXUP_H
     30 #define LOC_API_FIXUP_H
     31 
     32 #ifdef __cplusplus
     33 extern "C"
     34 {
     35 #endif
     36 
     37 #ifndef NULLPROC
     38 #define NULLPROC 0
     39 #endif /* NULLPROC */
     40 
     41 #ifdef ADD_XDR_FLOAT
     42 
     43 extern bool_t xdr_float (XDR *__xdrs, float *__fp);
     44 extern bool_t xdr_double (XDR *__xdrs, double *__dp);
     45 
     46 #endif /* ADD_XDR_FLOAT */
     47 
     48 #ifdef ADD_XDR_BOOL
     49 extern bool_t xdr_bool(XDR *__xdrs, int *__bp);
     50 #endif /* ADD_XDR_BOOL */
     51 
     52 #define RPC_LOC_API_MAJOR_VERSION_NUMBER   1
     53 #define RPC_LOC_API_MINOR_VERSION_NUMBER   0
     54 
     55 // Return value for loc_open in case of failure.
     56 #define RPC_LOC_CLIENT_HANDLE_INVALID     -1
     57 
     58 // Return value of loc api calls for loc_close, loc_start_fix, loc_stop_fix and loc_ioctl
     59 // These are also the status for the ioctl callback
     60 #define RPC_LOC_API_SUCCESS           0
     61 #define RPC_LOC_API_GENERAL_FAILURE   1
     62 #define RPC_LOC_API_UNSUPPORTED       2
     63 #define RPC_LOC_API_INVALID_HANDLE    4
     64 #define RPC_LOC_API_INVALID_PARAMETER 5
     65 #define RPC_LOC_API_ENGINE_BUSY       6
     66 #define RPC_LOC_API_PHONE_OFFLINE     7
     67 #define RPC_LOC_API_TIMEOUT           8
     68 
     69 // Special return value for loc api calls in case of RPC failure
     70 #define RPC_LOC_API_RPC_FAILURE       (-1234)
     71 // Special return value for modem restart incurred RPC failure
     72 #define RPC_LOC_API_RPC_MODEM_RESTART       (-1235)
     73 
     74 #define RPC_LOC_API_MAX_SV_COUNT                      80
     75 #define RPC_LOC_API_MAX_NMEA_STRING_LENGTH            1200
     76 
     77 // Maximum server address that will be used in location API
     78 #define RPC_LOC_API_MAX_SERVER_ADDR_LENGTH            256
     79 #define RPC_LOC_API_MAX_NUM_PREDICTED_ORBITS_SERVERS  3
     80 #define RPC_LOC_API_MAX_NUM_NTP_SERVERS               3
     81 
     82 #define RPC_LOC_EVENT_PARSED_POSITION_REPORT             0x00000001 // Position report comes in loc_parsed_position_s_type
     83 #define RPC_LOC_EVENT_SATELLITE_REPORT                   0x00000002 // Satellite in view report
     84 #define RPC_LOC_EVENT_NMEA_1HZ_REPORT                    0x00000004 // NMEA report at 1HZ rate
     85 #define RPC_LOC_EVENT_NMEA_POSITION_REPORT               0x00000008 // NMEA report at position report rate
     86 #define RPC_LOC_EVENT_NI_NOTIFY_VERIFY_REQUEST           0x00000010 // NI notification/verification request
     87 #define RPC_LOC_EVENT_ASSISTANCE_DATA_REQUEST            0x00000020 // Assistance data, eg: time, predicted orbits request
     88 #define RPC_LOC_EVENT_LOCATION_SERVER_REQUEST            0x00000040 // Request for location server
     89 #define RPC_LOC_EVENT_IOCTL_REPORT                       0x00000080 // Callback report for loc_ioctl
     90 #define RPC_LOC_EVENT_STATUS_REPORT                      0x00000100 // Misc status report: eg, engine state
     91 
     92 #define RPC_LOC_POS_VALID_SESSION_STATUS                 0x00000001
     93 #define RPC_LOC_POS_VALID_TIMESTAMP_CALENDAR             0x00000002
     94 #define RPC_LOC_POS_VALID_TIMESTAMP_UTC                  0x00000004
     95 #define RPC_LOC_POS_VALID_LEAP_SECONDS                   0x00000008
     96 #define RPC_LOC_POS_VALID_TIME_UNC                       0x00000010
     97 #define RPC_LOC_POS_VALID_LATITUDE                       0x00000020
     98 #define RPC_LOC_POS_VALID_LONGITUDE                      0x00000040
     99 #define RPC_LOC_POS_VALID_ALTITUDE_WRT_ELLIPSOID         0x00000080
    100 #define RPC_LOC_POS_VALID_ALTITUDE_WRT_MEAN_SEA_LEVEL    0x00000100
    101 #define RPC_LOC_POS_VALID_SPEED_HORIZONTAL               0x00000200
    102 #define RPC_LOC_POS_VALID_SPEED_VERTICAL                 0x00000400
    103 #define RPC_LOC_POS_VALID_HEADING                        0x00000800
    104 #define RPC_LOC_POS_VALID_HOR_UNC_CIRCULAR               0x00001000
    105 #define RPC_LOC_POS_VALID_HOR_UNC_ELLI_SEMI_MAJ          0x00002000
    106 #define RPC_LOC_POS_VALID_HOR_UNC_ELLI_SEMI_MIN          0x00004000
    107 #define RPC_LOC_POS_VALID_HOR_UNC_ELLI_ORIENT_AZIMUTH    0x00008000
    108 #define RPC_LOC_POS_VALID_VERTICAL_UNC                   0x00010000
    109 #define RPC_LOC_POS_VALID_SPEED_UNC                      0x00020000
    110 #define RPC_LOC_POS_VALID_HEADING_UNC                    0x00040000
    111 #define RPC_LOC_POS_VALID_CONFIDENCE_HORIZONTAL          0x00080000
    112 #define RPC_LOC_POS_VALID_CONFIDENCE_VERTICAL            0x00100000
    113 #define RPC_LOC_POS_VALID_MAGNETIC_VARIATION             0x00200000
    114 #define RPC_LOC_POS_VALID_TECHNOLOGY_MASK                0x00400000
    115 
    116 #define RPC_LOC_POS_TECH_SATELLITE 0x00000001
    117 #define RPC_LOC_POS_TECH_CELLID    0x00000002
    118 #define RPC_LOC_POS_TECH_WIFI      0x00000004
    119 
    120 #define RPC_LOC_SV_INFO_VALID_SYSTEM         0x00000001
    121 #define RPC_LOC_SV_INFO_VALID_PRN            0x00000002
    122 #define RPC_LOC_SV_INFO_VALID_HEALTH_STATUS  0x00000004
    123 #define RPC_LOC_SV_INFO_VALID_PROCESS_STATUS 0x00000008
    124 #define RPC_LOC_SV_INFO_VALID_HAS_EPH        0x00000010
    125 #define RPC_LOC_SV_INFO_VALID_HAS_ALM        0x00000020
    126 #define RPC_LOC_SV_INFO_VALID_ELEVATION      0x00000040
    127 #define RPC_LOC_SV_INFO_VALID_AZIMUTH        0x00000080
    128 #define RPC_LOC_SV_INFO_VALID_SNR            0x00000100
    129 
    130 #define RPC_LOC_GNSS_INFO_VALID_POS_DOP           0x00000001
    131 #define RPC_LOC_GNSS_INFO_VALID_HOR_DOP           0x00000002
    132 #define RPC_LOC_GNSS_INFO_VALID_VERT_DOP          0x00000004
    133 #define RPC_LOC_GNSS_INFO_VALID_ALTITUDE_ASSUMED  0x00000008
    134 #define RPC_LOC_GNSS_INFO_VALID_SV_COUNT          0x00000010
    135 #define RPC_LOC_GNSS_INFO_VALID_SV_LIST           0x00000020
    136 
    137 #define RPC_LOC_NI_MAX_REQUESTOR_ID_LENGTH          200
    138 #define RPC_LOC_NI_SUPL_HASH_LENGTH                 8
    139 #define RPC_LOC_NI_SUPL_SLP_SESSION_ID_BYTE_LENGTH  4
    140 #define RPC_LOC_NI_MAX_CLIENT_NAME_LENGTH           64
    141 #define RPC_LOC_NI_MAX_EXT_CLIENT_ADDRESS           20
    142 #define RPC_LOC_NI_CODEWORD_LENGTH                  20
    143 
    144 #define RPC_LOC_NI_SUPL_QOP_VALID         0x01
    145 #define RPC_LOC_NI_SUPL_QOP_VERACC_VALID  0x02
    146 #define RPC_LOC_NI_SUPL_QOP_MAXAGE_VALID  0x04
    147 #define RPC_LOC_NI_SUPL_QOP_DELAY_VALID   0x08
    148 
    149 #define RPC_LOC_FIX_CRIT_VALID_RECURRENCE_TYPE                  0x00000001
    150 #define RPC_LOC_FIX_CRIT_VALID_PREFERRED_OPERATION_MODE         0x00000002
    151 #define RPC_LOC_FIX_CRIT_VALID_PREFERRED_ACCURACY               0x00000004
    152 #define RPC_LOC_FIX_CRIT_VALID_PREFERRED_RESPONSE_TIME          0x00000008
    153 #define RPC_LOC_FIX_CRIT_VALID_INTERMEDIATE_POS_REPORT_ENABLED  0x00000010
    154 #define RPC_LOC_FIX_CRIT_VALID_NOTIFY_TYPE                      0x00000020
    155 #define RPC_LOC_FIX_CRIT_VALID_MIN_INTERVAL                     0x00000040
    156 #define RPC_LOC_FIX_CRIT_VALID_MIN_DISTANCE                     0x00000080
    157 #define RPC_LOC_FIX_CRIT_VALID_MIN_DIST_SAMPLE_INTERVAL         0x00000100
    158 
    159 #define RPC_LOC_ASSIST_POS_VALID_TIMESTAMP_UTC                0x00000001
    160 #define RPC_LOC_ASSIST_POS_VALID_LATITUDE                     0x00000002
    161 #define RPC_LOC_ASSIST_POS_VALID_LONGITUDE                    0x00000004
    162 #define RPC_LOC_ASSIST_POS_VALID_ALTITUDE_WRT_ELLIPSOID       0x00000008
    163 #define RPC_LOC_ASSIST_POS_VALID_ALTITUDE_WRT_MEAN_SEA_LEVEL  0x00000010
    164 #define RPC_LOC_ASSIST_POS_VALID_HOR_UNC_CIRCULAR             0x00000020
    165 #define RPC_LOC_ASSIST_POS_VALID_VERT_UNC                     0x00000040
    166 #define RPC_LOC_ASSIST_POS_VALID_CONFIDENCE_HORIZONTAL        0x00000080
    167 #define RPC_LOC_ASSIST_POS_VALID_CONFIDENCE_VERTICAL          0x00000100
    168 #define RPC_LOC_ASSIST_POS_VALID_TIMESTAMP_AGE                0x00000200
    169 
    170 #define RPC_LOC_ASSIST_DATA_ALL         0xFFFFFFFF
    171 
    172 #define RPC_LOC_NMEA_MASK_ALL    0xffff
    173 #define RPC_LOC_NMEA_MASK_GGA    0x0001
    174 #define RPC_LOC_NMEA_MASK_RMC    0x0002
    175 #define RPC_LOC_NMEA_MASK_GSV    0x0004
    176 #define RPC_LOC_NMEA_MASK_GSA    0x0008
    177 #define RPC_LOC_NMEA_MASK_VTG    0x0010
    178 
    179 /* EFS data access */
    180 #define RPC_LOC_EFS_MAX_PATH_LEN_BYTES  64     /* Max file name length in bytes that can be written*/
    181 #define RPC_LOC_EFS_MAX_FILE_LEN_BYTES  2000   /* Max file size in bytes that can be written */
    182 
    183 /* WIPER valid information flag in log report */
    184 #define RPC_LOC_WIPER_LOG_TIME_VALID 0x01
    185 #define RPC_LOC_WIPER_LOG_POS_VALID 0x02
    186 #define RPC_LOC_WIPER_LOG_AP_SET_VALID 0x04
    187 
    188 /* General WIPER defines */
    189 #define RPC_LOC_WIPER_MAC_ADDR_LENGTH  6              // Do not change this number since it affects RPC and log packet sizes
    190 #define RPC_LOC_WIPER_MAX_REPORTED_APS_PER_LOG_MSG 50 // Do not change this number since it affects RPC and log packet sizes
    191 
    192 /* WIPER AP Qualifier */
    193 #define RPC_LOC_WIPER_AP_QUALIFIER_BEING_USED 0x1  /* AP is being used by WPS */
    194 #define RPC_LOC_WIPER_AP_QUALIFIER_HIDDEN_SSID 0x2 /* AP does not broadcast SSID */
    195 #define RPC_LOC_WIPER_AP_QUALIFIER_PRIVATE 0x4     /* AP has encryption turned on */
    196 #define RPC_LOC_WIPER_AP_QUALIFIER_INFRASTRUCTURE_MODE 0x8     /* AP is in infrastructure mode and not in ad-hoc/unknown mode */
    197 
    198 /* flags for notification */
    199 #define  RPC_LOC_NI_CLIENT_NAME_PRESENT             0x0001
    200 #define  RPC_LOC_NI_CLIENT_EXTADDR_PRESENT          0x0002
    201 #define  RPC_LOC_NI_DEF_LOCATION_TYPE_PRESENT       0x0010
    202 #define  RPC_LOC_NI_REQUESTOR_ID_PRESENT            0x0020
    203 #define  RPC_LOC_NI_CODEWORD_PRESENT                0x0040
    204 #define  RPC_LOC_NI_SERVICE_TYPE_ID_PRESENT         0x0080
    205 #define  RPC_LOC_NI_ENCODING_TYPE_PRESENT           0x0100
    206 
    207 /* below are for RPC_LOC_IOCTL_SET_LBS_APN_PROFILE data */
    208 /* values for apn_profiles[0].srv_system_type */
    209 #define LOC_APN_PROFILE_SRV_SYS_CDMA  0x01
    210 #define LOC_APN_PROFILE_SRV_SYS_HDR   0x02
    211 #define LOC_APN_PROFILE_SRV_SYS_GSM   0x04
    212 #define LOC_APN_PROFILE_SRV_SYS_WCDMA 0x08
    213 #define LOC_APN_PROFILE_SRV_SYS_LTE   0x10
    214 #define LOC_APN_PROFILE_SRV_SYS_MAX   0x1F
    215 /* values for apn_profiles[0].pdp_type */
    216 #define LOC_APN_PROFILE_PDN_TYPE_IPV4    0x01
    217 #define LOC_APN_PROFILE_PDN_TYPE_IPV6    0x02
    218 #define LOC_APN_PROFILE_PDN_TYPE_IPV4V6  0x03
    219 #define LOC_APN_PROFILE_PDN_TYPE_PPP     0x04
    220 #define LOC_APN_PROFILE_PDN_TYPE_MAX     0x04
    221 
    222 #ifdef __cplusplus
    223 }
    224 #endif
    225 
    226 #endif /* LOC_API_FIXUP_H */
    227