16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 254579826SDavid Howells #ifndef _ASM_SOCKET_H 354579826SDavid Howells #define _ASM_SOCKET_H 454579826SDavid Howells 5a623a7a1SArnd Bergmann #include <linux/posix_types.h> 654579826SDavid Howells #include <asm/sockios.h> 754579826SDavid Howells 854579826SDavid Howells /* For setsockopt(2) */ 954579826SDavid Howells #define SOL_SOCKET 0xffff 1054579826SDavid Howells 1154579826SDavid Howells #define SO_DEBUG 0x0001 1254579826SDavid Howells #define SO_PASSCRED 0x0002 1354579826SDavid Howells #define SO_REUSEADDR 0x0004 1454579826SDavid Howells #define SO_KEEPALIVE 0x0008 1554579826SDavid Howells #define SO_DONTROUTE 0x0010 1654579826SDavid Howells #define SO_BROADCAST 0x0020 1754579826SDavid Howells #define SO_PEERCRED 0x0040 1854579826SDavid Howells #define SO_LINGER 0x0080 1954579826SDavid Howells #define SO_OOBINLINE 0x0100 20055dc21aSTom Herbert #define SO_REUSEPORT 0x0200 2154579826SDavid Howells #define SO_BSDCOMPAT 0x0400 2254579826SDavid Howells #define SO_RCVLOWAT 0x0800 2354579826SDavid Howells #define SO_SNDLOWAT 0x1000 2445bdc661SDeepa Dinamani #define SO_RCVTIMEO_OLD 0x2000 2545bdc661SDeepa Dinamani #define SO_SNDTIMEO_OLD 0x4000 2654579826SDavid Howells #define SO_ACCEPTCONN 0x8000 2754579826SDavid Howells 2854579826SDavid Howells #define SO_SNDBUF 0x1001 2954579826SDavid Howells #define SO_RCVBUF 0x1002 3054579826SDavid Howells #define SO_SNDBUFFORCE 0x100a 3154579826SDavid Howells #define SO_RCVBUFFORCE 0x100b 3254579826SDavid Howells #define SO_ERROR 0x1007 3354579826SDavid Howells #define SO_TYPE 0x1008 3454579826SDavid Howells #define SO_PROTOCOL 0x1028 3554579826SDavid Howells #define SO_DOMAIN 0x1029 3654579826SDavid Howells 3754579826SDavid Howells /* Linux specific, keep the same. */ 3854579826SDavid Howells #define SO_NO_CHECK 0x000b 3954579826SDavid Howells #define SO_PRIORITY 0x000c 4054579826SDavid Howells 4154579826SDavid Howells #define SO_BINDTODEVICE 0x000d 4254579826SDavid Howells 4354579826SDavid Howells #define SO_ATTACH_FILTER 0x001a 4454579826SDavid Howells #define SO_DETACH_FILTER 0x001b 45a8fc9277SPavel Emelyanov #define SO_GET_FILTER SO_ATTACH_FILTER 4654579826SDavid Howells 4754579826SDavid Howells #define SO_PEERNAME 0x001c 4854579826SDavid Howells 4954579826SDavid Howells #define SO_PEERSEC 0x001e 5054579826SDavid Howells #define SO_PASSSEC 0x001f 5154579826SDavid Howells 5254579826SDavid Howells #define SO_MARK 0x0022 5354579826SDavid Howells 5454579826SDavid Howells #define SO_RXQ_OVFL 0x0024 5554579826SDavid Howells 5654579826SDavid Howells #define SO_WIFI_STATUS 0x0025 5754579826SDavid Howells #define SCM_WIFI_STATUS SO_WIFI_STATUS 5854579826SDavid Howells #define SO_PEEK_OFF 0x0026 5954579826SDavid Howells 6054579826SDavid Howells /* Instruct lower device to use last 4-bytes of skb data as FCS */ 6154579826SDavid Howells #define SO_NOFCS 0x0027 6254579826SDavid Howells 63d59577b6SVincent Bernat #define SO_LOCK_FILTER 0x0028 6454579826SDavid Howells 657d4c04fcSKeller, Jacob E #define SO_SELECT_ERR_QUEUE 0x0029 667d4c04fcSKeller, Jacob E 6764b0dc51SEliezer Tamir #define SO_BUSY_POLL 0x0030 68dafcc438SEliezer Tamir 6962748f32SEric Dumazet #define SO_MAX_PACING_RATE 0x0031 7062748f32SEric Dumazet 71ea02f941SMichal Sekletar #define SO_BPF_EXTENSIONS 0x0032 72ea02f941SMichal Sekletar 732c8c56e1SEric Dumazet #define SO_INCOMING_CPU 0x0033 742c8c56e1SEric Dumazet 7589aa0758SAlexei Starovoitov #define SO_ATTACH_BPF 0x0034 7689aa0758SAlexei Starovoitov #define SO_DETACH_BPF SO_DETACH_FILTER 7789aa0758SAlexei Starovoitov 78538950a1SCraig Gallek #define SO_ATTACH_REUSEPORT_CBPF 0x0035 79538950a1SCraig Gallek #define SO_ATTACH_REUSEPORT_EBPF 0x0036 80538950a1SCraig Gallek 81a87cb3e4STom Herbert #define SO_CNX_ADVICE 0x0037 82a87cb3e4STom Herbert 831c885808SFrancis Yan #define SCM_TIMESTAMPING_OPT_STATS 0x0038 841c885808SFrancis Yan 85a2d133b1SJosh Hunt #define SO_MEMINFO 0x0039 86a2d133b1SJosh Hunt 876d433902SSridhar Samudrala #define SO_INCOMING_NAPI_ID 0x003a 886d433902SSridhar Samudrala 895daab9dbSChenbo Feng #define SO_COOKIE 0x003b 905daab9dbSChenbo Feng 911c4f676aSDavid S. Miller #define SCM_TIMESTAMPING_PKTINFO 0x003c 921c4f676aSDavid S. Miller 9328b5ba2aSDavid Herrmann #define SO_PEERGROUPS 0x003d 9428b5ba2aSDavid Herrmann 9576851d12SWillem de Bruijn #define SO_ZEROCOPY 0x003e 9676851d12SWillem de Bruijn 9780b14deeSRichard Cochran #define SO_TXTIME 0x003f 9880b14deeSRichard Cochran #define SCM_TXTIME SO_TXTIME 9980b14deeSRichard Cochran 100f5dd3d0cSDavid Herrmann #define SO_BINDTOIFINDEX 0x0041 101f5dd3d0cSDavid Herrmann 10254579826SDavid Howells /* Security levels - as per NRL IPv6 - don't actually do anything */ 10354579826SDavid Howells #define SO_SECURITY_AUTHENTICATION 0x5001 10454579826SDavid Howells #define SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002 10554579826SDavid Howells #define SO_SECURITY_ENCRYPTION_NETWORK 0x5004 10654579826SDavid Howells 1077f1bc6e9SDeepa Dinamani #define SO_TIMESTAMP_OLD 0x001d 1087f1bc6e9SDeepa Dinamani #define SO_TIMESTAMPNS_OLD 0x0021 1097f1bc6e9SDeepa Dinamani #define SO_TIMESTAMPING_OLD 0x0023 1107f1bc6e9SDeepa Dinamani 111cc733578SStephen Rothwell #define SO_TIMESTAMP_NEW 0x0046 112887feae3SDeepa Dinamani #define SO_TIMESTAMPNS_NEW 0x0042 1139718475eSDeepa Dinamani #define SO_TIMESTAMPING_NEW 0x0043 114887feae3SDeepa Dinamani 115a9beb86aSDeepa Dinamani #define SO_RCVTIMEO_NEW 0x0044 116a9beb86aSDeepa Dinamani #define SO_SNDTIMEO_NEW 0x0045 117a9beb86aSDeepa Dinamani 11899f3a064SMartin KaFai Lau #define SO_DETACH_REUSEPORT_BPF 0x0047 11999f3a064SMartin KaFai Lau 1207fd3253aSBjörn Töpel #define SO_PREFER_BUSY_POLL 0x0048 1217c951cafSBjörn Töpel #define SO_BUSY_POLL_BUDGET 0x0049 1227fd3253aSBjörn Töpel 123e8b9eab9SMartynas Pumputis #define SO_NETNS_COOKIE 0x0050 124e8b9eab9SMartynas Pumputis 12504190bf8SPavel Tikhomirov #define SO_BUF_LOCK 0x0051 12604190bf8SPavel Tikhomirov 127fb8ece51SDavid S. Miller #define SO_RESERVE_MEM 0x0052 128bfaf0393SDavid S. Miller 12926859240SAkhmat Karakotov #define SO_TXREHASH 0x0053 13026859240SAkhmat Karakotov 1316fd1d51cSErin MacNeil #define SO_RCVMARK 0x0054 132bfaf0393SDavid S. Miller 1335e2ff670SAlexander Mikhalitsyn #define SO_PASSPIDFD 0x0055 134*7b26952aSAlexander Mikhalitsyn #define SO_PEERPIDFD 0x0056 1355e2ff670SAlexander Mikhalitsyn 1367f1bc6e9SDeepa Dinamani #if !defined(__KERNEL__) 1377f1bc6e9SDeepa Dinamani 13845bdc661SDeepa Dinamani 139887feae3SDeepa Dinamani #if __BITS_PER_LONG == 64 1407f1bc6e9SDeepa Dinamani #define SO_TIMESTAMP SO_TIMESTAMP_OLD 1417f1bc6e9SDeepa Dinamani #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD 1429718475eSDeepa Dinamani #define SO_TIMESTAMPING SO_TIMESTAMPING_OLD 143a9beb86aSDeepa Dinamani 144a9beb86aSDeepa Dinamani #define SO_RCVTIMEO SO_RCVTIMEO_OLD 145a9beb86aSDeepa Dinamani #define SO_SNDTIMEO SO_SNDTIMEO_OLD 146887feae3SDeepa Dinamani #else 147887feae3SDeepa Dinamani #define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW) 148887feae3SDeepa Dinamani #define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW) 1499718475eSDeepa Dinamani #define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW) 150a9beb86aSDeepa Dinamani 151a9beb86aSDeepa Dinamani #define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW) 152a9beb86aSDeepa Dinamani #define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW) 153887feae3SDeepa Dinamani #endif 154887feae3SDeepa Dinamani 1557f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMP SO_TIMESTAMP 1567f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMPNS SO_TIMESTAMPNS 1577f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMPING SO_TIMESTAMPING 1587f1bc6e9SDeepa Dinamani 1597f1bc6e9SDeepa Dinamani #endif 1607f1bc6e9SDeepa Dinamani 16154579826SDavid Howells #endif /* _ASM_SOCKET_H */ 162