summaryrefslogtreecommitdiffstats
path: root/include/telephony/ril.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/telephony/ril.h')
-rw-r--r--include/telephony/ril.h169
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
/***********************************************************************/