summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmit Mahajan <amitmahajan@google.com>2017-05-18 19:01:07 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-05-18 19:01:07 +0000
commitb863304d017298262f32b5737e983e4f0bc80518 (patch)
treedf9f7d37c097e537edd86042578784c9cb4bc330
parent991e200ed688000cc577c0a56a991942e0bce504 (diff)
parent93f603c4e168c30fbc1366c1b6c6ac0f0a4b4b6e (diff)
downloadandroid_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.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 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, &params, sizeof(params), pRI);
+ CALL_ONREQUEST(pRI->pCI->requestNumber, &params, 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