summaryrefslogtreecommitdiffstats
path: root/radio
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2018-01-02 22:17:21 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-01-02 22:17:21 +0000
commit384fa7b6dc6e9fd89ebe36d6da8dcfdfaa457f9c (patch)
tree232c009e49840646e17a8b3760443efeb3e69e9e /radio
parent7fe9365e6fb10533d75000eddd5287ca6408f897 (diff)
parent4a4d8cc197fb922f170208e7a614608c3737b622 (diff)
downloadandroid_hardware_interfaces-384fa7b6dc6e9fd89ebe36d6da8dcfdfaa457f9c.tar.gz
android_hardware_interfaces-384fa7b6dc6e9fd89ebe36d6da8dcfdfaa457f9c.tar.bz2
android_hardware_interfaces-384fa7b6dc6e9fd89ebe36d6da8dcfdfaa457f9c.zip
Merge "SIM slot related interface changes"
Diffstat (limited to 'radio')
-rw-r--r--radio/1.2/Android.bp3
-rw-r--r--radio/1.2/IRadio.hal42
-rw-r--r--radio/1.2/IRadioIndication.hal11
-rw-r--r--radio/1.2/IRadioResponse.hal38
-rw-r--r--radio/1.2/types.hal78
5 files changed, 163 insertions, 9 deletions
diff --git a/radio/1.2/Android.bp b/radio/1.2/Android.bp
index cdb9bf6e4..3e678bbe8 100644
--- a/radio/1.2/Android.bp
+++ b/radio/1.2/Android.bp
@@ -19,6 +19,7 @@ hidl_interface {
"android.hidl.base@1.0",
],
types: [
+ "CardStatus",
"CellIdentityCdma",
"CellIdentityGsm",
"CellIdentityLte",
@@ -35,6 +36,8 @@ hidl_interface {
"NetworkScanResult",
"RadioConst",
"ScanIntervalRange",
+ "SimSlotStatus",
+ "SlotState",
],
gen_java: true,
}
diff --git a/radio/1.2/IRadio.hal b/radio/1.2/IRadio.hal
index 6ae78a0bf..73f1024ce 100644
--- a/radio/1.2/IRadio.hal
+++ b/radio/1.2/IRadio.hal
@@ -37,4 +37,46 @@ interface IRadio extends @1.1::IRadio {
* Response function is IRadioResponse.startNetworkScanResponse()
*/
oneway startNetworkScan_1_2(int32_t serial, NetworkScanRequest request);
+
+ /**
+ * Get SIM Slot status.
+ *
+ * Request provides the slot status of all active and inactive SIM slots and whether card is
+ * present in the slots or not.
+ *
+ * @param serial Serial number of request.
+ *
+ * Response callback is IRadioResponse.getSimSlotsStatusResponse()
+ */
+ oneway getSimSlotsStatus(int32_t serial);
+
+ /**
+ * Set SIM Slot mapping.
+
+ * Maps the logical slots to the physical slots. Logical slot is the slot that is seen by modem.
+ * Physical slot is the actual physical slot. Request maps the physical slot to logical slot.
+ * Logical slots that are already mapped to the requested physical slot are not impacted.
+ *
+ * Example no. of logical slots 1 and physical slots 2:
+ * The only logical slot (index 0) can be mapped to first physical slot (value 0) or second
+ * physical slot(value 1), while the other physical slot remains unmapped and inactive.
+ * slotMap[0] = 1 or slotMap[0] = 0
+ *
+ * Example no. of logical slots 2 and physical slots 2:
+ * First logical slot (index 0) can be mapped to physical slot 1 or 2 and other logical slot
+ * can be mapped to other physical slot. Each logical slot must be mapped to a physical slot.
+ * slotMap[0] = 0 and slotMap[1] = 1 or slotMap[0] = 1 and slotMap[1] = 0
+ *
+ * @param serial Serial number of request
+ * @param slotMap Logical to physical slot mapping, size == no. of radio instances. Index is
+ * mapping to logical slot and value to physical slot, need to provide all the slots
+ * mapping when sending request in case of multi slot device.
+ * EX: uint32_t slotMap[logical slot] = physical slot
+ * index 0 is the first logical_slot number of logical slots is equal to number of Radio
+ * instances and number of physical slots is equal to size of slotStatus in
+ * getSimSlotsStatusResponse
+ *
+ * Response callback is IRadioResponse.setSimSlotsMappingResponse()
+ */
+ oneway setSimSlotsMapping(int32_t serial, vec<uint32_t> slotMap);
};
diff --git a/radio/1.2/IRadioIndication.hal b/radio/1.2/IRadioIndication.hal
index 5d3efcf29..4aae74da3 100644
--- a/radio/1.2/IRadioIndication.hal
+++ b/radio/1.2/IRadioIndication.hal
@@ -28,4 +28,13 @@ interface IRadioIndication extends @1.1::IRadioIndication {
* Incremental network scan results
*/
oneway networkScanResult_1_2(RadioIndicationType type, NetworkScanResult result);
-}; \ No newline at end of file
+
+ /**
+ * Indicates SIM slot status change.
+ *
+ * @param type Type of radio indication
+ * @param slotStatus new slot status info with size equals to the number of physical slots on
+ * the device
+ */
+ oneway simSlotsStatusChanged(RadioIndicationType type, vec<SimSlotStatus> slotStatus);
+};
diff --git a/radio/1.2/IRadioResponse.hal b/radio/1.2/IRadioResponse.hal
index 5bfbbaef5..cf6bc0029 100644
--- a/radio/1.2/IRadioResponse.hal
+++ b/radio/1.2/IRadioResponse.hal
@@ -41,4 +41,42 @@ interface IRadioResponse extends @1.1::IRadioResponse {
* RadioError:CANCELLED
*/
oneway getCellInfoListResponse_1_2(RadioResponseInfo info, vec<CellInfo> cellInfo);
+
+ /**
+ * @param info Response info struct containing response type, serial no. and error
+ * @param cardStatus ICC card status as defined by CardStatus in types.hal
+ *
+ * Valid errors returned:
+ * RadioError:NONE
+ */
+ oneway getIccCardStatusResponse_1_2(RadioResponseInfo info, CardStatus cardStatus);
+
+ /**
+ * @param info Response info struct containing response type, serial no. and error
+ * @param slotStatus Sim slot struct containing all the physical SIM slots info with size
+ * equals to the number of physical slots on the device
+ *
+ * Valid errors returned:
+ * RadioError:NONE
+ * RadioError:RADIO_NOT_AVAILABLE
+ * RadioError:REQUEST_NOT_SUPPORTED
+ * RadioError:NO_MEMORY
+ * RadioError:INTERNAL_ERR
+ * RadioError:MODEM_ERR
+ * RadioError:INVALID_ARGUMENTS
+ */
+ oneway getSimSlotsStatusResponse(RadioResponseInfo info, vec<SimSlotStatus> slotStatus);
+
+ /**
+ * @param info Response info struct containing response type, serial no. and error
+ *
+ * Valid errors returned:
+ * RadioError:NONE
+ * RadioError:RADIO_NOT_AVAILABLE
+ * RadioError:REQUEST_NOT_SUPPORTED
+ * RadioError:NO_MEMORY
+ * RadioError:INTERNAL_ERR
+ * RadioError:MODEM_ERR
+ */
+ oneway setSimSlotsMappingResponse(RadioResponseInfo info);
};
diff --git a/radio/1.2/types.hal b/radio/1.2/types.hal
index 52af5756f..1e28d3b35 100644
--- a/radio/1.2/types.hal
+++ b/radio/1.2/types.hal
@@ -17,6 +17,8 @@
package android.hardware.radio@1.2;
import @1.0::CdmaSignalStrength;
+import @1.0::CardState;
+import @1.0::CardStatus;
import @1.0::CellIdentityCdma;
import @1.0::CellIdentityGsm;
import @1.0::CellIdentityLte;
@@ -187,37 +189,97 @@ struct CellInfo {
* Cell type for selecting from union CellInfo.
*/
CellInfoType cellInfoType;
- /*
+ /**
* True if this cell is registered false if not registered.
*/
bool registered;
- /*
+ /**
* Type of time stamp represented by timeStamp.
*/
TimeStampType timeStampType;
- /*
+ /**
* Time in nanos as returned by ril_nano_time.
*/
uint64_t timeStamp;
- /*
+ /**
* Only one of the below vectors must be of size 1 based on the CellInfoType and others must be
* of size 0.
*/
vec<CellInfoGsm> gsm;
- /*
+ /**
* Valid only if type = cdma and size = 1 else must be empty.
*/
vec<CellInfoCdma> cdma;
- /*
+ /**
* Valid only if type = lte and size = 1 else must be empty.
*/
vec<CellInfoLte> lte;
- /*
+ /**
* Valid only if type = wcdma and size = 1 else must be empty.
*/
vec<CellInfoWcdma> wcdma;
- /*
+ /**
* Valid only if type = tdscdma and size = 1 else must be empty.
*/
vec<CellInfoTdscdma> tdscdma;
};
+
+enum SlotState : int32_t {
+ /**
+ * Physical slot is inactive
+ */
+ INACTIVE = 0x00,
+ /**
+ * Physical slot is active
+ */
+ ACTIVE = 0x01,
+};
+
+struct CardStatus {
+ @1.0::CardStatus base;
+ uint32_t physicalSlotId;
+ /**
+ * An Answer To Reset (ATR) is a message output by a Smart Card conforming to ISO/IEC 7816
+ * standards, following electrical reset of the card's chip. The ATR conveys information about
+ * the communication parameters proposed by the card, and the card's nature and state.
+ *
+ * This data is applicable only when cardState is CardState:PRESENT.
+ */
+ string atr;
+ /**
+ * Integrated Circuit Card IDentifier (ICCID) is Unique Identifier of the SIM CARD. File is
+ * located in the SIM card at EFiccid (0x2FE2) as per ETSI 102.221. The ICCID is defined by
+ * the ITU-T recommendation E.118 ISO/IEC 7816.
+ *
+ * This data is applicable only when cardState is CardState:PRESENT.
+ */
+ string iccid;
+};
+
+struct SimSlotStatus {
+ /**
+ * Card state in the physical slot
+ */
+ CardState cardState;
+ /**
+ * Slot state Active/Inactive
+ */
+ SlotState slotState;
+ /**
+ * An Answer To Reset (ATR) is a message output by a Smart Card conforming to ISO/IEC 7816
+ * standards, following electrical reset of the card's chip. The ATR conveys information about
+ * the communication parameters proposed by the card, and the card's nature and state.
+ *
+ * This data is applicable only when cardState is CardState:PRESENT.
+ */
+ string atr;
+ uint32_t logicalSlotId;
+ /**
+ * Integrated Circuit Card IDentifier (ICCID) is Unique Identifier of the SIM CARD. File is
+ * located in the SIM card at EFiccid (0x2FE2) as per ETSI 102.221. The ICCID is defined by
+ * the ITU-T recommendation E.118 ISO/IEC 7816.
+ *
+ * This data is applicable only when cardState is CardState:PRESENT.
+ */
+ string iccid;
+};