diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-01-02 22:17:21 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-01-02 22:17:21 +0000 |
commit | 384fa7b6dc6e9fd89ebe36d6da8dcfdfaa457f9c (patch) | |
tree | 232c009e49840646e17a8b3760443efeb3e69e9e /radio | |
parent | 7fe9365e6fb10533d75000eddd5287ca6408f897 (diff) | |
parent | 4a4d8cc197fb922f170208e7a614608c3737b622 (diff) | |
download | android_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.bp | 3 | ||||
-rw-r--r-- | radio/1.2/IRadio.hal | 42 | ||||
-rw-r--r-- | radio/1.2/IRadioIndication.hal | 11 | ||||
-rw-r--r-- | radio/1.2/IRadioResponse.hal | 38 | ||||
-rw-r--r-- | radio/1.2/types.hal | 78 |
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; +}; |