summaryrefslogtreecommitdiff
path: root/components/lwp
diff options
context:
space:
mode:
authorheyuanjie <xx>2018-08-01 15:44:33 +0800
committerheyuanjie <xx>2018-08-01 15:44:33 +0800
commit9cf65d0b2823a6a6f8fd606180ef971b6b1616dc (patch)
tree4dde618d93f8373d3b772f9d1930221a0f06d631 /components/lwp
parent90cef4fbac386a9ad3bfcafa86c52019798393d9 (diff)
添加网络系统调用
Diffstat (limited to 'components/lwp')
-rw-r--r--components/lwp/lwp_syscall.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/components/lwp/lwp_syscall.c b/components/lwp/lwp_syscall.c
index d52c3d09f6..b7c54e4e36 100644
--- a/components/lwp/lwp_syscall.c
+++ b/components/lwp/lwp_syscall.c
@@ -26,6 +26,15 @@
#include <lwp_mem.h>
#include <lwp_syscall.h>
+#include <dfs_poll.h>
+#if (defined(RT_USING_SAL) && defined(SAL_USING_POSIX))
+#include <sys/socket.h>
+
+#define SYSCALL_NET(f) (f)
+#else
+#define SYSCALL_NET(f) (sys_notimpl)
+#endif
+
#define DBG_ENABLE
#define DBG_SECTION_NAME "LWP_CALL"
#define DBG_COLOR
@@ -204,6 +213,11 @@ int sys_fstat(int file, struct stat *buf)
return fstat(file, buf);
}
+int sys_notimpl(void)
+{
+ return -ENOSYS;
+}
+
const static void* func_table[] =
{
(void *)sys_exit, // 0x01
@@ -226,11 +240,26 @@ const static void* func_table[] =
(void *)sys_free, // 0x0e
(void *)sys_realloc, //0x0f
(void *)sys_fstat, // 0x10
+ poll, // 0x11
+
+ SYSCALL_NET(accept), // 0x12
+ SYSCALL_NET(bind), // 0x13
+ SYSCALL_NET(shutdown), // 0x14
+ SYSCALL_NET(getpeername),// 0x15
+ SYSCALL_NET(getsockname),// 0x16
+ SYSCALL_NET(getsockopt), // 0x17
+ SYSCALL_NET(setsockopt), // 0x18
+ SYSCALL_NET(connect), // 0x19
+ SYSCALL_NET(listen), // 0x1a
+ SYSCALL_NET(recv), // 0x1b
+ SYSCALL_NET(recvfrom), // 0x1c
+ SYSCALL_NET(send), // 0x1d
+ SYSCALL_NET(sendto), // 0x1e
};
const void *lwp_get_sys_api(rt_uint32_t number)
{
- const void *func = RT_NULL;
+ const void *func = sys_notimpl;
if (number == 0xff)
{