hc
2024-05-16 8d2a02b24d66aa359e83eebc1ed3c0f85367a1cb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI_ASM_SOCKET_H
#define _UAPI_ASM_SOCKET_H
 
#include <linux/posix_types.h>
#include <asm/sockios.h>
 
/* For setsockopt(2) */
/*
 * Note: we only bother about making the SOL_SOCKET options
 * same as OSF/1, as that's all that "normal" programs are
 * likely to set.  We don't necessarily want to be binary
 * compatible with _everything_. 
 */
#define SOL_SOCKET    0xffff
 
#define SO_DEBUG    0x0001
#define SO_REUSEADDR    0x0004
#define SO_KEEPALIVE    0x0008
#define SO_DONTROUTE    0x0010
#define SO_BROADCAST    0x0020
#define SO_LINGER    0x0080
#define SO_OOBINLINE    0x0100
#define SO_REUSEPORT    0x0200
 
#define SO_TYPE        0x1008
#define SO_ERROR    0x1007
#define SO_SNDBUF    0x1001
#define SO_RCVBUF    0x1002
#define SO_SNDBUFFORCE    0x100a
#define SO_RCVBUFFORCE    0x100b
#define    SO_RCVLOWAT    0x1010
#define    SO_SNDLOWAT    0x1011
#define    SO_RCVTIMEO_OLD    0x1012
#define    SO_SNDTIMEO_OLD    0x1013
#define SO_ACCEPTCONN    0x1014
#define SO_PROTOCOL    0x1028
#define SO_DOMAIN    0x1029
 
/* linux-specific, might as well be the same as on i386 */
#define SO_NO_CHECK    11
#define SO_PRIORITY    12
#define SO_BSDCOMPAT    14
 
#define SO_PASSCRED    17
#define SO_PEERCRED    18
#define SO_BINDTODEVICE 25
 
/* Socket filtering */
#define SO_ATTACH_FILTER        26
#define SO_DETACH_FILTER        27
#define SO_GET_FILTER        SO_ATTACH_FILTER
 
#define SO_PEERNAME        28
 
#define SO_PEERSEC        30
#define SO_PASSSEC        34
 
/* Security levels - as per NRL IPv6 - don't actually do anything */
#define SO_SECURITY_AUTHENTICATION        19
#define SO_SECURITY_ENCRYPTION_TRANSPORT    20
#define SO_SECURITY_ENCRYPTION_NETWORK        21
 
#define SO_MARK            36
 
#define SO_RXQ_OVFL             40
 
#define SO_WIFI_STATUS        41
#define SCM_WIFI_STATUS        SO_WIFI_STATUS
#define SO_PEEK_OFF        42
 
/* Instruct lower device to use last 4-bytes of skb data as FCS */
#define SO_NOFCS        43
 
#define SO_LOCK_FILTER        44
 
#define SO_SELECT_ERR_QUEUE    45
 
#define SO_BUSY_POLL        46
 
#define SO_MAX_PACING_RATE    47
 
#define SO_BPF_EXTENSIONS    48
 
#define SO_INCOMING_CPU        49
 
#define SO_ATTACH_BPF        50
#define SO_DETACH_BPF        SO_DETACH_FILTER
 
#define SO_ATTACH_REUSEPORT_CBPF    51
#define SO_ATTACH_REUSEPORT_EBPF    52
 
#define SO_CNX_ADVICE        53
 
#define SCM_TIMESTAMPING_OPT_STATS    54
 
#define SO_MEMINFO        55
 
#define SO_INCOMING_NAPI_ID    56
 
#define SO_COOKIE        57
 
#define SCM_TIMESTAMPING_PKTINFO    58
 
#define SO_PEERGROUPS        59
 
#define SO_ZEROCOPY        60
 
#define SO_TXTIME        61
#define SCM_TXTIME        SO_TXTIME
 
#define SO_BINDTOIFINDEX    62
 
#define SO_TIMESTAMP_OLD        29
#define SO_TIMESTAMPNS_OLD      35
#define SO_TIMESTAMPING_OLD     37
 
#define SO_TIMESTAMP_NEW        63
#define SO_TIMESTAMPNS_NEW      64
#define SO_TIMESTAMPING_NEW     65
 
#define SO_RCVTIMEO_NEW         66
#define SO_SNDTIMEO_NEW         67
 
#define SO_DETACH_REUSEPORT_BPF 68
 
#define SO_NETNS_COOKIE        71
 
#if !defined(__KERNEL__)
 
#if __BITS_PER_LONG == 64
#define SO_TIMESTAMP        SO_TIMESTAMP_OLD
#define SO_TIMESTAMPNS        SO_TIMESTAMPNS_OLD
#define SO_TIMESTAMPING         SO_TIMESTAMPING_OLD
 
#define SO_RCVTIMEO        SO_RCVTIMEO_OLD
#define SO_SNDTIMEO        SO_SNDTIMEO_OLD
#else
#define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW)
#define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW)
#define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW)
 
#define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW)
#define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW)
#endif
 
#define SCM_TIMESTAMP           SO_TIMESTAMP
#define SCM_TIMESTAMPNS         SO_TIMESTAMPNS
#define SCM_TIMESTAMPING        SO_TIMESTAMPING
 
#endif
 
#endif /* _UAPI_ASM_SOCKET_H */