• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 2017 The Android Open Source Project
2 // SPDX-License-Identifier: BSD-2-Clause
3 
4 #include <sys/socket.h>
5 
6 #include "header_checks.h"
7 
sys_socket_h()8 static void sys_socket_h() {
9   TYPE(socklen_t);
10   TYPE(sa_family_t);
11 
12   TYPE(struct sockaddr);
13   STRUCT_MEMBER(struct sockaddr, sa_family_t, sa_family);
14   STRUCT_MEMBER_ARRAY(struct sockaddr, char/*[]*/, sa_data);
15 
16   TYPE(struct sockaddr_storage);
17   STRUCT_MEMBER(struct sockaddr_storage, sa_family_t, ss_family);
18 
19   TYPE(struct msghdr);
20   STRUCT_MEMBER(struct msghdr, void*, msg_name);
21   STRUCT_MEMBER(struct msghdr, socklen_t, msg_namelen);
22   STRUCT_MEMBER(struct msghdr, struct iovec*, msg_iov);
23 #if defined(__BIONIC__) || defined(__GLIBC__)
24   STRUCT_MEMBER(struct msghdr, size_t, msg_iovlen);
25 #else
26   STRUCT_MEMBER(struct msghdr, int, msg_iovlen);
27 #endif
28   STRUCT_MEMBER(struct msghdr, void*, msg_control);
29 #if defined(__BIONIC__) || defined(__GLIBC__)
30   STRUCT_MEMBER(struct msghdr, size_t, msg_controllen);
31 #else
32   STRUCT_MEMBER(struct msghdr, socklen_t, msg_controllen);
33 #endif
34   STRUCT_MEMBER(struct msghdr, int, msg_flags);
35 
36   TYPE(struct iovec);
37 
38   TYPE(struct cmsghdr);
39 #if defined(__BIONIC__) || defined(__GLIBC__)
40   STRUCT_MEMBER(struct cmsghdr, size_t, cmsg_len);
41 #else
42   STRUCT_MEMBER(struct cmsghdr, socklen_t, cmsg_len);
43 #endif
44   STRUCT_MEMBER(struct cmsghdr, int, cmsg_level);
45   STRUCT_MEMBER(struct cmsghdr, int, cmsg_type);
46 
47   MACRO(SCM_RIGHTS);
48 
49 #if !defined(CMSG_DATA)
50 #error CMSG_DATA
51 #endif
52 #if !defined(CMSG_NXTHDR)
53 #error CMSG_NXTHDR
54 #endif
55 #if !defined(CMSG_FIRSTHDR)
56 #error CMSG_FIRSTHDR
57 #endif
58 
59   TYPE(struct linger);
60   STRUCT_MEMBER(struct linger, int, l_onoff);
61   STRUCT_MEMBER(struct linger, int, l_linger);
62 
63   MACRO(SOCK_DGRAM);
64   MACRO(SOCK_RAW);
65   MACRO(SOCK_SEQPACKET);
66   MACRO(SOCK_STREAM);
67 
68   MACRO(SOL_SOCKET);
69 
70   MACRO(SO_ACCEPTCONN);
71   MACRO(SO_BROADCAST);
72   MACRO(SO_DEBUG);
73   MACRO(SO_DONTROUTE);
74   MACRO(SO_ERROR);
75   MACRO(SO_KEEPALIVE);
76   MACRO(SO_LINGER);
77   MACRO(SO_OOBINLINE);
78   MACRO(SO_RCVBUF);
79   MACRO(SO_RCVLOWAT);
80   MACRO(SO_RCVTIMEO);
81   MACRO(SO_REUSEADDR);
82   MACRO(SO_SNDBUF);
83   MACRO(SO_SNDLOWAT);
84   MACRO(SO_SNDTIMEO);
85   MACRO(SO_TYPE);
86 
87   MACRO(SOMAXCONN);
88 
89   MACRO(MSG_CTRUNC);
90   MACRO(MSG_DONTROUTE);
91   MACRO(MSG_EOR);
92   MACRO(MSG_OOB);
93   MACRO(MSG_NOSIGNAL);
94   MACRO(MSG_PEEK);
95   MACRO(MSG_TRUNC);
96   MACRO(MSG_WAITALL);
97 
98   MACRO(AF_INET);
99   MACRO(AF_INET6);
100   MACRO(AF_UNIX);
101   MACRO_VALUE(AF_UNSPEC, 0);
102 
103   MACRO(SHUT_RD);
104   MACRO(SHUT_RDWR);
105   MACRO(SHUT_WR);
106 
107   TYPE(size_t);
108   TYPE(ssize_t);
109 
110   FUNCTION(accept, int (*f)(int, struct sockaddr*, socklen_t*));
111   FUNCTION(bind, int (*f)(int, const struct sockaddr*, socklen_t));
112   FUNCTION(connect, int (*f)(int, const struct sockaddr*, socklen_t));
113   FUNCTION(getpeername, int (*f)(int, struct sockaddr*, socklen_t*));
114   FUNCTION(getsockname, int (*f)(int, struct sockaddr*, socklen_t*));
115   FUNCTION(getsockopt, int (*f)(int, int, int, void*, socklen_t*));
116   FUNCTION(listen, int (*f)(int, int));
117   FUNCTION(recv, ssize_t (*f)(int, void*, size_t, int));
118   FUNCTION(recvfrom, ssize_t (*f)(int, void*, size_t, int, struct sockaddr*, socklen_t*));
119   FUNCTION(send, ssize_t (*f)(int, const void*, size_t, int));
120   FUNCTION(sendmsg, ssize_t (*f)(int, const struct msghdr*, int));
121   FUNCTION(sendto, ssize_t (*f)(int, const void*, size_t, int, const struct sockaddr*, socklen_t));
122   FUNCTION(setsockopt, int (*f)(int, int, int, const void*, socklen_t));
123   FUNCTION(shutdown, int (*f)(int, int));
124 #if !defined(__BIONIC__) // Obsolete, plus ioctl disallowed by SELinux.
125   FUNCTION(sockatmark, int (*f)(int));
126 #endif
127   FUNCTION(socket, int (*f)(int, int, int));
128   FUNCTION(socketpair, int (*f)(int, int, int, int[2]));
129 }
130