1 /*
2  * Copyright (c) 2019 Linaro Limited
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #ifndef ZEPHYR_INCLUDE_POSIX_SYS_SOCKET_H_
7 #define ZEPHYR_INCLUDE_POSIX_SYS_SOCKET_H_
8 
9 #include <sys/types.h>
10 #include <zephyr/net/socket.h>
11 
12 #define SHUT_RD   ZSOCK_SHUT_RD
13 #define SHUT_WR   ZSOCK_SHUT_WR
14 #define SHUT_RDWR ZSOCK_SHUT_RDWR
15 
16 #define MSG_PEEK     ZSOCK_MSG_PEEK
17 #define MSG_TRUNC    ZSOCK_MSG_TRUNC
18 #define MSG_DONTWAIT ZSOCK_MSG_DONTWAIT
19 #define MSG_WAITALL  ZSOCK_MSG_WAITALL
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 struct linger {
26 	int  l_onoff;
27 	int  l_linger;
28 };
29 
30 int accept(int sock, struct sockaddr *addr, socklen_t *addrlen);
31 int bind(int sock, const struct sockaddr *addr, socklen_t addrlen);
32 int connect(int sock, const struct sockaddr *addr, socklen_t addrlen);
33 int getpeername(int sock, struct sockaddr *addr, socklen_t *addrlen);
34 int getsockname(int sock, struct sockaddr *addr, socklen_t *addrlen);
35 int getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen);
36 int listen(int sock, int backlog);
37 ssize_t recv(int sock, void *buf, size_t max_len, int flags);
38 ssize_t recvfrom(int sock, void *buf, size_t max_len, int flags, struct sockaddr *src_addr,
39 		 socklen_t *addrlen);
40 ssize_t recvmsg(int sock, struct msghdr *msg, int flags);
41 ssize_t send(int sock, const void *buf, size_t len, int flags);
42 ssize_t sendmsg(int sock, const struct msghdr *message, int flags);
43 ssize_t sendto(int sock, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr,
44 	       socklen_t addrlen);
45 int setsockopt(int sock, int level, int optname, const void *optval, socklen_t optlen);
46 int shutdown(int sock, int how);
47 int sockatmark(int s);
48 int socket(int family, int type, int proto);
49 int socketpair(int family, int type, int proto, int sv[2]);
50 
51 #ifdef __cplusplus
52 }
53 #endif
54 
55 #endif	/* ZEPHYR_INCLUDE_POSIX_SYS_SOCKET_H_ */
56