Greg Kroah-Hartman | 6f52b16 | 2017-11-01 15:08:43 +0100 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
Arnd Bergmann | 6103ec5 | 2009-05-13 22:56:27 +0000 | [diff] [blame] | 2 | #ifndef __ASM_GENERIC_SOCKET_H |
| 3 | #define __ASM_GENERIC_SOCKET_H |
| 4 | |
| 5 | #include <asm/sockios.h> |
Deepa Dinamani | 887feae | 2019-02-02 07:34:50 -0800 | [diff] [blame] | 6 | #include <asm/bitsperlong.h> |
Arnd Bergmann | 6103ec5 | 2009-05-13 22:56:27 +0000 | [diff] [blame] | 7 | |
| 8 | /* For setsockopt(2) */ |
| 9 | #define SOL_SOCKET 1 |
| 10 | |
| 11 | #define SO_DEBUG 1 |
| 12 | #define SO_REUSEADDR 2 |
| 13 | #define SO_TYPE 3 |
| 14 | #define SO_ERROR 4 |
| 15 | #define SO_DONTROUTE 5 |
| 16 | #define SO_BROADCAST 6 |
| 17 | #define SO_SNDBUF 7 |
| 18 | #define SO_RCVBUF 8 |
| 19 | #define SO_SNDBUFFORCE 32 |
| 20 | #define SO_RCVBUFFORCE 33 |
| 21 | #define SO_KEEPALIVE 9 |
| 22 | #define SO_OOBINLINE 10 |
| 23 | #define SO_NO_CHECK 11 |
| 24 | #define SO_PRIORITY 12 |
| 25 | #define SO_LINGER 13 |
| 26 | #define SO_BSDCOMPAT 14 |
Tom Herbert | 055dc21 | 2013-01-22 09:49:50 +0000 | [diff] [blame] | 27 | #define SO_REUSEPORT 15 |
Arnd Bergmann | 6103ec5 | 2009-05-13 22:56:27 +0000 | [diff] [blame] | 28 | #ifndef SO_PASSCRED /* powerpc only differs in these */ |
| 29 | #define SO_PASSCRED 16 |
| 30 | #define SO_PEERCRED 17 |
| 31 | #define SO_RCVLOWAT 18 |
| 32 | #define SO_SNDLOWAT 19 |
| 33 | #define SO_RCVTIMEO 20 |
| 34 | #define SO_SNDTIMEO 21 |
| 35 | #endif |
| 36 | |
| 37 | /* Security levels - as per NRL IPv6 - don't actually do anything */ |
| 38 | #define SO_SECURITY_AUTHENTICATION 22 |
| 39 | #define SO_SECURITY_ENCRYPTION_TRANSPORT 23 |
| 40 | #define SO_SECURITY_ENCRYPTION_NETWORK 24 |
| 41 | |
| 42 | #define SO_BINDTODEVICE 25 |
| 43 | |
| 44 | /* Socket filtering */ |
| 45 | #define SO_ATTACH_FILTER 26 |
| 46 | #define SO_DETACH_FILTER 27 |
Pavel Emelyanov | a8fc927 | 2012-11-01 02:01:48 +0000 | [diff] [blame] | 47 | #define SO_GET_FILTER SO_ATTACH_FILTER |
Arnd Bergmann | 6103ec5 | 2009-05-13 22:56:27 +0000 | [diff] [blame] | 48 | |
| 49 | #define SO_PEERNAME 28 |
Arnd Bergmann | 6103ec5 | 2009-05-13 22:56:27 +0000 | [diff] [blame] | 50 | |
| 51 | #define SO_ACCEPTCONN 30 |
| 52 | |
| 53 | #define SO_PEERSEC 31 |
| 54 | #define SO_PASSSEC 34 |
Arnd Bergmann | 6103ec5 | 2009-05-13 22:56:27 +0000 | [diff] [blame] | 55 | |
| 56 | #define SO_MARK 36 |
| 57 | |
Jan Engelhardt | 49c794e | 2009-08-04 07:28:28 +0000 | [diff] [blame] | 58 | #define SO_PROTOCOL 38 |
Jan Engelhardt | 0d6038e | 2009-08-04 07:28:29 +0000 | [diff] [blame] | 59 | #define SO_DOMAIN 39 |
Jan Engelhardt | 49c794e | 2009-08-04 07:28:28 +0000 | [diff] [blame] | 60 | |
Neil Horman | 3b88578 | 2009-10-12 13:26:31 -0700 | [diff] [blame] | 61 | #define SO_RXQ_OVFL 40 |
Johannes Berg | 6e3e939 | 2011-11-09 10:15:42 +0100 | [diff] [blame] | 62 | |
| 63 | #define SO_WIFI_STATUS 41 |
| 64 | #define SCM_WIFI_STATUS SO_WIFI_STATUS |
Pavel Emelyanov | ef64a54 | 2012-02-21 07:31:34 +0000 | [diff] [blame] | 65 | #define SO_PEEK_OFF 42 |
Ben Greear | 3bdc0eb | 2012-02-11 15:39:30 +0000 | [diff] [blame] | 66 | |
| 67 | /* Instruct lower device to use last 4-bytes of skb data as FCS */ |
| 68 | #define SO_NOFCS 43 |
| 69 | |
Vincent Bernat | d59577b | 2013-01-16 22:55:49 +0100 | [diff] [blame] | 70 | #define SO_LOCK_FILTER 44 |
| 71 | |
Keller, Jacob E | 7d4c04f | 2013-03-28 11:19:25 +0000 | [diff] [blame] | 72 | #define SO_SELECT_ERR_QUEUE 45 |
| 73 | |
Eliezer Tamir | 64b0dc5 | 2013-07-10 17:13:36 +0300 | [diff] [blame] | 74 | #define SO_BUSY_POLL 46 |
Eliezer Tamir | dafcc43 | 2013-06-14 16:33:57 +0300 | [diff] [blame] | 75 | |
Eric Dumazet | 62748f3 | 2013-09-24 08:20:52 -0700 | [diff] [blame] | 76 | #define SO_MAX_PACING_RATE 47 |
| 77 | |
Michal Sekletar | ea02f94 | 2014-01-17 17:09:45 +0100 | [diff] [blame] | 78 | #define SO_BPF_EXTENSIONS 48 |
| 79 | |
Eric Dumazet | 2c8c56e | 2014-11-11 05:54:28 -0800 | [diff] [blame] | 80 | #define SO_INCOMING_CPU 49 |
| 81 | |
Alexei Starovoitov | 89aa075 | 2014-12-01 15:06:35 -0800 | [diff] [blame] | 82 | #define SO_ATTACH_BPF 50 |
| 83 | #define SO_DETACH_BPF SO_DETACH_FILTER |
| 84 | |
Craig Gallek | 538950a | 2016-01-04 17:41:47 -0500 | [diff] [blame] | 85 | #define SO_ATTACH_REUSEPORT_CBPF 51 |
| 86 | #define SO_ATTACH_REUSEPORT_EBPF 52 |
| 87 | |
Tom Herbert | a87cb3e | 2016-02-24 10:02:52 -0800 | [diff] [blame] | 88 | #define SO_CNX_ADVICE 53 |
| 89 | |
Francis Yan | 1c88580 | 2016-11-27 23:07:18 -0800 | [diff] [blame] | 90 | #define SCM_TIMESTAMPING_OPT_STATS 54 |
| 91 | |
Josh Hunt | a2d133b | 2017-03-20 15:22:03 -0400 | [diff] [blame] | 92 | #define SO_MEMINFO 55 |
| 93 | |
Sridhar Samudrala | 6d43390 | 2017-03-24 10:08:36 -0700 | [diff] [blame] | 94 | #define SO_INCOMING_NAPI_ID 56 |
| 95 | |
Chenbo Feng | 5daab9d | 2017-04-05 19:00:55 -0700 | [diff] [blame] | 96 | #define SO_COOKIE 57 |
| 97 | |
Miroslav Lichvar | aad9c8c | 2017-05-19 17:52:38 +0200 | [diff] [blame] | 98 | #define SCM_TIMESTAMPING_PKTINFO 58 |
| 99 | |
David Herrmann | 28b5ba2a | 2017-06-21 10:47:15 +0200 | [diff] [blame] | 100 | #define SO_PEERGROUPS 59 |
| 101 | |
Willem de Bruijn | 76851d1 | 2017-08-03 16:29:40 -0400 | [diff] [blame] | 102 | #define SO_ZEROCOPY 60 |
| 103 | |
Richard Cochran | 80b14de | 2018-07-03 15:42:48 -0700 | [diff] [blame] | 104 | #define SO_TXTIME 61 |
| 105 | #define SCM_TXTIME SO_TXTIME |
| 106 | |
David Herrmann | f5dd3d0 | 2019-01-15 14:42:14 +0100 | [diff] [blame] | 107 | #define SO_BINDTOIFINDEX 62 |
| 108 | |
Deepa Dinamani | 7f1bc6e | 2019-02-02 07:34:46 -0800 | [diff] [blame] | 109 | #define SO_TIMESTAMP_OLD 29 |
| 110 | #define SO_TIMESTAMPNS_OLD 35 |
| 111 | #define SO_TIMESTAMPING_OLD 37 |
| 112 | |
Deepa Dinamani | 887feae | 2019-02-02 07:34:50 -0800 | [diff] [blame] | 113 | #define SO_TIMESTAMP_NEW 63 |
| 114 | #define SO_TIMESTAMPNS_NEW 64 |
Deepa Dinamani | 9718475 | 2019-02-02 07:34:51 -0800 | [diff] [blame^] | 115 | #define SO_TIMESTAMPING_NEW 65 |
Deepa Dinamani | 887feae | 2019-02-02 07:34:50 -0800 | [diff] [blame] | 116 | |
Deepa Dinamani | 7f1bc6e | 2019-02-02 07:34:46 -0800 | [diff] [blame] | 117 | #if !defined(__KERNEL__) |
| 118 | |
Deepa Dinamani | 887feae | 2019-02-02 07:34:50 -0800 | [diff] [blame] | 119 | #if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__)) |
| 120 | /* on 64-bit and x32, avoid the ?: operator */ |
| 121 | #define SO_TIMESTAMP SO_TIMESTAMP_OLD |
| 122 | #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD |
Deepa Dinamani | 9718475 | 2019-02-02 07:34:51 -0800 | [diff] [blame^] | 123 | #define SO_TIMESTAMPING SO_TIMESTAMPING_OLD |
Deepa Dinamani | 887feae | 2019-02-02 07:34:50 -0800 | [diff] [blame] | 124 | #else |
| 125 | #define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW) |
| 126 | #define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW) |
Deepa Dinamani | 9718475 | 2019-02-02 07:34:51 -0800 | [diff] [blame^] | 127 | #define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW) |
Deepa Dinamani | 887feae | 2019-02-02 07:34:50 -0800 | [diff] [blame] | 128 | #endif |
| 129 | |
Deepa Dinamani | 7f1bc6e | 2019-02-02 07:34:46 -0800 | [diff] [blame] | 130 | #define SCM_TIMESTAMP SO_TIMESTAMP |
| 131 | #define SCM_TIMESTAMPNS SO_TIMESTAMPNS |
| 132 | #define SCM_TIMESTAMPING SO_TIMESTAMPING |
| 133 | |
| 134 | #endif |
| 135 | |
Arnd Bergmann | 6103ec5 | 2009-05-13 22:56:27 +0000 | [diff] [blame] | 136 | #endif /* __ASM_GENERIC_SOCKET_H */ |