X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=include%2Ftelephony%2Fril.h;h=2dc670fc213340a852ba9cff31fa7d0f1760d51d;hb=df7add01de4abb99c6a7af42b45b7cd0aacf974c;hp=a86ec6b7d553b42db82da83ff061038f3874abfc;hpb=ac308b9c5b6c6945c5b913e6809d3f5c78aa76c7;p=android-x86%2Fhardware-ril.git diff --git a/include/telephony/ril.h b/include/telephony/ril.h index a86ec6b..2dc670f 100644 --- a/include/telephony/ril.h +++ b/include/telephony/ril.h @@ -46,7 +46,29 @@ extern "C" { #define SIM_COUNT 1 #endif -#define RIL_VERSION 11 /* Current version */ +/* + * RIL version. + * Value of RIL_VERSION should not be changed in future. Here onwards, + * when a new change is supposed to be introduced which could involve new + * schemes added like Wakelocks, data structures added/updated, etc, we would + * just document RIL version associated with that change below. When OEM updates its + * RIL with those changes, they would return that new RIL version during RIL_REGISTER. + * We should make use of the returned version by vendor to identify appropriate scheme + * or data structure version to use. + * + * Documentation of RIL version and associated changes + * RIL_VERSION = 12 : This version corresponds to updated data structures namely + * RIL_Data_Call_Response_v11, RIL_SIM_IO_v6, RIL_CardStatus_v6, + * RIL_SimRefreshResponse_v7, RIL_CDMA_CallWaiting_v6, + * RIL_LTE_SignalStrength_v8, RIL_SignalStrength_v10, RIL_CellIdentityGsm_v12 + * RIL_CellIdentityWcdma_v12, RIL_CellIdentityLte_v12,RIL_CellInfoGsm_v12, + * RIL_CellInfoWcdma_v12, RIL_CellInfoLte_v12, RIL_CellInfo_v12. + * + * RIL_VERSION = 13 : This version includes new wakelock semantics and as the first + * strongly versioned version it enforces structure use. + */ +#define RIL_VERSION 12 +#define LAST_IMPRECISE_RIL_VERSION 12 // Better self-documented name #define RIL_VERSION_MIN 6 /* Minimum RIL_VERSION supported */ #define CDMA_ALPHA_INFO_BUFFER_LENGTH 64 @@ -114,9 +136,54 @@ typedef enum { RIL_E_SS_MODIFIED_TO_USSD = 25, /* SS request modified to USSD */ RIL_E_SUBSCRIPTION_NOT_SUPPORTED = 26, /* Subscription not supported by RIL */ RIL_E_SS_MODIFIED_TO_SS = 27, /* SS request modified to different SS request */ - RIL_E_LCE_NOT_SUPPORTED = 36 /* LCE service not supported(36 in RILConstants.java) */ - - + RIL_E_LCE_NOT_SUPPORTED = 36, /* LCE service not supported(36 in RILConstants.java) */ + RIL_E_NO_MEMORY = 37, /* Not sufficient memory to process the request */ + RIL_E_INTERNAL_ERR = 38, /* Hit unexpected vendor internal error scenario */ + RIL_E_SYSTEM_ERR = 39, /* Hit platform or system error */ + RIL_E_MODEM_ERR = 40, /* Hit unexpected modem error */ + RIL_E_INVALID_STATE = 41, /* Can not process the request as vendor RIL is in + invalid state. */ + RIL_E_NO_RESOURCES = 42, /* Not sufficient resource to process the request */ + RIL_E_SIM_ERR = 43, /* Received error from SIM card */ + RIL_E_INVALID_ARGUMENTS = 44, /* Received invalid arguments in request */ + RIL_E_INVALID_SIM_STATE = 45, /* Can not process the request in current SIM state */ + RIL_E_INVALID_MODEM_STATE = 46, /* Can not process the request in current Modem state */ + RIL_E_INVALID_CALL_ID = 47, /* Received invalid call id in request */ + RIL_E_NO_SMS_TO_ACK = 48, /* ACK received when there is no SMS to ack */ + RIL_E_NETWORK_ERR = 49, /* Received error from network */ + RIL_E_REQUEST_RATE_LIMITED = 50, /* Operation denied due to overly-frequent requests */ + RIL_E_SIM_BUSY = 51, /* SIM is busy */ + RIL_E_SIM_FULL = 52, /* The target EF is full */ + RIL_E_NETWORK_REJECT = 53, /* Request is rejected by network */ + RIL_E_OPERATION_NOT_ALLOWED = 54, /* Not allowed the request now */ + RIL_E_EMPTY_RECORD = 55, /* The request record is empty */ + // OEM specific error codes. To be used by OEM when they don't want to reveal + // specific error codes which would be replaced by Generic failure. + RIL_E_OEM_ERROR_1 = 501, + RIL_E_OEM_ERROR_2 = 502, + RIL_E_OEM_ERROR_3 = 503, + RIL_E_OEM_ERROR_4 = 504, + RIL_E_OEM_ERROR_5 = 505, + RIL_E_OEM_ERROR_6 = 506, + RIL_E_OEM_ERROR_7 = 507, + RIL_E_OEM_ERROR_8 = 508, + RIL_E_OEM_ERROR_9 = 509, + RIL_E_OEM_ERROR_10 = 510, + RIL_E_OEM_ERROR_11 = 511, + RIL_E_OEM_ERROR_12 = 512, + RIL_E_OEM_ERROR_13 = 513, + RIL_E_OEM_ERROR_14 = 514, + RIL_E_OEM_ERROR_15 = 515, + RIL_E_OEM_ERROR_16 = 516, + RIL_E_OEM_ERROR_17 = 517, + RIL_E_OEM_ERROR_18 = 518, + RIL_E_OEM_ERROR_19 = 519, + RIL_E_OEM_ERROR_20 = 520, + RIL_E_OEM_ERROR_21 = 521, + RIL_E_OEM_ERROR_22 = 522, + RIL_E_OEM_ERROR_23 = 523, + RIL_E_OEM_ERROR_24 = 524, + RIL_E_OEM_ERROR_25 = 525 } RIL_Errno; typedef enum { @@ -189,6 +256,28 @@ typedef enum { } RIL_RadioAccessFamily; typedef enum { + BAND_MODE_UNSPECIFIED = 0, //"unspecified" (selected by baseband automatically) + BAND_MODE_EURO = 1, //"EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000) + BAND_MODE_USA = 2, //"US band" (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900) + BAND_MODE_JPN = 3, //"JPN band" (WCDMA-800 / WCDMA-IMT-2000) + BAND_MODE_AUS = 4, //"AUS band" (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000) + BAND_MODE_AUS_2 = 5, //"AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850) + BAND_MODE_CELL_800 = 6, //"Cellular" (800-MHz Band) + BAND_MODE_PCS = 7, //"PCS" (1900-MHz Band) + BAND_MODE_JTACS = 8, //"Band Class 3" (JTACS Band) + BAND_MODE_KOREA_PCS = 9, //"Band Class 4" (Korean PCS Band) + BAND_MODE_5_450M = 10, //"Band Class 5" (450-MHz Band) + BAND_MODE_IMT2000 = 11, //"Band Class 6" (2-GMHz IMT2000 Band) + BAND_MODE_7_700M_2 = 12, //"Band Class 7" (Upper 700-MHz Band) + BAND_MODE_8_1800M = 13, //"Band Class 8" (1800-MHz Band) + BAND_MODE_9_900M = 14, //"Band Class 9" (900-MHz Band) + BAND_MODE_10_800M_2 = 15, //"Band Class 10" (Secondary 800-MHz Band) + BAND_MODE_EURO_PAMR_400M = 16, //"Band Class 11" (400-MHz European PAMR Band) + BAND_MODE_AWS = 17, //"Band Class 15" (AWS Band) + BAND_MODE_USA_2500M = 18 //"Band Class 16" (US 2.5-GHz Band) +} RIL_RadioBandMode; + +typedef enum { RC_PHASE_CONFIGURED = 0, // LM is configured is initial value and value after FINISH completes RC_PHASE_START = 1, // START is sent before Apply and indicates that an APPLY will be // forthcoming with these same parameters @@ -591,10 +680,53 @@ typedef struct { /* See RIL_REQUEST_LAST_CALL_FAIL_CAUSE */ typedef enum { CALL_FAIL_UNOBTAINABLE_NUMBER = 1, + CALL_FAIL_NO_ROUTE_TO_DESTINATION = 3, + CALL_FAIL_CHANNEL_UNACCEPTABLE = 6, + CALL_FAIL_OPERATOR_DETERMINED_BARRING = 8, CALL_FAIL_NORMAL = 16, CALL_FAIL_BUSY = 17, + CALL_FAIL_NO_USER_RESPONDING = 18, + CALL_FAIL_NO_ANSWER_FROM_USER = 19, + CALL_FAIL_CALL_REJECTED = 21, + CALL_FAIL_NUMBER_CHANGED = 22, + CALL_FAIL_PREEMPTION = 25, + CALL_FAIL_DESTINATION_OUT_OF_ORDER = 27, + CALL_FAIL_INVALID_NUMBER_FORMAT = 28, + CALL_FAIL_FACILITY_REJECTED = 29, + CALL_FAIL_RESP_TO_STATUS_ENQUIRY = 30, + CALL_FAIL_NORMAL_UNSPECIFIED = 31, CALL_FAIL_CONGESTION = 34, + CALL_FAIL_NETWORK_OUT_OF_ORDER = 38, + CALL_FAIL_TEMPORARY_FAILURE = 41, + CALL_FAIL_SWITCHING_EQUIPMENT_CONGESTION = 42, + CALL_FAIL_ACCESS_INFORMATION_DISCARDED = 43, + CALL_FAIL_REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE = 44, + CALL_FAIL_RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47, + CALL_FAIL_QOS_UNAVAILABLE = 49, + CALL_FAIL_REQUESTED_FACILITY_NOT_SUBSCRIBED = 50, + CALL_FAIL_INCOMING_CALLS_BARRED_WITHIN_CUG = 55, + CALL_FAIL_BEARER_CAPABILITY_NOT_AUTHORIZED = 57, + CALL_FAIL_BEARER_CAPABILITY_UNAVAILABLE = 58, + CALL_FAIL_SERVICE_OPTION_NOT_AVAILABLE = 63, + CALL_FAIL_BEARER_SERVICE_NOT_IMPLEMENTED = 65, CALL_FAIL_ACM_LIMIT_EXCEEDED = 68, + CALL_FAIL_REQUESTED_FACILITY_NOT_IMPLEMENTED = 69, + CALL_FAIL_ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70, + CALL_FAIL_SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79, + CALL_FAIL_INVALID_TRANSACTION_IDENTIFIER = 81, + CALL_FAIL_USER_NOT_MEMBER_OF_CUG = 87, + CALL_FAIL_INCOMPATIBLE_DESTINATION = 88, + CALL_FAIL_INVALID_TRANSIT_NW_SELECTION = 91, + CALL_FAIL_SEMANTICALLY_INCORRECT_MESSAGE = 95, + CALL_FAIL_INVALID_MANDATORY_INFORMATION = 96, + CALL_FAIL_MESSAGE_TYPE_NON_IMPLEMENTED = 97, + CALL_FAIL_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, + CALL_FAIL_INFORMATION_ELEMENT_NON_EXISTENT = 99, + CALL_FAIL_CONDITIONAL_IE_ERROR = 100, + CALL_FAIL_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, + CALL_FAIL_RECOVERY_ON_TIMER_EXPIRED = 102, + CALL_FAIL_PROTOCOL_ERROR_UNSPECIFIED = 111, + CALL_FAIL_INTERWORKING_UNSPECIFIED = 127, CALL_FAIL_CALL_BARRED = 240, CALL_FAIL_FDN_BLOCKED = 241, CALL_FAIL_IMSI_UNKNOWN_IN_VLR = 242, @@ -613,7 +745,9 @@ typedef enum { CALL_FAIL_CDMA_NOT_EMERGENCY = 1008, /* For non-emergency number dialed during emergency callback mode */ CALL_FAIL_CDMA_ACCESS_BLOCKED = 1009, /* CDMA network access probes blocked */ - CALL_FAIL_ERROR_UNSPECIFIED = 0xffff + CALL_FAIL_ERROR_UNSPECIFIED = 0xffff /* This error will be deprecated soon, + vendor code should make sure to map error + code to specific error */ } RIL_LastCallFailCause; typedef struct { @@ -685,6 +819,24 @@ typedef enum { PDP_FAIL_EMM_ACCESS_BARRED_INFINITE_RETRY = 0x79, PDP_FAIL_AUTH_FAILURE_ON_EMERGENCY_CALL = 0x7A, + // OEM specific error codes. To be used by OEMs when they don't want to + // reveal error code which would be replaced by PDP_FAIL_ERROR_UNSPECIFIED + PDP_FAIL_OEM_DCFAILCAUSE_1 = 0x1001, + PDP_FAIL_OEM_DCFAILCAUSE_2 = 0x1002, + PDP_FAIL_OEM_DCFAILCAUSE_3 = 0x1003, + PDP_FAIL_OEM_DCFAILCAUSE_4 = 0x1004, + PDP_FAIL_OEM_DCFAILCAUSE_5 = 0x1005, + PDP_FAIL_OEM_DCFAILCAUSE_6 = 0x1006, + PDP_FAIL_OEM_DCFAILCAUSE_7 = 0x1007, + PDP_FAIL_OEM_DCFAILCAUSE_8 = 0x1008, + PDP_FAIL_OEM_DCFAILCAUSE_9 = 0x1009, + PDP_FAIL_OEM_DCFAILCAUSE_10 = 0x100A, + PDP_FAIL_OEM_DCFAILCAUSE_11 = 0x100B, + PDP_FAIL_OEM_DCFAILCAUSE_12 = 0x100C, + PDP_FAIL_OEM_DCFAILCAUSE_13 = 0x100D, + PDP_FAIL_OEM_DCFAILCAUSE_14 = 0x100E, + PDP_FAIL_OEM_DCFAILCAUSE_15 = 0x100F, + /* Not mentioned in the specification */ PDP_FAIL_VOICE_REGISTRATION_FAIL = -1, PDP_FAIL_DATA_REGISTRATION_FAIL = -2, @@ -938,6 +1090,13 @@ typedef struct { typedef struct { int signalStrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */ int bitErrorRate; /* bit error rate (0-7, 99) as defined in TS 27.007 8.5 */ + int timingAdvance; /* Timing Advance in bit periods. 1 bit period = 48/13 us. + * INT_MAX denotes invalid value */ +} RIL_GSM_SignalStrength_v12; + +typedef struct { + int signalStrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */ + int bitErrorRate; /* bit error rate (0-7, 99) as defined in TS 27.007 8.5 */ } RIL_SignalStrengthWcdma; typedef struct { @@ -1046,7 +1205,6 @@ typedef struct { RIL_TD_SCDMA_SignalStrength TD_SCDMA_SignalStrength; } RIL_SignalStrength_v10; -/** RIL_CellIdentityGsm */ typedef struct { int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */ int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */ @@ -1054,7 +1212,15 @@ typedef struct { int cid; /* 16-bit GSM Cell Identity described in TS 27.007, 0..65535, INT_MAX if unknown */ } RIL_CellIdentityGsm; -/** RIL_CellIdentityWcdma */ +typedef struct { + int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */ + int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */ + int lac; /* 16-bit Location Area Code, 0..65535, INT_MAX if unknown */ + int cid; /* 16-bit GSM Cell Identity described in TS 27.007, 0..65535, INT_MAX if unknown */ + int arfcn; /* 16-bit GSM Absolute RF channel number, INT_MAX if unknown */ + uint8_t bsic;/* 6-bit Base Station Identity Code */ +} RIL_CellIdentityGsm_v12; + typedef struct { int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */ int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */ @@ -1063,7 +1229,15 @@ typedef struct { int psc; /* 9-bit UMTS Primary Scrambling Code described in TS 25.331, 0..511, INT_MAX if unknown */ } RIL_CellIdentityWcdma; -/** RIL_CellIdentityCdma */ +typedef struct { + int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */ + int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */ + int lac; /* 16-bit Location Area Code, 0..65535, INT_MAX if unknown */ + int cid; /* 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown */ + int psc; /* 9-bit UMTS Primary Scrambling Code described in TS 25.331, 0..511, INT_MAX if unknown */ + int uarfcn; /* 16-bit UMTS Absolute RF Channel Number, INT_MAX if unknown */ +} RIL_CellIdentityWcdma_v12; + typedef struct { int networkId; /* Network Id 0..65535, INT_MAX if unknown */ int systemId; /* CDMA System Id 0..32767, INT_MAX if unknown */ @@ -1079,7 +1253,6 @@ typedef struct { * to +90 degrees). INT_MAX if unknown */ } RIL_CellIdentityCdma; -/** RIL_CellIdentityLte */ typedef struct { int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */ int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */ @@ -1088,7 +1261,15 @@ typedef struct { int tac; /* 16-bit tracking area code, INT_MAX if unknown */ } RIL_CellIdentityLte; -/** RIL_CellIdentityTdscdma */ +typedef struct { + int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */ + int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */ + int ci; /* 28-bit Cell Identity described in TS ???, INT_MAX if unknown */ + int pci; /* physical cell id 0..503, INT_MAX if unknown */ + int tac; /* 16-bit tracking area code, INT_MAX if unknown */ + int earfcn; /* 18-bit LTE Absolute RC Channel Number, INT_MAX if unknown */ +} RIL_CellIdentityLte_v12; + typedef struct { int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */ int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */ @@ -1097,32 +1278,42 @@ typedef struct { int cpid; /* 8-bit Cell Parameters ID described in TS 25.331, 0..127, INT_MAX if unknown */ } RIL_CellIdentityTdscdma; -/** RIL_CellInfoGsm */ typedef struct { RIL_CellIdentityGsm cellIdentityGsm; RIL_GW_SignalStrength signalStrengthGsm; } RIL_CellInfoGsm; -/** RIL_CellInfoWcdma */ +typedef struct { + RIL_CellIdentityGsm_v12 cellIdentityGsm; + RIL_GSM_SignalStrength_v12 signalStrengthGsm; +} RIL_CellInfoGsm_v12; + typedef struct { RIL_CellIdentityWcdma cellIdentityWcdma; RIL_SignalStrengthWcdma signalStrengthWcdma; } RIL_CellInfoWcdma; -/** RIL_CellInfoCdma */ +typedef struct { + RIL_CellIdentityWcdma_v12 cellIdentityWcdma; + RIL_SignalStrengthWcdma signalStrengthWcdma; +} RIL_CellInfoWcdma_v12; + typedef struct { RIL_CellIdentityCdma cellIdentityCdma; RIL_CDMA_SignalStrength signalStrengthCdma; RIL_EVDO_SignalStrength signalStrengthEvdo; } RIL_CellInfoCdma; -/** RIL_CellInfoLte */ typedef struct { RIL_CellIdentityLte cellIdentityLte; RIL_LTE_SignalStrength_v8 signalStrengthLte; } RIL_CellInfoLte; -/** RIL_CellInfoTdscdma */ +typedef struct { + RIL_CellIdentityLte_v12 cellIdentityLte; + RIL_LTE_SignalStrength_v8 signalStrengthLte; +} RIL_CellInfoLte_v12; + typedef struct { RIL_CellIdentityTdscdma cellIdentityTdscdma; RIL_TD_SCDMA_SignalStrength signalStrengthTdscdma; @@ -1160,6 +1351,20 @@ typedef struct { } CellInfo; } RIL_CellInfo; +typedef struct { + RIL_CellInfoType cellInfoType; /* cell type for selecting from union CellInfo */ + int registered; /* !0 if this cell is registered 0 if not registered */ + RIL_TimeStampType timeStampType; /* type of time stamp represented by timeStamp */ + uint64_t timeStamp; /* Time in nanos as returned by ril_nano_time */ + union { + RIL_CellInfoGsm_v12 gsm; + RIL_CellInfoCdma cdma; + RIL_CellInfoLte_v12 lte; + RIL_CellInfoWcdma_v12 wcdma; + RIL_CellInfoTdscdma tdscdma; + } CellInfo; +} RIL_CellInfo_v12; + /* Names of the CDMA info records (C.S0005 section 3.7.5) */ typedef enum { RIL_CDMA_DISPLAY_INFO_REC, @@ -2094,6 +2299,7 @@ typedef struct { * Valid errors: * SUCCESS * RADIO_NOT_AVAILABLE + * OPERATION_NOT_ALLOWED * GENERIC_FAILURE */ #define RIL_REQUEST_RADIO_POWER 23 @@ -2146,6 +2352,7 @@ typedef struct { * RADIO_NOT_AVAILABLE * SMS_SEND_FAIL_RETRY * FDN_CHECK_FAILURE + * NETWORK_REJECT * GENERIC_FAILURE * * FIXME how do we specify TP-Message-Reference if we need to resend? @@ -2177,6 +2384,7 @@ typedef struct { * SUCCESS * RADIO_NOT_AVAILABLE * SMS_SEND_FAIL_RETRY + * NETWORK_REJECT * GENERIC_FAILURE * */ @@ -2293,6 +2501,8 @@ typedef struct { * USSD_MODIFIED_TO_DIAL * USSD_MODIFIED_TO_SS * USSD_MODIFIED_TO_USSD + * SIM_BUSY + * OPERATION_NOT_ALLOWED * GENERIC_FAILURE * * See also: RIL_REQUEST_CANCEL_USSD, RIL_UNSOL_ON_USSD @@ -2311,6 +2521,8 @@ typedef struct { * Valid errors: * SUCCESS * RADIO_NOT_AVAILABLE + * SIM_BUSY + * OPERATION_NOT_ALLOWED * GENERIC_FAILURE */ @@ -2687,6 +2899,7 @@ typedef struct { * SUCCESS * RADIO_NOT_AVAILABLE * ILLEGAL_SIM_OR_ME + * OPERATION_NOT_ALLOWED * GENERIC_FAILURE * * Note: Returns ILLEGAL_SIM_OR_ME when the failure is permanent and @@ -2712,6 +2925,7 @@ typedef struct { * SUCCESS * RADIO_NOT_AVAILABLE * ILLEGAL_SIM_OR_ME + * OPERATION_NOT_ALLOWED * GENERIC_FAILURE * * Note: Returns ILLEGAL_SIM_OR_ME when the failure is permanent and @@ -2747,6 +2961,7 @@ typedef struct { * Valid errors: * SUCCESS * RADIO_NOT_AVAILABLE + * OPERATION_NOT_ALLOWED * GENERIC_FAILURE * */ @@ -2785,6 +3000,7 @@ typedef struct { * Valid errors: * SUCCESS * RADIO_NOT_AVAILABLE + * OPERATION_NOT_ALLOWED * GENERIC_FAILURE * * See also: RIL_REQUEST_DTMF, RIL_REQUEST_DTMF_START @@ -2803,6 +3019,7 @@ typedef struct { * Valid errors: * SUCCESS * RADIO_NOT_AVAILABLE + * EMPTY_RECORD * GENERIC_FAILURE * */ @@ -3063,6 +3280,7 @@ typedef struct { * Valid errors: * SUCCESS * RADIO_NOT_AVAILABLE + * SIM_BUSY * GENERIC_FAILURE * * See also: RIL_UNSOL_SUPP_SVC_NOTIFICATION. @@ -3081,6 +3299,7 @@ typedef struct { * * Valid errors: * SUCCESS + * SIM_FULL * GENERIC_FAILURE * */ @@ -3098,6 +3317,7 @@ typedef struct { * * Valid errors: * SUCCESS + * SIM_FULL * GENERIC_FAILURE * */ @@ -3109,32 +3329,17 @@ typedef struct { * Assign a specified band for RF configuration. * * "data" is int * - * ((int *)data)[0] is == 0 for "unspecified" (selected by baseband automatically) - * ((int *)data)[0] is == 1 for "EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000) - * ((int *)data)[0] is == 2 for "US band" (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900) - * ((int *)data)[0] is == 3 for "JPN band" (WCDMA-800 / WCDMA-IMT-2000) - * ((int *)data)[0] is == 4 for "AUS band" (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000) - * ((int *)data)[0] is == 5 for "AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850) - * ((int *)data)[0] is == 6 for "Cellular (800-MHz Band)" - * ((int *)data)[0] is == 7 for "PCS (1900-MHz Band)" - * ((int *)data)[0] is == 8 for "Band Class 3 (JTACS Band)" - * ((int *)data)[0] is == 9 for "Band Class 4 (Korean PCS Band)" - * ((int *)data)[0] is == 10 for "Band Class 5 (450-MHz Band)" - * ((int *)data)[0] is == 11 for "Band Class 6 (2-GMHz IMT2000 Band)" - * ((int *)data)[0] is == 12 for "Band Class 7 (Upper 700-MHz Band)" - * ((int *)data)[0] is == 13 for "Band Class 8 (1800-MHz Band)" - * ((int *)data)[0] is == 14 for "Band Class 9 (900-MHz Band)" - * ((int *)data)[0] is == 15 for "Band Class 10 (Secondary 800-MHz Band)" - * ((int *)data)[0] is == 16 for "Band Class 11 (400-MHz European PAMR Band)" - * ((int *)data)[0] is == 17 for "Band Class 15 (AWS Band)" - * ((int *)data)[0] is == 18 for "Band Class 16 (US 2.5-GHz Band)" + * ((int *)data)[0] is a RIL_RadioBandMode * * "response" is NULL * * Valid errors: * SUCCESS * RADIO_NOT_AVAILABLE + * OPERATION_NOT_ALLOWED * GENERIC_FAILURE + * + * See also: RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE */ #define RIL_REQUEST_SET_BAND_MODE 65 @@ -3146,28 +3351,8 @@ typedef struct { * "data" is NULL * * "response" is int * - * "response" points to an array of int's, the int[0] is the size of array, reset is one for - * each available band mode. - * - * 0 for "unspecified" (selected by baseband automatically) - * 1 for "EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000) - * 2 for "US band" (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900) - * 3 for "JPN band" (WCDMA-800 / WCDMA-IMT-2000) - * 4 for "AUS band" (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000) - * 5 for "AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850) - * 6 for "Cellular (800-MHz Band)" - * 7 for "PCS (1900-MHz Band)" - * 8 for "Band Class 3 (JTACS Band)" - * 9 for "Band Class 4 (Korean PCS Band)" - * 10 for "Band Class 5 (450-MHz Band)" - * 11 for "Band Class 6 (2-GMHz IMT2000 Band)" - * 12 for "Band Class 7 (Upper 700-MHz Band)" - * 13 for "Band Class 8 (1800-MHz Band)" - * 14 for "Band Class 9 (900-MHz Band)" - * 15 for "Band Class 10 (Secondary 800-MHz Band)" - * 16 for "Band Class 11 (400-MHz European PAMR Band)" - * 17 for "Band Class 15 (AWS Band)" - * 18 for "Band Class 16 (US 2.5-GHz Band)" + * "response" points to an array of int's, the int[0] is the size of array; + * subsequent values are a list of RIL_RadioBandMode listing supported modes. * * Valid errors: * SUCCESS @@ -3231,6 +3416,8 @@ typedef struct { * Valid errors: * RIL_E_SUCCESS * RIL_E_RADIO_NOT_AVAILABLE (radio resetting) + * SIM_BUSY + * OPERATION_NOT_ALLOWED * RIL_E_GENERIC_FAILURE */ #define RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND 69 @@ -3249,6 +3436,7 @@ typedef struct { * Valid errors: * RIL_E_SUCCESS * RIL_E_RADIO_NOT_AVAILABLE (radio resetting) + * RIL_E_OPERATION_NOT_ALLOWED * RIL_E_GENERIC_FAILURE */ #define RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE 70 @@ -3270,6 +3458,7 @@ typedef struct { * Valid errors: * RIL_E_SUCCESS * RIL_E_RADIO_NOT_AVAILABLE (radio resetting) + * RIL_E_OPERATION_NOT_ALLOWED * RIL_E_GENERIC_FAILURE */ #define RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM 71 @@ -3303,6 +3492,7 @@ typedef struct { * SUCCESS * RADIO_NOT_AVAILABLE (radio resetting) * GENERIC_FAILURE + * OPERATION_NOT_ALLOWED * MODE_NOT_SUPPORTED */ #define RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE 73 @@ -3593,6 +3783,7 @@ typedef struct { * SUCCESS * RADIO_NOT_AVAILABLE * SMS_SEND_FAIL_RETRY + * NETWORK_REJECT * GENERIC_FAILURE * */ @@ -3769,6 +3960,7 @@ typedef struct { * Valid errors: * SUCCESS * RADIO_NOT_AVAILABLE + * SIM_FULL * GENERIC_FAILURE * */ @@ -3834,6 +4026,7 @@ typedef struct { * Valid errors: * SUCCESS * RADIO_NOT_AVAILABLE + * OPERATION_NOT_ALLOWED * GENERIC_FAILURE * */ @@ -3989,6 +4182,8 @@ typedef struct { * Valid errors: * RIL_E_SUCCESS * RIL_E_RADIO_NOT_AVAILABLE (radio resetting) + * SIM_BUSY + * OPERATION_NOT_ALLOWED * RIL_E_GENERIC_FAILURE */ #define RIL_REQUEST_STK_SEND_ENVELOPE_WITH_STATUS 107 @@ -4020,7 +4215,7 @@ typedef struct { * * "data" is NULL * - * "response" is an array of RIL_CellInfo. + * "response" is an array of RIL_CellInfo_v12. */ #define RIL_REQUEST_GET_CELL_INFO_LIST 109 @@ -4100,6 +4295,7 @@ typedef struct { * RADIO_NOT_AVAILABLE * SMS_SEND_FAIL_RETRY * FDN_CHECK_FAILURE + * NETWORK_REJECT * GENERIC_FAILURE * */ @@ -4393,6 +4589,7 @@ typedef struct { * Valid errors: * SUCCESS * RADIO_NOT_AVAILABLE + * OPERATION_NOT_ALLOWED * GENERIC_FAILURE */ #define RIL_REQUEST_SHUTDOWN 129 @@ -4407,6 +4604,7 @@ typedef struct { * Valid errors: * SUCCESS * RADIO_NOT_AVAILABLE + * OPERATION_NOT_ALLOWED * GENERIC_FAILURE */ #define RIL_REQUEST_GET_RADIO_CAPABILITY 130 @@ -4426,6 +4624,7 @@ typedef struct { * Valid errors: * SUCCESS means a RIL_UNSOL_RADIO_CAPABILITY will be sent within 30 seconds. * RADIO_NOT_AVAILABLE + * OPERATION_NOT_ALLOWED * GENERIC_FAILURE */ #define RIL_REQUEST_SET_RADIO_CAPABILITY 131 @@ -4499,6 +4698,22 @@ typedef struct { /***********************************************************************/ +/** + * RIL_RESPONSE_ACKNOWLEDGEMENT + * + * This is used by Asynchronous solicited messages and Unsolicited messages + * to acknowledge the receipt of those messages in RIL.java so that the ack + * can be used to let ril.cpp to release wakelock. + * + * Valid errors + * SUCCESS + * RADIO_NOT_AVAILABLE + */ + +#define RIL_RESPONSE_ACKNOWLEDGEMENT 800 + +/***********************************************************************/ + #define RIL_UNSOL_RESPONSE_BASE 1000 @@ -4982,7 +5197,7 @@ typedef struct { * * "data" is NULL * - * "response" is an array of RIL_CellInfo. + * "response" is an array of RIL_CellInfo_v12. */ #define RIL_UNSOL_CELL_INFO_LIST 1036 @@ -5249,6 +5464,13 @@ struct RIL_Env { void (*RequestTimedCallback) (RIL_TimedCallback callback, void *param, const struct timeval *relativeTime); + /** + * "t" is parameter passed in on previous call RIL_Notification routine + * + * RIL_onRequestAck will be called by vendor when an Async RIL request was received + * by them and an ack needs to be sent back to java ril. + */ + void (*OnRequestAck) (RIL_Token t); }; @@ -5289,6 +5511,18 @@ void RIL_register (const RIL_RadioFunctions *callbacks); void RIL_onRequestComplete(RIL_Token t, RIL_Errno e, void *response, size_t responselen); +/** + * RIL_onRequestAck will be called by vendor when an Async RIL request was received by them and + * an ack needs to be sent back to java ril. This doesn't mark the end of the command or it's + * results, just that the command was received and will take a while. After sending this Ack + * its vendor's responsibility to make sure that AP is up whenever needed while command is + * being processed. + * + * @param t is parameter passed in on previous call to RIL_Notification + * routine. + */ +void RIL_onRequestAck(RIL_Token t); + #if defined(ANDROID_MULTI_SIM) /** * @param unsolResponse is one of RIL_UNSOL_RESPONSE_*