15#ifndef ZEPHYR_INCLUDE_NET_SOCKET_H_ 
   16#define ZEPHYR_INCLUDE_NET_SOCKET_H_ 
   48#define ZSOCK_POLLPRI 2 
   50#define ZSOCK_POLLOUT 4 
   52#define ZSOCK_POLLERR 8 
   54#define ZSOCK_POLLHUP 0x10 
   56#define ZSOCK_POLLNVAL 0x20 
   59#define ZSOCK_MSG_PEEK 0x02 
   63#define ZSOCK_MSG_TRUNC 0x20 
   65#define ZSOCK_MSG_DONTWAIT 0x40 
   67#define ZSOCK_MSG_WAITALL 0x100 
   74#define ZSOCK_SHUT_RD 0 
   76#define ZSOCK_SHUT_WR 1 
   78#define ZSOCK_SHUT_RDWR 2 
   94#define TLS_SEC_TAG_LIST 1 
  105#define TLS_CIPHERSUITE_LIST 3 
  110#define TLS_CIPHERSUITE_USED 4 
  121#define TLS_PEER_VERIFY 5 
  130#define TLS_DTLS_ROLE 6 
  136#define TLS_ALPN_LIST 7 
  141#define TLS_DTLS_HANDSHAKE_TIMEOUT_MIN 8 
  142#define TLS_DTLS_HANDSHAKE_TIMEOUT_MAX 9 
  148#define TLS_CERT_NOCOPY        10 
  164#define TLS_SESSION_CACHE 12 
  168#define TLS_SESSION_CACHE_PURGE 13 
  180#define TLS_DTLS_CID 14 
  190#define TLS_DTLS_CID_STATUS 15 
  195#define TLS_DTLS_CID_VALUE 16 
  202#define TLS_DTLS_PEER_CID_VALUE 17 
  206#define TLS_PEER_VERIFY_NONE 0      
  207#define TLS_PEER_VERIFY_OPTIONAL 1  
  208#define TLS_PEER_VERIFY_REQUIRED 2  
  211#define TLS_DTLS_ROLE_CLIENT 0  
  212#define TLS_DTLS_ROLE_SERVER 1  
  215#define TLS_CERT_NOCOPY_NONE 0      
  216#define TLS_CERT_NOCOPY_OPTIONAL 1  
  219#define TLS_SESSION_CACHE_DISABLED 0  
  220#define TLS_SESSION_CACHE_ENABLED 1  
  223#define TLS_DTLS_CID_DISABLED           0 
  224#define TLS_DTLS_CID_SUPPORTED          1 
  225#define TLS_DTLS_CID_ENABLED            2 
  228#define TLS_DTLS_CID_STATUS_DISABLED            0 
  229#define TLS_DTLS_CID_STATUS_DOWNLINK            1 
  230#define TLS_DTLS_CID_STATUS_UPLINK              2 
  231#define TLS_DTLS_CID_STATUS_BIDIRECTIONAL       3 
  518__syscall 
int zsock_ioctl(
int sock, 
unsigned long request, va_list ap);
 
  628                                    char *dst, 
size_t size)
 
 
  648__syscall 
int z_zsock_getaddrinfo_internal(
const char *host,
 
  657#define AI_PASSIVE 0x1 
  659#define AI_CANONNAME 0x2 
  661#define AI_NUMERICHOST 0x4 
  663#define AI_V4MAPPED 0x8 
  667#define AI_ADDRCONFIG 0x20 
  669#define AI_NUMERICSERV 0x400 
  716#define NI_NUMERICHOST 1 
  718#define NI_NUMERICSERV 2 
  749#if defined(CONFIG_NET_SOCKETS_POSIX_NAMES) 
  751#define pollfd zsock_pollfd 
  754static inline int socket(
int family, 
int type, 
int proto)
 
 
  760static inline int socketpair(
int family, 
int type, 
int proto, 
int sv[2])
 
 
  791static inline int listen(
int sock, 
int backlog)
 
 
  824        flags = va_arg(args, 
int);
 
 
  829#define fcntl zsock_fcntl_wrapper 
  831static inline int ioctl(
int sock, 
unsigned long request, ...)
 
  836        va_start(args, request);
 
 
  872static inline int getsockopt(
int sock, 
int level, 
int optname,
 
 
  879static inline int setsockopt(
int sock, 
int level, 
int optname,
 
 
  900static inline int getaddrinfo(
const char *host, 
const char *service,
 
 
  925                                 serv, servlen, 
flags);
 
 
  928#define addrinfo zsock_addrinfo 
  950#define POLLIN ZSOCK_POLLIN 
  952#define POLLOUT ZSOCK_POLLOUT 
  954#define POLLERR ZSOCK_POLLERR 
  956#define POLLHUP ZSOCK_POLLHUP 
  958#define POLLNVAL ZSOCK_POLLNVAL 
  961#define MSG_PEEK ZSOCK_MSG_PEEK 
  963#define MSG_TRUNC ZSOCK_MSG_TRUNC 
  965#define MSG_DONTWAIT ZSOCK_MSG_DONTWAIT 
  967#define MSG_WAITALL ZSOCK_MSG_WAITALL 
  970#define SHUT_RD ZSOCK_SHUT_RD 
  972#define SHUT_WR ZSOCK_SHUT_WR 
  974#define SHUT_RDWR ZSOCK_SHUT_RDWR 
  977#define EAI_BADFLAGS DNS_EAI_BADFLAGS 
  979#define EAI_NONAME DNS_EAI_NONAME 
  981#define EAI_AGAIN DNS_EAI_AGAIN 
  983#define EAI_FAIL DNS_EAI_FAIL 
  985#define EAI_NODATA DNS_EAI_NODATA 
  987#define EAI_MEMORY DNS_EAI_MEMORY 
  989#define EAI_SYSTEM DNS_EAI_SYSTEM 
  991#define EAI_SERVICE DNS_EAI_SERVICE 
  993#define EAI_SOCKTYPE DNS_EAI_SOCKTYPE 
  995#define EAI_FAMILY DNS_EAI_FAMILY 
  998#if defined(CONFIG_NET_INTERFACE_NAME) 
  999#define IFNAMSIZ CONFIG_NET_INTERFACE_NAME_LEN 
 1001#define IFNAMSIZ Z_DEVICE_MAX_NAME_LEN 
 1017#define SO_REUSEADDR 2 
 1023#define SO_DONTROUTE 5 
 1025#define SO_BROADCAST 6 
 1033#define SO_KEEPALIVE 9 
 1035#define SO_OOBINLINE 10 
 1039#define SO_REUSEPORT 15 
 1042#define SO_RCVLOWAT 18 
 1044#define SO_SNDLOWAT 19 
 1050#define SO_RCVTIMEO 20 
 1052#define SO_SNDTIMEO 21 
 1055#define SO_BINDTODEVICE 25 
 1058#define SO_ACCEPTCONN 30 
 1061#define SO_TIMESTAMPING 37 
 1063#define SO_PROTOCOL 38 
 1072#define TCP_NODELAY 1 
 1080#define IPV6_V6ONLY 26 
 1083#define IPV6_TCLASS 67 
 1086#define SO_PRIORITY 12 
 1090#define SCM_TXTIME SO_TXTIME 
 1097#define SOMAXCONN 128 
 1103struct net_socket_register {
 
 1106        bool (*is_supported)(
int family, 
int type, 
int proto);
 
 1107        int (*
handler)(
int family, 
int type, 
int proto);
 
 1110#define NET_SOCKET_DEFAULT_PRIO CONFIG_NET_SOCKETS_PRIORITY_DEFAULT 
 1112#define NET_SOCKET_GET_NAME(socket_name, prio)  \ 
 1113        __net_socket_register_##prio##_##socket_name 
 1115#define _NET_SOCKET_REGISTER(socket_name, prio, _family, _is_supported, _handler, _is_offloaded) \ 
 1116        static const STRUCT_SECTION_ITERABLE(net_socket_register,       \ 
 1117                        NET_SOCKET_GET_NAME(socket_name, prio)) = {     \ 
 1118                .family = _family,                                      \ 
 1119                .is_offloaded = _is_offloaded,                          \ 
 1120                .is_supported = _is_supported,                          \ 
 1121                .handler = _handler,                                    \ 
 1124#define NET_SOCKET_REGISTER(socket_name, prio, _family, _is_supported, _handler) \ 
 1125        _NET_SOCKET_REGISTER(socket_name, prio, _family, _is_supported, _handler, false) 
 1127#define NET_SOCKET_OFFLOAD_REGISTER(socket_name, prio, _family, _is_supported, _handler) \ 
 1128        _NET_SOCKET_REGISTER(socket_name, prio, _family, _is_supported, _handler, true) 
 1136#include <syscalls/socket.h> 
ZTEST_BMEM int timeout
Definition main.c:31
 
static int socket(int family, int type, int proto)
POSIX wrapper for zsock_socket.
Definition socket.h:754
 
static int getpeername(int sock, struct sockaddr *addr, socklen_t *addrlen)
POSIX wrapper for zsock_getpeername.
Definition socket.h:886
 
int zsock_getpeername(int sock, struct sockaddr *addr, socklen_t *addrlen)
Get peer name.
 
static int getaddrinfo(const char *host, const char *service, const struct zsock_addrinfo *hints, struct zsock_addrinfo **res)
POSIX wrapper for zsock_getaddrinfo.
Definition socket.h:900
 
static int bind(int sock, const struct sockaddr *addr, socklen_t addrlen)
POSIX wrapper for zsock_bind.
Definition socket.h:778
 
int zsock_fcntl(int sock, int cmd, int flags)
Control blocking/non-blocking mode of a socket.
 
static int gethostname(char *buf, size_t len)
POSIX wrapper for zsock_gethostname.
Definition socket.h:931
 
ssize_t zsock_sendto(int sock, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen)
Send data to an arbitrary network address.
 
int zsock_connect(int sock, const struct sockaddr *addr, socklen_t addrlen)
Connect a socket to a peer network address.
 
static ssize_t sendmsg(int sock, const struct msghdr *message, int flags)
POSIX wrapper for zsock_sendmsg.
Definition socket.h:852
 
int zsock_socketpair(int family, int type, int proto, int *sv)
Create an unnamed pair of connected sockets.
 
void * zsock_get_context_object(int sock)
Obtain a file descriptor's associated net context.
 
int zsock_accept(int sock, struct sockaddr *addr, socklen_t *addrlen)
Accept a connection on listening socket.
 
static int inet_pton(sa_family_t family, const char *src, void *dst)
POSIX wrapper for zsock_inet_pton.
Definition socket.h:937
 
static ssize_t recvfrom(int sock, void *buf, size_t max_len, int flags, struct sockaddr *src_addr, socklen_t *addrlen)
POSIX wrapper for zsock_recvfrom.
Definition socket.h:859
 
static ssize_t zsock_send(int sock, const void *buf, size_t len, int flags)
Send data to a connected peer.
Definition socket.h:432
 
static int getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen)
POSIX wrapper for zsock_getsockopt.
Definition socket.h:872
 
static int zsock_fcntl_wrapper(int sock, int cmd,...)
Definition socket.h:818
 
static int accept(int sock, struct sockaddr *addr, socklen_t *addrlen)
POSIX wrapper for zsock_accept.
Definition socket.h:797
 
static int listen(int sock, int backlog)
POSIX wrapper for zsock_listen.
Definition socket.h:791
 
static int close(int sock)
POSIX wrapper for zsock_close.
Definition socket.h:766
 
int zsock_bind(int sock, const struct sockaddr *addr, socklen_t addrlen)
Bind a socket to a local network address.
 
int zsock_socket(int family, int type, int proto)
Create a network socket.
 
int zsock_getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen)
Get various socket options.
 
static int getnameinfo(const struct sockaddr *addr, socklen_t addrlen, char *host, socklen_t hostlen, char *serv, socklen_t servlen, int flags)
POSIX wrapper for zsock_getnameinfo.
Definition socket.h:920
 
static int ioctl(int sock, unsigned long request,...)
Definition socket.h:831
 
void zsock_freeaddrinfo(struct zsock_addrinfo *ai)
Free results returned by zsock_getaddrinfo()
 
static ssize_t zsock_recv(int sock, void *buf, size_t max_len, int flags)
Receive data from a connected peer.
Definition socket.h:481
 
int zsock_gethostname(char *buf, size_t len)
Get local host name.
 
static int setsockopt(int sock, int level, int optname, const void *optval, socklen_t optlen)
POSIX wrapper for zsock_setsockopt.
Definition socket.h:879
 
int zsock_getsockname(int sock, struct sockaddr *addr, socklen_t *addrlen)
Get socket name.
 
static int getsockname(int sock, struct sockaddr *addr, socklen_t *addrlen)
POSIX wrapper for zsock_getsockname.
Definition socket.h:893
 
int zsock_poll(struct zsock_pollfd *fds, int nfds, int timeout)
Efficiently poll multiple sockets for events.
 
const char * zsock_gai_strerror(int errcode)
Convert zsock_getaddrinfo() error code to textual message.
 
static const char * gai_strerror(int errcode)
POSIX wrapper for zsock_gai_strerror.
Definition socket.h:914
 
int zsock_ioctl(int sock, unsigned long request, va_list ap)
Control underlying socket parameters.
 
int zsock_shutdown(int sock, int how)
Shutdown socket send/receive operations.
 
ssize_t zsock_recvfrom(int sock, void *buf, size_t max_len, int flags, struct sockaddr *src_addr, socklen_t *addrlen)
Receive data from an arbitrary network address.
 
#define IFNAMSIZ
Definition socket.h:1001
 
static ssize_t sendto(int sock, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen)
POSIX wrapper for zsock_sendto.
Definition socket.h:844
 
int zsock_setsockopt(int sock, int level, int optname, const void *optval, socklen_t optlen)
Set various socket options.
 
static ssize_t send(int sock, const void *buf, size_t len, int flags)
POSIX wrapper for zsock_send.
Definition socket.h:803
 
static int socketpair(int family, int type, int proto, int sv[2])
POSIX wrapper for zsock_socketpair.
Definition socket.h:760
 
ssize_t zsock_sendmsg(int sock, const struct msghdr *msg, int flags)
Send data to an arbitrary network address.
 
static int connect(int sock, const struct sockaddr *addr, socklen_t addrlen)
POSIX wrapper for zsock_connect.
Definition socket.h:784
 
static ssize_t recv(int sock, void *buf, size_t max_len, int flags)
POSIX wrapper for zsock_recv.
Definition socket.h:809
 
static int poll(struct zsock_pollfd *fds, int nfds, int timeout)
POSIX wrapper for zsock_poll.
Definition socket.h:866
 
static char * zsock_inet_ntop(sa_family_t family, const void *src, char *dst, size_t size)
Convert network address from internal to numeric ASCII form.
Definition socket.h:627
 
int zsock_inet_pton(sa_family_t family, const char *src, void *dst)
Convert network address from numeric ASCII form to internal representation.
 
int zsock_close(int sock)
Close a network socket.
 
int zsock_listen(int sock, int backlog)
Set up a STREAM socket to accept peer connections.
 
int zsock_getnameinfo(const struct sockaddr *addr, socklen_t addrlen, char *host, socklen_t hostlen, char *serv, socklen_t servlen, int flags)
Resolve a network address to a domain name or ASCII address.
 
static char * inet_ntop(sa_family_t family, const void *src, char *dst, size_t size)
POSIX wrapper for zsock_inet_ntop.
Definition socket.h:943
 
int zsock_getaddrinfo(const char *host, const char *service, const struct zsock_addrinfo *hints, struct zsock_addrinfo **res)
Resolve a domain name to one or more network addresses.
 
static void freeaddrinfo(struct zsock_addrinfo *ai)
POSIX wrapper for zsock_freeaddrinfo.
Definition socket.h:908
 
static int shutdown(int sock, int how)
POSIX wrapper for zsock_shutdown.
Definition socket.h:772
 
#define DNS_MAX_NAME_SIZE
Max size of the resolved name.
Definition dns_resolve.h:42
 
static void cmd(uint32_t command)
Execute a display list command by co-processor engine.
Definition ft8xx_reference_api.h:153
 
unsigned short int sa_family_t
Socket address family type.
Definition net_ip.h:164
 
char * net_addr_ntop(sa_family_t family, const void *src, char *dst, size_t size)
Convert IP address to string form.
 
size_t socklen_t
Length of a socket address.
Definition net_ip.h:168
 
__SIZE_TYPE__ ssize_t
Definition types.h:28
 
static ZTEST_BMEM int ret
Definition main.c:16
 
IPv6 and IPv4 definitions.
 
flags
Definition parser.h:96
 
#define bool
Definition stdbool.h:13
 
Interface description structure.
Definition socket.h:1005
 
char ifr_name[Z_DEVICE_MAX_NAME_LEN]
Definition socket.h:1006
 
Generic sockaddr struct.
Definition net_ip.h:347
 
struct zsock_addrinfo * ai_next
Definition socket.h:234
 
int ai_family
Definition socket.h:236
 
int ai_flags
Definition socket.h:235
 
char * ai_canonname
Definition socket.h:241
 
int ai_protocol
Definition socket.h:238
 
struct sockaddr * ai_addr
Definition socket.h:240
 
int ai_socktype
Definition socket.h:237
 
socklen_t ai_addrlen
Definition socket.h:239
 
short events
Definition socket.h:40
 
int fd
Definition socket.h:39
 
short revents
Definition socket.h:41
 
static void msg(uint64_t c64)
Definition main.c:17
 
static void handler(struct k_timer *timer)
Definition main.c:19