1*c9945492SAndroid Build Coastguard Worker #ifndef _SYS_SOCKET_H 2*c9945492SAndroid Build Coastguard Worker #define _SYS_SOCKET_H 3*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus 4*c9945492SAndroid Build Coastguard Worker extern "C" { 5*c9945492SAndroid Build Coastguard Worker #endif 6*c9945492SAndroid Build Coastguard Worker 7*c9945492SAndroid Build Coastguard Worker #include <features.h> 8*c9945492SAndroid Build Coastguard Worker 9*c9945492SAndroid Build Coastguard Worker #define __NEED_socklen_t 10*c9945492SAndroid Build Coastguard Worker #define __NEED_sa_family_t 11*c9945492SAndroid Build Coastguard Worker #define __NEED_size_t 12*c9945492SAndroid Build Coastguard Worker #define __NEED_ssize_t 13*c9945492SAndroid Build Coastguard Worker #define __NEED_uid_t 14*c9945492SAndroid Build Coastguard Worker #define __NEED_pid_t 15*c9945492SAndroid Build Coastguard Worker #define __NEED_gid_t 16*c9945492SAndroid Build Coastguard Worker #define __NEED_struct_iovec 17*c9945492SAndroid Build Coastguard Worker 18*c9945492SAndroid Build Coastguard Worker #include <bits/alltypes.h> 19*c9945492SAndroid Build Coastguard Worker 20*c9945492SAndroid Build Coastguard Worker #include <bits/socket.h> 21*c9945492SAndroid Build Coastguard Worker 22*c9945492SAndroid Build Coastguard Worker struct msghdr { 23*c9945492SAndroid Build Coastguard Worker void *msg_name; 24*c9945492SAndroid Build Coastguard Worker socklen_t msg_namelen; 25*c9945492SAndroid Build Coastguard Worker struct iovec *msg_iov; 26*c9945492SAndroid Build Coastguard Worker #if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __BIG_ENDIAN 27*c9945492SAndroid Build Coastguard Worker int __pad1; 28*c9945492SAndroid Build Coastguard Worker #endif 29*c9945492SAndroid Build Coastguard Worker int msg_iovlen; 30*c9945492SAndroid Build Coastguard Worker #if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __LITTLE_ENDIAN 31*c9945492SAndroid Build Coastguard Worker int __pad1; 32*c9945492SAndroid Build Coastguard Worker #endif 33*c9945492SAndroid Build Coastguard Worker void *msg_control; 34*c9945492SAndroid Build Coastguard Worker #if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __BIG_ENDIAN 35*c9945492SAndroid Build Coastguard Worker int __pad2; 36*c9945492SAndroid Build Coastguard Worker #endif 37*c9945492SAndroid Build Coastguard Worker socklen_t msg_controllen; 38*c9945492SAndroid Build Coastguard Worker #if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __LITTLE_ENDIAN 39*c9945492SAndroid Build Coastguard Worker int __pad2; 40*c9945492SAndroid Build Coastguard Worker #endif 41*c9945492SAndroid Build Coastguard Worker int msg_flags; 42*c9945492SAndroid Build Coastguard Worker }; 43*c9945492SAndroid Build Coastguard Worker 44*c9945492SAndroid Build Coastguard Worker struct cmsghdr { 45*c9945492SAndroid Build Coastguard Worker #if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __BIG_ENDIAN 46*c9945492SAndroid Build Coastguard Worker int __pad1; 47*c9945492SAndroid Build Coastguard Worker #endif 48*c9945492SAndroid Build Coastguard Worker socklen_t cmsg_len; 49*c9945492SAndroid Build Coastguard Worker #if __LONG_MAX > 0x7fffffff && __BYTE_ORDER == __LITTLE_ENDIAN 50*c9945492SAndroid Build Coastguard Worker int __pad1; 51*c9945492SAndroid Build Coastguard Worker #endif 52*c9945492SAndroid Build Coastguard Worker int cmsg_level; 53*c9945492SAndroid Build Coastguard Worker int cmsg_type; 54*c9945492SAndroid Build Coastguard Worker }; 55*c9945492SAndroid Build Coastguard Worker 56*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE 57*c9945492SAndroid Build Coastguard Worker struct ucred { 58*c9945492SAndroid Build Coastguard Worker pid_t pid; 59*c9945492SAndroid Build Coastguard Worker uid_t uid; 60*c9945492SAndroid Build Coastguard Worker gid_t gid; 61*c9945492SAndroid Build Coastguard Worker }; 62*c9945492SAndroid Build Coastguard Worker 63*c9945492SAndroid Build Coastguard Worker struct mmsghdr { 64*c9945492SAndroid Build Coastguard Worker struct msghdr msg_hdr; 65*c9945492SAndroid Build Coastguard Worker unsigned int msg_len; 66*c9945492SAndroid Build Coastguard Worker }; 67*c9945492SAndroid Build Coastguard Worker 68*c9945492SAndroid Build Coastguard Worker struct timespec; 69*c9945492SAndroid Build Coastguard Worker 70*c9945492SAndroid Build Coastguard Worker int sendmmsg (int, struct mmsghdr *, unsigned int, unsigned int); 71*c9945492SAndroid Build Coastguard Worker int recvmmsg (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *); 72*c9945492SAndroid Build Coastguard Worker #endif 73*c9945492SAndroid Build Coastguard Worker 74*c9945492SAndroid Build Coastguard Worker struct linger { 75*c9945492SAndroid Build Coastguard Worker int l_onoff; 76*c9945492SAndroid Build Coastguard Worker int l_linger; 77*c9945492SAndroid Build Coastguard Worker }; 78*c9945492SAndroid Build Coastguard Worker 79*c9945492SAndroid Build Coastguard Worker #define SHUT_RD 0 80*c9945492SAndroid Build Coastguard Worker #define SHUT_WR 1 81*c9945492SAndroid Build Coastguard Worker #define SHUT_RDWR 2 82*c9945492SAndroid Build Coastguard Worker 83*c9945492SAndroid Build Coastguard Worker #ifndef SOCK_STREAM 84*c9945492SAndroid Build Coastguard Worker #define SOCK_STREAM 1 85*c9945492SAndroid Build Coastguard Worker #define SOCK_DGRAM 2 86*c9945492SAndroid Build Coastguard Worker #endif 87*c9945492SAndroid Build Coastguard Worker 88*c9945492SAndroid Build Coastguard Worker #define SOCK_RAW 3 89*c9945492SAndroid Build Coastguard Worker #define SOCK_RDM 4 90*c9945492SAndroid Build Coastguard Worker #define SOCK_SEQPACKET 5 91*c9945492SAndroid Build Coastguard Worker #define SOCK_DCCP 6 92*c9945492SAndroid Build Coastguard Worker #define SOCK_PACKET 10 93*c9945492SAndroid Build Coastguard Worker 94*c9945492SAndroid Build Coastguard Worker #ifndef SOCK_CLOEXEC 95*c9945492SAndroid Build Coastguard Worker #define SOCK_CLOEXEC 02000000 96*c9945492SAndroid Build Coastguard Worker #define SOCK_NONBLOCK 04000 97*c9945492SAndroid Build Coastguard Worker #endif 98*c9945492SAndroid Build Coastguard Worker 99*c9945492SAndroid Build Coastguard Worker #define PF_UNSPEC 0 100*c9945492SAndroid Build Coastguard Worker #define PF_LOCAL 1 101*c9945492SAndroid Build Coastguard Worker #define PF_UNIX PF_LOCAL 102*c9945492SAndroid Build Coastguard Worker #define PF_FILE PF_LOCAL 103*c9945492SAndroid Build Coastguard Worker #define PF_INET 2 104*c9945492SAndroid Build Coastguard Worker #define PF_AX25 3 105*c9945492SAndroid Build Coastguard Worker #define PF_IPX 4 106*c9945492SAndroid Build Coastguard Worker #define PF_APPLETALK 5 107*c9945492SAndroid Build Coastguard Worker #define PF_NETROM 6 108*c9945492SAndroid Build Coastguard Worker #define PF_BRIDGE 7 109*c9945492SAndroid Build Coastguard Worker #define PF_ATMPVC 8 110*c9945492SAndroid Build Coastguard Worker #define PF_X25 9 111*c9945492SAndroid Build Coastguard Worker #define PF_INET6 10 112*c9945492SAndroid Build Coastguard Worker #define PF_ROSE 11 113*c9945492SAndroid Build Coastguard Worker #define PF_DECnet 12 114*c9945492SAndroid Build Coastguard Worker #define PF_NETBEUI 13 115*c9945492SAndroid Build Coastguard Worker #define PF_SECURITY 14 116*c9945492SAndroid Build Coastguard Worker #define PF_KEY 15 117*c9945492SAndroid Build Coastguard Worker #define PF_NETLINK 16 118*c9945492SAndroid Build Coastguard Worker #define PF_ROUTE PF_NETLINK 119*c9945492SAndroid Build Coastguard Worker #define PF_PACKET 17 120*c9945492SAndroid Build Coastguard Worker #define PF_ASH 18 121*c9945492SAndroid Build Coastguard Worker #define PF_ECONET 19 122*c9945492SAndroid Build Coastguard Worker #define PF_ATMSVC 20 123*c9945492SAndroid Build Coastguard Worker #define PF_RDS 21 124*c9945492SAndroid Build Coastguard Worker #define PF_SNA 22 125*c9945492SAndroid Build Coastguard Worker #define PF_IRDA 23 126*c9945492SAndroid Build Coastguard Worker #define PF_PPPOX 24 127*c9945492SAndroid Build Coastguard Worker #define PF_WANPIPE 25 128*c9945492SAndroid Build Coastguard Worker #define PF_LLC 26 129*c9945492SAndroid Build Coastguard Worker #define PF_IB 27 130*c9945492SAndroid Build Coastguard Worker #define PF_MPLS 28 131*c9945492SAndroid Build Coastguard Worker #define PF_CAN 29 132*c9945492SAndroid Build Coastguard Worker #define PF_TIPC 30 133*c9945492SAndroid Build Coastguard Worker #define PF_BLUETOOTH 31 134*c9945492SAndroid Build Coastguard Worker #define PF_IUCV 32 135*c9945492SAndroid Build Coastguard Worker #define PF_RXRPC 33 136*c9945492SAndroid Build Coastguard Worker #define PF_ISDN 34 137*c9945492SAndroid Build Coastguard Worker #define PF_PHONET 35 138*c9945492SAndroid Build Coastguard Worker #define PF_IEEE802154 36 139*c9945492SAndroid Build Coastguard Worker #define PF_CAIF 37 140*c9945492SAndroid Build Coastguard Worker #define PF_ALG 38 141*c9945492SAndroid Build Coastguard Worker #define PF_NFC 39 142*c9945492SAndroid Build Coastguard Worker #define PF_VSOCK 40 143*c9945492SAndroid Build Coastguard Worker #define PF_KCM 41 144*c9945492SAndroid Build Coastguard Worker #define PF_QIPCRTR 42 145*c9945492SAndroid Build Coastguard Worker #define PF_SMC 43 146*c9945492SAndroid Build Coastguard Worker #define PF_XDP 44 147*c9945492SAndroid Build Coastguard Worker #define PF_MAX 45 148*c9945492SAndroid Build Coastguard Worker 149*c9945492SAndroid Build Coastguard Worker #define AF_UNSPEC PF_UNSPEC 150*c9945492SAndroid Build Coastguard Worker #define AF_LOCAL PF_LOCAL 151*c9945492SAndroid Build Coastguard Worker #define AF_UNIX AF_LOCAL 152*c9945492SAndroid Build Coastguard Worker #define AF_FILE AF_LOCAL 153*c9945492SAndroid Build Coastguard Worker #define AF_INET PF_INET 154*c9945492SAndroid Build Coastguard Worker #define AF_AX25 PF_AX25 155*c9945492SAndroid Build Coastguard Worker #define AF_IPX PF_IPX 156*c9945492SAndroid Build Coastguard Worker #define AF_APPLETALK PF_APPLETALK 157*c9945492SAndroid Build Coastguard Worker #define AF_NETROM PF_NETROM 158*c9945492SAndroid Build Coastguard Worker #define AF_BRIDGE PF_BRIDGE 159*c9945492SAndroid Build Coastguard Worker #define AF_ATMPVC PF_ATMPVC 160*c9945492SAndroid Build Coastguard Worker #define AF_X25 PF_X25 161*c9945492SAndroid Build Coastguard Worker #define AF_INET6 PF_INET6 162*c9945492SAndroid Build Coastguard Worker #define AF_ROSE PF_ROSE 163*c9945492SAndroid Build Coastguard Worker #define AF_DECnet PF_DECnet 164*c9945492SAndroid Build Coastguard Worker #define AF_NETBEUI PF_NETBEUI 165*c9945492SAndroid Build Coastguard Worker #define AF_SECURITY PF_SECURITY 166*c9945492SAndroid Build Coastguard Worker #define AF_KEY PF_KEY 167*c9945492SAndroid Build Coastguard Worker #define AF_NETLINK PF_NETLINK 168*c9945492SAndroid Build Coastguard Worker #define AF_ROUTE PF_ROUTE 169*c9945492SAndroid Build Coastguard Worker #define AF_PACKET PF_PACKET 170*c9945492SAndroid Build Coastguard Worker #define AF_ASH PF_ASH 171*c9945492SAndroid Build Coastguard Worker #define AF_ECONET PF_ECONET 172*c9945492SAndroid Build Coastguard Worker #define AF_ATMSVC PF_ATMSVC 173*c9945492SAndroid Build Coastguard Worker #define AF_RDS PF_RDS 174*c9945492SAndroid Build Coastguard Worker #define AF_SNA PF_SNA 175*c9945492SAndroid Build Coastguard Worker #define AF_IRDA PF_IRDA 176*c9945492SAndroid Build Coastguard Worker #define AF_PPPOX PF_PPPOX 177*c9945492SAndroid Build Coastguard Worker #define AF_WANPIPE PF_WANPIPE 178*c9945492SAndroid Build Coastguard Worker #define AF_LLC PF_LLC 179*c9945492SAndroid Build Coastguard Worker #define AF_IB PF_IB 180*c9945492SAndroid Build Coastguard Worker #define AF_MPLS PF_MPLS 181*c9945492SAndroid Build Coastguard Worker #define AF_CAN PF_CAN 182*c9945492SAndroid Build Coastguard Worker #define AF_TIPC PF_TIPC 183*c9945492SAndroid Build Coastguard Worker #define AF_BLUETOOTH PF_BLUETOOTH 184*c9945492SAndroid Build Coastguard Worker #define AF_IUCV PF_IUCV 185*c9945492SAndroid Build Coastguard Worker #define AF_RXRPC PF_RXRPC 186*c9945492SAndroid Build Coastguard Worker #define AF_ISDN PF_ISDN 187*c9945492SAndroid Build Coastguard Worker #define AF_PHONET PF_PHONET 188*c9945492SAndroid Build Coastguard Worker #define AF_IEEE802154 PF_IEEE802154 189*c9945492SAndroid Build Coastguard Worker #define AF_CAIF PF_CAIF 190*c9945492SAndroid Build Coastguard Worker #define AF_ALG PF_ALG 191*c9945492SAndroid Build Coastguard Worker #define AF_NFC PF_NFC 192*c9945492SAndroid Build Coastguard Worker #define AF_VSOCK PF_VSOCK 193*c9945492SAndroid Build Coastguard Worker #define AF_KCM PF_KCM 194*c9945492SAndroid Build Coastguard Worker #define AF_QIPCRTR PF_QIPCRTR 195*c9945492SAndroid Build Coastguard Worker #define AF_SMC PF_SMC 196*c9945492SAndroid Build Coastguard Worker #define AF_XDP PF_XDP 197*c9945492SAndroid Build Coastguard Worker #define AF_MAX PF_MAX 198*c9945492SAndroid Build Coastguard Worker 199*c9945492SAndroid Build Coastguard Worker #ifndef SO_DEBUG 200*c9945492SAndroid Build Coastguard Worker #define SO_DEBUG 1 201*c9945492SAndroid Build Coastguard Worker #define SO_REUSEADDR 2 202*c9945492SAndroid Build Coastguard Worker #define SO_TYPE 3 203*c9945492SAndroid Build Coastguard Worker #define SO_ERROR 4 204*c9945492SAndroid Build Coastguard Worker #define SO_DONTROUTE 5 205*c9945492SAndroid Build Coastguard Worker #define SO_BROADCAST 6 206*c9945492SAndroid Build Coastguard Worker #define SO_SNDBUF 7 207*c9945492SAndroid Build Coastguard Worker #define SO_RCVBUF 8 208*c9945492SAndroid Build Coastguard Worker #define SO_KEEPALIVE 9 209*c9945492SAndroid Build Coastguard Worker #define SO_OOBINLINE 10 210*c9945492SAndroid Build Coastguard Worker #define SO_NO_CHECK 11 211*c9945492SAndroid Build Coastguard Worker #define SO_PRIORITY 12 212*c9945492SAndroid Build Coastguard Worker #define SO_LINGER 13 213*c9945492SAndroid Build Coastguard Worker #define SO_BSDCOMPAT 14 214*c9945492SAndroid Build Coastguard Worker #define SO_REUSEPORT 15 215*c9945492SAndroid Build Coastguard Worker #define SO_PASSCRED 16 216*c9945492SAndroid Build Coastguard Worker #define SO_PEERCRED 17 217*c9945492SAndroid Build Coastguard Worker #define SO_RCVLOWAT 18 218*c9945492SAndroid Build Coastguard Worker #define SO_SNDLOWAT 19 219*c9945492SAndroid Build Coastguard Worker #define SO_ACCEPTCONN 30 220*c9945492SAndroid Build Coastguard Worker #define SO_PEERSEC 31 221*c9945492SAndroid Build Coastguard Worker #define SO_SNDBUFFORCE 32 222*c9945492SAndroid Build Coastguard Worker #define SO_RCVBUFFORCE 33 223*c9945492SAndroid Build Coastguard Worker #define SO_PROTOCOL 38 224*c9945492SAndroid Build Coastguard Worker #define SO_DOMAIN 39 225*c9945492SAndroid Build Coastguard Worker #endif 226*c9945492SAndroid Build Coastguard Worker 227*c9945492SAndroid Build Coastguard Worker #ifndef SO_RCVTIMEO 228*c9945492SAndroid Build Coastguard Worker #if __LONG_MAX == 0x7fffffff 229*c9945492SAndroid Build Coastguard Worker #define SO_RCVTIMEO 66 230*c9945492SAndroid Build Coastguard Worker #define SO_SNDTIMEO 67 231*c9945492SAndroid Build Coastguard Worker #else 232*c9945492SAndroid Build Coastguard Worker #define SO_RCVTIMEO 20 233*c9945492SAndroid Build Coastguard Worker #define SO_SNDTIMEO 21 234*c9945492SAndroid Build Coastguard Worker #endif 235*c9945492SAndroid Build Coastguard Worker #endif 236*c9945492SAndroid Build Coastguard Worker 237*c9945492SAndroid Build Coastguard Worker #ifndef SO_TIMESTAMP 238*c9945492SAndroid Build Coastguard Worker #if __LONG_MAX == 0x7fffffff 239*c9945492SAndroid Build Coastguard Worker #define SO_TIMESTAMP 63 240*c9945492SAndroid Build Coastguard Worker #define SO_TIMESTAMPNS 64 241*c9945492SAndroid Build Coastguard Worker #define SO_TIMESTAMPING 65 242*c9945492SAndroid Build Coastguard Worker #else 243*c9945492SAndroid Build Coastguard Worker #define SO_TIMESTAMP 29 244*c9945492SAndroid Build Coastguard Worker #define SO_TIMESTAMPNS 35 245*c9945492SAndroid Build Coastguard Worker #define SO_TIMESTAMPING 37 246*c9945492SAndroid Build Coastguard Worker #endif 247*c9945492SAndroid Build Coastguard Worker #endif 248*c9945492SAndroid Build Coastguard Worker 249*c9945492SAndroid Build Coastguard Worker #define SO_SECURITY_AUTHENTICATION 22 250*c9945492SAndroid Build Coastguard Worker #define SO_SECURITY_ENCRYPTION_TRANSPORT 23 251*c9945492SAndroid Build Coastguard Worker #define SO_SECURITY_ENCRYPTION_NETWORK 24 252*c9945492SAndroid Build Coastguard Worker 253*c9945492SAndroid Build Coastguard Worker #define SO_BINDTODEVICE 25 254*c9945492SAndroid Build Coastguard Worker 255*c9945492SAndroid Build Coastguard Worker #define SO_ATTACH_FILTER 26 256*c9945492SAndroid Build Coastguard Worker #define SO_DETACH_FILTER 27 257*c9945492SAndroid Build Coastguard Worker #define SO_GET_FILTER SO_ATTACH_FILTER 258*c9945492SAndroid Build Coastguard Worker 259*c9945492SAndroid Build Coastguard Worker #define SO_PEERNAME 28 260*c9945492SAndroid Build Coastguard Worker #define SCM_TIMESTAMP SO_TIMESTAMP 261*c9945492SAndroid Build Coastguard Worker #define SO_PASSSEC 34 262*c9945492SAndroid Build Coastguard Worker #define SCM_TIMESTAMPNS SO_TIMESTAMPNS 263*c9945492SAndroid Build Coastguard Worker #define SO_MARK 36 264*c9945492SAndroid Build Coastguard Worker #define SCM_TIMESTAMPING SO_TIMESTAMPING 265*c9945492SAndroid Build Coastguard Worker #define SO_RXQ_OVFL 40 266*c9945492SAndroid Build Coastguard Worker #define SO_WIFI_STATUS 41 267*c9945492SAndroid Build Coastguard Worker #define SCM_WIFI_STATUS SO_WIFI_STATUS 268*c9945492SAndroid Build Coastguard Worker #define SO_PEEK_OFF 42 269*c9945492SAndroid Build Coastguard Worker #define SO_NOFCS 43 270*c9945492SAndroid Build Coastguard Worker #define SO_LOCK_FILTER 44 271*c9945492SAndroid Build Coastguard Worker #define SO_SELECT_ERR_QUEUE 45 272*c9945492SAndroid Build Coastguard Worker #define SO_BUSY_POLL 46 273*c9945492SAndroid Build Coastguard Worker #define SO_MAX_PACING_RATE 47 274*c9945492SAndroid Build Coastguard Worker #define SO_BPF_EXTENSIONS 48 275*c9945492SAndroid Build Coastguard Worker #define SO_INCOMING_CPU 49 276*c9945492SAndroid Build Coastguard Worker #define SO_ATTACH_BPF 50 277*c9945492SAndroid Build Coastguard Worker #define SO_DETACH_BPF SO_DETACH_FILTER 278*c9945492SAndroid Build Coastguard Worker #define SO_ATTACH_REUSEPORT_CBPF 51 279*c9945492SAndroid Build Coastguard Worker #define SO_ATTACH_REUSEPORT_EBPF 52 280*c9945492SAndroid Build Coastguard Worker #define SO_CNX_ADVICE 53 281*c9945492SAndroid Build Coastguard Worker #define SCM_TIMESTAMPING_OPT_STATS 54 282*c9945492SAndroid Build Coastguard Worker #define SO_MEMINFO 55 283*c9945492SAndroid Build Coastguard Worker #define SO_INCOMING_NAPI_ID 56 284*c9945492SAndroid Build Coastguard Worker #define SO_COOKIE 57 285*c9945492SAndroid Build Coastguard Worker #define SCM_TIMESTAMPING_PKTINFO 58 286*c9945492SAndroid Build Coastguard Worker #define SO_PEERGROUPS 59 287*c9945492SAndroid Build Coastguard Worker #define SO_ZEROCOPY 60 288*c9945492SAndroid Build Coastguard Worker #define SO_TXTIME 61 289*c9945492SAndroid Build Coastguard Worker #define SCM_TXTIME SO_TXTIME 290*c9945492SAndroid Build Coastguard Worker #define SO_BINDTOIFINDEX 62 291*c9945492SAndroid Build Coastguard Worker #define SO_DETACH_REUSEPORT_BPF 68 292*c9945492SAndroid Build Coastguard Worker #define SO_PREFER_BUSY_POLL 69 293*c9945492SAndroid Build Coastguard Worker #define SO_BUSY_POLL_BUDGET 70 294*c9945492SAndroid Build Coastguard Worker 295*c9945492SAndroid Build Coastguard Worker #ifndef SOL_SOCKET 296*c9945492SAndroid Build Coastguard Worker #define SOL_SOCKET 1 297*c9945492SAndroid Build Coastguard Worker #endif 298*c9945492SAndroid Build Coastguard Worker 299*c9945492SAndroid Build Coastguard Worker #define SOL_IP 0 300*c9945492SAndroid Build Coastguard Worker #define SOL_IPV6 41 301*c9945492SAndroid Build Coastguard Worker #define SOL_ICMPV6 58 302*c9945492SAndroid Build Coastguard Worker 303*c9945492SAndroid Build Coastguard Worker #define SOL_RAW 255 304*c9945492SAndroid Build Coastguard Worker #define SOL_DECNET 261 305*c9945492SAndroid Build Coastguard Worker #define SOL_X25 262 306*c9945492SAndroid Build Coastguard Worker #define SOL_PACKET 263 307*c9945492SAndroid Build Coastguard Worker #define SOL_ATM 264 308*c9945492SAndroid Build Coastguard Worker #define SOL_AAL 265 309*c9945492SAndroid Build Coastguard Worker #define SOL_IRDA 266 310*c9945492SAndroid Build Coastguard Worker #define SOL_NETBEUI 267 311*c9945492SAndroid Build Coastguard Worker #define SOL_LLC 268 312*c9945492SAndroid Build Coastguard Worker #define SOL_DCCP 269 313*c9945492SAndroid Build Coastguard Worker #define SOL_NETLINK 270 314*c9945492SAndroid Build Coastguard Worker #define SOL_TIPC 271 315*c9945492SAndroid Build Coastguard Worker #define SOL_RXRPC 272 316*c9945492SAndroid Build Coastguard Worker #define SOL_PPPOL2TP 273 317*c9945492SAndroid Build Coastguard Worker #define SOL_BLUETOOTH 274 318*c9945492SAndroid Build Coastguard Worker #define SOL_PNPIPE 275 319*c9945492SAndroid Build Coastguard Worker #define SOL_RDS 276 320*c9945492SAndroid Build Coastguard Worker #define SOL_IUCV 277 321*c9945492SAndroid Build Coastguard Worker #define SOL_CAIF 278 322*c9945492SAndroid Build Coastguard Worker #define SOL_ALG 279 323*c9945492SAndroid Build Coastguard Worker #define SOL_NFC 280 324*c9945492SAndroid Build Coastguard Worker #define SOL_KCM 281 325*c9945492SAndroid Build Coastguard Worker #define SOL_TLS 282 326*c9945492SAndroid Build Coastguard Worker #define SOL_XDP 283 327*c9945492SAndroid Build Coastguard Worker 328*c9945492SAndroid Build Coastguard Worker #define SOMAXCONN 128 329*c9945492SAndroid Build Coastguard Worker 330*c9945492SAndroid Build Coastguard Worker #define MSG_OOB 0x0001 331*c9945492SAndroid Build Coastguard Worker #define MSG_PEEK 0x0002 332*c9945492SAndroid Build Coastguard Worker #define MSG_DONTROUTE 0x0004 333*c9945492SAndroid Build Coastguard Worker #define MSG_CTRUNC 0x0008 334*c9945492SAndroid Build Coastguard Worker #define MSG_PROXY 0x0010 335*c9945492SAndroid Build Coastguard Worker #define MSG_TRUNC 0x0020 336*c9945492SAndroid Build Coastguard Worker #define MSG_DONTWAIT 0x0040 337*c9945492SAndroid Build Coastguard Worker #define MSG_EOR 0x0080 338*c9945492SAndroid Build Coastguard Worker #define MSG_WAITALL 0x0100 339*c9945492SAndroid Build Coastguard Worker #define MSG_FIN 0x0200 340*c9945492SAndroid Build Coastguard Worker #define MSG_SYN 0x0400 341*c9945492SAndroid Build Coastguard Worker #define MSG_CONFIRM 0x0800 342*c9945492SAndroid Build Coastguard Worker #define MSG_RST 0x1000 343*c9945492SAndroid Build Coastguard Worker #define MSG_ERRQUEUE 0x2000 344*c9945492SAndroid Build Coastguard Worker #define MSG_NOSIGNAL 0x4000 345*c9945492SAndroid Build Coastguard Worker #define MSG_MORE 0x8000 346*c9945492SAndroid Build Coastguard Worker #define MSG_WAITFORONE 0x10000 347*c9945492SAndroid Build Coastguard Worker #define MSG_BATCH 0x40000 348*c9945492SAndroid Build Coastguard Worker #define MSG_ZEROCOPY 0x4000000 349*c9945492SAndroid Build Coastguard Worker #define MSG_FASTOPEN 0x20000000 350*c9945492SAndroid Build Coastguard Worker #define MSG_CMSG_CLOEXEC 0x40000000 351*c9945492SAndroid Build Coastguard Worker 352*c9945492SAndroid Build Coastguard Worker #define __CMSG_LEN(cmsg) (((cmsg)->cmsg_len + sizeof(long) - 1) & ~(long)(sizeof(long) - 1)) 353*c9945492SAndroid Build Coastguard Worker #define __CMSG_NEXT(cmsg) ((unsigned char *)(cmsg) + __CMSG_LEN(cmsg)) 354*c9945492SAndroid Build Coastguard Worker #define __MHDR_END(mhdr) ((unsigned char *)(mhdr)->msg_control + (mhdr)->msg_controllen) 355*c9945492SAndroid Build Coastguard Worker 356*c9945492SAndroid Build Coastguard Worker #define CMSG_DATA(cmsg) ((unsigned char *) (((struct cmsghdr *)(cmsg)) + 1)) 357*c9945492SAndroid Build Coastguard Worker #define CMSG_NXTHDR(mhdr, cmsg) ((cmsg)->cmsg_len < sizeof (struct cmsghdr) || \ 358*c9945492SAndroid Build Coastguard Worker __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= (size_t)(__MHDR_END(mhdr) - (unsigned char *)(cmsg)) \ 359*c9945492SAndroid Build Coastguard Worker ? 0 : (struct cmsghdr *)__CMSG_NEXT(cmsg)) 360*c9945492SAndroid Build Coastguard Worker #define CMSG_FIRSTHDR(mhdr) ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0) 361*c9945492SAndroid Build Coastguard Worker 362*c9945492SAndroid Build Coastguard Worker #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)) 363*c9945492SAndroid Build Coastguard Worker #define CMSG_SPACE(len) (CMSG_ALIGN (len) + CMSG_ALIGN (sizeof (struct cmsghdr))) 364*c9945492SAndroid Build Coastguard Worker #define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len)) 365*c9945492SAndroid Build Coastguard Worker 366*c9945492SAndroid Build Coastguard Worker #define SCM_RIGHTS 0x01 367*c9945492SAndroid Build Coastguard Worker #define SCM_CREDENTIALS 0x02 368*c9945492SAndroid Build Coastguard Worker 369*c9945492SAndroid Build Coastguard Worker struct sockaddr { 370*c9945492SAndroid Build Coastguard Worker sa_family_t sa_family; 371*c9945492SAndroid Build Coastguard Worker char sa_data[14]; 372*c9945492SAndroid Build Coastguard Worker }; 373*c9945492SAndroid Build Coastguard Worker 374*c9945492SAndroid Build Coastguard Worker #include <bits/sockaddr_storage.h> 375*c9945492SAndroid Build Coastguard Worker 376*c9945492SAndroid Build Coastguard Worker int socket (int, int, int); 377*c9945492SAndroid Build Coastguard Worker int socketpair (int, int, int, int [2]); 378*c9945492SAndroid Build Coastguard Worker 379*c9945492SAndroid Build Coastguard Worker int shutdown (int, int); 380*c9945492SAndroid Build Coastguard Worker 381*c9945492SAndroid Build Coastguard Worker int bind (int, const struct sockaddr *, socklen_t); 382*c9945492SAndroid Build Coastguard Worker int connect (int, const struct sockaddr *, socklen_t); 383*c9945492SAndroid Build Coastguard Worker int listen (int, int); 384*c9945492SAndroid Build Coastguard Worker int accept (int, struct sockaddr *__restrict, socklen_t *__restrict); 385*c9945492SAndroid Build Coastguard Worker int accept4(int, struct sockaddr *__restrict, socklen_t *__restrict, int); 386*c9945492SAndroid Build Coastguard Worker 387*c9945492SAndroid Build Coastguard Worker int getsockname (int, struct sockaddr *__restrict, socklen_t *__restrict); 388*c9945492SAndroid Build Coastguard Worker int getpeername (int, struct sockaddr *__restrict, socklen_t *__restrict); 389*c9945492SAndroid Build Coastguard Worker 390*c9945492SAndroid Build Coastguard Worker ssize_t send (int, const void *, size_t, int); 391*c9945492SAndroid Build Coastguard Worker ssize_t recv (int, void *, size_t, int); 392*c9945492SAndroid Build Coastguard Worker ssize_t sendto (int, const void *, size_t, int, const struct sockaddr *, socklen_t); 393*c9945492SAndroid Build Coastguard Worker ssize_t recvfrom (int, void *__restrict, size_t, int, struct sockaddr *__restrict, socklen_t *__restrict); 394*c9945492SAndroid Build Coastguard Worker ssize_t sendmsg (int, const struct msghdr *, int); 395*c9945492SAndroid Build Coastguard Worker ssize_t recvmsg (int, struct msghdr *, int); 396*c9945492SAndroid Build Coastguard Worker 397*c9945492SAndroid Build Coastguard Worker int getsockopt (int, int, int, void *__restrict, socklen_t *__restrict); 398*c9945492SAndroid Build Coastguard Worker int setsockopt (int, int, int, const void *, socklen_t); 399*c9945492SAndroid Build Coastguard Worker 400*c9945492SAndroid Build Coastguard Worker int sockatmark (int); 401*c9945492SAndroid Build Coastguard Worker 402*c9945492SAndroid Build Coastguard Worker #if _REDIR_TIME64 403*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE 404*c9945492SAndroid Build Coastguard Worker __REDIR(recvmmsg, __recvmmsg_time64); 405*c9945492SAndroid Build Coastguard Worker #endif 406*c9945492SAndroid Build Coastguard Worker #endif 407*c9945492SAndroid Build Coastguard Worker 408*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus 409*c9945492SAndroid Build Coastguard Worker } 410*c9945492SAndroid Build Coastguard Worker #endif 411*c9945492SAndroid Build Coastguard Worker #endif 412