diff options
Diffstat (limited to 'include/telephony/ril.h')
-rw-r--r-- | include/telephony/ril.h | 169 |
1 files changed, 137 insertions, 32 deletions
diff --git a/include/telephony/ril.h b/include/telephony/ril.h index 4d6bfb6..959b7e6 100644 --- a/include/telephony/ril.h +++ b/include/telephony/ril.h @@ -46,7 +46,7 @@ extern "C" { #define SIM_COUNT 1 #endif -#define RIL_VERSION 10 /* Current version */ +#define RIL_VERSION 11 /* Current version */ #define RIL_VERSION_MIN 6 /* Minimum RIL_VERSION supported */ #define CDMA_ALPHA_INFO_BUFFER_LENGTH 64 @@ -57,8 +57,8 @@ extern "C" { #define MAX_CLIENT_ID_LENGTH 2 #define MAX_DEBUG_SOCKET_NAME_LENGTH 12 #define MAX_QEMU_PIPE_NAME_LENGTH 11 +#define MAX_UUID_LENGTH 64 -#define FEATURE_MTU_CAF 1 typedef void * RIL_Token; @@ -100,21 +100,22 @@ typedef enum { RIL_E_FDN_CHECK_FAILURE = 14, /* command failed because recipient is not on FDN list */ RIL_E_ILLEGAL_SIM_OR_ME = 15, /* network selection failed due to illegal SIM or ME */ - RIL_E_UNUSED = 16, - RIL_E_DIAL_MODIFIED_TO_USSD = 17, /* DIAL request modified to USSD */ - RIL_E_DIAL_MODIFIED_TO_SS = 18, /* DIAL request modified to SS */ - RIL_E_DIAL_MODIFIED_TO_DIAL = 19, /* DIAL request modified to DIAL with different + RIL_E_MISSING_RESOURCE = 16, /* no logical channel available */ + RIL_E_NO_SUCH_ELEMENT = 17, /* application not found on SIM */ + RIL_E_DIAL_MODIFIED_TO_USSD = 18, /* DIAL request modified to USSD */ + RIL_E_DIAL_MODIFIED_TO_SS = 19, /* DIAL request modified to SS */ + RIL_E_DIAL_MODIFIED_TO_DIAL = 20, /* DIAL request modified to DIAL with different data */ - RIL_E_USSD_MODIFIED_TO_DIAL = 20, /* USSD request modified to DIAL */ - RIL_E_USSD_MODIFIED_TO_SS = 21, /* USSD request modified to SS */ - RIL_E_USSD_MODIFIED_TO_USSD = 22, /* USSD request modified to different USSD + RIL_E_USSD_MODIFIED_TO_DIAL = 21, /* USSD request modified to DIAL */ + RIL_E_USSD_MODIFIED_TO_SS = 22, /* USSD request modified to SS */ + RIL_E_USSD_MODIFIED_TO_USSD = 23, /* USSD request modified to different USSD request */ - RIL_E_SS_MODIFIED_TO_DIAL = 23, /* SS request modified to DIAL */ - RIL_E_SS_MODIFIED_TO_USSD = 24, /* SS request modified to USSD */ - RIL_E_SS_MODIFIED_TO_SS = 25, /* SS request modified to different SS request */ + RIL_E_SS_MODIFIED_TO_DIAL = 24, /* SS request modified to DIAL */ + 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_MISSING_RESOURCE = 27, /* no logical channel available */ - RIL_E_NO_SUCH_ELEMENT = 28 /* application not found on SIM */ + RIL_E_SS_MODIFIED_TO_SS = 27 /* SS request modified to different SS request */ + + } RIL_Errno; typedef enum { @@ -165,6 +166,62 @@ typedef enum { RADIO_TECH_IWLAN = 18 } RIL_RadioTechnology; +typedef enum { + RAF_UNKNOWN = (1 << RADIO_TECH_UNKNOWN), + RAF_GPRS = (1 << RADIO_TECH_GPRS), + RAF_EDGE = (1 << RADIO_TECH_EDGE), + RAF_UMTS = (1 << RADIO_TECH_UMTS), + RAF_IS95A = (1 << RADIO_TECH_IS95A), + RAF_IS95B = (1 << RADIO_TECH_IS95B), + RAF_1xRTT = (1 << RADIO_TECH_1xRTT), + RAF_EVDO_0 = (1 << RADIO_TECH_EVDO_0), + RAF_EVDO_A = (1 << RADIO_TECH_EVDO_A), + RAF_HSDPA = (1 << RADIO_TECH_HSDPA), + RAF_HSUPA = (1 << RADIO_TECH_HSUPA), + RAF_HSPA = (1 << RADIO_TECH_HSPA), + RAF_EVDO_B = (1 << RADIO_TECH_EVDO_B), + RAF_EHRPD = (1 << RADIO_TECH_EHRPD), + RAF_LTE = (1 << RADIO_TECH_LTE), + RAF_HSPAP = (1 << RADIO_TECH_HSPAP), + RAF_GSM = (1 << RADIO_TECH_GSM), + RAF_TD_SCDMA = (1 << RADIO_TECH_TD_SCDMA), +} RIL_RadioAccessFamily; + +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 + RC_PHASE_APPLY = 2, // APPLY is sent after all LM's receive START and returned + // RIL_RadioCapability.status = 0, if any START's fail no + // APPLY will be sent + RC_PHASE_UNSOL_RSP = 3, // UNSOL_RSP is sent with RIL_UNSOL_RADIO_CAPABILITY + RC_PHASE_FINISH = 4 // FINISH is sent after all commands have completed. If an error + // occurs in any previous command the RIL_RadioAccessesFamily and + // logicalModemUuid fields will be the prior configuration thus + // restoring the configuration to the previous value. An error + // returned by this command will generally be ignored or may + // cause that logical modem to be removed from service. +} RadioCapabilityPhase; + +typedef enum { + RC_STATUS_NONE = 0, // This parameter has no meaning with RC_PHASE_START, + // RC_PHASE_APPLY + RC_STATUS_SUCCESS = 1, // Tell modem the action transaction of set radio + // capability was success with RC_PHASE_FINISH + RC_STATUS_FAIL = 2, // Tell modem the action transaction of set radio + // capability is fail with RC_PHASE_FINISH. +} RadioCapabilityStatus; + +#define RIL_RADIO_CAPABILITY_VERSION 1 +typedef struct { + int version; // Version of structure, RIL_RADIO_CAPABILITY_VERSION + int session; // Unique session value defined by framework returned in all "responses/unsol" + int phase; // CONFIGURED, START, APPLY, FINISH + int rat; // RIL_RadioAccessFamily for the radio + char logicalModemUuid[MAX_UUID_LENGTH]; // A UUID typically "com.xxxx.lmX where X is the logical modem. + int status; // Return status and an input parameter for RC_PHASE_FINISH +} RIL_RadioCapability; + // Do we want to split Data from Voice and the use // RIL_RadioTechnology for get/setPreferredVoice/Data ? typedef enum { @@ -323,9 +380,9 @@ typedef struct { to point connections. */ char * pcscf; /* the Proxy Call State Control Function address via PCO(Protocol Configuration Option) for IMS client. */ -} RIL_Data_Call_Response_v9; // FIXME: Change to v10 +} RIL_Data_Call_Response_v9; -typedef struct __attribute__ ((__packed__)) { +typedef struct { int status; /* A RIL_DataCallFailCause, 0 which is PDP_FAIL_NONE if no error */ int suggestedRetryTime; /* If status != 0, this fields indicates the suggested retry back-off timer value RIL wants to override the one @@ -354,15 +411,12 @@ typedef struct __attribute__ ((__packed__)) { e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1". May be empty in which case the addresses represent point to point connections. */ - char * pcscf; /* the Proxy Call State Control Function address - via PCO(Protocol Configuration Option) for IMS client. */ + char * pcscf; /* the Proxy Call State Control Function address + via PCO(Protocol Configuration Option) for IMS client. */ int mtu; /* MTU received from network Value <= 0 means network has either not sent a value or sent an invalid value */ - char extraByte; /* Add an extra byte to increase the size of structure to - a prime number so that we never get an array of data call - responses which can be a multiple of both v9 and v9_CAF types */ -} RIL_Data_Call_Response_v9_CAF; +} RIL_Data_Call_Response_v11; typedef enum { RADIO_TECH_3GPP = 1, /* 3GPP Technologies - GSM, WCDMA */ @@ -632,7 +686,11 @@ typedef enum { typedef enum { RIL_DATA_PROFILE_DEFAULT = 0, RIL_DATA_PROFILE_TETHERED = 1, - RIL_DATA_PROFILE_OEM_BASE = 1000 /* Start of OEM-specific profiles */ + RIL_DATA_PROFILE_IMS = 2, + RIL_DATA_PROFILE_FOTA = 3, + RIL_DATA_PROFILE_CBS = 4, + RIL_DATA_PROFILE_OEM_BASE = 1000, /* Start of OEM-specific profiles */ + RIL_DATA_PROFILE_INVALID = 0xFFFFFFFF } RIL_DataProfile; /* Used by RIL_UNSOL_SUPP_SVC_NOTIFICATION */ @@ -1190,8 +1248,6 @@ typedef struct { #define RIL_CDMA_MAX_NUMBER_OF_INFO_RECS 10 -#define RIL_HARDWARE_CONFIG_UUID_LENGTH 64 - typedef struct { char numberOfInfoRecs; RIL_CDMA_InformationRecord infoRec[RIL_CDMA_MAX_NUMBER_OF_INFO_RECS]; @@ -1236,12 +1292,12 @@ typedef struct { } RIL_HardwareConfig_Modem; typedef struct { - char modemUuid[RIL_HARDWARE_CONFIG_UUID_LENGTH]; + char modemUuid[MAX_UUID_LENGTH]; } RIL_HardwareConfig_Sim; typedef struct { RIL_HardwareConfig_Type type; - char uuid[RIL_HARDWARE_CONFIG_UUID_LENGTH]; + char uuid[MAX_UUID_LENGTH]; RIL_HardwareConfig_State state; union { RIL_HardwareConfig_Modem modem; @@ -2134,7 +2190,7 @@ typedef struct { * For example, "IP", "IPV6", "IPV4V6", or "PPP". * ((const char **)data)[7] Optional connection property parameters, format to be defined. * - * "response" is a RIL_Data_Call_Response_v6 + * "response" is a RIL_Data_Call_Response_v11 * * FIXME may need way to configure QoS settings * @@ -4278,6 +4334,7 @@ typedef struct { * RIL_REQUEST_SET_DATA_PROFILE * * Set data profile in modem + * Modem should erase existed profiles from framework, and apply new profiles * "data" is an const RIL_DataProfileInfo ** * "datalen" is count * sizeof(const RIL_DataProfileInfo *) * "response" is NULL @@ -4306,6 +4363,42 @@ typedef struct { */ #define RIL_REQUEST_SHUTDOWN 129 + +/** + * RIL_REQUEST_GET_RADIO_CAPABILITY + * + * Used to get phone radio capablility. + * + * "data" is int * + * ((int *)data)[0] is the phone radio access family defined in + * RadioAccessFamily. It's a bit mask value to represent the support type. + * + * Valid errors: + * SUCCESS + * RADIO_NOT_AVAILABLE + * GENERIC_FAILURE + */ +#define RIL_REQUEST_GET_RADIO_CAPABILITY 130 + +/** + * RIL_REQUEST_SET_RADIO_CAPABILITY + * + * Used to set the phones radio capability. Be VERY careful + * using this request as it may cause some vendor modems to reset. Because + * of the possible modem reset any RIL commands after this one may not be + * processed. + * + * "data" is the RIL_RadioCapability structure + * + * "response" is the RIL_RadioCapability structure, used to feedback return status + * + * Valid errors: + * SUCCESS means a RIL_UNSOL_RADIO_CAPABILITY will be sent within 30 seconds. + * RADIO_NOT_AVAILABLE + * GENERIC_FAILURE + */ +#define RIL_REQUEST_SET_RADIO_CAPABILITY 131 + /** * RIL_REQUEST_GET_DATA_CALL_PROFILE * @@ -4327,7 +4420,7 @@ typedef struct { * RIL_E_DATA_CALL_PROFILE_NOT_AVAILABLE * */ -#define RIL_REQUEST_GET_DATA_CALL_PROFILE 130 +#define RIL_REQUEST_GET_DATA_CALL_PROFILE 132 /** * RIL_REQUEST_SIM_GET_ATR @@ -4347,7 +4440,7 @@ typedef struct { * RADIO_NOT_AVAILABLE (radio resetting) * GENERIC_FAILURE */ -#define RIL_REQUEST_SIM_GET_ATR 131 +#define RIL_REQUEST_SIM_GET_ATR 133 /***********************************************************************/ @@ -4904,6 +4997,18 @@ typedef struct { */ #define RIL_UNSOL_DC_RT_INFO_CHANGED 1041 +/** + * RIL_UNSOL_RADIO_CAPABILITY + * + * Sent when RIL_REQUEST_SET_RADIO_CAPABILITY completes. + * Returns the phone radio capability exactly as + * RIL_REQUEST_GET_RADIO_CAPABILITY and should be the + * same set as sent by RIL_REQUEST_SET_RADIO_CAPABILITY. + * + * "data" is the RIL_RadioCapability structure + */ +#define RIL_UNSOL_RADIO_CAPABILITY 1042 + /* * RIL_UNSOL_ON_SS * @@ -4913,7 +5018,7 @@ typedef struct { * "data" is const RIL_StkCcUnsolSsResponse * * */ -#define RIL_UNSOL_ON_SS 1042 +#define RIL_UNSOL_ON_SS 1043 /** * RIL_UNSOL_STK_CC_ALPHA_NOTIFY @@ -4923,7 +5028,7 @@ typedef struct { * "data" is const char * containing ALPHA string from UICC in UTF-8 format. * */ -#define RIL_UNSOL_STK_CC_ALPHA_NOTIFY 1043 +#define RIL_UNSOL_STK_CC_ALPHA_NOTIFY 1044 /***********************************************************************/ |