⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socketcall.c.svn-base

📁 RT-Thread是发展中的下一代微内核嵌入式实时操作系统
💻 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 + -