Add socket and IPv4 support for x86_64
This commit is contained in:
64
sys.h
64
sys.h
@@ -37,6 +37,70 @@ int32_t openat(int32_t fd, const char* filename, uint32_t flags, uint32_t mode);
|
||||
int close(unsigned int fd);
|
||||
int fsync(unsigned int fd);
|
||||
|
||||
// Socket syscalls
|
||||
int socket(int domain, int type, int protocol);
|
||||
int setsockopt(int sockfd, int level, int optname, const void* optval, uint64_t optlen);
|
||||
int bind(int sockfd, const void* sockaddr, uint64_t addrlen);
|
||||
int listen(int fd, int backlog);
|
||||
int accept(int sockfd, void* addr, uint64_t* addrlen);
|
||||
int connect(int sockfd, void* addr, uint64_t addrlen);
|
||||
int64_t sendto(int sockfd, const void* buf, uint64_t size, int flags, const void* sockaddr, uint64_t addrlen);
|
||||
#define send(sockfd, buf, size, flags) sendto(sockfd, buf, size, flags, 0, 0)
|
||||
int64_t recvfrom(int sockfd, const void* buf, uint64_t size, int flags, const void* sockaddr, uint64_t addrlen);
|
||||
#define recv(sockfd, buf, size, flags) recvfrom(sockfd, buf, size, flags, 0, 0)
|
||||
// Socket Domain constants
|
||||
typedef unsigned short sa_family_t;
|
||||
/* Supported address families. */
|
||||
#define AF_UNIX 1 /* Unix domain sockets */
|
||||
#define AF_LOCAL 1 /* POSIX name for AF_UNIX */
|
||||
#define AF_INET 2 /* Internet IP Protocol */
|
||||
#define AF_AX25 3 /* Amateur Radio AX.25 */
|
||||
#define AF_INET6 10 /* IP version 6 */
|
||||
#define AF_ROSE 11 /* Amateur Radio X.25 PLP */
|
||||
#define AF_PACKET 17 /* Packet family */
|
||||
#define AF_CAN 29 /* Controller Area Network */
|
||||
#define AF_BLUETOOTH 31 /* Bluetooth sockets */
|
||||
// Socket type constants
|
||||
enum sock_type {
|
||||
SOCK_STREAM = 1,
|
||||
SOCK_DGRAM = 2,
|
||||
SOCK_RAW = 3,
|
||||
SOCK_RDM = 4,
|
||||
SOCK_SEQPACKET = 5,
|
||||
SOCK_DCCP = 6,
|
||||
SOCK_PACKET = 10,
|
||||
};
|
||||
|
||||
#if defined(__mips__)
|
||||
#define SOL_SOCKET 0xffff
|
||||
#else
|
||||
#define SOL_SOCKET 1
|
||||
|
||||
#define SO_DEBUG 1
|
||||
#define SO_REUSEADDR 2
|
||||
#define SO_TYPE 3
|
||||
#define SO_ERROR 4
|
||||
#define SO_DONTROUTE 5
|
||||
#define SO_BROADCAST 6
|
||||
#define SO_SNDBUF 7
|
||||
#define SO_RCVBUF 8
|
||||
#define SO_SNDBUFFORCE 32
|
||||
#define SO_RCVBUFFORCE 33
|
||||
#define SO_KEEPALIVE 9
|
||||
#define SO_OOBINLINE 10
|
||||
#define SO_NO_CHECK 11
|
||||
#define SO_PRIORITY 12
|
||||
#define SO_LINGER 13
|
||||
#define SO_BSDCOMPAT 14
|
||||
#define SO_REUSEPORT 15
|
||||
#define SO_PASSCRED 16
|
||||
#define SO_PEERCRED 17
|
||||
#define SO_RCVLOWAT 18
|
||||
#define SO_SNDLOWAT 19
|
||||
#define SO_RCVTIMEO 20
|
||||
#define SO_SNDTIMEO 21
|
||||
#endif
|
||||
|
||||
uint32_t fork();
|
||||
|
||||
// Provide memset for clang
|
||||
|
||||
Reference in New Issue
Block a user