[Feature][task-view-998]merge P56U10 version
Only Configure: No
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No
Change-Id: Id05b15148bef69d7b4642d18cc40564e5ef0c9a0
diff --git a/ap/lib/libatreg/atreg.c b/ap/lib/libatreg/atreg.c
index c3f1a50..21eefde 100755
--- a/ap/lib/libatreg/atreg.c
+++ b/ap/lib/libatreg/atreg.c
@@ -281,20 +281,20 @@
* @note ÎÞ
* @warning ÎÞ
*/
-static void atreg_ser_allocation_proc(void* patreg_ser_instance)
+static int atreg_ser_allocation_proc(void* patreg_ser_instance)
{
int i,j;
pthread_mutex_lock(&atreg_ser_ctx.at_ser_idpool_lock);
- for (i =0; i < ATREG_SER_ID_MAX; i++) {
+ for (i = 0; i < ATREG_SER_ID_MAX; i++) {
for (j = 7; j >= 0; j--) {
- if (0 == atreg_ser_dynamic_idpool[i] & (1 << j)) {
+ if (0 == (int)(atreg_ser_dynamic_idpool[i] & (1 << j))) {
((struct atreg_ser_instance_t *)patreg_ser_instance)->req_msg_id = 8 * (i + 1) - (j + 1);
((struct atreg_ser_instance_t *)patreg_ser_instance)->rsp_msg_id = 8 * (i + 1) - (j + 1) + 1;
atreg_ser_dynamic_idpool[i] = atreg_ser_dynamic_idpool[i] | (1 << j);
atreg_ser_dynamic_idpool[i] = atreg_ser_dynamic_idpool[i] | (1 << (j - 1));
pthread_mutex_unlock(&atreg_ser_ctx.at_ser_idpool_lock);
- return;
+ return 0;
}
}
}
@@ -302,7 +302,7 @@
slog(ATREG_PRINT, SLOG_ERR, "Err: atreg_ser_allocation_proc id pool is FULL\n");
- return;
+ return -1;
}
@@ -313,18 +313,18 @@
* @note ÎÞ
* @warning ÎÞ
*/
-static void atreg_info_allocation_proc(void* patreg_info_instance)
+static int atreg_info_allocation_proc(void* patreg_info_instance)
{
int i,j;
pthread_mutex_lock(&atreg_info_ctx.at_info_idpool_lock);
for (i = 0; i < ATREG_INFO_ID_MAX; i++) {
for (j = 7; j >= 0; j--) {
- if (0 == atreg_info_dynamic_idpool[i] & (1 << j)) {
+ if (0 == (int)(atreg_info_dynamic_idpool[i] & (1 << j))) {
((struct atreg_info_instance_t *)patreg_info_instance)->req_msg_id = 8 * (i + 1) - (j + 1) + 512;
atreg_info_dynamic_idpool[i] = atreg_info_dynamic_idpool[i] | (1 << j);
pthread_mutex_unlock(&atreg_info_ctx.at_info_idpool_lock);
- return;
+ return 0;
}
}
}
@@ -332,7 +332,7 @@
slog(ATREG_PRINT, SLOG_ERR, "Err: atreg_info_allocation_proc id pool is FULL\n");
- return;
+ return -1;
}
@@ -344,20 +344,25 @@
* @note ÎÞ
* @warning ÎÞ
*/
-static void atreg_dynamic_id_allocation(void* patreg_instance, int atreg_type)
+static int atreg_dynamic_id_allocation(void* patreg_instance, int atreg_type)
{
+ int ret = -1;
+
switch (atreg_type) {
case AT_REG_SER:
- atreg_ser_allocation_proc(patreg_instance);
+ ret = atreg_ser_allocation_proc(patreg_instance);
break;
case AT_REG_INFO:
- atreg_info_allocation_proc(patreg_instance);
+ ret = atreg_info_allocation_proc(patreg_instance);
break;
default:
+ slog(ATREG_PRINT, SLOG_ERR, "Err: atreg_dynamic_id_allocation type invalid\n");
break;
}
+
+ return ret;
}
@@ -387,7 +392,11 @@
}
/* ¶¯Ì¬·ÖÅäreq_msg_idÓërsp_msg_id */
- atreg_dynamic_id_allocation((void *)patreg_ser_instance, AT_REG_SER);
+ if (0 != atreg_dynamic_id_allocation((void *)patreg_ser_instance, AT_REG_SER))
+ {
+ slog(ATREG_PRINT, SLOG_ERR, "Err: serv atreg_dynamic_id_allocation fail\n");
+ return -1;
+ }
/* »º´æatʵÀý */
pthread_mutex_lock(&atreg_ser_ctx.at_ser_lock_tmp);
@@ -480,7 +489,11 @@
}
/* ¶¯Ì¬·ÖÅäreq_msg_id */
- atreg_dynamic_id_allocation((void *)patreg_info_instance, AT_REG_INFO);
+ if (0 != atreg_dynamic_id_allocation((void *)patreg_info_instance, AT_REG_INFO))
+ {
+ slog(ATREG_PRINT, SLOG_ERR, "Err: info atreg_dynamic_id_allocation fail\n");
+ return -1;
+ }
/* »º´æatʵÀý */
pthread_mutex_lock(&atreg_info_ctx.at_info_lock_tmp);