diff options
author | nanger <zhenyinan@huawei.com> | 2018-09-29 16:41:15 +0800 |
---|---|---|
committer | nanger <zhenyinan@huawei.com> | 2018-09-29 16:45:14 +0800 |
commit | 74c9aed15303d388d7d0429128bc3af96f7eb45c (patch) | |
tree | b4659364e410ef5b0f36b61bbf98c48e5763d8e5 /src/adapt/nstack_share_res.c | |
parent | 31ea86798426cf236d70c9de1944c723a6cb1d95 (diff) |
Refactor: change to dmm share memory
Change-Id: Iff87eb5c6610c1db9247a898dd4c8ffbe6eeabdf
Signed-off-by: nanger <zhenyinan@huawei.com>
Diffstat (limited to 'src/adapt/nstack_share_res.c')
-rw-r--r-- | src/adapt/nstack_share_res.c | 88 |
1 files changed, 15 insertions, 73 deletions
diff --git a/src/adapt/nstack_share_res.c b/src/adapt/nstack_share_res.c index 9466145..a42a8a1 100644 --- a/src/adapt/nstack_share_res.c +++ b/src/adapt/nstack_share_res.c @@ -15,7 +15,6 @@ */ #include "nstack_share_res.h" -#include "nsfw_mem_api.h" #include "types.h" #include "nsfw_recycle_api.h" #include "nstack_securec.h" @@ -23,49 +22,30 @@ #include "nsfw_maintain_api.h" #include "nstack_types.h" +#include "dmm_memory.h" + #define NSTACK_SHARE_FORK_LOCK "share_fork_lock" typedef struct { - common_mem_spinlock_t *fork_share_lock; + dmm_spinlock_t *fork_share_lock; } nstack_share_res; NSTACK_STATIC nstack_share_res g_nstack_share_res; -/** global timer tick */ -nstack_tick_info_t g_nstack_timer_tick; - NSTACK_STATIC int nstack_create_share_fork_lock () { - mzone_handle zone; - nsfw_mem_zone param; - int ret; - - param.isocket_id = -1; - param.length = sizeof (common_mem_spinlock_t); - param.stname.entype = NSFW_SHMEM; - - ret = - STRCPY_S (param.stname.aname, NSFW_MEM_NAME_LENGTH, - NSTACK_SHARE_FORK_LOCK); - if (EOK != ret) - { - NSSOC_LOGERR ("STRCPY_S failed]name=%s,ret=%d", NSTACK_SHARE_FORK_LOCK, - ret); - return -1; - } - - zone = nsfw_mem_zone_create (¶m); - if (!zone) + g_nstack_share_res.fork_share_lock = (dmm_spinlock_t *) + dmm_locked_map (sizeof (dmm_spinlock_t), NSTACK_SHARE_FORK_LOCK); + if (!g_nstack_share_res.fork_share_lock) { NSSOC_LOGERR ("nsfw_mem_zone_create failed]name=%s", NSTACK_SHARE_FORK_LOCK); return -1; } - g_nstack_share_res.fork_share_lock = (common_mem_spinlock_t *) zone; - common_mem_spinlock_init (g_nstack_share_res.fork_share_lock); + dmm_spin_init (g_nstack_share_res.fork_share_lock); NSSOC_LOGDBG ("ok"); return 0; @@ -74,58 +54,20 @@ nstack_create_share_fork_lock () NSTACK_STATIC int nstack_lookup_share_fork_lock () { - mzone_handle zone; - nsfw_mem_name param; - - param.entype = NSFW_SHMEM; - param.enowner = NSFW_PROC_MAIN; - if (STRCPY_S (param.aname, NSFW_MEM_NAME_LENGTH, NSTACK_SHARE_FORK_LOCK) != - 0) - { - NSSOC_LOGERR ("STRCPY_S failed]name=%s", NSTACK_SHARE_FORK_LOCK); - return -1; - } - - zone = nsfw_mem_zone_lookup (¶m); - if (!zone) + g_nstack_share_res.fork_share_lock = (dmm_spinlock_t *) + dmm_lookup (NSTACK_SHARE_FORK_LOCK); + if (!g_nstack_share_res.fork_share_lock) { NSSOC_LOGERR ("nsfw_mem_zone_lookup failed]name=%s", NSTACK_SHARE_FORK_LOCK); return -1; } - g_nstack_share_res.fork_share_lock = (common_mem_spinlock_t *) zone; - NSSOC_LOGDBG ("ok"); return 0; } -NSTACK_STATIC int -nstack_lookup_share_global_tick () -{ - int ret; - nsfw_mem_name name = {.entype = NSFW_SHMEM,.enowner = NSFW_PROC_MAIN }; - - ret = STRCPY_S (name.aname, NSFW_MEM_NAME_LENGTH, NSTACK_GLOBAL_TICK_SHM); - if (EOK != ret) - { - NSSOC_LOGERR ("STRCPY_S failed]name=%s,ret=%d", NSTACK_GLOBAL_TICK_SHM, - ret); - return -1; - } - - g_nstack_timer_tick.tick_ptr = (u64_t *) nsfw_mem_zone_lookup (&name); - if (NULL == g_nstack_timer_tick.tick_ptr) - { - NSPOL_LOGERR ("Failed to lookup global timer tick memory"); - return -1; - } - - NSSOC_LOGDBG ("ok"); - return 0; -} - int nstack_init_share_res () { @@ -144,16 +86,16 @@ nstack_attach_share_res () { return -1; } - +#if 0 if (nstack_lookup_share_global_tick () != 0) { return -1; } - +#endif return 0; } -common_mem_spinlock_t * +dmm_spinlock_t * nstack_get_fork_share_lock () { return g_nstack_share_res.fork_share_lock; @@ -165,9 +107,9 @@ nstack_recycle_fork_share_lock (u32 exit_pid, void *pdata, u16 rec_type) NSSOC_LOGDBG ("recycle]pid=%u", exit_pid); if (g_nstack_share_res.fork_share_lock - && (g_nstack_share_res.fork_share_lock->locked == exit_pid)) + && (g_nstack_share_res.fork_share_lock->lock == exit_pid)) { - common_mem_spinlock_unlock (g_nstack_share_res.fork_share_lock); + dmm_spin_unlock (g_nstack_share_res.fork_share_lock); } return NSFW_RCC_CONTINUE; |