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 596433f6eSDavid Howells #include <asm/sockios.h> 6887feae3SDeepa Dinamani #include <asm/bitsperlong.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 3496433f6eSDavid Howells #define SO_RCVTIMEO 0x1012 3596433f6eSDavid Howells #define SO_SNDTIMEO 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 1227f1bc6e9SDeepa Dinamani #if !defined(__KERNEL__) 1237f1bc6e9SDeepa Dinamani 124887feae3SDeepa Dinamani #if __BITS_PER_LONG == 64 1257f1bc6e9SDeepa Dinamani #define SO_TIMESTAMP SO_TIMESTAMP_OLD 1267f1bc6e9SDeepa Dinamani #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD 1279718475eSDeepa Dinamani #define SO_TIMESTAMPING SO_TIMESTAMPING_OLD 128887feae3SDeepa Dinamani #else 129887feae3SDeepa Dinamani #define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW) 130887feae3SDeepa Dinamani #define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW) 1319718475eSDeepa Dinamani #define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW) 132887feae3SDeepa Dinamani #endif 133887feae3SDeepa Dinamani 1347f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMP SO_TIMESTAMP 1357f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMPNS SO_TIMESTAMPNS 1367f1bc6e9SDeepa Dinamani #define SCM_TIMESTAMPING SO_TIMESTAMPING 1377f1bc6e9SDeepa Dinamani 1387f1bc6e9SDeepa Dinamani #endif 1397f1bc6e9SDeepa Dinamani 14096433f6eSDavid Howells #endif /* _UAPI_ASM_SOCKET_H */ 141