Luna/libc/src/sys/socket.cpp

38 lines
947 B
C++

#include <bits/errno-return.h>
#include <sys/socket.h>
#include <sys/syscall.h>
#include <unistd.h>
extern "C"
{
int socket(int domain, int type, int protocol)
{
long rc = syscall(SYS_socket, domain, type, protocol);
__errno_return(rc, int);
}
int bind(int sockfd, struct sockaddr* addr, socklen_t addrlen)
{
long rc = syscall(SYS_bind, sockfd, addr, addrlen);
__errno_return(rc, int);
}
int connect(int sockfd, struct sockaddr* addr, socklen_t addrlen)
{
long rc = syscall(SYS_connect, sockfd, addr, addrlen);
__errno_return(rc, int);
}
int listen(int sockfd, int backlog)
{
long rc = syscall(SYS_listen, sockfd, backlog);
__errno_return(rc, int);
}
int accept(int sockfd, struct sockaddr* addr, socklen_t* addrlen)
{
long rc = syscall(SYS_accept, sockfd, addr, addrlen);
__errno_return(rc, int);
}
}