// POSIX socket declarations supported by nt-lite. #pragma once #include #include #include #include typedef uint16_t sa_family_t; typedef uint32_t socklen_t; #define AF_UNSPEC 0 #define AF_INET 2 #define AF_INET6 10 #define PF_INET AF_INET #define PF_INET6 AF_INET6 #define SOCK_STREAM 1 #define SOCK_DGRAM 2 #define SOCK_RAW 3 #define SHUT_RD 0 #define SHUT_WR 1 #define SHUT_RDWR 2 #define SOL_SOCKET 1 #define SO_RCVTIMEO 1 #define SO_SNDTIMEO 2 #define SO_NONBLOCK 3 struct sockaddr { sa_family_t sa_family; char sa_data[14]; }; NTL_POSIX_API int socket(int domain, int type, int protocol); NTL_POSIX_API int bind(int fd, const struct sockaddr* address, socklen_t addressLength); NTL_POSIX_API int listen(int fd, int backlog); NTL_POSIX_API int accept(int fd, struct sockaddr* address, socklen_t* addressLength); NTL_POSIX_API int connect(int fd, const struct sockaddr* address, socklen_t addressLength); NTL_POSIX_API ssize_t send(int fd, const void* buffer, size_t length, int flags); NTL_POSIX_API ssize_t recv(int fd, void* buffer, size_t length, int flags); NTL_POSIX_API ssize_t sendto(int fd, const void* buffer, size_t length, int flags, const struct sockaddr* destination, socklen_t destinationLength); NTL_POSIX_API ssize_t recvfrom(int fd, void* buffer, size_t length, int flags, struct sockaddr* source, socklen_t* sourceLength); NTL_POSIX_API int shutdown(int fd, int how); NTL_POSIX_API int setsockopt(int fd, int level, int option, const void* value, socklen_t valueLength); NTL_POSIX_API int getsockopt(int fd, int level, int option, void* value, socklen_t* valueLength);