[feature] ecall msd interface modify
Change-Id: Ie244a0f94785f563567488a02bb7bf96e44ff9e9
diff --git a/src/lynq/lib/liblynq-call/lynq_call.cpp b/src/lynq/lib/liblynq-call/lynq_call.cpp
index 93b1058..f13ac33 100755
--- a/src/lynq/lib/liblynq-call/lynq_call.cpp
+++ b/src/lynq/lib/liblynq-call/lynq_call.cpp
@@ -1189,18 +1189,30 @@
}
-int lynq_fast_ecall(int* handle, LYNQ_ECall_Category lynq_ecall_cat, LYNQ_ECall_Variant lynq_ecall_variant, const char *addr, int addr_length, const char *msd_data, int msd_length)
+int lynq_fast_ecall(int* handle, LYNQ_ECall_Category lynq_ecall_cat, LYNQ_ECall_Variant lynq_ecall_variant, const char *addr, int addr_length, const unsigned char *msd_data,int msd_length)
{
int error = -1;
int lynq_call_id = -1;
RIL_ECall_Variant ril_ecall_variant = lynq_get_ril_ecall_variant_from_lynq_variant (lynq_ecall_variant);
RIL_ECall_Category ril_ecall_cat = lynq_get_ril_ecall_cat_from_lynq_cat(lynq_ecall_cat);
+ if(msd_length > MSD_MAX_LENGTH)
+ {
+ LYERRLOG("msd_length %d is greater than %d, parameter error\n",msd_length,MSD_MAX_LENGTH);
+ return -1;
+ }
+ char* lynq_msd_data[MSD_MAX_LENGTH*2+1]={0};
+
+ for(int i =0; i<msd_length;i++)
+ {
+ sprintf(lynq_msd_data[i<<1],"%02x",msd_data[i]);
+ }
+
lynq_call_id = updateAddr(e_call_addr[lynq_ecall_variant]);
LYINFLOG("e_call_addr is %s\n",e_call_addr[lynq_ecall_variant]);
- error=lynq_set_common_request(RIL_REQUEST_ECALL_FAST_MAKE_ECALL,4,"%d %d %s %s",ril_ecall_cat, ril_ecall_variant, "null", msd_data);
+ error=lynq_set_common_request(RIL_REQUEST_ECALL_FAST_MAKE_ECALL,4,"%d %d %s %s",ril_ecall_cat, ril_ecall_variant, "null", lynq_msd_data);
if(error==0)
{