51 lines
1.7 KiB
C
51 lines
1.7 KiB
C
// POSIX socket declarations supported by nt-lite.
|
|
|
|
#pragma once
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
#include <sys/types.h>
|
|
#include <ntlite_posix_api.h>
|
|
|
|
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);
|