📄 socketcall.c.svn-base
字号:
#include "lwip/sockets.h"
#include <net/dnet.h>
int socketcall(int callno, long* args)
{
switch (callno)
{
case SYS_SOCKET:
return lwip_socket((int)args[0], (int)args[1], (int)args[2]);
case SYS_BIND:
return lwip_bind((int)args[0], (struct sockaddr *)args[1], (socklen_t)args[2]);
case SYS_CONNECT:
return lwip_connect((int)args[0], (struct sockaddr*)args[1], (socklen_t)args[2]);
case SYS_LISTEN:
return lwip_listen((int)args[0], (int)args[1]);
case SYS_ACCEPT:
return lwip_accept((int)args[0], (struct sockaddr*)args[1], (socklen_t*)args[2]);
case SYS_GETSOCKNAME:
return lwip_getsockname((int)args[0], (struct sockaddr*)args[1], (socklen_t*)args[2]);
case SYS_GETPEERNAME:
return lwip_getpeername((int)args[0], (struct sockaddr*)args[1], (socklen_t*)args[2]);
case SYS_SOCKETPAIR:
return RERROR;
case SYS_SEND:
return lwip_send((int)args[0], (void *)args[1], (int)args[2], (unsigned int)args[3]);
case SYS_RECV:
return lwip_recv((int)args[0], (void *)args[1], (int)args[2], (unsigned int)args[3]);
case SYS_SENDTO:
return lwip_sendto((int)args[0], (void *)args[1], (int)args[2], (unsigned int)args[3],
(struct sockaddr *)args[4], (socklen_t)args[5]);
case SYS_RECVFROM:
return lwip_recvfrom((int)args[0], (void *)args[1], (int)args[2], (unsigned int)args[3],
(struct sockaddr *)args[4], (socklen_t *)args[5]);
case SYS_SHUTDOWN:
return lwip_shutdown((int)args[0], (int)args[1]);
case SYS_SETSOCKOPT:
return lwip_setsockopt((int)args[0], (int)args[1], (int)args[2],
(const void *)args[3], (socklen_t)args[4]);
case SYS_GETSOCKOPT:
return lwip_getsockopt((int)args[0], (int)args[1], (int)args[2],
(void*)args[3], (socklen_t*)args[4]);
case SYS_SENDMSG:
return RERROR;
case SYS_RECVMSG:
return RERROR;
default:
return RERROR;
}
/* never reachable */
return ROK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -