16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 296433f6eSDavid Howells #ifndef _UAPI_ASM_SOCKET_H 396433f6eSDavid Howells #define _UAPI_ASM_SOCKET_H 496433f6eSDavid Howells 5a623a7a1SArnd Bergmann #include <linux/posix_types.h> 696433f6eSDavid Howells #include <asm/sockios.h> 796433f6eSDavid Howells 896433f6eSDavid Howells /* For setsockopt(2) */ 996433f6eSDavid Howells /* 1096433f6eSDavid Howells * Note: we only bother about making the SOL_SOCKET options 1196433f6eSDavid Howells * same as OSF/1, as that's all that "normal" programs are 1296433f6eSDavid Howells * likely to set. We don't necessarily want to be binary 1396433f6eSDavid Howells * compatible with _everything_. 1496433f6eSDavid Howells */ 1596433f6eSDavid Howells #define SOL_SOCKET 0xffff 1696433f6eSDavid Howells 1796433f6eSDavid Howells #define SO_DEBUG 0x0001 1896433f6eSDavid Howells #define SO_REUSEADDR 0x0004 1996433f6eSDavid Howells #define SO_KEEPALIVE 0x0008 2096433f6eSDavid Howells #define SO_DONTROUTE 0x0010 2196433f6eSDavid Howells #define SO_BROADCAST 0x0020 2296433f6eSDavid Howells #define SO_LINGER 0x0080 2396433f6eSDavid Howells #define SO_OOBINLINE 0x0100 24055dc21aSTom Herbert #define SO_REUSEPORT 0x0200 2596433f6eSDavid Howells 2696433f6eSDavid Howells #define SO_TYPE 0x1008 2796433f6eSDavid Howells #define SO_ERROR 0x1007 2896433f6eSDavid Howells #define SO_SNDBUF 0x1001 2996433f6eSDavid Howells #define SO_RCVBUF 0x1002 3096433f6eSDavid Howells #define SO_SNDBUFFORCE 0x100a 3196433f6eSDavid Howells #define SO_RCVBUFFORCE 0x100b 3296433f6eSDavid Howells #define SO_RCVLOWAT 0x1010 3396433f6eSDavid Howells #define SO_SNDLOWAT 0x1011 3445bdc661SDeepa Dinamani #define SO_RCVTIMEO_OLD 0x1012 3545bdc661SDeepa Dinamani #define SO_SNDTIMEO_OLD 0x1013 3696433f6eSDavid Howells #define SO_ACCEPTCONN 0x1014 3796433f6eSDavid Howells #define SO_PROTOCOL 0x1028 3896433f6eSDavid Howells #define SO_DOMAIN 0x1029 3996433f6eSDavid Howells 4096433f6eSDavid Howells /* linux-specific, might as well be the same as on i386 */ 4196433f6eSDavid Howells #define SO_NO_CHECK 11 4296433f6eSDavid Howells #define SO_PRIORITY 12 4396433f6eSDavid Howells #define SO_BSDCOMPAT 14 4496433f6eSDavid Howells 4596433f6eSDavid Howells #define SO_PASSCRED 17 4696433f6eSDavid Howells #define SO_PEERCRED 18 4796433f6eSDavid Howells #define SO_BINDTODEVICE 25 4896433f6eSDavid Howells 4996433f6eSDavid Howells /* Socket filtering */ 5096433f6eSDavid Howells #define SO_ATTACH_FILTER 26 5196433f6eSDavid Howells #define SO_DETACH_FILTER 27 5296433f6eSDavid Howells #define SO_GET_FILTER SO_ATTACH_FILTER 5396433f6eSDavid Howells 5496433f6eSDavid Howells #define SO_PEERNAME 28 5596433f6eSDavid Howells 5696433f6eSDavid Howells #define SO_PEERSEC 30 5796433f6eSDavid Howells #define SO_PASSSEC 34 5896433f6eSDavid Howells 5996433f6eSDavid Howells /* Security levels - as per NRL IPv6 - don't actually do anything */ 6096433f6eSDavid Howells #define SO_SECURITY_AUTHENTICATION 19 6196433f6eSDavid Howells #define SO_SECURITY_ENCRYPTION_TRANSPORT 20 6296433f6eSDavid Howells #define SO_SECURITY_ENCRYPTION_NETWORK 21 6396433f6eSDavid Howells 6496433f6eSDavid Howells #define SO_MARK 36 6596433f6eSDavid Howells 6696433f6eSDavid Howells #define SO_RXQ_OVFL 40 6796433f6eSDavid Howells 6896433f6eSDavid Howells #define SO_WIFI_STATUS 41 6996433f6eSDavid Howells #define SCM_WIFI_STATUS SO_WIFI_STATUS 7096433f6eSDavid Howells #define SO_PEEK_OFF 42 7196433f6eSDavid Howells 7296433f6eSDavid Howells /* Instruct lower device to use last 4-bytes of skb data as FCS */ 7396433f6eSDavid Howells #define SO_NOFCS 43 7496433f6eSDavid Howells 75d59577b6SVincent Bernat #define SO_LOCK_FILTER 44 7696433f6eSDavid Howells 777d4c04fcSKeller, Jacob E #define SO_SELECT_ERR_QUEUE 45 787d4c04fcSKeller, Jacob E 7964b0dc51SEliezer Tamir #define SO_BUSY_POLL 46 8062748f32SEric Dumazet 8162748f32SEric Dumazet #define SO_MAX_PACING_RATE 47 82dafcc438SEliezer Tamir 83ea02f941SMichal Sekletar #define SO_BPF_EXTENSIONS 48 84ea02f941SMichal Sekletar 852c8c56e1SEric Dumazet #define SO_INCOMING_CPU 49 862c8c56e1SEric Dumazet 8789aa0758SAlexei Starovoitov #define SO_ATTACH_BPF 50 8889aa0758SAlexei Starovoitov #define SO_DETACH_BPF SO_DETACH_FILTER 8989aa0758SAlexei Starovoitov 90538950a1SCraig Gallek #define SO_ATTACH_REUSEPORT_CBPF 51 91538950a1SCraig Gallek #define SO_ATTACH_REUSEPORT_EBPF 52 92538950a1SCraig Gallek 93a87cb3e4STom Herbert #define SO_CNX_ADVICE 53 94a87cb3e4STom Herbert 951c885808SFrancis Yan #define SCM_TIMESTAMPING_OPT_STATS 54 961c885808SFrancis Yan 97a2d133b1SJosh Hunt #define SO_MEMINFO 55 98a2d133b1SJosh Hunt 996d433902SSridhar Samudrala #define SO_INCOMING_NAPI_ID 56 1006d433902SSridhar Samudrala 1015daab9dbSChenbo Feng #define SO_COOKIE 57 1025daab9dbSChenbo Feng 1031c4f676aSDavid S. Miller #define SCM_TIMESTAMPING_PKTINFO 58 1041c4f676aSDavid S. Miller 10528b5ba2aSDavid Herrmann #define SO_PEERGROUPS 59 10628b5ba2aSDavid Herrmann 10776851d12SWillem de Bruijn #define SO_ZEROCOPY 60 10876851d12SWillem de Bruijn 10980b14deeSRichard Cochran #define SO_TXTIME 61 11080b14deeSRichard Cochran #define SCM_TXTIME SO_TXTIME 11180b14deeSRichard Cochran 112f5dd3d0cSDavid Herrmann #define SO_BINDTOIFINDEX 62 113f5dd3d0cSDavid Herrmann 1147f1bc6e9SDeepa Dinamani #define SO_TIMESTAMP_OLD 29 1157f1bc6e9SDeepa Dinamani #define SO_TIMESTAMPNS_OLD 35 1167f1bc6e9SDeepa Dinamani #define SO_TIMESTAMPING_OLD 37 1177f1bc6e9SDeepa Dinamani 118887feae3SDeepa Dinamani #define SO_TIMESTAMP_NEW 63 119887feae3SDeepa Dinamani #define SO_TIMESTAMPNS_NEW 64 1209718475eSDeepa Dinamani #define SO_TIMESTAMPING_NEW 65 121887feae3SDeepa Dinamani 122a9beb86aSDeepa Dinamani #define SO_RCVTIMEO_NEW 66 123a9beb86aSDeepa Dinamani #define SO_SNDTIMEO_NEW 67 1247f1bc6e9SDeepa Dinamani 12599f3a064SMartin KaFai Lau #define SO_DETACH_REUSEPORT_BPF 68 12699f3a064SMartin KaFai Lau 1277fd3253aSBjörn Töpel #define SO_PREFER_BUSY_POLL 69 1287c951cafSBjörn Töpel #define SO_BUSY_POLL_BUDGET 70 1297fd3253aSBjörn Töpel 130e8b9eab9SMartynas Pumputis #define SO_NETNS_COOKIE 71 131e8b9eab9SMartynas Pumputis 13204190bf8SPavel Tikhomirov #define SO_BUF_LOCK 72 13304190bf8SPavel Tikhomirov 13410d48705SStephen Rothwell #define SO_RESERVE_MEM 73 13510d48705SStephen Rothwell 13626859240SAkhmat Karakotov #define SO_TXREHASH 74 13726859240SAkhmat Karakotov 1386fd1d51cSErin MacNeil #define SO_RCVMARK 75 1396fd1d51cSErin MacNeil 1405e2ff670SAlexander Mikhalitsyn #define SO_PASSPIDFD 76 1417b26952aSAlexander Mikhalitsyn #define SO_PEERPIDFD 77 1425e2ff670SAlexander Mikhalitsyn 1438f0b3cc9SMina Almasry #define SO_DEVMEM_LINEAR 78 1448f0b3cc9SMina Almasry #define SCM_DEVMEM_LINEAR SO_DEVMEM_LINEAR 1458f0b3cc9SMina Almasry #define SO_DEVMEM_DMABUF 79 1468f0b3cc9SMina Almasry #define SCM_DEVMEM_DMABUF SO_DEVMEM_DMABUF 147678f6e28SMina Almasry #define SO_DEVMEM_DONTNEED 80 1488f0b3cc9SMina Almasry 1494aecca4cSVadim Fedorenko #define SCM_TS_OPT_ID 81 1504aecca4cSVadim Fedorenko 151*e45469e5SAnna Emese Nyiri #define SO_RCVPRIORITY 82 152*e45469e5SAnna Emese Nyiri 153a9beb86aSDeepa Dinamani #if !defined(__KERNEL__) 15445bdc661SDeepa Dinamani 155887feae3SDeepa Dinamani #if __BITS_PER_LONG == 64 1567f1bc6e9SDeepa Dinamani #define SO_TIMESTAMP SO_TIMESTAMP_OLD 1577f1bc6e9SDeepa Dinamani #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD 1589718475eSDeepa Dinamani #define SO_TIMESTAMPING SO_TIMESTAMPING_OLD 159a9beb86aSDeepa Dinamani 160a9beb86aSDeepa Dinamani #define SO_RCVTIMEO SO_RCVTIMEO_OLD 161a9beb86aSDeepa Dinamani #define SO_SNDTIMEO SO_SNDTIMEO_OLD 162887feae3SDeepa Dinamani #else 163887feae3SDeepa Dinamani #define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW) 164887feae3SDeepa Dinamani #define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW) 1659718475eSDeepa Dinamani #define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW) 166a9beb86aSDeepa Dinamani 167a9beb86aSDeepa Dinamani #define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW) 168a9beb86aSDeepa Dinamani #define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW) 169887feae3SDeepa Dinamani #endif 170887feae3SDeepa Dinamani 1717f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMP SO_TIMESTAMP 1727f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMPNS SO_TIMESTAMPNS 1737f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMPING SO_TIMESTAMPING 1747f1bc6e9SDeepa Dinamani 1757f1bc6e9SDeepa Dinamani #endif 1767f1bc6e9SDeepa Dinamani 17796433f6eSDavid Howells #endif /* _UAPI_ASM_SOCKET_H */ 178