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 141*7b26952aSAlexander Mikhalitsyn #define SO_PEERPIDFD 77 1425e2ff670SAlexander Mikhalitsyn 143a9beb86aSDeepa Dinamani #if !defined(__KERNEL__) 14445bdc661SDeepa Dinamani 145887feae3SDeepa Dinamani #if __BITS_PER_LONG == 64 1467f1bc6e9SDeepa Dinamani #define SO_TIMESTAMP SO_TIMESTAMP_OLD 1477f1bc6e9SDeepa Dinamani #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD 1489718475eSDeepa Dinamani #define SO_TIMESTAMPING SO_TIMESTAMPING_OLD 149a9beb86aSDeepa Dinamani 150a9beb86aSDeepa Dinamani #define SO_RCVTIMEO SO_RCVTIMEO_OLD 151a9beb86aSDeepa Dinamani #define SO_SNDTIMEO SO_SNDTIMEO_OLD 152887feae3SDeepa Dinamani #else 153887feae3SDeepa Dinamani #define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW) 154887feae3SDeepa Dinamani #define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW) 1559718475eSDeepa Dinamani #define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW) 156a9beb86aSDeepa Dinamani 157a9beb86aSDeepa Dinamani #define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW) 158a9beb86aSDeepa Dinamani #define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW) 159887feae3SDeepa Dinamani #endif 160887feae3SDeepa Dinamani 1617f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMP SO_TIMESTAMP 1627f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMPNS SO_TIMESTAMPNS 1637f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMPING SO_TIMESTAMPING 1647f1bc6e9SDeepa Dinamani 1657f1bc6e9SDeepa Dinamani #endif 1667f1bc6e9SDeepa Dinamani 16796433f6eSDavid Howells #endif /* _UAPI_ASM_SOCKET_H */ 168