aboutsummaryrefslogtreecommitdiffstats
path: root/src/adapt/nstack_share_res.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/adapt/nstack_share_res.c')
-rw-r--r--src/adapt/nstack_share_res.c88
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 (&param);
- 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 (&param);
- 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;