Teleca 2b changes.
diff --git a/libril/ril.cpp b/libril/ril.cpp
index fd1d508..d06f0f3 100644
--- a/libril/ril.cpp
+++ b/libril/ril.cpp
@@ -135,7 +135,7 @@
char local; // responses to local commands do not go back to command process
} RequestInfo;
-typedef struct UserCallbackInfo{
+typedef struct UserCallbackInfo {
RIL_TimedCallback p_callback;
void *userParam;
struct ril_event event;
@@ -223,6 +223,11 @@
static int responseCdmaBrCnf(Parcel &p, void *response, size_t responselen);
static int responseCdmaSms(Parcel &p, void *response, size_t responselen);
static int responseCellList(Parcel &p, void *response, size_t responselen);
+static int responseCdmaInformationRecords(Parcel &p,void *response, size_t responselen);
+static int responseRilSignalStrength(Parcel &p,void *response, size_t responselen);
+static int responseCallRing(Parcel &p, void *response, size_t responselen);
+static int responseCdmaSignalInfoRecord(Parcel &p,void *response, size_t responselen);
+static int responseCdmaCallWaiting(Parcel &p,void *response, size_t responselen);
extern "C" const char * requestToString(int request);
extern "C" const char * failCauseToString(RIL_Errno);
@@ -973,8 +978,6 @@
status = p.readInt32(&t);
rcbsc.size = (int) t;
- LOGE("RIL_CPP: dispatchCdmaBrSmsCnf(), isize=%d", rcbsc.size);
-
if (rcbsc.size != 0) {
RIL_CDMA_BroadcastServiceInfo cdmaBsi[rcbsc.size];
for (int i = 0 ; i < rcbsc.size ; i++ ) {
@@ -1287,7 +1290,7 @@
}
if (responselen % sizeof (RIL_Call *) != 0) {
- LOGE("invalid response length %d expected multiple of %d\n",
+ LOGE("invalid response length %d expected multiple of %d\n",
(int)responselen, (int)sizeof (RIL_Call *));
return RIL_ERRNO_INVALID_RESPONSE;
}
@@ -1315,16 +1318,20 @@
p.writeInt32(p_cur->numberPresentation);
writeStringToParcel(p, p_cur->name);
p.writeInt32(p_cur->namePresentation);
- appendPrintBuf("%s[id=%d,%s,toa=%d,%s,%s,als=%d,%s,%s,%s,cli=%d,name='%s',%d],",
+ appendPrintBuf("%s[id=%d,%s,toa=%d,",
printBuf,
p_cur->index,
callStateToString(p_cur->state),
- p_cur->toa,
+ p_cur->toa);
+ appendPrintBuf("%s%s,%s,als=%d,%s,%s,",
+ printBuf,
(p_cur->isMpty)?"conf":"norm",
(p_cur->isMT)?"mt":"mo",
p_cur->als,
(p_cur->isVoice)?"voc":"nonvoc",
- (p_cur->isVoicePrivacy)?"evp":"noevp",
+ (p_cur->isVoicePrivacy)?"evp":"noevp");
+ appendPrintBuf("%s%s,cli=%d,name='%s',%d]",
+ printBuf,
p_cur->number,
p_cur->numberPresentation,
p_cur->name,
@@ -1345,20 +1352,21 @@
p.writeInt32(p_cur->numberPresentation);
writeStringToParcel (p, "a-person");
p.writeInt32(2); // p_cur->namePresentation);
- appendPrintBuf("%s[id=%d,%s,toa=%d,%s,%s,als=%d,%s,%s,%s,cli=%d,name='%s',%d],",
+ appendPrintBuf("%s[id=%d,%s,toa=%d,",
printBuf,
p_cur->index,
callStateToString(p_cur->state),
- p_cur->toa,
+ p_cur->toa);
+ appendPrintBuf("%s%s,%s,als=%d,%s,%s,",
+ printBuf,
(p_cur->isMpty)?"conf":"norm",
(p_cur->isMT)?"mt":"mo",
p_cur->als,
- (p_cur->isVoice)?"voc":"nonvoc",
- (p_cur->isVoicePrivacy)?"evp":"noevp",
+ (p_cur->isVoice)?"voc":"nonvoc");
+ appendPrintBuf("%s%s,cli=%d]",
+ printBuf,
p_cur->number,
- p_cur->numberPresentation,
- p_cur->name,
- p_cur->namePresentation);
+ p_cur->numberPresentation);
#endif
}
removeLastChar;
@@ -1543,8 +1551,7 @@
return 0;
}
-static int responseCellList(Parcel &p, void *response, size_t responselen)
-{
+static int responseCellList(Parcel &p, void *response, size_t responselen) {
int num;
if (response == NULL && responselen != 0) {
@@ -1559,14 +1566,13 @@
}
startResponse;
- /* number of cell info's */
+ /* number of records */
num = responselen / sizeof(RIL_NeighboringCell *);
p.writeInt32(num);
for (int i = 0 ; i < num ; i++) {
RIL_NeighboringCell *p_cur = ((RIL_NeighboringCell **) response)[i];
- /* each cell info */
p.writeInt32(p_cur->rssi);
writeStringToParcel (p, p_cur->cid);
@@ -1579,8 +1585,317 @@
return 0;
}
-static void triggerEvLoop()
-{
+/**
+ * Marshall the signalInfoRecord into the parcel if it exists.
+ */
+static void marshallSignalInfoRecord(Parcel &p, RIL_CDMA_SignalInfoRecord &p_signalInfoRecord) {
+ p.writeInt32(p_signalInfoRecord.isPresent);
+ p.writeInt32(p_signalInfoRecord.signalType);
+ p.writeInt32(p_signalInfoRecord.alertPitch);
+ p.writeInt32(p_signalInfoRecord.signal);
+}
+
+static int responseCdmaInformationRecords(Parcel &p,void *response, size_t responselen) {
+ int num;
+ int digitCount;
+ int digitLimit;
+
+ if (response == NULL && responselen != 0) {
+ LOGE("invalid response: NULL");
+ return RIL_ERRNO_INVALID_RESPONSE;
+ }
+
+ if (responselen != sizeof(RIL_CDMA_InformationRecords)) {
+ LOGE("invalid response length %d expected %d\n",
+ (int)responselen, (int)sizeof (RIL_CDMA_InformationRecords));
+ return RIL_ERRNO_INVALID_RESPONSE;
+ }
+
+
+ /* TODO(Teleca): Wink believes this should be deleted? */
+// num = responselen / sizeof(RIL_CDMA_InformationRecords *);
+// p.writeInt32(num);
+
+ RIL_CDMA_InformationRecords *p_cur = ((RIL_CDMA_InformationRecords *) response);
+
+ /* Number of records */
+ p.writeInt32(p_cur->numberOfInfoRecs);
+
+ startResponse;
+
+ digitLimit = MIN((p_cur->numberOfInfoRecs),RIL_CDMA_MAX_NUMBER_OF_INFO_RECS);
+ for (digitCount = 0 ; digitCount < digitLimit; digitCount ++) {
+ switch(p_cur->infoRec[digitCount].name){
+ case RIL_CDMA_DISPLAY_INFO_REC:
+ p.writeInt32(p_cur->infoRec[digitCount].rec.display.alpha_len);
+ for(int i =0;i<(int)(p_cur->infoRec[digitCount].rec.display.alpha_len);i++){
+ p.writeInt32(p_cur->infoRec[digitCount].rec.display.alpha_buf[i]);
+ }
+ appendPrintBuf("%s[rec.display.alpha_len%c, rec.display.alpha_buf%s],",
+ printBuf,
+ p_cur->infoRec[digitCount].rec.display.alpha_len,
+ p_cur->infoRec[digitCount].rec.display.alpha_buf);
+ break;
+ case RIL_CDMA_CALLED_PARTY_NUMBER_INFO_REC:
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.len);
+ for(int i =0;i<(int)(p_cur->infoRec[digitCount].rec.number.len);i++){
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.buf[i]);
+ }
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.number_type);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.number_plan);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.pi);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.si);
+ appendPrintBuf("%s[len=%c,buf=%s,number_type=%c,number_plan=%c,",
+ printBuf,
+ p_cur->infoRec[digitCount].rec.number.len,
+ p_cur->infoRec[digitCount].rec.number.buf,
+ p_cur->infoRec[digitCount].rec.number.number_type,
+ p_cur->infoRec[digitCount].rec.number.number_plan);
+ appendPrintBuf("%spi=%c,si=%c]",
+ printBuf,
+ p_cur->infoRec[digitCount].rec.number.pi,
+ p_cur->infoRec[digitCount].rec.number.si);
+ break;
+ case RIL_CDMA_CALLING_PARTY_NUMBER_INFO_REC:
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.len);
+ for (int i =0;i<(int)(p_cur->infoRec[digitCount].rec.number.len);i++) {
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.buf[i]);
+ }
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.number_type);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.number_plan);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.pi);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.si);
+ appendPrintBuf("%s[len=%c,buf=%s,number_type=%c,number_plan=%c,",
+ printBuf,
+ p_cur->infoRec[digitCount].rec.number.len,
+ p_cur->infoRec[digitCount].rec.number.buf,
+ p_cur->infoRec[digitCount].rec.number.number_type,
+ p_cur->infoRec[digitCount].rec.number.number_plan);
+ appendPrintBuf("%spi=%c,si=%c]",
+ printBuf,
+ p_cur->infoRec[digitCount].rec.number.pi,
+ p_cur->infoRec[digitCount].rec.number.si);
+ break;
+ case RIL_CDMA_CONNECTED_NUMBER_INFO_REC:
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.len);
+ for(int i =0;i<(int)(p_cur->infoRec[digitCount].rec.number.len);i++){
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.buf[i]);
+ }
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.number_type);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.number_plan);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.pi);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.number.si);
+ appendPrintBuf("%s[len=%c,buf=%s,number_type=%c,number_plan=%c,",
+ printBuf,
+ p_cur->infoRec[digitCount].rec.number.len,
+ p_cur->infoRec[digitCount].rec.number.buf,
+ p_cur->infoRec[digitCount].rec.number.number_type,
+ p_cur->infoRec[digitCount].rec.number.number_plan);
+ appendPrintBuf("%spi=%c,si=%c]",
+ printBuf,
+ p_cur->infoRec[digitCount].rec.number.pi,
+ p_cur->infoRec[digitCount].rec.number.si);
+ break;
+ case RIL_CDMA_SIGNAL_INFO_REC:
+ marshallSignalInfoRecord(p, p_cur->infoRec[digitCount].rec.signal);
+ appendPrintBuf("%s[isPresent=%c,signalType=%c,alertPitch=%c,signal=%c]",
+ printBuf,
+ p_cur->infoRec[digitCount].rec.signal.isPresent,
+ p_cur->infoRec[digitCount].rec.signal.signalType,
+ p_cur->infoRec[digitCount].rec.signal.alertPitch,
+ p_cur->infoRec[digitCount].rec.signal.signal);
+ break;
+ case RIL_CDMA_REDIRECTING_NUMBER_INFO_REC:
+ p.writeInt32(p_cur->infoRec[digitCount].rec.redir.redirectingNumber.len);
+ for (int i =0;\
+ i<(int)(p_cur->infoRec[digitCount].rec.redir.redirectingNumber.len);i++){
+ p.writeInt32(p_cur->infoRec[digitCount].rec.redir.redirectingNumber.buf[i]);
+ }
+ p.writeInt32(p_cur->infoRec[digitCount].rec.redir.redirectingNumber.number_type);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.redir.redirectingNumber.number_plan);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.redir.redirectingNumber.pi);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.redir.redirectingNumber.si);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.redir.redirectingReason);
+ appendPrintBuf("%s[len=%c,buf=%s,number_type=%c,number_plan=%c,",
+ printBuf,
+ p_cur->infoRec[digitCount].rec.number.len,
+ p_cur->infoRec[digitCount].rec.number.buf,
+ p_cur->infoRec[digitCount].rec.number.number_type,
+ p_cur->infoRec[digitCount].rec.number.number_plan);
+ appendPrintBuf("%spi=%c,si=%c]",
+ printBuf,
+ p_cur->infoRec[digitCount].rec.number.pi,
+ p_cur->infoRec[digitCount].rec.number.si);
+ break;
+ case RIL_CDMA_LINE_CONTROL_INFO_REC:
+ p.writeInt32(p_cur->infoRec[digitCount].rec.lineCtrl.lineCtrlPolarityIncluded);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.lineCtrl.lineCtrlToggle);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.lineCtrl.lineCtrlReverse);
+ p.writeInt32( p_cur->infoRec[digitCount].rec.lineCtrl.lineCtrlPowerDenial);
+ appendPrintBuf("%s[PolarityIncluded=%c,CtrlToggle=%c,CtrlReverse=%c,\
+ CtrlPowerDenial=%c]",
+ printBuf,
+ p_cur->infoRec[digitCount].rec.lineCtrl.lineCtrlPolarityIncluded,
+ p_cur->infoRec[digitCount].rec.lineCtrl.lineCtrlToggle,
+ p_cur->infoRec[digitCount].rec.lineCtrl.lineCtrlReverse,
+ p_cur->infoRec[digitCount].rec.lineCtrl.lineCtrlPowerDenial);
+ break;
+ case RIL_CDMA_EXTENDED_DISPLAY_INFO_REC:
+ break;
+ case RIL_CDMA_T53_CLIR_INFO_REC:
+ p.writeInt32(p_cur->infoRec[digitCount].rec.clir.cause);
+ appendPrintBuf("%s[cause=%c]",printBuf,p_cur->infoRec[digitCount].rec.clir.cause);
+ break;
+
+ case RIL_CDMA_T53_RELEASE_INFO_REC:
+ break;
+ case RIL_CDMA_T53_AUDIO_CONTROL_INFO_REC:
+ p.writeInt32(p_cur->infoRec[digitCount].rec.audioCtrl.upLink);
+ p.writeInt32(p_cur->infoRec[digitCount].rec.audioCtrl.downLink);
+ appendPrintBuf("%s[uplink=%c,downlink=%c]",
+ printBuf,p_cur->infoRec[digitCount].rec.audioCtrl.upLink,
+ p_cur->infoRec[digitCount].rec.audioCtrl.downLink);
+ break;
+ default:
+ LOGE ("Invalid request");
+ break;
+ }
+ }
+
+
+ closeResponse;
+
+ return 0;
+}
+
+static int responseRilSignalStrength(Parcel &p, void *response, size_t responselen) {
+ if (response == NULL && responselen != 0) {
+ LOGE("invalid response: NULL");
+ return RIL_ERRNO_INVALID_RESPONSE;
+ }
+
+ if ((responselen != sizeof (RIL_SignalStrength))
+ && (responselen % sizeof (void *) == 0)) {
+ // Old RIL deprecated
+ RIL_GW_SignalStrength *p_cur = ((RIL_GW_SignalStrength *) response);
+
+ p.writeInt32(7);
+ p.writeInt32(p_cur->signalStrength);
+ p.writeInt32(p_cur->bitErrorRate);
+ for (int i = 0; i < 5; i++) {
+ p.writeInt32(0);
+ }
+ } else if (responselen == sizeof (RIL_SignalStrength)) {
+ // New RIL
+ RIL_SignalStrength *p_cur = ((RIL_SignalStrength *) response);
+
+ p.writeInt32(7);
+ p.writeInt32(p_cur->GW_SignalStrength.signalStrength);
+ p.writeInt32(p_cur->GW_SignalStrength.bitErrorRate);
+ p.writeInt32(p_cur->CDMA_SignalStrength.dbm);
+ p.writeInt32(p_cur->CDMA_SignalStrength.ecio);
+ p.writeInt32(p_cur->EVDO_SignalStrength.dbm);
+ p.writeInt32(p_cur->EVDO_SignalStrength.ecio);
+ p.writeInt32(p_cur->EVDO_SignalStrength.signalNoiseRatio);
+ } else {
+ LOGE("invalid response length");
+ return RIL_ERRNO_INVALID_RESPONSE;
+ }
+
+ startResponse;
+ appendPrintBuf("%s[signalStrength=%d,bitErrorRate=%d,\
+ CDMA_SignalStrength.dbm=%d,CDMA_SignalStrength.ecio=%d,\
+ EVDO_SignalStrength.dbm =%d,EVDO_SignalStrength.ecio=%d,\
+ EVDO_SignalStrength.signalNoiseRatio=%d]",
+ printBuf,
+ p_cur->GW_SignalStrength.signalStrength,
+ p_cur->GW_SignalStrength.bitErrorRate,
+ p_cur->CDMA_SignalStrength.dbm,
+ p_cur->CDMA_SignalStrength.ecio,
+ p_cur->EVDO_SignalStrength.dbm,
+ p_cur->EVDO_SignalStrength.ecio,
+ p_cur->EVDO_SignalStrength.signalNoiseRatio);
+
+ closeResponse;
+
+ return 0;
+}
+
+static int responseCallRing(Parcel &p, void *response, size_t responselen) {
+ if ((response == NULL) || (responselen == 0)) {
+ return responseVoid(p, response, responselen);
+ } else {
+ return responseCdmaSignalInfoRecord(p, response, responselen);
+ }
+}
+
+static int responseCdmaSignalInfoRecord(Parcel &p, void *response, size_t responselen) {
+ if (response == NULL || responselen == 0) {
+ LOGE("invalid response: NULL");
+ return RIL_ERRNO_INVALID_RESPONSE;
+ }
+
+ if (responselen != sizeof (RIL_CDMA_SignalInfoRecord)) {
+ LOGE("invalid response length %d expected sizeof (RIL_CDMA_SignalInfoRecord) of %d\n",
+ (int)responselen, (int)sizeof (RIL_CDMA_SignalInfoRecord));
+ return RIL_ERRNO_INVALID_RESPONSE;
+ }
+
+ startResponse;
+
+ RIL_CDMA_SignalInfoRecord *p_cur = ((RIL_CDMA_SignalInfoRecord *) response);
+ marshallSignalInfoRecord(p, *p_cur);
+
+ appendPrintBuf("%s[isPresent=%d,signalType=%d,alertPitch=%d\
+ signal=%d]",
+ printBuf,
+ p_cur->isPresent,
+ p_cur->signalType,
+ p_cur->alertPitch,
+ p_cur->signal);
+
+ closeResponse;
+ return 0;
+}
+
+static int responseCdmaCallWaiting(Parcel &p,void *response, size_t responselen) {
+ if (response == NULL && responselen != 0) {
+ LOGE("invalid response: NULL");
+ return RIL_ERRNO_INVALID_RESPONSE;
+ }
+
+ if (responselen != sizeof(RIL_CDMA_CallWaiting)) {
+ LOGE("invalid response length %d expected %d\n",
+ (int)responselen, (int)sizeof(RIL_CDMA_CallWaiting));
+ return RIL_ERRNO_INVALID_RESPONSE;
+ }
+
+ startResponse;
+ RIL_CDMA_CallWaiting *p_cur = ((RIL_CDMA_CallWaiting *) response);
+
+ writeStringToParcel (p, p_cur->number);
+ p.writeInt32(p_cur->numberPresentation);
+ writeStringToParcel (p, p_cur->name);
+ marshallSignalInfoRecord(p, p_cur->signalInfoRecord);
+
+ appendPrintBuf("%snumber=%s,numberPresentation=%d, name=%s,\
+ signalInfoRecord[isPresent=%d,signalType=%d,alertPitch=%d\
+ signal=%d]",
+ printBuf,
+ p_cur->number,
+ p_cur->numberPresentation,
+ p_cur->name,
+ p_cur->signalInfoRecord.isPresent,
+ p_cur->signalInfoRecord.signalType,
+ p_cur->signalInfoRecord.alertPitch,
+ p_cur->signalInfoRecord.signal);
+
+ closeResponse;
+
+ return 0;
+}
+
+static void triggerEvLoop() {
int ret;
if (!pthread_equal(pthread_self(), s_tid_dispatch)) {
/* trigger event loop to wakeup. No reason to do this,
@@ -1591,8 +1906,7 @@
}
}
-static void rilEventAddWakeup(struct ril_event *ev)
-{
+static void rilEventAddWakeup(struct ril_event *ev) {
ril_event_add(ev);
triggerEvLoop();
}
@@ -1606,7 +1920,7 @@
}
if (responselen % sizeof (RIL_CardStatus *) != 0) {
- LOGE("invalid response length %d expected multiple of %d\n",
+ LOGE("invalid response length %d expected multiple of %d\n",
(int)responselen, (int)sizeof (RIL_CardStatus *));
return RIL_ERRNO_INVALID_RESPONSE;
}
@@ -1644,7 +1958,7 @@
closeResponse;
return 0;
-}
+}
static int responseBrSmsCnf(Parcel &p, void *response, size_t responselen) {
int num;
@@ -1655,7 +1969,7 @@
}
if (responselen % sizeof(RIL_BroadcastSMSConfig) != 0) {
- LOGE("invalid response length %d expected multiple of %d",
+ LOGE("invalid response length %d expected multiple of %d",
(int)responselen, (int)sizeof(RIL_BroadcastSMSConfig));
return RIL_ERRNO_INVALID_RESPONSE;
}
@@ -1669,7 +1983,7 @@
p.writeInt32(p_cur->entries->uFromServiceID);
p.writeInt32(p_cur->entries->uToserviceID);
p.write(&(p_cur->entries->bSelected),sizeof(p_cur->entries->bSelected));
-
+
startResponse;
appendPrintBuf("%s size=%d, entries.uFromServiceID=%d, \
entries.uToserviceID=%d, entries.bSelected =%d, ",
@@ -2529,7 +2843,6 @@
return;
error_exit:
- // There was an error and we've got the wake lock so release it.
if (shouldScheduleTimeout) {
releaseWakeLock();
}
@@ -2755,11 +3068,15 @@
case RIL_UNSOL_SIM_REFRESH: return "UNSOL_SIM_REFRESH";
case RIL_UNSOL_DATA_CALL_LIST_CHANGED: return "UNSOL_DATA_CALL_LIST_CHANGED";
case RIL_UNSOL_CALL_RING: return "UNSOL_CALL_RING";
- case RIL_UNSOL_RESTRICTED_STATE_CHANGED: return "UNSOL_RESTRICTED_STATE_CHANGED";
case RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED: return "UNSOL_RESPONSE_SIM_STATUS_CHANGED";
case RIL_UNSOL_RESPONSE_CDMA_NEW_SMS: return "UNSOL_NEW_CDMA_SMS";
case RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS: return "UNSOL_NEW_BROADCAST_SMS";
case RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL: return "UNSOL_CDMA_RUIM_SMS_STORAGE_FULL";
+ case RIL_UNSOL_RESTRICTED_STATE_CHANGED: return "UNSOL_RESTRICTED_STATE_CHANGED";
+ case RIL_UNSOL_ENTER_EMERGENCY_CALLBACK_MODE: return "UNSOL_ENTER_EMERGENCY_CALLBACK_MODE";
+ case RIL_UNSOL_CDMA_CALL_WAITING: return "UNSOL_CDMA_CALL_WAITING";
+ case RIL_UNSOL_CDMA_OTA_PROVISION_STATUS: return "UNSOL_CDMA_OTA_PROVISION_STATUS";
+ case RIL_UNSOL_CDMA_INFO_REC: return "UNSOL_CDMA_INFO_REC";
case RIL_UNSOL_OEM_HOOK_RAW: return "UNSOL_OEM_HOOK_RAW";
default: return "<unknown request>";
}