1e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 261730c53SDavid Howells /* 361730c53SDavid Howells * This file is subject to the terms and conditions of the GNU General Public 461730c53SDavid Howells * License. See the file "COPYING" in the main directory of this archive 561730c53SDavid Howells * for more details. 661730c53SDavid Howells * 761730c53SDavid Howells * Copyright (C) 1997, 1999, 2000, 2001 Ralf Baechle 861730c53SDavid Howells * Copyright (C) 2000, 2001 Silicon Graphics, Inc. 961730c53SDavid Howells */ 1061730c53SDavid Howells #ifndef _UAPI_ASM_SOCKET_H 1161730c53SDavid Howells #define _UAPI_ASM_SOCKET_H 1261730c53SDavid Howells 13a623a7a1SArnd Bergmann #include <linux/posix_types.h> 1461730c53SDavid Howells #include <asm/sockios.h> 1561730c53SDavid Howells 1661730c53SDavid Howells /* 1761730c53SDavid Howells * For setsockopt(2) 1861730c53SDavid Howells * 1961730c53SDavid Howells * This defines are ABI conformant as far as Linux supports these ... 2061730c53SDavid Howells */ 2161730c53SDavid Howells #define SOL_SOCKET 0xffff 2261730c53SDavid Howells 2361730c53SDavid Howells #define SO_DEBUG 0x0001 /* Record debugging information. */ 2461730c53SDavid Howells #define SO_REUSEADDR 0x0004 /* Allow reuse of local addresses. */ 2561730c53SDavid Howells #define SO_KEEPALIVE 0x0008 /* Keep connections alive and send 2661730c53SDavid Howells SIGPIPE when they die. */ 2761730c53SDavid Howells #define SO_DONTROUTE 0x0010 /* Don't do local routing. */ 2861730c53SDavid Howells #define SO_BROADCAST 0x0020 /* Allow transmission of 2961730c53SDavid Howells broadcast messages. */ 3061730c53SDavid Howells #define SO_LINGER 0x0080 /* Block on close of a reliable 3161730c53SDavid Howells socket to transmit pending data. */ 3261730c53SDavid Howells #define SO_OOBINLINE 0x0100 /* Receive out-of-band data in-band. */ 33055dc21aSTom Herbert #define SO_REUSEPORT 0x0200 /* Allow local address and port reuse. */ 3461730c53SDavid Howells 3561730c53SDavid Howells #define SO_TYPE 0x1008 /* Compatible name for SO_STYLE. */ 3661730c53SDavid Howells #define SO_STYLE SO_TYPE /* Synonym */ 3761730c53SDavid Howells #define SO_ERROR 0x1007 /* get error status and clear */ 3861730c53SDavid Howells #define SO_SNDBUF 0x1001 /* Send buffer size. */ 3961730c53SDavid Howells #define SO_RCVBUF 0x1002 /* Receive buffer. */ 4061730c53SDavid Howells #define SO_SNDLOWAT 0x1003 /* send low-water mark */ 4161730c53SDavid Howells #define SO_RCVLOWAT 0x1004 /* receive low-water mark */ 4245bdc661SDeepa Dinamani #define SO_SNDTIMEO_OLD 0x1005 /* send timeout */ 4345bdc661SDeepa Dinamani #define SO_RCVTIMEO_OLD 0x1006 /* receive timeout */ 4461730c53SDavid Howells #define SO_ACCEPTCONN 0x1009 4561730c53SDavid Howells #define SO_PROTOCOL 0x1028 /* protocol type */ 4661730c53SDavid Howells #define SO_DOMAIN 0x1029 /* domain/socket family */ 4761730c53SDavid Howells 4861730c53SDavid Howells /* linux-specific, might as well be the same as on i386 */ 4961730c53SDavid Howells #define SO_NO_CHECK 11 5061730c53SDavid Howells #define SO_PRIORITY 12 5161730c53SDavid Howells #define SO_BSDCOMPAT 14 5261730c53SDavid Howells 5361730c53SDavid Howells #define SO_PASSCRED 17 5461730c53SDavid Howells #define SO_PEERCRED 18 5561730c53SDavid Howells 5661730c53SDavid Howells /* Security levels - as per NRL IPv6 - don't actually do anything */ 5761730c53SDavid Howells #define SO_SECURITY_AUTHENTICATION 22 5861730c53SDavid Howells #define SO_SECURITY_ENCRYPTION_TRANSPORT 23 5961730c53SDavid Howells #define SO_SECURITY_ENCRYPTION_NETWORK 24 6061730c53SDavid Howells 6161730c53SDavid Howells #define SO_BINDTODEVICE 25 6261730c53SDavid Howells 6361730c53SDavid Howells /* Socket filtering */ 6461730c53SDavid Howells #define SO_ATTACH_FILTER 26 6561730c53SDavid Howells #define SO_DETACH_FILTER 27 66a8fc9277SPavel Emelyanov #define SO_GET_FILTER SO_ATTACH_FILTER 6761730c53SDavid Howells 6861730c53SDavid Howells #define SO_PEERNAME 28 6961730c53SDavid Howells 7061730c53SDavid Howells #define SO_PEERSEC 30 7161730c53SDavid Howells #define SO_SNDBUFFORCE 31 7261730c53SDavid Howells #define SO_RCVBUFFORCE 33 7361730c53SDavid Howells #define SO_PASSSEC 34 7461730c53SDavid Howells 7561730c53SDavid Howells #define SO_MARK 36 7661730c53SDavid Howells 7761730c53SDavid Howells #define SO_RXQ_OVFL 40 7861730c53SDavid Howells 7961730c53SDavid Howells #define SO_WIFI_STATUS 41 8061730c53SDavid Howells #define SCM_WIFI_STATUS SO_WIFI_STATUS 8161730c53SDavid Howells #define SO_PEEK_OFF 42 8261730c53SDavid Howells 8361730c53SDavid Howells /* Instruct lower device to use last 4-bytes of skb data as FCS */ 8461730c53SDavid Howells #define SO_NOFCS 43 8561730c53SDavid Howells 86d59577b6SVincent Bernat #define SO_LOCK_FILTER 44 8761730c53SDavid Howells 887d4c04fcSKeller, Jacob E #define SO_SELECT_ERR_QUEUE 45 897d4c04fcSKeller, Jacob E 9064b0dc51SEliezer Tamir #define SO_BUSY_POLL 46 91dafcc438SEliezer Tamir 9262748f32SEric Dumazet #define SO_MAX_PACING_RATE 47 9362748f32SEric Dumazet 94ea02f941SMichal Sekletar #define SO_BPF_EXTENSIONS 48 95ea02f941SMichal Sekletar 962c8c56e1SEric Dumazet #define SO_INCOMING_CPU 49 972c8c56e1SEric Dumazet 9889aa0758SAlexei Starovoitov #define SO_ATTACH_BPF 50 9989aa0758SAlexei Starovoitov #define SO_DETACH_BPF SO_DETACH_FILTER 10089aa0758SAlexei Starovoitov 101538950a1SCraig Gallek #define SO_ATTACH_REUSEPORT_CBPF 51 102538950a1SCraig Gallek #define SO_ATTACH_REUSEPORT_EBPF 52 103538950a1SCraig Gallek 104a87cb3e4STom Herbert #define SO_CNX_ADVICE 53 105a87cb3e4STom Herbert 1061c885808SFrancis Yan #define SCM_TIMESTAMPING_OPT_STATS 54 1071c885808SFrancis Yan 108a2d133b1SJosh Hunt #define SO_MEMINFO 55 109a2d133b1SJosh Hunt 1106d433902SSridhar Samudrala #define SO_INCOMING_NAPI_ID 56 111a2d133b1SJosh Hunt 1125daab9dbSChenbo Feng #define SO_COOKIE 57 1135daab9dbSChenbo Feng 1141c4f676aSDavid S. Miller #define SCM_TIMESTAMPING_PKTINFO 58 1151c4f676aSDavid S. Miller 11628b5ba2aSDavid Herrmann #define SO_PEERGROUPS 59 11728b5ba2aSDavid Herrmann 11876851d12SWillem de Bruijn #define SO_ZEROCOPY 60 11976851d12SWillem de Bruijn 12080b14deeSRichard Cochran #define SO_TXTIME 61 12180b14deeSRichard Cochran #define SCM_TXTIME SO_TXTIME 12280b14deeSRichard Cochran 123f5dd3d0cSDavid Herrmann #define SO_BINDTOIFINDEX 62 124f5dd3d0cSDavid Herrmann 1257f1bc6e9SDeepa Dinamani #define SO_TIMESTAMP_OLD 29 1267f1bc6e9SDeepa Dinamani #define SO_TIMESTAMPNS_OLD 35 1277f1bc6e9SDeepa Dinamani #define SO_TIMESTAMPING_OLD 37 1287f1bc6e9SDeepa Dinamani 129887feae3SDeepa Dinamani #define SO_TIMESTAMP_NEW 63 130887feae3SDeepa Dinamani #define SO_TIMESTAMPNS_NEW 64 1319718475eSDeepa Dinamani #define SO_TIMESTAMPING_NEW 65 132887feae3SDeepa Dinamani 133a9beb86aSDeepa Dinamani #define SO_RCVTIMEO_NEW 66 134a9beb86aSDeepa Dinamani #define SO_SNDTIMEO_NEW 67 135a9beb86aSDeepa Dinamani 13699f3a064SMartin KaFai Lau #define SO_DETACH_REUSEPORT_BPF 68 13799f3a064SMartin KaFai Lau 1387fd3253aSBjörn Töpel #define SO_PREFER_BUSY_POLL 69 1397c951cafSBjörn Töpel #define SO_BUSY_POLL_BUDGET 70 1407fd3253aSBjörn Töpel 141e8b9eab9SMartynas Pumputis #define SO_NETNS_COOKIE 71 142e8b9eab9SMartynas Pumputis 14304190bf8SPavel Tikhomirov #define SO_BUF_LOCK 72 14404190bf8SPavel Tikhomirov 14510d48705SStephen Rothwell #define SO_RESERVE_MEM 73 14610d48705SStephen Rothwell 14726859240SAkhmat Karakotov #define SO_TXREHASH 74 14826859240SAkhmat Karakotov 1496fd1d51cSErin MacNeil #define SO_RCVMARK 75 1506fd1d51cSErin MacNeil 1515e2ff670SAlexander Mikhalitsyn #define SO_PASSPIDFD 76 152*7b26952aSAlexander Mikhalitsyn #define SO_PEERPIDFD 77 1535e2ff670SAlexander Mikhalitsyn 1547f1bc6e9SDeepa Dinamani #if !defined(__KERNEL__) 1557f1bc6e9SDeepa Dinamani 156887feae3SDeepa Dinamani #if __BITS_PER_LONG == 64 1577f1bc6e9SDeepa Dinamani #define SO_TIMESTAMP SO_TIMESTAMP_OLD 1587f1bc6e9SDeepa Dinamani #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD 1599718475eSDeepa Dinamani #define SO_TIMESTAMPING SO_TIMESTAMPING_OLD 160a9beb86aSDeepa Dinamani 161a9beb86aSDeepa Dinamani #define SO_RCVTIMEO SO_RCVTIMEO_OLD 162a9beb86aSDeepa Dinamani #define SO_SNDTIMEO SO_SNDTIMEO_OLD 163887feae3SDeepa Dinamani #else 164887feae3SDeepa Dinamani #define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW) 165887feae3SDeepa Dinamani #define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW) 1669718475eSDeepa Dinamani #define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW) 167a9beb86aSDeepa Dinamani 168a9beb86aSDeepa Dinamani #define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW) 169a9beb86aSDeepa Dinamani #define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW) 170887feae3SDeepa Dinamani #endif 171887feae3SDeepa Dinamani 1727f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMP SO_TIMESTAMP 1737f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMPNS SO_TIMESTAMPNS 1747f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMPING SO_TIMESTAMPING 1757f1bc6e9SDeepa Dinamani 1767f1bc6e9SDeepa Dinamani #endif 1777f1bc6e9SDeepa Dinamani 17861730c53SDavid Howells #endif /* _UAPI_ASM_SOCKET_H */ 179