hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/include/uapi/asm-generic/socket.h
....@@ -2,6 +2,7 @@
22 #ifndef __ASM_GENERIC_SOCKET_H
33 #define __ASM_GENERIC_SOCKET_H
44
5
+#include <linux/posix_types.h>
56 #include <asm/sockios.h>
67
78 /* For setsockopt(2) */
....@@ -29,8 +30,8 @@
2930 #define SO_PEERCRED 17
3031 #define SO_RCVLOWAT 18
3132 #define SO_SNDLOWAT 19
32
-#define SO_RCVTIMEO 20
33
-#define SO_SNDTIMEO 21
33
+#define SO_RCVTIMEO_OLD 20
34
+#define SO_SNDTIMEO_OLD 21
3435 #endif
3536
3637 /* Security levels - as per NRL IPv6 - don't actually do anything */
....@@ -46,20 +47,13 @@
4647 #define SO_GET_FILTER SO_ATTACH_FILTER
4748
4849 #define SO_PEERNAME 28
49
-#define SO_TIMESTAMP 29
50
-#define SCM_TIMESTAMP SO_TIMESTAMP
5150
5251 #define SO_ACCEPTCONN 30
5352
5453 #define SO_PEERSEC 31
5554 #define SO_PASSSEC 34
56
-#define SO_TIMESTAMPNS 35
57
-#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
5855
5956 #define SO_MARK 36
60
-
61
-#define SO_TIMESTAMPING 37
62
-#define SCM_TIMESTAMPING SO_TIMESTAMPING
6357
6458 #define SO_PROTOCOL 38
6559 #define SO_DOMAIN 39
....@@ -110,4 +104,46 @@
110104 #define SO_TXTIME 61
111105 #define SCM_TXTIME SO_TXTIME
112106
107
+#define SO_BINDTOIFINDEX 62
108
+
109
+#define SO_TIMESTAMP_OLD 29
110
+#define SO_TIMESTAMPNS_OLD 35
111
+#define SO_TIMESTAMPING_OLD 37
112
+
113
+#define SO_TIMESTAMP_NEW 63
114
+#define SO_TIMESTAMPNS_NEW 64
115
+#define SO_TIMESTAMPING_NEW 65
116
+
117
+#define SO_RCVTIMEO_NEW 66
118
+#define SO_SNDTIMEO_NEW 67
119
+
120
+#define SO_DETACH_REUSEPORT_BPF 68
121
+
122
+#define SO_NETNS_COOKIE 71
123
+
124
+#if !defined(__KERNEL__)
125
+
126
+#if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__))
127
+/* on 64-bit and x32, avoid the ?: operator */
128
+#define SO_TIMESTAMP SO_TIMESTAMP_OLD
129
+#define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD
130
+#define SO_TIMESTAMPING SO_TIMESTAMPING_OLD
131
+
132
+#define SO_RCVTIMEO SO_RCVTIMEO_OLD
133
+#define SO_SNDTIMEO SO_SNDTIMEO_OLD
134
+#else
135
+#define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW)
136
+#define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW)
137
+#define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW)
138
+
139
+#define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW)
140
+#define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW)
141
+#endif
142
+
143
+#define SCM_TIMESTAMP SO_TIMESTAMP
144
+#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
145
+#define SCM_TIMESTAMPING SO_TIMESTAMPING
146
+
147
+#endif
148
+
113149 #endif /* __ASM_GENERIC_SOCKET_H */