diff options
author | Amit Mahajan <amitmahajan@google.com> | 2017-05-18 19:01:07 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-05-18 19:01:07 +0000 |
commit | b863304d017298262f32b5737e983e4f0bc80518 (patch) | |
tree | df9f7d37c097e537edd86042578784c9cb4bc330 | |
parent | 991e200ed688000cc577c0a56a991942e0bce504 (diff) | |
parent | 93f603c4e168c30fbc1366c1b6c6ac0f0a4b4b6e (diff) | |
download | android_hardware_ril-b863304d017298262f32b5737e983e4f0bc80518.tar.gz android_hardware_ril-b863304d017298262f32b5737e983e4f0bc80518.tar.bz2 android_hardware_ril-b863304d017298262f32b5737e983e4f0bc80518.zip |
Fix multi sim support and warnings in new hal code.
am: 93f603c4e1
Change-Id: I140b9892eb75cafd84784bdfe1c1ab969f2ec799
-rw-r--r-- | include/telephony/ril.h | 3 | ||||
-rw-r--r-- | libril/Android.mk | 2 | ||||
-rw-r--r-- | libril/ril.cpp | 4 | ||||
-rw-r--r-- | libril/ril_service.cpp | 83 | ||||
-rw-r--r-- | rild/Android.mk | 2 |
5 files changed, 51 insertions, 43 deletions
diff --git a/include/telephony/ril.h b/include/telephony/ril.h index f40bbfe..12258bf 100644 --- a/include/telephony/ril.h +++ b/include/telephony/ril.h @@ -31,7 +31,7 @@ extern "C" { #endif - +#ifndef SIM_COUNT #if defined(ANDROID_SIM_COUNT_2) #define SIM_COUNT 2 #elif defined(ANDROID_SIM_COUNT_3) @@ -45,6 +45,7 @@ extern "C" { #ifndef ANDROID_MULTI_SIM #define SIM_COUNT 1 #endif +#endif /* * RIL version. diff --git a/libril/Android.mk b/libril/Android.mk index 705a1a0..0016839 100644 --- a/libril/Android.mk +++ b/libril/Android.mk @@ -28,10 +28,10 @@ LOCAL_SHARED_LIBRARIES := \ LOCAL_STATIC_LIBRARIES := \ libprotobuf-c-nano-enable_malloc \ -#LOCAL_CFLAGS := -DANDROID_MULTI_SIM -DDSDA_RILD1 LOCAL_CFLAGS += -Wno-unused-parameter ifeq ($(SIM_COUNT), 2) + LOCAL_CFLAGS += -DANDROID_MULTI_SIM -DDSDA_RILD1 LOCAL_CFLAGS += -DANDROID_SIM_COUNT_2 endif diff --git a/libril/ril.cpp b/libril/ril.cpp index 17712fe..f07bd5a 100644 --- a/libril/ril.cpp +++ b/libril/ril.cpp @@ -192,12 +192,8 @@ extern "C" void RIL_onUnsolicitedResponse(int unsolResponse, const void *data, #if defined(ANDROID_MULTI_SIM) #define RIL_UNSOL_RESPONSE(a, b, c, d) RIL_onUnsolicitedResponse((a), (b), (c), (d)) -#define CALL_ONREQUEST(a, b, c, d, e) s_callbacks.onRequest((a), (b), (c), (d), (e)) -#define CALL_ONSTATEREQUEST(a) s_callbacks.onStateRequest(a) #else #define RIL_UNSOL_RESPONSE(a, b, c, d) RIL_onUnsolicitedResponse((a), (b), (c)) -#define CALL_ONREQUEST(a, b, c, d, e) s_callbacks.onRequest((a), (b), (c), (d)) -#define CALL_ONSTATEREQUEST(a) s_callbacks.onStateRequest() #endif static UserCallbackInfo * internalRequestTimedCallback diff --git a/libril/ril_service.cpp b/libril/ril_service.cpp index ea85054..607574a 100644 --- a/libril/ril_service.cpp +++ b/libril/ril_service.cpp @@ -51,6 +51,15 @@ using android::sp; #define ATOI_NULL_HANDLED(x) (x ? atoi(x) : -1) #define ATOI_NULL_HANDLED_DEF(x, defaultVal) (x ? atoi(x) : defaultVal) +#if defined(ANDROID_MULTI_SIM) +#define CALL_ONREQUEST(a, b, c, d, e) \ + s_vendorFunctions->onRequest((a), (b), (c), (d), ((RIL_SOCKET_ID)(e))) +#define CALL_ONSTATEREQUEST(a) s_vendorFunctions->onStateRequest((RIL_SOCKET_ID)(a)) +#else +#define CALL_ONREQUEST(a, b, c, d, e) s_vendorFunctions->onRequest((a), (b), (c), (d)) +#define CALL_ONSTATEREQUEST(a) s_vendorFunctions->onStateRequest() +#endif + RIL_RadioFunctions *s_vendorFunctions = NULL; static CommandInfo *s_commands; @@ -512,7 +521,7 @@ bool dispatchVoid(int serial, int slotId, int request) { if (pRI == NULL) { return false; } - s_vendorFunctions->onRequest(request, NULL, 0, pRI); + CALL_ONREQUEST(request, NULL, 0, pRI, slotId); return true; } @@ -527,7 +536,7 @@ bool dispatchString(int serial, int slotId, int request, const char * str) { return false; } - s_vendorFunctions->onRequest(request, pString, sizeof(char *), pRI); + CALL_ONREQUEST(request, pString, sizeof(char *), pRI, slotId); memsetAndFreeStrings(1, pString); return true; @@ -561,7 +570,7 @@ bool dispatchStrings(int serial, int slotId, int request, int countStrings, ...) } va_end(ap); - s_vendorFunctions->onRequest(request, pStrings, countStrings * sizeof(char *), pRI); + CALL_ONREQUEST(request, pStrings, countStrings * sizeof(char *), pRI, slotId); if (pStrings != NULL) { for (int i = 0 ; i < countStrings ; i++) { @@ -601,7 +610,7 @@ bool dispatchStrings(int serial, int slotId, int request, const hidl_vec<hidl_st } } - s_vendorFunctions->onRequest(request, pStrings, countStrings * sizeof(char *), pRI); + CALL_ONREQUEST(request, pStrings, countStrings * sizeof(char *), pRI, slotId); if (pStrings != NULL) { for (int i = 0 ; i < countStrings ; i++) { @@ -636,7 +645,7 @@ bool dispatchInts(int serial, int slotId, int request, int countInts, ...) { } va_end(ap); - s_vendorFunctions->onRequest(request, pInts, countInts * sizeof(int), pRI); + CALL_ONREQUEST(request, pInts, countInts * sizeof(int), pRI, slotId); if (pInts != NULL) { #ifdef MEMSET_FREED @@ -665,7 +674,7 @@ bool dispatchCallForwardStatus(int serial, int slotId, int request, return false; } - s_vendorFunctions->onRequest(request, &cf, sizeof(cf), pRI); + CALL_ONREQUEST(request, &cf, sizeof(cf), pRI, slotId); memsetAndFreeStrings(1, cf.number); @@ -680,7 +689,7 @@ bool dispatchRaw(int serial, int slotId, int request, const hidl_vec<uint8_t>& r const uint8_t *uData = rawBytes.data(); - s_vendorFunctions->onRequest(request, (void *) uData, rawBytes.size(), pRI); + CALL_ONREQUEST(request, (void *) uData, rawBytes.size(), pRI, slotId); return true; } @@ -704,7 +713,7 @@ bool dispatchIccApdu(int serial, int slotId, int request, const SimApdu& message return false; } - s_vendorFunctions->onRequest(request, &apdu, sizeof(apdu), pRI); + CALL_ONREQUEST(request, &apdu, sizeof(apdu), pRI, slotId); memsetAndFreeStrings(1, apdu.data); @@ -902,7 +911,7 @@ Return<void> RadioImpl::dial(int32_t serial, const Dial& dialInfo) { dial.uusInfo = &uusInfo; } - s_vendorFunctions->onRequest(RIL_REQUEST_DIAL, &dial, sizeOfDial, pRI); + CALL_ONREQUEST(RIL_REQUEST_DIAL, &dial, sizeOfDial, pRI, mSlotId); memsetAndFreeStrings(2, dial.address, uusInfo.uusData); @@ -1147,7 +1156,7 @@ Return<void> RadioImpl::iccIOForApp(int32_t serial, const IccIo& iccIo) { return Void(); } - s_vendorFunctions->onRequest(RIL_REQUEST_SIM_IO, &rilIccIo, sizeof(rilIccIo), pRI); + CALL_ONREQUEST(RIL_REQUEST_SIM_IO, &rilIccIo, sizeof(rilIccIo), pRI, mSlotId); memsetAndFreeStrings(4, rilIccIo.path, rilIccIo.data, rilIccIo.pin2, rilIccIo.aidPtr); @@ -1432,7 +1441,7 @@ Return<void> RadioImpl::writeSmsToSim(int32_t serial, const SmsWriteArgs& smsWri return Void(); } - s_vendorFunctions->onRequest(RIL_REQUEST_WRITE_SMS_TO_SIM, &args, sizeof(args), pRI); + CALL_ONREQUEST(RIL_REQUEST_WRITE_SMS_TO_SIM, &args, sizeof(args), pRI, mSlotId); memsetAndFreeStrings(2, args.smsc, args.pdu); @@ -1651,7 +1660,7 @@ Return<void> RadioImpl::sendCdmaSms(int32_t serial, const CdmaSmsMessage& sms) { RIL_CDMA_SMS_Message rcsm = {}; constructCdmaSms(rcsm, sms); - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, &rcsm, sizeof(rcsm), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, &rcsm, sizeof(rcsm), pRI, mSlotId); return Void(); } @@ -1669,7 +1678,7 @@ Return<void> RadioImpl::acknowledgeLastIncomingCdmaSms(int32_t serial, const Cdm rcsa.uErrorClass = (RIL_CDMA_SMS_ErrorClass) smsAck.errorClass; rcsa.uSMSCauseCode = smsAck.smsCauseCode; - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, &rcsa, sizeof(rcsa), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, &rcsa, sizeof(rcsa), pRI, mSlotId); return Void(); } @@ -1706,8 +1715,8 @@ Return<void> RadioImpl::setGsmBroadcastConfig(int32_t serial, gsmBci[i].selected = BOOL_TO_INT(configInfo[i].selected); } - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, gsmBciPtrs, - num * sizeof(RIL_GSM_BroadcastSmsConfigInfo *), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, gsmBciPtrs, + num * sizeof(RIL_GSM_BroadcastSmsConfigInfo *), pRI, mSlotId); return Void(); } @@ -1751,8 +1760,8 @@ Return<void> RadioImpl::setCdmaBroadcastConfig(int32_t serial, cdmaBci[i].selected = BOOL_TO_INT(configInfo[i].selected); } - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, cdmaBciPtrs, - num * sizeof(RIL_CDMA_BroadcastSmsConfigInfo *), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, cdmaBciPtrs, + num * sizeof(RIL_CDMA_BroadcastSmsConfigInfo *), pRI, mSlotId); return Void(); } @@ -1787,7 +1796,7 @@ Return<void> RadioImpl::writeSmsToRuim(int32_t serial, const CdmaSmsWriteArgs& c rcsw.status = (int) cdmaSms.status; constructCdmaSms(rcsw.message, cdmaSms.message); - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, &rcsw, sizeof(rcsw), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, &rcsw, sizeof(rcsw), pRI, mSlotId); return Void(); } @@ -1944,7 +1953,7 @@ Return<void> RadioImpl::setInitialAttachApn(int32_t serial, const DataProfileInf return Void(); } - s_vendorFunctions->onRequest(RIL_REQUEST_SET_INITIAL_ATTACH_APN, &iaa, sizeof(iaa), pRI); + CALL_ONREQUEST(RIL_REQUEST_SET_INITIAL_ATTACH_APN, &iaa, sizeof(iaa), pRI, mSlotId); memsetAndFreeStrings(4, iaa.apn, iaa.protocol, iaa.username, iaa.password); } else { @@ -1988,7 +1997,7 @@ Return<void> RadioImpl::setInitialAttachApn(int32_t serial, const DataProfileInf return Void(); } - s_vendorFunctions->onRequest(RIL_REQUEST_SET_INITIAL_ATTACH_APN, &iaa, sizeof(iaa), pRI); + CALL_ONREQUEST(RIL_REQUEST_SET_INITIAL_ATTACH_APN, &iaa, sizeof(iaa), pRI, mSlotId); memsetAndFreeStrings(6, iaa.apn, iaa.protocol, iaa.roamingProtocol, iaa.username, iaa.password, iaa.mvnoMatchData); @@ -2047,8 +2056,8 @@ bool dispatchImsGsmSms(const ImsSmsMessage& message, RequestInfo *pRI) { } rism.message.gsmMessage = pStrings; - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, &rism, sizeof(RIL_RadioTechnologyFamily) + - sizeof(uint8_t) + sizeof(int32_t) + dataLen, pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, &rism, sizeof(RIL_RadioTechnologyFamily) + + sizeof(uint8_t) + sizeof(int32_t) + dataLen, pRI, pRI->socket_id); for (int i = 0 ; i < countStrings ; i++) { memsetAndFreeStrings(1, pStrings[i]); @@ -2079,8 +2088,8 @@ bool dispatchImsCdmaSms(const ImsSmsMessage& message, RequestInfo *pRI) { constructCdmaSms(rcsm, message.cdmaMessage[0]); - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, &rism, sizeof(RIL_RadioTechnologyFamily) + - sizeof(uint8_t) + sizeof(int32_t) + sizeof(rcsm), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, &rism, sizeof(RIL_RadioTechnologyFamily) + + sizeof(uint8_t) + sizeof(int32_t) + sizeof(rcsm), pRI, pRI->socket_id); return true; } @@ -2136,7 +2145,7 @@ Return<void> RadioImpl::iccOpenLogicalChannel(int32_t serial, const hidl_string& return Void(); } - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, ¶ms, sizeof(params), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, ¶ms, sizeof(params), pRI, mSlotId); memsetAndFreeStrings(1, params.aidPtr); } @@ -2171,7 +2180,7 @@ Return<void> RadioImpl::nvReadItem(int32_t serial, NvItem itemId) { RIL_NV_ReadItem nvri = {}; nvri.itemID = (RIL_NV_Item) itemId; - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, &nvri, sizeof(nvri), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, &nvri, sizeof(nvri), pRI, mSlotId); return Void(); } @@ -2192,7 +2201,7 @@ Return<void> RadioImpl::nvWriteItem(int32_t serial, const NvWriteItem& item) { return Void(); } - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, &nvwi, sizeof(nvwi), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, &nvwi, sizeof(nvwi), pRI, mSlotId); memsetAndFreeStrings(1, nvwi.value); return Void(); @@ -2249,7 +2258,7 @@ Return<void> RadioImpl::setUiccSubscription(int32_t serial, const SelectUiccSub& rilUiccSub.sub_type = (RIL_SubscriptionType) uiccSub.subType; rilUiccSub.act_status = (RIL_UiccSubActStatus) uiccSub.actStatus; - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, &rilUiccSub, sizeof(rilUiccSub), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, &rilUiccSub, sizeof(rilUiccSub), pRI, mSlotId); return Void(); } @@ -2293,7 +2302,7 @@ Return<void> RadioImpl::requestIccSimAuthentication(int32_t serial, int32_t auth return Void(); } - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, &pf, sizeof(pf), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, &pf, sizeof(pf), pRI, mSlotId); memsetAndFreeStrings(2, pf.authData, pf.aid); return Void(); @@ -2404,8 +2413,8 @@ Return<void> RadioImpl::setDataProfile(int32_t serial, const hidl_vec<DataProfil dataProfiles[i].enabled = BOOL_TO_INT(profiles[i].enabled); } - s_vendorFunctions->onRequest(RIL_REQUEST_SET_DATA_PROFILE, dataProfilePtrs, - num * sizeof(RIL_DataProfileInfo *), pRI); + CALL_ONREQUEST(RIL_REQUEST_SET_DATA_PROFILE, dataProfilePtrs, + num * sizeof(RIL_DataProfileInfo *), pRI, mSlotId); freeSetDataProfileData(num, dataProfiles, dataProfilePtrs, 4, &RIL_DataProfileInfo::apn, &RIL_DataProfileInfo::protocol, @@ -2482,8 +2491,8 @@ Return<void> RadioImpl::setDataProfile(int32_t serial, const hidl_vec<DataProfil dataProfiles[i].mtu = profiles[i].mtu; } - s_vendorFunctions->onRequest(RIL_REQUEST_SET_DATA_PROFILE, dataProfilePtrs, - num * sizeof(RIL_DataProfileInfo_v15 *), pRI); + CALL_ONREQUEST(RIL_REQUEST_SET_DATA_PROFILE, dataProfilePtrs, + num * sizeof(RIL_DataProfileInfo_v15 *), pRI, mSlotId); freeSetDataProfileData(num, dataProfiles, dataProfilePtrs, 6, &RIL_DataProfileInfo_v15::apn, &RIL_DataProfileInfo_v15::protocol, @@ -2528,7 +2537,7 @@ Return<void> RadioImpl::setRadioCapability(int32_t serial, const RadioCapability rilRc.status = (int) rc.status; strncpy(rilRc.logicalModemUuid, rc.logicalModemUuid.c_str(), MAX_UUID_LENGTH); - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, &rilRc, sizeof(rilRc), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, &rilRc, sizeof(rilRc), pRI, mSlotId); return Void(); } @@ -2620,7 +2629,7 @@ Return<void> RadioImpl::setAllowedCarriers(int32_t serial, bool allAllowed, excludedCarriers[i].match_data = carriers.excludedCarriers[i].matchData.c_str(); } - s_vendorFunctions->onRequest(pRI->pCI->requestNumber, &cr, sizeof(RIL_CarrierRestrictions), pRI); + CALL_ONREQUEST(pRI->pCI->requestNumber, &cr, sizeof(RIL_CarrierRestrictions), pRI, mSlotId); #ifdef MEMSET_FREED memset(allowedCarriers, 0, cr.len_allowed_carriers * sizeof(RIL_Carrier)); @@ -2864,6 +2873,7 @@ int radio::supplyIccPinForAppResponse(int slotId, int ret = responseIntOrEmpty(responseInfo, serial, responseType, e, response, responseLen); Return<void> retStatus = radioService[slotId]->mRadioResponse-> supplyIccPinForAppResponse(responseInfo, ret); + RLOGE("supplyIccPinForAppResponse: amit ret %d", ret); radioService[slotId]->checkReturnStatus(retStatus); } else { RLOGE("supplyIccPinForAppResponse: radioService[%d]->mRadioResponse == NULL", @@ -6476,7 +6486,8 @@ int radio::radioStateChangedInd(int slotId, int indicationType, int token, RIL_Errno e, void *response, size_t responseLen) { if (radioService[slotId] != NULL && radioService[slotId]->mRadioIndication != NULL) { - RadioState radioState = (RadioState) s_vendorFunctions->onStateRequest(); + RadioState radioState = + (RadioState) CALL_ONSTATEREQUEST(slotId); RLOGD("radioStateChangedInd: radioState %d", radioState); Return<void> retStatus = radioService[slotId]->mRadioIndication->radioStateChanged( convertIntToRadioIndicationType(indicationType), radioState); diff --git a/rild/Android.mk b/rild/Android.mk index abcc522..4f5802b 100644 --- a/rild/Android.mk +++ b/rild/Android.mk @@ -17,9 +17,9 @@ LOCAL_WHOLE_STATIC_LIBRARIES := \ librilutils_static LOCAL_CFLAGS := -DRIL_SHLIB -#LOCAL_CFLAGS += -DANDROID_MULTI_SIM ifeq ($(SIM_COUNT), 2) + LOCAL_CFLAGS += -DANDROID_MULTI_SIM LOCAL_CFLAGS += -DANDROID_SIM_COUNT_2 endif |