1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 #ifndef _UAPI_ASM_SOCKET_H 3 #define _UAPI_ASM_SOCKET_H 4 5 #include <linux/posix_types.h> 6 #include <asm/sockios.h> 7 8 /* For setsockopt(2) */ 9 /* 10 * Note: we only bother about making the SOL_SOCKET options 11 * same as OSF/1, as that's all that "normal" programs are 12 * likely to set. We don't necessarily want to be binary 13 * compatible with _everything_. 14 */ 15 #define SOL_SOCKET 0xffff 16 17 #define SO_DEBUG 0x0001 18 #define SO_REUSEADDR 0x0004 19 #define SO_KEEPALIVE 0x0008 20 #define SO_DONTROUTE 0x0010 21 #define SO_BROADCAST 0x0020 22 #define SO_LINGER 0x0080 23 #define SO_OOBINLINE 0x0100 24 #define SO_REUSEPORT 0x0200 25 26 #define SO_TYPE 0x1008 27 #define SO_ERROR 0x1007 28 #define SO_SNDBUF 0x1001 29 #define SO_RCVBUF 0x1002 30 #define SO_SNDBUFFORCE 0x100a 31 #define SO_RCVBUFFORCE 0x100b 32 #define SO_RCVLOWAT 0x1010 33 #define SO_SNDLOWAT 0x1011 34 #define SO_RCVTIMEO_OLD 0x1012 35 #define SO_SNDTIMEO_OLD 0x1013 36 #define SO_ACCEPTCONN 0x1014 37 #define SO_PROTOCOL 0x1028 38 #define SO_DOMAIN 0x1029 39 40 /* linux-specific, might as well be the same as on i386 */ 41 #define SO_NO_CHECK 11 42 #define SO_PRIORITY 12 43 #define SO_BSDCOMPAT 14 44 45 #define SO_PASSCRED 17 46 #define SO_PEERCRED 18 47 #define SO_BINDTODEVICE 25 48 49 /* Socket filtering */ 50 #define SO_ATTACH_FILTER 26 51 #define SO_DETACH_FILTER 27 52 #define SO_GET_FILTER SO_ATTACH_FILTER 53 54 #define SO_PEERNAME 28 55 56 #define SO_PEERSEC 30 57 #define SO_PASSSEC 34 58 59 /* Security levels - as per NRL IPv6 - don't actually do anything */ 60 #define SO_SECURITY_AUTHENTICATION 19 61 #define SO_SECURITY_ENCRYPTION_TRANSPORT 20 62 #define SO_SECURITY_ENCRYPTION_NETWORK 21 63 64 #define SO_MARK 36 65 66 #define SO_RXQ_OVFL 40 67 68 #define SO_WIFI_STATUS 41 69 #define SCM_WIFI_STATUS SO_WIFI_STATUS 70 #define SO_PEEK_OFF 42 71 72 /* Instruct lower device to use last 4-bytes of skb data as FCS */ 73 #define SO_NOFCS 43 74 75 #define SO_LOCK_FILTER 44 76 77 #define SO_SELECT_ERR_QUEUE 45 78 79 #define SO_BUSY_POLL 46 80 81 #define SO_MAX_PACING_RATE 47 82 83 #define SO_BPF_EXTENSIONS 48 84 85 #define SO_INCOMING_CPU 49 86 87 #define SO_ATTACH_BPF 50 88 #define SO_DETACH_BPF SO_DETACH_FILTER 89 90 #define SO_ATTACH_REUSEPORT_CBPF 51 91 #define SO_ATTACH_REUSEPORT_EBPF 52 92 93 #define SO_CNX_ADVICE 53 94 95 #define SCM_TIMESTAMPING_OPT_STATS 54 96 97 #define SO_MEMINFO 55 98 99 #define SO_INCOMING_NAPI_ID 56 100 101 #define SO_COOKIE 57 102 103 #define SCM_TIMESTAMPING_PKTINFO 58 104 105 #define SO_PEERGROUPS 59 106 107 #define SO_ZEROCOPY 60 108 109 #define SO_TXTIME 61 110 #define SCM_TXTIME SO_TXTIME 111 112 #define SO_BINDTOIFINDEX 62 113 114 #define SO_TIMESTAMP_OLD 29 115 #define SO_TIMESTAMPNS_OLD 35 116 #define SO_TIMESTAMPING_OLD 37 117 118 #define SO_TIMESTAMP_NEW 63 119 #define SO_TIMESTAMPNS_NEW 64 120 #define SO_TIMESTAMPING_NEW 65 121 122 #define SO_RCVTIMEO_NEW 66 123 #define SO_SNDTIMEO_NEW 67 124 125 #define SO_DETACH_REUSEPORT_BPF 68 126 127 #define SO_PREFER_BUSY_POLL 69 128 #define SO_BUSY_POLL_BUDGET 70 129 130 #define SO_NETNS_COOKIE 71 131 132 #define SO_BUF_LOCK 72 133 134 #define SO_RESERVE_MEM 73 135 136 #define SO_TXREHASH 74 137 138 #define SO_RCVMARK 75 139 140 #define SO_PASSPIDFD 76 141 #define SO_PEERPIDFD 77 142 143 #define SO_DEVMEM_LINEAR 78 144 #define SCM_DEVMEM_LINEAR SO_DEVMEM_LINEAR 145 #define SO_DEVMEM_DMABUF 79 146 #define SCM_DEVMEM_DMABUF SO_DEVMEM_DMABUF 147 #define SO_DEVMEM_DONTNEED 80 148 149 #if !defined(__KERNEL__) 150 151 #if __BITS_PER_LONG == 64 152 #define SO_TIMESTAMP SO_TIMESTAMP_OLD 153 #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD 154 #define SO_TIMESTAMPING SO_TIMESTAMPING_OLD 155 156 #define SO_RCVTIMEO SO_RCVTIMEO_OLD 157 #define SO_SNDTIMEO SO_SNDTIMEO_OLD 158 #else 159 #define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW) 160 #define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW) 161 #define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW) 162 163 #define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW) 164 #define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW) 165 #endif 166 167 #define SCM_TIMESTAMP SO_TIMESTAMP 168 #define SCM_TIMESTAMPNS SO_TIMESTAMPNS 169 #define SCM_TIMESTAMPING SO_TIMESTAMPING 170 171 #endif 172 173 #endif /* _UAPI_ASM_SOCKET_H */ 174