| //===-- Definition of macros from sys/socket.h ----------------------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLVM_LIBC_MACROS_LINUX_SYS_SOCKET_MACROS_H |
| #define LLVM_LIBC_MACROS_LINUX_SYS_SOCKET_MACROS_H |
| |
| // IEEE Std 1003.1-2017 - basedefs/sys_socket.h.html |
| // Macro values come from the Linux syscall interface. |
| |
| #define AF_UNSPEC 0 // Unspecified |
| #define AF_UNIX 1 // Unix domain sockets |
| #define AF_LOCAL 1 // POSIX name for AF_UNIX |
| #define AF_INET 2 // Internet IPv4 Protocol |
| #define AF_INET6 10 // IP version 6 |
| |
| #define SOCK_STREAM 1 |
| #define SOCK_DGRAM 2 |
| #define SOCK_RAW 3 |
| #define SOCK_RDM 4 |
| #define SOCK_SEQPACKET 5 |
| #define SOCK_PACKET 10 |
| |
| #define SOCK_CLOEXEC 0x80000 |
| #define SOCK_NONBLOCK 0x800 |
| |
| #define SOL_SOCKET 1 |
| |
| #define SO_DEBUG 1 |
| #define SO_REUSEADDR 2 |
| #define SO_TYPE 3 |
| #define SO_ERROR 4 |
| #define SO_DONTROUTE 5 |
| #define SO_BROADCAST 6 |
| #define SO_SNDBUF 7 |
| #define SO_RCVBUF 8 |
| #define SO_KEEPALIVE 9 |
| #define SO_OOBINLINE 10 |
| #define SO_NO_CHECK 11 |
| #define SO_PRIORITY 12 |
| #define SO_LINGER 13 |
| #define SO_BSDCOMPAT 14 |
| #define SO_REUSEPORT 15 |
| |
| #define SHUT_RD 0 |
| #define SHUT_WR 1 |
| #define SHUT_RDWR 2 |
| |
| #define SCM_RIGHTS 1 |
| |
| #define MSG_OOB 0x01 |
| #define MSG_PEEK 0x02 |
| #define MSG_DONTROUTE 0x04 |
| #define MSG_CTRUNC 0x08 |
| #define MSG_PROXY 0x10 |
| #define MSG_TRUNC 0x20 |
| #define MSG_DONTWAIT 0x40 |
| #define MSG_EOR 0x80 |
| #define MSG_WAITALL 0x100 |
| #define MSG_FIN 0x200 |
| #define MSG_SYN 0x400 |
| #define MSG_CONFIRM 0x800 |
| #define MSG_RST 0x1000 |
| #define MSG_ERRQUEUE 0x2000 |
| #define MSG_NOSIGNAL 0x4000 |
| #define MSG_MORE 0x8000 |
| #define MSG_WAITFORONE 0x10000 |
| #define MSG_BATCH 0x40000 |
| #define MSG_SOCK_DEVMEM 0x2000000 |
| #define MSG_ZEROCOPY 0x4000000 |
| #define MSG_FASTOPEN 0x20000000 |
| #define MSG_CMSG_CLOEXEC 0x40000000 |
| |
| #define CMSG_ALIGN(len) (((len) + sizeof(size_t) - 1) & ~(sizeof(size_t) - 1)) |
| #define CMSG_LEN(len) (sizeof(struct cmsghdr) + (len)) |
| #define CMSG_SPACE(len) (sizeof(struct cmsghdr) + CMSG_ALIGN(len)) |
| |
| #define CMSG_FIRSTHDR(msg) \ |
| ((msg)->msg_controllen >= sizeof(struct cmsghdr) \ |
| ? (struct cmsghdr *)(msg)->msg_control \ |
| : 0) |
| #define __CMSG_NXTHDR_CANDIDATE(cmsg) \ |
| ((struct cmsghdr *)((unsigned char *)(cmsg) + CMSG_ALIGN((cmsg)->cmsg_len))) |
| #define CMSG_NXTHDR(msg, cmsg) \ |
| ((char *)(__CMSG_NXTHDR_CANDIDATE(cmsg) + 1) <= \ |
| ((char *)((msg)->msg_control) + (msg)->msg_controllen) \ |
| ? __CMSG_NXTHDR_CANDIDATE(cmsg) \ |
| : 0) |
| #define CMSG_DATA(cmsg) ((unsigned char *)((struct cmsghdr *)(cmsg) + 1)) |
| |
| #endif // LLVM_LIBC_MACROS_LINUX_SYS_SOCKET_MACROS_H |