1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*4882a593Smuzhiyun #ifndef _ASM_SOCKET_H 3*4882a593Smuzhiyun #define _ASM_SOCKET_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/posix_types.h> 6*4882a593Smuzhiyun #include <asm/sockios.h> 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun /* For setsockopt(2) */ 9*4882a593Smuzhiyun #define SOL_SOCKET 0xffff 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #define SO_DEBUG 0x0001 12*4882a593Smuzhiyun #define SO_PASSCRED 0x0002 13*4882a593Smuzhiyun #define SO_REUSEADDR 0x0004 14*4882a593Smuzhiyun #define SO_KEEPALIVE 0x0008 15*4882a593Smuzhiyun #define SO_DONTROUTE 0x0010 16*4882a593Smuzhiyun #define SO_BROADCAST 0x0020 17*4882a593Smuzhiyun #define SO_PEERCRED 0x0040 18*4882a593Smuzhiyun #define SO_LINGER 0x0080 19*4882a593Smuzhiyun #define SO_OOBINLINE 0x0100 20*4882a593Smuzhiyun #define SO_REUSEPORT 0x0200 21*4882a593Smuzhiyun #define SO_BSDCOMPAT 0x0400 22*4882a593Smuzhiyun #define SO_RCVLOWAT 0x0800 23*4882a593Smuzhiyun #define SO_SNDLOWAT 0x1000 24*4882a593Smuzhiyun #define SO_RCVTIMEO_OLD 0x2000 25*4882a593Smuzhiyun #define SO_SNDTIMEO_OLD 0x4000 26*4882a593Smuzhiyun #define SO_ACCEPTCONN 0x8000 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun #define SO_SNDBUF 0x1001 29*4882a593Smuzhiyun #define SO_RCVBUF 0x1002 30*4882a593Smuzhiyun #define SO_SNDBUFFORCE 0x100a 31*4882a593Smuzhiyun #define SO_RCVBUFFORCE 0x100b 32*4882a593Smuzhiyun #define SO_ERROR 0x1007 33*4882a593Smuzhiyun #define SO_TYPE 0x1008 34*4882a593Smuzhiyun #define SO_PROTOCOL 0x1028 35*4882a593Smuzhiyun #define SO_DOMAIN 0x1029 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun /* Linux specific, keep the same. */ 38*4882a593Smuzhiyun #define SO_NO_CHECK 0x000b 39*4882a593Smuzhiyun #define SO_PRIORITY 0x000c 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun #define SO_BINDTODEVICE 0x000d 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun #define SO_ATTACH_FILTER 0x001a 44*4882a593Smuzhiyun #define SO_DETACH_FILTER 0x001b 45*4882a593Smuzhiyun #define SO_GET_FILTER SO_ATTACH_FILTER 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun #define SO_PEERNAME 0x001c 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun #define SO_PEERSEC 0x001e 50*4882a593Smuzhiyun #define SO_PASSSEC 0x001f 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun #define SO_MARK 0x0022 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun #define SO_RXQ_OVFL 0x0024 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun #define SO_WIFI_STATUS 0x0025 57*4882a593Smuzhiyun #define SCM_WIFI_STATUS SO_WIFI_STATUS 58*4882a593Smuzhiyun #define SO_PEEK_OFF 0x0026 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun /* Instruct lower device to use last 4-bytes of skb data as FCS */ 61*4882a593Smuzhiyun #define SO_NOFCS 0x0027 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun #define SO_LOCK_FILTER 0x0028 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun #define SO_SELECT_ERR_QUEUE 0x0029 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun #define SO_BUSY_POLL 0x0030 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun #define SO_MAX_PACING_RATE 0x0031 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun #define SO_BPF_EXTENSIONS 0x0032 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun #define SO_INCOMING_CPU 0x0033 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun #define SO_ATTACH_BPF 0x0034 76*4882a593Smuzhiyun #define SO_DETACH_BPF SO_DETACH_FILTER 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun #define SO_ATTACH_REUSEPORT_CBPF 0x0035 79*4882a593Smuzhiyun #define SO_ATTACH_REUSEPORT_EBPF 0x0036 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun #define SO_CNX_ADVICE 0x0037 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun #define SCM_TIMESTAMPING_OPT_STATS 0x0038 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun #define SO_MEMINFO 0x0039 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun #define SO_INCOMING_NAPI_ID 0x003a 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun #define SO_COOKIE 0x003b 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun #define SCM_TIMESTAMPING_PKTINFO 0x003c 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun #define SO_PEERGROUPS 0x003d 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun #define SO_ZEROCOPY 0x003e 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun #define SO_TXTIME 0x003f 98*4882a593Smuzhiyun #define SCM_TXTIME SO_TXTIME 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun #define SO_BINDTOIFINDEX 0x0041 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun /* Security levels - as per NRL IPv6 - don't actually do anything */ 103*4882a593Smuzhiyun #define SO_SECURITY_AUTHENTICATION 0x5001 104*4882a593Smuzhiyun #define SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002 105*4882a593Smuzhiyun #define SO_SECURITY_ENCRYPTION_NETWORK 0x5004 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun #define SO_TIMESTAMP_OLD 0x001d 108*4882a593Smuzhiyun #define SO_TIMESTAMPNS_OLD 0x0021 109*4882a593Smuzhiyun #define SO_TIMESTAMPING_OLD 0x0023 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun #define SO_TIMESTAMP_NEW 0x0046 112*4882a593Smuzhiyun #define SO_TIMESTAMPNS_NEW 0x0042 113*4882a593Smuzhiyun #define SO_TIMESTAMPING_NEW 0x0043 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun #define SO_RCVTIMEO_NEW 0x0044 116*4882a593Smuzhiyun #define SO_SNDTIMEO_NEW 0x0045 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun #define SO_DETACH_REUSEPORT_BPF 0x0047 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun #if !defined(__KERNEL__) 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun #if __BITS_PER_LONG == 64 124*4882a593Smuzhiyun #define SO_TIMESTAMP SO_TIMESTAMP_OLD 125*4882a593Smuzhiyun #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD 126*4882a593Smuzhiyun #define SO_TIMESTAMPING SO_TIMESTAMPING_OLD 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun #define SO_RCVTIMEO SO_RCVTIMEO_OLD 129*4882a593Smuzhiyun #define SO_SNDTIMEO SO_SNDTIMEO_OLD 130*4882a593Smuzhiyun #else 131*4882a593Smuzhiyun #define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW) 132*4882a593Smuzhiyun #define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW) 133*4882a593Smuzhiyun #define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW) 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun #define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW) 136*4882a593Smuzhiyun #define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW) 137*4882a593Smuzhiyun #endif 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun #define SCM_TIMESTAMP SO_TIMESTAMP 140*4882a593Smuzhiyun #define SCM_TIMESTAMPNS SO_TIMESTAMPNS 141*4882a593Smuzhiyun #define SCM_TIMESTAMPING SO_TIMESTAMPING 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun #endif 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun #endif /* _ASM_SOCKET_H */ 146