Merge "[Feature][T106][task-view-1450]Add the prefix +emmc to the output result"
diff --git a/allbins/zx297520v3/prj_vehicle/nv_dc_ref/at_nvrw_0x00001000.bin b/allbins/zx297520v3/prj_vehicle/nv_dc_ref/at_nvrw_0x00001000.bin
index ae20019..77e1fdd2 100755
--- a/allbins/zx297520v3/prj_vehicle/nv_dc_ref/at_nvrw_0x00001000.bin
+++ b/allbins/zx297520v3/prj_vehicle/nv_dc_ref/at_nvrw_0x00001000.bin
Binary files differ
diff --git a/ap/app/zte_comm/nvserver/nvserver.c b/ap/app/zte_comm/nvserver/nvserver.c
index fe5ba99..4e240f8 100755
--- a/ap/app/zte_comm/nvserver/nvserver.c
+++ b/ap/app/zte_comm/nvserver/nvserver.c
@@ -146,9 +146,14 @@
         }
         
         analyMsg(&rcvBuf, &sndBuf);
-        
+msgsnd_retry:
         if(-1 == msgsnd(msgId, &sndBuf, sizeof(T_NV_MSG_RESULT) - sizeof(long), 0))
         {
+            if (errno == EINTR)
+            {
+                printf("nvserver error: msgsnd fail, errno = EINTR!\n");
+                goto msgsnd_retry;
+            }
             printf("nvserver error: nvserver msgsnd fail, errno = %d!\n", errno);
             continue;   
         }   
diff --git a/ap/lib/libnvram/libnvram.a b/ap/lib/libnvram/libnvram.a
index 8bcec8c..f8ee1f2 100755
--- a/ap/lib/libnvram/libnvram.a
+++ b/ap/lib/libnvram/libnvram.a
Binary files differ
diff --git a/ap/lib/libnvram/libnvram.so b/ap/lib/libnvram/libnvram.so
index 199b514..9818c67 100755
--- a/ap/lib/libnvram/libnvram.so
+++ b/ap/lib/libnvram/libnvram.so
Binary files differ
diff --git a/ap/lib/libnvram/libnvram_sc.a b/ap/lib/libnvram/libnvram_sc.a
index 4a75c3d..88d24d8 100755
--- a/ap/lib/libnvram/libnvram_sc.a
+++ b/ap/lib/libnvram/libnvram_sc.a
Binary files differ
diff --git a/ap/lib/libnvram/libnvram_sc.so b/ap/lib/libnvram/libnvram_sc.so
index 817cf4c..c4c2700 100755
--- a/ap/lib/libnvram/libnvram_sc.so
+++ b/ap/lib/libnvram/libnvram_sc.so
Binary files differ
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/nvserver/nvserver.c b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/nvserver/nvserver.c
index 139ac67..0f79713 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/nvserver/nvserver.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/nvserver/nvserver.c
@@ -337,9 +337,15 @@
         }
         wake_nvserver_lock();
         analyMsg(&rcvBuf, &sndBuf);
-        
+msgsnd_retry:
         if(-1 == msgsnd(msgId, &sndBuf, sizeof(T_NV_MSG_RESULT) - sizeof(long), 0))
         {
+            if (errno == EINTR)
+            {
+                printf("nvserver error: msgsnd fail, errno = EINTR!\n");
+                goto msgsnd_retry;
+            }
+            wake_nvserver_unlock();
             printf("nvserver error: nvserver msgsnd fail, errno = %d!\n", errno);
             continue;   
         }
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/libnvram/nv_api.c b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/libnvram/nv_api.c
index 2b643da..d444b46 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/libnvram/nv_api.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/libnvram/nv_api.c
@@ -399,6 +399,31 @@
 

     return 0;

 }

+int clear_msg_queue(int msgId, T_NV_MSG_RESULT *msgRcv, long msg_type)

+{

+    while (1)

+    {

+        ssize_t ret = msgrcv(msgId, msgRcv, sizeof(T_NV_MSG_RESULT) - sizeof(long), msg_type, IPC_NOWAIT);

+        if (ret == -1)

+        {

+            if (errno == ENOMSG)

+            {

+                break;

+            }

+            else if (errno == EINTR)

+            {

+                continue;

+            }

+            else

+            {

+                perror("[libnvram]clear_msg_queue msgrcv");

+                return -1;

+            }

+        }

+    }

+

+    return 0;

+}

 

 /*******************************************************************************

 * ¹¦ÄÜÃèÊö:     procMsg

@@ -427,6 +452,11 @@
 retry1:

     if(-1 == msgsnd(msgId, msgSnd, sizeof(T_NV_MSG_INFO) - sizeof(long), 0) )

     {

+        if (errno == EINTR)

+        {

+            printf("nv error: msgsnd fail, errno = EINTR!\n");

+            goto retry1;

+        }

         printf("nv error: msgsnd fail, errno = %d!\n", errno);

         return -1;   

     }

@@ -434,13 +464,20 @@
 retry2:

     if(-1 == msgrcv(msgId, msgRcv, sizeof(T_NV_MSG_RESULT) - sizeof(long), msgSnd->pid, 0))

     {

+        if (errno == EINTR)

+        {

+            printf("nv error: msgrcv fail, errno = EINTR!\n");

+            goto retry2;

+        }

         printf("nv error: msgrcv fail, errno = %d!\n", errno);

+        clear_msg_queue(msgId, msgRcv, msgSnd->pid);

         goto retry1;   

     }

 

     if(msgSnd->msgIndex != msgRcv->msgIndex)

     {

-        printf("nv error:recv unknow msg pid = %d, tid = %d, key = %s, value = %s\n", getpid(), msgSnd->pid, msgSnd->key, msgRcv->value);

+        printf("nv error:recv unknow msg nvtype = %d, tid = %d, key = %s, index:%d:%d\n", msgSnd->nvType, msgSnd->pid, msgSnd->key, msgSnd->msgIndex, msgRcv->msgIndex);

+        clear_msg_queue(msgId, msgRcv, msgSnd->pid);

         goto retry1;

     }

 		

diff --git a/customer_config/nv/platform/platform_nv.xml b/customer_config/nv/platform/platform_nv.xml
index 7004de2..57cf7c6 100755
--- a/customer_config/nv/platform/platform_nv.xml
+++ b/customer_config/nv/platform/platform_nv.xml
@@ -479,7 +479,7 @@
             <param key="T_CommAtSetting.manual_search" val="0" signed="0" />

             <param key="T_CommAtSetting.lteInfo_strongscan" val="0" signed="0" />

             <param key="T_CommAtSetting.lteInfo_CSFB" val="0" signed="0" />

-            <param key="T_CommAtSetting.exceptReset" val="0" signed="0" />

+            <param key="T_CommAtSetting.exceptReset" val="2" signed="0" />

             <param key="T_CommAtSetting.UsatFlag" val="1" signed="0" />

             <param key="T_CommAtSetting.PppEchoFlag" val="1" signed="0" />

             <param key="T_CommAtSetting.IsUseImsiFlag" val="0" signed="0" />

@@ -902,6 +902,18 @@
             <param key="T_zDev_NV_PsData_Pri.tUeCapa.atEuraBandInfo[65].dwFUlLow" val="17100" signed="0" />

             <param key="T_zDev_NV_PsData_Pri.tUeCapa.atEuraBandInfo[65].dwNOffUl" val="131972" signed="0" />

             <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallCapa.bEcallMode" val="2" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallNum.bTestNumLen" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallNum.abTestNum[0]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallNum.abTestNum[1]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallNum.abTestNum[2]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallNum.abTestNum[3]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallNum.abTestNum[4]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallNum.abTestNum[5]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallNum.abTestNum[6]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallNum.abTestNum[7]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallNum.abTestNum[8]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallNum.abTestNum[9]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tEcallNum.bTestNumType" val="0" signed="0" />

             <param key="T_zDev_NV_PsData_Pri.tUeCapa.bSuppHoToEutraTdd" val="1" signed="0" />

             <param key="T_zDev_NV_PsData_Pri.tUeCapa.bSuppHoToEutraFdd" val="1" signed="0" />

             <param key="T_zDev_NV_PsData_Pri.tUeCapa.abLtePriorityFreq[0]" val="0" signed="0" />

@@ -2093,6 +2105,42 @@
             <param key="T_zDev_NV_PsData_Pri.tUserInfo.tMccCustomBand.atLteMccCustomBand[2].abLteBand[8]" val="0" signed="0" />

             <param key="T_zDev_NV_PsData_Pri.tUserInfo.tMccCustomBand.atLteMccCustomBand[3].abLteBand[8]" val="0" signed="0" />

             <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.bCallNum" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[0].bNumLen" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[0].abCallNum[0]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[0].abCallNum[1]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[0].abCallNum[2]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[0].abCallNum[3]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[0].abCallNum[4]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[0].abCallNum[5]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[0].abCallNum[6]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[0].abCallNum[7]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[0].abCallNum[8]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[0].abCallNum[9]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[0].abCallNum[10]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[1].bNumLen" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[1].abCallNum[0]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[1].abCallNum[1]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[1].abCallNum[2]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[1].abCallNum[3]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[1].abCallNum[4]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[1].abCallNum[5]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[1].abCallNum[6]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[1].abCallNum[7]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[1].abCallNum[8]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[1].abCallNum[9]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[1].abCallNum[10]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[2].bNumLen" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[2].abCallNum[0]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[2].abCallNum[1]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[2].abCallNum[2]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[2].abCallNum[3]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[2].abCallNum[4]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[2].abCallNum[5]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[2].abCallNum[6]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[2].abCallNum[7]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[2].abCallNum[8]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[2].abCallNum[9]" val="0" signed="0" />

+            <param key="T_zDev_NV_PsData_Pri.tUserInfo.tBeepCall.atCallGroup[2].abCallNum[10]" val="0" signed="0" />

             <param key="T_zDev_NV_PsData_Pri.tUserInfo.tSmsMemInfo[0].bMem1" val="3" signed="0" />

             <param key="T_zDev_NV_PsData_Pri.tUserInfo.tSmsMemInfo[0].bMem2" val="3" signed="0" />

             <param key="T_zDev_NV_PsData_Pri.tUserInfo.tSmsMemInfo[0].bMem3" val="3" signed="0" />