aboutsummaryrefslogtreecommitdiffstats
path: root/src/framework/ipc/ps/nsfw_recycle_module.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/framework/ipc/ps/nsfw_recycle_module.c')
-rw-r--r--src/framework/ipc/ps/nsfw_recycle_module.c613
1 files changed, 289 insertions, 324 deletions
diff --git a/src/framework/ipc/ps/nsfw_recycle_module.c b/src/framework/ipc/ps/nsfw_recycle_module.c
index 01e16fb..06d7dd5 100644
--- a/src/framework/ipc/ps/nsfw_recycle_module.c
+++ b/src/framework/ipc/ps/nsfw_recycle_module.c
@@ -17,7 +17,7 @@
#include <stdlib.h>
#include "types.h"
#include "nstack_securec.h"
-#include "nsfw_init.h"
+#include "nsfw_init_api.h"
#include "nsfw_mgr_com_api.h"
#include "nsfw_mem_api.h"
@@ -27,7 +27,6 @@
#include "nsfw_recycle_module.h"
#include "nsfw_maintain_api.h"
#include "nstack_log.h"
-#include "common_mem_api.h"
#ifdef __cplusplus
/* *INDENT-OFF* */
@@ -35,7 +34,7 @@ extern "C"{
/* *INDENT-ON* */
#endif /* __cplusplus */
-/* only work on nStackMain*/
+/* only work on daemon-stack*/
nsfw_recycle_cfg g_rec_cfg;
nsfw_recycle_fun g_rec_fun[NSFW_REC_TYPE_MAX] = { 0 };
@@ -44,7 +43,7 @@ nsfw_rec_fun_info g_rec_lock_fun[NSFW_REC_LOCK_REL_MAX_FUN];
/*****************************************************************************
* Prototype : nsfw_recycle_reg_fun
-* Description : reg one recycle type recycle function
+* Description : reg one recycle type recycle funciton
* Input : u16 rec_type
* nsfw_recycle_fun fun
* Output : None
@@ -52,18 +51,17 @@ nsfw_rec_fun_info g_rec_lock_fun[NSFW_REC_LOCK_REL_MAX_FUN];
* Calls :
* Called By :
*****************************************************************************/
-u8
-nsfw_recycle_reg_fun (u16 rec_type, nsfw_recycle_fun fun)
+u8 nsfw_recycle_reg_fun(u16 rec_type, nsfw_recycle_fun fun)
{
- if (NULL == fun || rec_type >= NSFW_REC_TYPE_MAX)
+ if (NULL == fun || rec_type >= NSFW_REC_TYPE_MAX)
{
- NSFW_LOGERR ("argv err]fun=%p,type=%u", fun, rec_type);
- return FALSE;
+ NSFW_LOGERR("argv err]fun=%p,type=%u", fun, rec_type);
+ return FALSE;
}
- g_rec_fun[rec_type] = fun;
- NSFW_LOGINF ("reg]fun=%d,type=%u", fun, rec_type);
- return TRUE;
+ g_rec_fun[rec_type] = fun;
+ NSFW_LOGINF("reg]fun=%p,type=%u", fun, rec_type);
+ return TRUE;
}
/*****************************************************************************
@@ -77,31 +75,30 @@ nsfw_recycle_reg_fun (u16 rec_type, nsfw_recycle_fun fun)
* Calls :
* Called By :
*****************************************************************************/
-u8
-nsfw_recycle_lock_rel_fun (nsfw_recycle_fun fun, void *data, u8 proc_type)
+u8 nsfw_recycle_lock_rel_fun(nsfw_recycle_fun fun, void *data, u8 proc_type)
{
- if (NULL == fun)
+ if (NULL == fun)
{
- NSFW_LOGERR ("argv err]fun=%p,data=%p", fun, data);
- return FALSE;
+ NSFW_LOGERR("argv err]fun=%p,data=%p", fun, data);
+ return FALSE;
}
- u32 i;
+ u32 i;
- for (i = 0; i < NSFW_REC_LOCK_REL_MAX_FUN; i++)
+ for (i = 0; i < NSFW_REC_LOCK_REL_MAX_FUN; i++)
{
- if (NULL == g_rec_lock_fun[i].rec_fun)
+ if (NULL == g_rec_lock_fun[i].rec_fun)
{
- g_rec_lock_fun[i].rec_fun = fun;
- g_rec_lock_fun[i].data = data;
- g_rec_lock_fun[i].proc_type = proc_type;
- NSFW_LOGINF ("reg mgr_msg fun suc]fun=%p,data=%p", fun, data);
- return TRUE;
+ g_rec_lock_fun[i].rec_fun = fun;
+ g_rec_lock_fun[i].data = data;
+ g_rec_lock_fun[i].proc_type = proc_type;
+ NSFW_LOGINF("reg mgr_msg fun suc]fun=%p,data=%p", fun, data);
+ return TRUE;
}
}
- NSFW_LOGINF ("reg]fun=%p,data=%p", fun, data);
- return TRUE;
+ NSFW_LOGINF("reg]fun=%p,data=%p", fun, data);
+ return TRUE;
}
/*****************************************************************************
@@ -113,26 +110,25 @@ nsfw_recycle_lock_rel_fun (nsfw_recycle_fun fun, void *data, u8 proc_type)
* Calls :
* Called By :
*****************************************************************************/
-int
-nsfw_recycle_exit_pid_lock (u32 pid, u8 proc_type, void *argv)
+int nsfw_recycle_exit_pid_lock(u32 pid, u8 proc_type, void *argv)
{
- u32 i;
- NSFW_LOGINF ("release lock]pid=%d,type=%d", pid, proc_type);
- for (i = 0; i < NSFW_REC_LOCK_REL_MAX_FUN; i++)
+ u32 i;
+ NSFW_LOGINF("release lock]pid=%u,type=%d", pid, proc_type);
+ for (i = 0; i < NSFW_REC_LOCK_REL_MAX_FUN; i++)
{
- if (NULL == g_rec_lock_fun[i].rec_fun)
+ if (NULL == g_rec_lock_fun[i].rec_fun)
{
- break;
+ break;
}
- if ((NSFW_PROC_NULL == g_rec_lock_fun[i].proc_type)
- || (proc_type == g_rec_lock_fun[i].proc_type))
+ if ((NSFW_PROC_NULL == g_rec_lock_fun[i].proc_type)
+ || (proc_type == g_rec_lock_fun[i].proc_type))
{
- (void) g_rec_lock_fun[i].rec_fun (pid, g_rec_lock_fun[i].data, 0);
+ (void) g_rec_lock_fun[i].rec_fun(pid, g_rec_lock_fun[i].data, 0);
}
}
- return 0;
+ return 0;
}
/*****************************************************************************
@@ -144,23 +140,22 @@ nsfw_recycle_exit_pid_lock (u32 pid, u8 proc_type, void *argv)
* Calls :
* Called By :
*****************************************************************************/
-u8
-nsfw_recycle_obj_end (u32 pid)
+u8 nsfw_recycle_obj_end(u32 pid)
{
- nsfw_mgr_msg *rsp_msg =
- nsfw_mgr_msg_alloc (MGR_MSG_RCC_END_REQ, NSFW_PROC_MAIN);
- if (NULL == rsp_msg)
+ nsfw_mgr_msg *rsp_msg =
+ nsfw_mgr_msg_alloc(MGR_MSG_RCC_END_REQ, NSFW_PROC_MAIN);
+ if (NULL == rsp_msg)
{
- NSFW_LOGERR ("alloc rsp msg failed]pid=%u", pid);
- return FALSE;
+ NSFW_LOGERR("alloc rsp msg failed]pid=%u", pid);
+ return FALSE;
}
- nsfw_ps_info_msg *ps_msg = GET_USER_MSG (nsfw_ps_info_msg, rsp_msg);
- ps_msg->host_pid = pid;
- (void) nsfw_mgr_send_msg (rsp_msg);
- nsfw_mgr_msg_free (rsp_msg);
- NSFW_LOGINF ("send obj end msg]pid=%d", pid);
- return TRUE;
+ nsfw_ps_info_msg *ps_msg = GET_USER_MSG(nsfw_ps_info_msg, rsp_msg);
+ ps_msg->host_pid = pid;
+ (void) nsfw_mgr_send_msg(rsp_msg);
+ nsfw_mgr_msg_free(rsp_msg);
+ NSFW_LOGINF("send obj end msg]pid=%u", pid);
+ return TRUE;
}
/*****************************************************************************
@@ -173,74 +168,74 @@ nsfw_recycle_obj_end (u32 pid)
* Calls :
* Called By :
*****************************************************************************/
-nsfw_rcc_stat
-nsfw_recycle_callback_all_obj (u32 pid, nsfw_recycle_pool * rec_pool)
+nsfw_rcc_stat nsfw_recycle_callback_all_obj(u32 pid,
+ nsfw_recycle_pool * rec_pool)
{
- u32 match = 0;
- nsfw_recycle_obj *obj = NULL;
- if (NULL == rec_pool)
+ u32 match = 0;
+ nsfw_recycle_obj *obj = NULL;
+ if (NULL == rec_pool)
{
- return NSFW_RCC_CONTINUE;
+ return NSFW_RCC_CONTINUE;
}
- nsfw_recycle_obj *p_start = rec_pool->obj;
- u32 i;
- u32 size = rec_pool->pool_size;
+ nsfw_recycle_obj *p_start = rec_pool->obj;
+ u32 i;
+ u32 size = rec_pool->pool_size;
- nsfw_ps_info *pps_info;
- pps_info = nsfw_ps_info_get (pid);
- if (NULL == pps_info)
+ nsfw_ps_info *pps_info;
+ pps_info = nsfw_ps_info_get(pid);
+ if (NULL == pps_info)
{
- NSFW_LOGERR ("get ps_info failed!]pid=%d", pid);
- return NSFW_RCC_CONTINUE;
+ NSFW_LOGERR("get ps_info falied!]pid=%d", pid);
+ return NSFW_RCC_CONTINUE;
}
- i32 cur_idx = (i32) (u64) nsfw_ps_get_uv (pps_info, NSFW_REC_IDX);
+ i32 cur_idx = (i32) (u64) nsfw_ps_get_uv(pps_info, NSFW_REC_IDX);
- if (-1 == cur_idx)
+ if (-1 == cur_idx)
{
- cur_idx = 0;
- nsfw_ps_set_uv (pps_info, NSFW_REC_IDX, (void *) (u64) cur_idx);
- (void) nsfw_recycle_exit_pid_lock (pid, NSFW_PROC_APP, NULL);
+ cur_idx = 0;
+ nsfw_ps_set_uv(pps_info, NSFW_REC_IDX, (void *) (u64) cur_idx);
+ (void) nsfw_recycle_exit_pid_lock(pid, NSFW_PROC_APP, NULL);
}
- else
+ else
{
- cur_idx++;
- nsfw_ps_set_uv (pps_info, NSFW_REC_IDX, (void *) (u64) cur_idx);
+ cur_idx++;
+ nsfw_ps_set_uv(pps_info, NSFW_REC_IDX, (void *) (u64) cur_idx);
}
- for (i = cur_idx; i < size; i++)
+ for (i = cur_idx; i < size; i++)
{
- obj = &p_start[i];
- cur_idx = i;
- nsfw_ps_set_uv (pps_info, NSFW_REC_IDX, (void *) (u64) cur_idx);
- if (FALSE == obj->alloc_flag)
+ obj = &p_start[i];
+ cur_idx = i;
+ nsfw_ps_set_uv(pps_info, NSFW_REC_IDX, (void *) (u64) cur_idx);
+ if (FALSE == obj->alloc_flag)
{
- continue;
+ continue;
}
- if ((obj->rec_type < NSFW_REC_TYPE_MAX)
- && (NULL != g_rec_fun[obj->rec_type]))
+ if ((obj->rec_type < NSFW_REC_TYPE_MAX)
+ && (NULL != g_rec_fun[obj->rec_type]))
{
- match++;
- if (NSFW_RCC_SUSPEND ==
- g_rec_fun[obj->rec_type] (pid, obj->data, obj->rec_type))
+ match++;
+ if (NSFW_RCC_SUSPEND ==
+ g_rec_fun[obj->rec_type] (pid, obj->data, obj->rec_type))
{
- NSFW_LOGINF
- ("call suspend]type=%d,obj_pid=%d,pid=%d,count=%d",
- obj->rec_type, obj->host_pid, pid, match);
- return NSFW_RCC_SUSPEND;
+ NSFW_LOGINF
+ ("call suspend]type=%d,obj_pid=%d,pid=%d,count=%d",
+ obj->rec_type, obj->host_pid, pid, match);
+ return NSFW_RCC_SUSPEND;
}
}
- else
+ else
{
- NSFW_LOGERR ("obj_error!drop]type=%d,obj_pid=%d,pid=%d",
- obj->rec_type, obj->host_pid, pid);
+ NSFW_LOGERR("obj_error!drop]type=%d,obj_pid=%u,pid=%u",
+ obj->rec_type, obj->host_pid, pid);
}
}
- NSFW_LOGWAR ("rec obj]pid=%d,count=%d,cur_idx=%d", pid, match, cur_idx);
- return NSFW_RCC_CONTINUE;
+ NSFW_LOGWAR("rec obj]pid=%u,match=%u,cur_idx=%d", pid, match, cur_idx);
+ return NSFW_RCC_CONTINUE;
}
/*****************************************************************************
@@ -252,75 +247,67 @@ nsfw_recycle_callback_all_obj (u32 pid, nsfw_recycle_pool * rec_pool)
* Calls :
* Called By :
*****************************************************************************/
-u8
-nsfw_recycle_pid_obj (u32 pid)
+u8 nsfw_recycle_pid_obj(u32 pid)
{
- nsfw_ps_info *pps_info;
- pps_info = nsfw_ps_info_get (pid);
- if (NULL == pps_info)
+ nsfw_ps_info *pps_info;
+ pps_info = nsfw_ps_info_get(pid);
+ if (NULL == pps_info)
{
- NSFW_LOGERR ("get ps_info failed!]pid=%d", pid);
- return FALSE;
+ NSFW_LOGERR("get ps_info falied]pid=%u", pid);
+ return FALSE;
}
- nsfw_recycle_pool *rec_pool = g_rec_cfg.mem_rec_obj_pool;
- void *timer_ptr = nsfw_ps_get_uv (pps_info, NSFW_REC_TIMER);
- if (NSFW_RCC_SUSPEND == nsfw_recycle_callback_all_obj (pid, rec_pool))
+ nsfw_recycle_pool *rec_pool = g_rec_cfg.mem_rec_obj_pool;
+ void *timer_ptr = nsfw_ps_get_uv(pps_info, NSFW_REC_TIMER);
+ if (NSFW_RCC_SUSPEND == nsfw_recycle_callback_all_obj(pid, rec_pool))
{
- if (NULL != timer_ptr)
+ if (NULL != timer_ptr)
{
- nsfw_timer_rmv_timer (timer_ptr);
- timer_ptr = NULL;
+ nsfw_timer_rmv_timer(timer_ptr);
+ timer_ptr = NULL;
}
- struct timespec time_left = { NSFW_REC_WEND_TVLAUE, 0 };
- timer_ptr =
- (void *) nsfw_timer_reg_timer (NSFW_REC_WEND_TIMER,
- (void *) (u64) pid,
- nsfw_recycle_obj_timeout, time_left);
- nsfw_ps_set_uv (pps_info, NSFW_REC_TIMER, timer_ptr);
- return TRUE;
+ struct timespec time_left = { NSFW_REC_WEND_TVLAUE, 0 };
+ timer_ptr =
+ (void *) nsfw_timer_reg_timer(NSFW_REC_WEND_TIMER,
+ (void *) (u64) pid,
+ nsfw_recycle_obj_timeout,
+ time_left);
+ nsfw_ps_set_uv(pps_info, NSFW_REC_TIMER, timer_ptr);
+ return TRUE;
}
- if (NULL != timer_ptr)
+ if (NULL != timer_ptr)
{
- nsfw_timer_rmv_timer (timer_ptr);
- nsfw_ps_set_uv (pps_info, NSFW_REC_TIMER, NULL);
+ nsfw_timer_rmv_timer(timer_ptr);
+ nsfw_ps_set_uv(pps_info, NSFW_REC_TIMER, NULL);
}
- (void) nsfw_ps_exit_end_notify (pid);
- nsfw_ps_info_free (pps_info);
- return TRUE;
+ (void) nsfw_ps_exit_end_notify(pid);
+ if (pps_info->proc_type == NSFW_PROC_MASTER)
+ {
+ nsfw_ps_info_free(pps_info);
+ }
+ return TRUE;
}
-/*****************************************************************************
-* Prototype : nsfw_recycle_all_obj
-* Description :
-* Input : u32 pid
-* nsfw_mem_addr_msg *addr_msg
-* Output : None
-* Return Value : u8
-* Calls :
-* Called By :
-*****************************************************************************/
-u8
-nsfw_recycle_all_obj (u32 pid)
+u8 nsfw_recycle_all_obj(u32 pid)
{
- nsfw_ps_info *pps_info;
- pps_info = nsfw_ps_info_get (pid);
- if (NULL == pps_info)
+ nsfw_ps_info *pps_info;
+ pps_info = nsfw_ps_info_get(pid);
+ if (NULL == pps_info)
{
- pps_info = nsfw_ps_info_alloc (pid, NSFW_PROC_APP);
- if (NULL == pps_info)
+ pps_info = nsfw_ps_info_alloc(pid, NSFW_PROC_APP, 0);
+ if (NULL == pps_info)
{
- NSFW_LOGERR ("alloc ps_info failed!]pid=%u", pid);
- return FALSE;
+ NSFW_LOGERR("alloc ps_info falied!]pid=%u", pid);
+ return FALSE;
}
}
- nsfw_ps_set_uv (pps_info, NSFW_REC_IDX, (void *) (-1));
- nsfw_ps_set_uv (pps_info, NSFW_REC_TIMER, NULL);
- return nsfw_recycle_pid_obj (pid);
+ nsfw_ps_set_uv(pps_info, NSFW_REC_IDX, (void *) (-1));
+ nsfw_ps_set_uv(pps_info, NSFW_REC_TIMER, NULL);
+ return nsfw_recycle_pid_obj(pid);
}
/*****************************************************************************
@@ -332,27 +319,26 @@ nsfw_recycle_all_obj (u32 pid)
* Calls :
* Called By :
*****************************************************************************/
-int
-mem_app_exit_proc (nsfw_mgr_msg * msg)
+int mem_app_exit_proc(nsfw_mgr_msg * msg)
{
- if (NULL == msg)
+ if (NULL == msg)
{
- NSFW_LOGERR ("msg nul");
- return FALSE;
+ NSFW_LOGERR("msg nul");
+ return FALSE;
}
- nsfw_ps_info_msg *ps_info_msg = GET_USER_MSG (nsfw_ps_info_msg, msg);
+ nsfw_ps_info_msg *ps_info_msg = GET_USER_MSG(nsfw_ps_info_msg, msg);
- /* look up the app rec memzone and release all resource */
- /* no need to send rsp for it will be send after stack process over */
- if (TRUE == nsfw_recycle_all_obj (ps_info_msg->host_pid))
+ /* look up the app rec memzone and release all resource */
+ /* no need to send rsp for it will be send after stack process over */
+ if (TRUE == nsfw_recycle_all_obj(ps_info_msg->host_pid))
{
- NSFW_LOGINF ("obj found!]pid=%d", ps_info_msg->host_pid);
- return TRUE;
+ NSFW_LOGINF("obj found!]pid=%u", ps_info_msg->host_pid);
+ return TRUE;
}
- (void) nsfw_ps_exit_end_notify (ps_info_msg->host_pid);
- return FALSE;
+ (void) nsfw_ps_exit_end_notify(ps_info_msg->host_pid);
+ return FALSE;
}
/*****************************************************************************
@@ -364,18 +350,17 @@ mem_app_exit_proc (nsfw_mgr_msg * msg)
* Calls :
* Called By :
*****************************************************************************/
-int
-nsfw_recycle_obj_end_proc (nsfw_mgr_msg * msg)
+int nsfw_recycle_obj_end_proc(nsfw_mgr_msg * msg)
{
- if (NULL == msg)
+ if (NULL == msg)
{
- NSFW_LOGERR ("msg nul");
- return FALSE;
+ NSFW_LOGERR("msg nul");
+ return FALSE;
}
- nsfw_ps_info_msg *ps_info_msg = GET_USER_MSG (nsfw_ps_info_msg, msg);
+ nsfw_ps_info_msg *ps_info_msg = GET_USER_MSG(nsfw_ps_info_msg, msg);
- return nsfw_recycle_pid_obj (ps_info_msg->host_pid);
+ return nsfw_recycle_pid_obj(ps_info_msg->host_pid);
}
/*****************************************************************************
@@ -388,36 +373,35 @@ nsfw_recycle_obj_end_proc (nsfw_mgr_msg * msg)
* Calls :
* Called By :
*****************************************************************************/
-int
-nsfw_recycle_obj_timeout (u32 timer_type, void *data)
+int nsfw_recycle_obj_timeout(u32 timer_type, void *data)
{
- u32 pid = (u64) data;
- void *timer_ptr = NULL;
- NSFW_LOGINF ("ps_info timerout]pid=%u", pid);
+ u32 pid = (u64) data;
+ void *timer_ptr = NULL;
+ NSFW_LOGINF("ps_info timerout]pid=%u", pid);
- nsfw_ps_info *pps_info;
- pps_info = nsfw_ps_info_get (pid);
- if (NULL != pps_info)
+ nsfw_ps_info *pps_info;
+ pps_info = nsfw_ps_info_get(pid);
+ if (NULL != pps_info)
{
- nsfw_recycle_pool *rec_pool = g_rec_cfg.mem_rec_obj_pool;
- if (NULL != rec_pool)
+ nsfw_recycle_pool *rec_pool = g_rec_cfg.mem_rec_obj_pool;
+ if (NULL != rec_pool)
{
- if (TRUE == g_hbt_switch)
+ if (TRUE == g_hbt_switch)
{
- struct timespec time_left = { NSFW_REC_WEND_TVLAUE, 0 };
- timer_ptr =
- (void *) nsfw_timer_reg_timer (timer_type, data,
- nsfw_recycle_obj_timeout,
- time_left);
- nsfw_ps_set_uv (pps_info, NSFW_REC_TIMER, timer_ptr);
- return TRUE;
+ struct timespec time_left = { NSFW_REC_WEND_TVLAUE, 0 };
+ timer_ptr =
+ (void *) nsfw_timer_reg_timer(timer_type, data,
+ nsfw_recycle_obj_timeout,
+ time_left);
+ nsfw_ps_set_uv(pps_info, NSFW_REC_TIMER, timer_ptr);
+ return TRUE;
}
}
- nsfw_ps_set_uv (pps_info, NSFW_REC_TIMER, timer_ptr);
+ nsfw_ps_set_uv(pps_info, NSFW_REC_TIMER, timer_ptr);
}
- (void) nsfw_recycle_pid_obj (pid);
- return TRUE;
+ (void) nsfw_recycle_pid_obj(pid);
+ return TRUE;
}
/*****************************************************************************
@@ -429,96 +413,95 @@ nsfw_recycle_obj_timeout (u32 timer_type, void *data)
* Calls :
* Called By :
*****************************************************************************/
-u8
-mem_rec_zone_init ()
+u8 mem_rec_zone_init()
{
- nsfw_mem_mring pringinfo;
- pringinfo.enmptype = NSFW_MRING_MPMC;
- pringinfo.isocket_id = NSFW_SOCKET_ANY;
- pringinfo.stname.entype = NSFW_NSHMEM;
- pringinfo.usnum = MEM_RECYCLE_PER_PRO_QUE;
- u32 i;
- for (i = 0; i < NSFW_REC_PRO_MAX; i++)
+ nsfw_mem_mring pringinfo;
+ pringinfo.enmptype = NSFW_MRING_MPMC;
+ pringinfo.isocket_id = NSFW_SOCKET_ANY;
+ pringinfo.stname.entype = NSFW_NSHMEM;
+ pringinfo.usnum = MEM_RECYCLE_PER_PRO_QUE;
+ u32 i;
+ for (i = 0; i < NSFW_REC_PRO_MAX; i++)
{
- if (-1 ==
- SPRINTF_S (pringinfo.stname.aname, NSFW_MEM_NAME_LENGTH, "%s%d",
- MEM_REC_QUEUE_NAME, i))
+ if (-1 ==
+ sprintf_s(pringinfo.stname.aname, NSFW_MEM_NAME_LENTH, "%s%u",
+ MEM_REC_QUEUE_NAME, i))
{
- NSFW_LOGERR ("SPRINTF_S failed]");
- return FALSE;
+ NSFW_LOGERR("sprintf_s fail");
+ return FALSE;
}
- g_rec_cfg.mem_rec_pro[i] = nsfw_mem_ring_create (&pringinfo);
- if (NULL == g_rec_cfg.mem_rec_pro[i])
+ g_rec_cfg.mem_rec_pro[i] = nsfw_mem_ring_create(&pringinfo);
+ if (NULL == g_rec_cfg.mem_rec_pro[i])
{
- NSFW_LOGERR ("alloc rec ring nul!");
- return FALSE;
+ NSFW_LOGERR("alloc rec ring nul");
+ return FALSE;
}
}
- MEM_STAT (NSFW_RECYCLE_MODULE, MEM_REC_QUEUE_NAME, NSFW_NSHMEM,
- NSFW_REC_PRO_MAX * nsfw_mem_get_len (g_rec_cfg.mem_rec_pro[0],
+ MEM_STAT(NSFW_RECYCLE_MODULE, MEM_REC_QUEUE_NAME, NSFW_NSHMEM,
+ NSFW_REC_PRO_MAX * nsfw_mem_get_len(g_rec_cfg.mem_rec_pro[0],
NSFW_MEM_RING));
- nsfw_mem_zone pzoneinfo;
- pzoneinfo.isocket_id = NSFW_SOCKET_ANY;
- pzoneinfo.stname.entype = NSFW_NSHMEM;
- pzoneinfo.length =
- MEM_RECYCLE_OBJ_MAX_NUM * sizeof (nsfw_recycle_obj) +
- sizeof (nsfw_recycle_pool);
- if (-1 ==
- SPRINTF_S (pzoneinfo.stname.aname, NSFW_MEM_NAME_LENGTH, "%s",
- MEM_REC_POOL_NAME))
+ nsfw_mem_zone pzoneinfo;
+ pzoneinfo.isocket_id = NSFW_SOCKET_ANY;
+ pzoneinfo.stname.entype = NSFW_NSHMEM;
+ pzoneinfo.lenth =
+ MEM_RECYCLE_OBJ_MAX_NUM * sizeof(nsfw_recycle_obj) +
+ sizeof(nsfw_recycle_pool);
+ if (-1 ==
+ sprintf_s(pzoneinfo.stname.aname, NSFW_MEM_NAME_LENTH, "%s",
+ MEM_REC_POOL_NAME))
{
- NSFW_LOGERR ("SPRINTF_S failed]");
- return FALSE;
+ NSFW_LOGERR("sprintf_s fail");
+ return FALSE;
}
- g_rec_cfg.mem_rec_obj_pool = nsfw_mem_zone_create (&pzoneinfo);
- if (NULL == g_rec_cfg.mem_rec_obj_pool)
+ g_rec_cfg.mem_rec_obj_pool = nsfw_mem_zone_create(&pzoneinfo);
+ if (NULL == g_rec_cfg.mem_rec_obj_pool)
{
- NSFW_LOGERR ("alloc rec pool nul!");
- return FALSE;
+ NSFW_LOGERR("alloc rec pool nul");
+ return FALSE;
}
- MEM_STAT (NSFW_RECYCLE_MODULE, MEM_REC_POOL_NAME, NSFW_NSHMEM,
- pzoneinfo.length);
+ MEM_STAT(NSFW_RECYCLE_MODULE, MEM_REC_POOL_NAME, NSFW_NSHMEM,
+ pzoneinfo.lenth);
- int retval;
- retval =
- MEMSET_S (g_rec_cfg.mem_rec_obj_pool, pzoneinfo.length, 0,
- pzoneinfo.length);
- if (EOK != retval)
+ int retval;
+ retval =
+ memset_s(g_rec_cfg.mem_rec_obj_pool, pzoneinfo.lenth, 0,
+ pzoneinfo.lenth);
+ if (EOK != retval)
{
- NSFW_LOGERR ("mem set init failed!");
- return FALSE;
+ NSFW_LOGERR("mem set init fail");
+ return FALSE;
}
- i32 j;
- nsfw_recycle_pool *rec_pool =
- (nsfw_recycle_pool *) g_rec_cfg.mem_rec_obj_pool;
- rec_pool->pool_size = MEM_RECYCLE_OBJ_MAX_NUM;
+ i32 j;
+ nsfw_recycle_pool *rec_pool =
+ (nsfw_recycle_pool *) g_rec_cfg.mem_rec_obj_pool;
+ rec_pool->pool_size = MEM_RECYCLE_OBJ_MAX_NUM;
- nsfw_recycle_obj *p_start = rec_pool->obj;
- for (i = 0; i < NSFW_REC_PRO_MAX; i++)
+ nsfw_recycle_obj *p_start = rec_pool->obj;
+ for (i = 0; i < NSFW_REC_PRO_MAX; i++)
{
- for (j = 0; j < MEM_RECYCLE_PER_PRO_QUE; j++)
+ for (j = 0; j < MEM_RECYCLE_PER_PRO_QUE; j++)
{
- if (FALSE == p_start[j].alloc_flag)
+ if (FALSE == p_start[j].alloc_flag)
{
- if (0 ==
- nsfw_mem_ring_enqueue (g_rec_cfg.mem_rec_pro[i],
- &p_start[j]))
+ if (0 ==
+ nsfw_mem_ring_enqueue(g_rec_cfg.mem_rec_pro[i],
+ &p_start[j]))
{
- NSFW_LOGERR ("enqueue failed");
- break;
+ NSFW_LOGERR("enqueue fail");
+ break;
}
}
}
- p_start = p_start + MEM_RECYCLE_PER_PRO_QUE;
+ p_start = p_start + MEM_RECYCLE_PER_PRO_QUE;
}
- NSFW_LOGINF ("init rec pool and ring suc!");
- return TRUE;
+ NSFW_LOGINF("init rec pool and ring suc");
+ return TRUE;
}
/*****************************************************************************
@@ -532,46 +515,45 @@ mem_rec_zone_init ()
* Calls :
* Called By :
*****************************************************************************/
-void *
-nsfw_recycle_reg_obj (u8 priority, u16 rec_type, void *data)
+void *nsfw_recycle_reg_obj(u8 priority, u16 rec_type, void *data)
{
- if (NSFW_REC_PRO_MAX <= priority)
+ if (NSFW_REC_PRO_MAX <= priority)
{
- NSFW_LOGERR ("pro error]priority=%d,rec_type=%d,data=%p", priority,
- rec_type, data);
- return NULL;
+ NSFW_LOGERR("pro error]priority=%d,rec_type=%d,data=%p", priority,
+ rec_type, data);
+ return NULL;
}
- nsfw_recycle_obj *obj = NULL;
- if (0 ==
- nsfw_mem_ring_dequeue (g_rec_cfg.mem_rec_pro[priority], (void *) &obj))
+ nsfw_recycle_obj *obj = NULL;
+ if (0 ==
+ nsfw_mem_ring_dequeue(g_rec_cfg.mem_rec_pro[priority], (void *) &obj))
{
- NSFW_LOGERR ("dequeue error]priority=%d,rec_type=%d,data=%p",
- priority, rec_type, data);
- return NULL;
+ NSFW_LOGERR("dequeue error]priority=%d,rec_type=%d,data=%p",
+ priority, rec_type, data);
+ return NULL;
}
- if (EOK != MEMSET_S (obj, sizeof (*obj), 0, sizeof (*obj)))
+ if (EOK != memset_s(obj, sizeof(*obj), 0, sizeof(*obj)))
{
- if (0 == nsfw_mem_ring_enqueue (g_rec_cfg.mem_rec_pro[priority], obj))
+ if (0 == nsfw_mem_ring_enqueue(g_rec_cfg.mem_rec_pro[priority], obj))
{
- NSFW_LOGERR ("enqueue error]priority=%d,rec_type=%d,data=%p",
- priority, rec_type, data);
+ NSFW_LOGERR("enqueue error]priority=%d,rec_type=%d,data=%p",
+ priority, rec_type, data);
}
- NSFW_LOGERR ("mem set error]priority=%d,rec_type=%d,data=%p",
- priority, rec_type, data);
- return NULL;
+ NSFW_LOGERR("mem set error]priority=%d,rec_type=%d,data=%p",
+ priority, rec_type, data);
+ return NULL;
}
- obj->alloc_flag = TRUE;
- obj->rec_type = rec_type;
- obj->data = data;
- obj->host_pid = get_sys_pid ();
- obj->alloc_flag = TRUE;
- NSFW_LOGINF ("en queue obj]priority=%d,rec_type=%d,data=%p", priority,
- rec_type, data);
- return obj;
+ obj->alloc_flag = TRUE;
+ obj->rec_type = rec_type;
+ obj->data = data;
+ obj->host_pid = get_sys_pid();
+ obj->alloc_flag = TRUE;
+ NSFW_LOGINF("en queue obj]priority=%d,rec_type=%d,data=%p", priority,
+ rec_type, data);
+ return obj;
}
/*****************************************************************************
@@ -583,77 +565,60 @@ nsfw_recycle_reg_obj (u8 priority, u16 rec_type, void *data)
* Calls :
* Called By :
*****************************************************************************/
-int
-nsfw_recycle_rechk_lock ()
+int nsfw_recycle_rechk_lock()
{
- return nsfw_ps_rechk_pid_exit (nsfw_recycle_exit_pid_lock, NULL);
+ return nsfw_ps_rechk_pid_exit(nsfw_recycle_exit_pid_lock, NULL);
}
-/*****************************************************************************
-* Prototype : nsfw_recycle_module_init
-* Description : module init
-* Input : void* param
-* Output : None
-* Return Value : static int
-* Calls :
-* Called By :
-*****************************************************************************/
-NSTACK_STATIC int nsfw_recycle_module_init (void *param);
-NSTACK_STATIC int
-nsfw_recycle_module_init (void *param)
+NSTACK_STATIC int nsfw_recycle_module_init(void *param);
+NSTACK_STATIC int nsfw_recycle_module_init(void *param)
{
- u32 proc_type = (u32) ((long long) param);
- NSFW_LOGINF ("recycle module init]type=%d", proc_type);
- g_rec_cfg.rec_waite_end_tvalue = NSFW_REC_WEND_TVLAUE_DEF;
- switch (proc_type)
+ u32 proc_type = (u32) ((long long) param);
+ NSFW_LOGINF("recycle module init]type=%u", proc_type);
+ g_rec_cfg.rec_waite_end_tvalue = NSFW_REC_WEND_TVLAUE_DEF;
+ switch (proc_type)
{
- case NSFW_PROC_MAIN:
- (void) nsfw_mgr_reg_msg_fun (MGR_MSG_APP_EXIT_REQ, mem_app_exit_proc);
- (void) nsfw_mgr_reg_msg_fun (MGR_MSG_RCC_END_REQ,
- nsfw_recycle_obj_end_proc);
- if (TRUE == mem_rec_zone_init ())
- {
- return 0;
- }
+ case NSFW_PROC_MASTER:
+ return 0;
+ case NSFW_PROC_MAIN:
+ (void) nsfw_mgr_reg_msg_fun(MGR_MSG_APP_EXIT_REQ,
+ mem_app_exit_proc);
+ (void) nsfw_mgr_reg_msg_fun(MGR_MSG_RCC_END_REQ,
+ nsfw_recycle_obj_end_proc);
+ if (TRUE == mem_rec_zone_init())
+ {
+ return 0;
+ }
- return 0;
- default:
- if (proc_type < NSFW_PROC_MAX)
- {
- break;
- }
- return -1;
+ return 0;
+ default:
+ if (proc_type < NSFW_PROC_MAX)
+ {
+ break;
+ }
+ return -1;
}
- return 0;
+ return 0;
}
-/*****************************************************************************
-* Prototype : nsfw_recycle_fork_init
-* Description : fork init
-* Input : None
-* Output : None
-* Return Value : u8
-* Calls :
-* Called By :
-*****************************************************************************/
-u8
-nsfw_recycle_fork_init ()
+u8 nsfw_recycle_fork_init()
{
- /* reconnect to master after fork in child proc */
- nsfw_mgr_close_dst_proc (NSFW_PROC_MAIN, 0);
- if (0 == nsfw_recycle_module_init ((void *) ((long long) NSFW_PROC_APP)))
+ /* reconnect to master after fork in child proc */
+ nsfw_mgr_close_dst_proc(NSFW_PROC_MAIN, 0);
+ nsfw_mgr_close_dst_proc(NSFW_PROC_MASTER, 0);
+ if (0 == nsfw_recycle_module_init((void *) ((long long) NSFW_PROC_APP)))
{
- return TRUE;
+ return TRUE;
}
- return FALSE;
+ return FALSE;
}
/* *INDENT-OFF* */
-NSFW_MODULE_NAME (NSFW_RECYCLE_MODULE)
-NSFW_MODULE_PRIORITY (10)
-NSFW_MODULE_DEPENDS (NSFW_PS_MEM_MODULE)
-NSFW_MODULE_INIT (nsfw_recycle_module_init)
+NSFW_MODULE_NAME(NSFW_RECYCLE_MODULE)
+NSFW_MODULE_PRIORITY(10)
+NSFW_MODULE_DEPENDS(NSFW_PS_MEM_MODULE)
+NSFW_MODULE_INIT(nsfw_recycle_module_init)
/* *INDENT-ON* */
#ifdef __cplusplus