extensive header cleanup for standards conformance & correctness
[musl] / include / sys / socket.h
1 #ifndef _SYS_SOCKET_H
2 #define _SYS_SOCKET_H
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
6
7 #define __NEED_socklen_t
8 #define __NEED_sa_family_t
9 #define __NEED_size_t
10 #define __NEED_ssize_t
11 #define __NEED_uid_t
12 #define __NEED_pid_t
13 #define __NEED_gid_t
14 #define __NEED_struct_iovec
15
16 #include <bits/alltypes.h>
17
18 #include <bits/socket.h>
19
20 struct sockaddr
21 {
22         sa_family_t sa_family;
23         char sa_data[14];
24 };
25
26 struct sockaddr_storage
27 {
28         sa_family_t ss_family;
29         long long __ss_align;
30         char __ss_padding[128 - sizeof(sa_family_t) - sizeof(long long)];
31 };
32
33 int socket (int, int, int);
34 int socketpair (int, int, int, int [2]);
35
36 int shutdown (int, int);
37
38 int bind (int, const struct sockaddr *, socklen_t);
39 int connect (int, const struct sockaddr *, socklen_t);
40 int listen (int, int);
41 int accept (int, struct sockaddr *, socklen_t *);
42
43 int getsockname (int, struct sockaddr *, socklen_t *);
44 int getpeername (int, struct sockaddr *, socklen_t *);
45
46 ssize_t send (int, const void *, size_t, int);
47 ssize_t recv (int, void *, size_t, int);
48 ssize_t sendto (int, const void *, size_t, int, const struct sockaddr *, socklen_t);
49 ssize_t recvfrom (int, void *, size_t, int, struct sockaddr *, socklen_t *);
50 ssize_t sendmsg (int, const struct msghdr *, int);
51 ssize_t recvmsg (int, struct msghdr *, int);
52
53 int getsockopt (int, int, int, void *, socklen_t *);
54 int setsockopt (int, int, int, const void *, socklen_t);
55
56 int sockatmark (int);
57
58 #define SHUT_RD 0
59 #define SHUT_WR 1
60 #define SHUT_RDWR 2
61
62 #ifdef __cplusplus
63 }
64 #endif
65 #endif