summaryrefslogtreecommitdiffstats
path: root/stacks/lwip_stack/src/mem/nsfw_nshmem/nsfw_nshmem_mng.h
diff options
context:
space:
mode:
Diffstat (limited to 'stacks/lwip_stack/src/mem/nsfw_nshmem/nsfw_nshmem_mng.h')
-rw-r--r--stacks/lwip_stack/src/mem/nsfw_nshmem/nsfw_nshmem_mng.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/stacks/lwip_stack/src/mem/nsfw_nshmem/nsfw_nshmem_mng.h b/stacks/lwip_stack/src/mem/nsfw_nshmem/nsfw_nshmem_mng.h
new file mode 100644
index 0000000..fa5bc6b
--- /dev/null
+++ b/stacks/lwip_stack/src/mem/nsfw_nshmem/nsfw_nshmem_mng.h
@@ -0,0 +1,70 @@
+/*
+*
+* Copyright (c) 2018 Huawei Technologies Co.,Ltd.
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at:
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#ifndef _NSFW_NSHMEM_MNG_H_
+#define _NSFW_NSHMEM_MNG_H_
+
+#include "common_mem_rwlock.h"
+
+#include "common_func.h"
+
+#define NSFW_NSHMEM_ZONE_MAX 2560
+
+typedef struct
+{
+ i8 aname[NSFW_MEM_NAME_LENTH];
+ void *addr;
+ int length;
+} nsfw_nshmem_mzone;
+
+typedef struct
+{
+ nsfw_nshmem_mzone amemzone[NSFW_NSHMEM_ZONE_MAX];
+ common_mem_rwlock_t mlock;
+} nsfw_nshmem_cfg;
+
+/*
+ * no share memory module init
+ */
+i32 nsfw_nshmem_init(nsfw_mem_para * para);
+
+/*
+ * no share memory module destory
+ */
+void nsfw_nshmem_destory(void);
+
+/*
+ * create a no shared memory
+ */
+mzone_handle nsfw_nshmem_create(nsfw_mem_zone * pinfo);
+
+mzone_handle nsfw_nshmem_lookup(nsfw_mem_name * pname);
+
+i32 nsfw_nshmem_release(nsfw_mem_name * pname);
+
+mring_handle nsfw_nshmem_spcreate(nsfw_mem_sppool * pmpinfo);
+
+i32 nsfw_nshmem_sprelease(nsfw_mem_name * pname);
+
+mring_handle nsfw_nshmem_sp_lookup(nsfw_mem_name * pname);
+
+mring_handle nsfw_nshmem_ringcreate(nsfw_mem_mring * pringinfo);
+
+i32 nsfw_nshmem_ringrelease(nsfw_mem_name * pname);
+
+ssize_t nsfw_nshmem_static(void *handle, nsfw_mem_struct_type type);
+
+#endif