aboutsummaryrefslogtreecommitdiffstats
path: root/src/nSocket/kernel/linux_kernel_module.h
diff options
context:
space:
mode:
authorYalei Wang <william.wangyalei@huawei.com>2018-03-12 10:07:58 +0800
committerYalei Wang <william.wangyalei@huawei.com>2018-03-12 10:07:58 +0800
commitc398e6ec613c1f90ffe33608c511208100e7372f (patch)
tree554b2bc400e14e9ae8e838582e7433ea71eb499f /src/nSocket/kernel/linux_kernel_module.h
parent71a4e2f34afa8018426f0e830050e50a1de6d375 (diff)
Add the nSocket module for dmm
Change-Id: I8b97fbe50c9c1c479072510b8d799fe711360da7 Signed-off-by: Yalei Wang <william.wangyalei@huawei.com>
Diffstat (limited to 'src/nSocket/kernel/linux_kernel_module.h')
-rw-r--r--src/nSocket/kernel/linux_kernel_module.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/nSocket/kernel/linux_kernel_module.h b/src/nSocket/kernel/linux_kernel_module.h
new file mode 100644
index 0000000..01e0330
--- /dev/null
+++ b/src/nSocket/kernel/linux_kernel_module.h
@@ -0,0 +1,61 @@
+/*
+*
+* 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 _LINUX_KERNEL_MODULE_H_
+#define _LINUX_KERNEL_MODULE_H_
+
+#include "nstack_dmm_api.h"
+
+#define K_SELECT_THREAD_NAME "kernel_select"
+#define K_EPOLL_THREAD_NAME "kernel_epoll"
+
+#ifndef ks_success
+#define ks_success 0
+#endif
+
+#ifndef ks_fail
+#define ks_fail -1
+#endif
+
+#ifndef ks_bool
+typedef char ks_bool;
+#endif
+
+#ifndef ks_false
+#define ks_false 0
+#endif
+
+#ifndef ks_true
+#define ks_true 1
+#endif
+
+int kernel_stack_register (nstack_proc_cb * ops, nstack_event_cb * val);
+
+typedef struct
+{
+ nstack_event_cb regVal;
+ int epfd;
+ int checkEpollFD;
+ pthread_t ep_thread;
+ ks_bool thread_inited;
+ pthread_t select_thread; //listen select events
+ nstack_socket_ops libcOps;
+} kernel_stack_info_t;
+
+extern kernel_stack_info_t g_ksInfo;
+
+extern int linux_kernel_stack_init (void);
+#endif