diff options
Diffstat (limited to 'src/framework/ipc/ps/nsfw_recycle_module.c')
-rw-r--r-- | src/framework/ipc/ps/nsfw_recycle_module.c | 613 |
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 |