hc
2023-12-06 08f87f769b595151be1afeff53e144f543faa614
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,44 @@
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
+#if !defined(__KERNEL__)
123
+
124
+#if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__))
125
+/* on 64-bit and x32, avoid the ?: operator */
126
+#define SO_TIMESTAMP SO_TIMESTAMP_OLD
127
+#define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD
128
+#define SO_TIMESTAMPING SO_TIMESTAMPING_OLD
129
+
130
+#define SO_RCVTIMEO SO_RCVTIMEO_OLD
131
+#define SO_SNDTIMEO SO_SNDTIMEO_OLD
132
+#else
133
+#define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW)
134
+#define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW)
135
+#define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW)
136
+
137
+#define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW)
138
+#define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW)
139
+#endif
140
+
141
+#define SCM_TIMESTAMP SO_TIMESTAMP
142
+#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
143
+#define SCM_TIMESTAMPING SO_TIMESTAMPING
144
+
145
+#endif
146
+
113147 #endif /* __ASM_GENERIC_SOCKET_H */