summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmit Mahajan <amitmahajan@google.com>2017-05-18 16:55:33 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-05-18 16:55:34 +0000
commit91261867845657530b1e5d097e8e8bdff471b966 (patch)
treec3b69cc9bd58e22edd5fc02fed34ffbb12648cea
parent7f4707b8319898e7212cebcbe2e6c0d52bed5d16 (diff)
parentb3a11bbb523b9b2191b784e34678ddeb8a476c66 (diff)
downloadandroid_hardware_ril-91261867845657530b1e5d097e8e8bdff471b966.tar.gz
android_hardware_ril-91261867845657530b1e5d097e8e8bdff471b966.tar.bz2
android_hardware_ril-91261867845657530b1e5d097e8e8bdff471b966.zip
Merge "Fix multi sim support and warnings in new hal code."
-rw-r--r--include/telephony/ril.h3
-rw-r--r--libril/Android.mk2
-rw-r--r--libril/ril.cpp4
-rw-r--r--libril/ril_service.cpp83
-rw-r--r--rild/Android.mk2
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 249bb38..5264a81 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 += -Wall -Wextra -Wno-unused-parameter -Werror
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 aca9d0d..6d375ca 100644
--- a/libril/ril.cpp
+++ b/libril/ril.cpp
@@ -174,12 +174,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 f32e039..5a99b08 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);
@@ -1431,7 +1440,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);
@@ -1650,7 +1659,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();
}
@@ -1668,7 +1677,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();
}
@@ -1705,8 +1714,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();
}
@@ -1750,8 +1759,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();
}
@@ -1786,7 +1795,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();
}
@@ -1943,7 +1952,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 {
@@ -1987,7 +1996,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);
@@ -2046,8 +2055,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]);
@@ -2078,8 +2087,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;
}
@@ -2135,7 +2144,7 @@ Return<void> RadioImpl::iccOpenLogicalChannel(int32_t serial, const hidl_string&
return Void();
}
- s_vendorFunctions->onRequest(pRI->pCI->requestNumber, &params, sizeof(params), pRI);
+ CALL_ONREQUEST(pRI->pCI->requestNumber, &params, sizeof(params), pRI, mSlotId);
memsetAndFreeStrings(1, params.aidPtr);
}
@@ -2170,7 +2179,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();
}
@@ -2191,7 +2200,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();
@@ -2248,7 +2257,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();
}
@@ -2291,7 +2300,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();
@@ -2402,8 +2411,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,
@@ -2480,8 +2489,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,
@@ -2526,7 +2535,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();
}
@@ -2618,7 +2627,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));
@@ -2862,6 +2871,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",
@@ -6472,7 +6482,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 ef653a2..7ac505c 100644
--- a/rild/Android.mk
+++ b/rild/Android.mk
@@ -17,10 +17,10 @@ LOCAL_WHOLE_STATIC_LIBRARIES := \
librilutils_static
LOCAL_CFLAGS := -DRIL_SHLIB
-#LOCAL_CFLAGS += -DANDROID_MULTI_SIM
LOCAL_CFLAGS += -Wall -Wextra -Werror
ifeq ($(SIM_COUNT), 2)
+ LOCAL_CFLAGS += -DANDROID_MULTI_SIM
LOCAL_CFLAGS += -DANDROID_SIM_COUNT_2
endif