xref: /aosp_15_r20/external/kernel-headers/original/uapi/linux/libc-compat.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*f80ad8b4SAndroid Build Coastguard Worker /*
3*f80ad8b4SAndroid Build Coastguard Worker  * Compatibility interface for userspace libc header coordination:
4*f80ad8b4SAndroid Build Coastguard Worker  *
5*f80ad8b4SAndroid Build Coastguard Worker  * Define compatibility macros that are used to control the inclusion or
6*f80ad8b4SAndroid Build Coastguard Worker  * exclusion of UAPI structures and definitions in coordination with another
7*f80ad8b4SAndroid Build Coastguard Worker  * userspace C library.
8*f80ad8b4SAndroid Build Coastguard Worker  *
9*f80ad8b4SAndroid Build Coastguard Worker  * This header is intended to solve the problem of UAPI definitions that
10*f80ad8b4SAndroid Build Coastguard Worker  * conflict with userspace definitions. If a UAPI header has such conflicting
11*f80ad8b4SAndroid Build Coastguard Worker  * definitions then the solution is as follows:
12*f80ad8b4SAndroid Build Coastguard Worker  *
13*f80ad8b4SAndroid Build Coastguard Worker  * * Synchronize the UAPI header and the libc headers so either one can be
14*f80ad8b4SAndroid Build Coastguard Worker  *   used and such that the ABI is preserved. If this is not possible then
15*f80ad8b4SAndroid Build Coastguard Worker  *   no simple compatibility interface exists (you need to write translating
16*f80ad8b4SAndroid Build Coastguard Worker  *   wrappers and rename things) and you can't use this interface.
17*f80ad8b4SAndroid Build Coastguard Worker  *
18*f80ad8b4SAndroid Build Coastguard Worker  * Then follow this process:
19*f80ad8b4SAndroid Build Coastguard Worker  *
20*f80ad8b4SAndroid Build Coastguard Worker  * (a) Include libc-compat.h in the UAPI header.
21*f80ad8b4SAndroid Build Coastguard Worker  *      e.g. #include <linux/libc-compat.h>
22*f80ad8b4SAndroid Build Coastguard Worker  *     This include must be as early as possible.
23*f80ad8b4SAndroid Build Coastguard Worker  *
24*f80ad8b4SAndroid Build Coastguard Worker  * (b) In libc-compat.h add enough code to detect that the comflicting
25*f80ad8b4SAndroid Build Coastguard Worker  *     userspace libc header has been included first.
26*f80ad8b4SAndroid Build Coastguard Worker  *
27*f80ad8b4SAndroid Build Coastguard Worker  * (c) If the userspace libc header has been included first define a set of
28*f80ad8b4SAndroid Build Coastguard Worker  *     guard macros of the form __UAPI_DEF_FOO and set their values to 1, else
29*f80ad8b4SAndroid Build Coastguard Worker  *     set their values to 0.
30*f80ad8b4SAndroid Build Coastguard Worker  *
31*f80ad8b4SAndroid Build Coastguard Worker  * (d) Back in the UAPI header with the conflicting definitions, guard the
32*f80ad8b4SAndroid Build Coastguard Worker  *     definitions with:
33*f80ad8b4SAndroid Build Coastguard Worker  *     #if __UAPI_DEF_FOO
34*f80ad8b4SAndroid Build Coastguard Worker  *       ...
35*f80ad8b4SAndroid Build Coastguard Worker  *     #endif
36*f80ad8b4SAndroid Build Coastguard Worker  *
37*f80ad8b4SAndroid Build Coastguard Worker  * This fixes the situation where the linux headers are included *after* the
38*f80ad8b4SAndroid Build Coastguard Worker  * libc headers. To fix the problem with the inclusion in the other order the
39*f80ad8b4SAndroid Build Coastguard Worker  * userspace libc headers must be fixed like this:
40*f80ad8b4SAndroid Build Coastguard Worker  *
41*f80ad8b4SAndroid Build Coastguard Worker  * * For all definitions that conflict with kernel definitions wrap those
42*f80ad8b4SAndroid Build Coastguard Worker  *   defines in the following:
43*f80ad8b4SAndroid Build Coastguard Worker  *   #if !__UAPI_DEF_FOO
44*f80ad8b4SAndroid Build Coastguard Worker  *     ...
45*f80ad8b4SAndroid Build Coastguard Worker  *   #endif
46*f80ad8b4SAndroid Build Coastguard Worker  *
47*f80ad8b4SAndroid Build Coastguard Worker  * This prevents the redefinition of a construct already defined by the kernel.
48*f80ad8b4SAndroid Build Coastguard Worker  */
49*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_LIBC_COMPAT_H
50*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_LIBC_COMPAT_H
51*f80ad8b4SAndroid Build Coastguard Worker 
52*f80ad8b4SAndroid Build Coastguard Worker /* We have included glibc headers... */
53*f80ad8b4SAndroid Build Coastguard Worker #if defined(__GLIBC__)
54*f80ad8b4SAndroid Build Coastguard Worker 
55*f80ad8b4SAndroid Build Coastguard Worker /* Coordinate with glibc net/if.h header. */
56*f80ad8b4SAndroid Build Coastguard Worker #if defined(_NET_IF_H) && defined(__USE_MISC)
57*f80ad8b4SAndroid Build Coastguard Worker 
58*f80ad8b4SAndroid Build Coastguard Worker /* GLIBC headers included first so don't define anything
59*f80ad8b4SAndroid Build Coastguard Worker  * that would already be defined. */
60*f80ad8b4SAndroid Build Coastguard Worker 
61*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFCONF 0
62*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFMAP 0
63*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFNAMSIZ 0
64*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFREQ 0
65*f80ad8b4SAndroid Build Coastguard Worker /* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
66*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_NET_DEVICE_FLAGS 0
67*f80ad8b4SAndroid Build Coastguard Worker /* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
68*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO
69*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
70*f80ad8b4SAndroid Build Coastguard Worker #endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */
71*f80ad8b4SAndroid Build Coastguard Worker 
72*f80ad8b4SAndroid Build Coastguard Worker #else /* _NET_IF_H */
73*f80ad8b4SAndroid Build Coastguard Worker 
74*f80ad8b4SAndroid Build Coastguard Worker /* Linux headers included first, and we must define everything
75*f80ad8b4SAndroid Build Coastguard Worker  * we need. The expectation is that glibc will check the
76*f80ad8b4SAndroid Build Coastguard Worker  * __UAPI_DEF_* defines and adjust appropriately. */
77*f80ad8b4SAndroid Build Coastguard Worker 
78*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFCONF 1
79*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFMAP 1
80*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFNAMSIZ 1
81*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFREQ 1
82*f80ad8b4SAndroid Build Coastguard Worker /* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
83*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1
84*f80ad8b4SAndroid Build Coastguard Worker /* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
85*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
86*f80ad8b4SAndroid Build Coastguard Worker 
87*f80ad8b4SAndroid Build Coastguard Worker #endif /* _NET_IF_H */
88*f80ad8b4SAndroid Build Coastguard Worker 
89*f80ad8b4SAndroid Build Coastguard Worker /* Coordinate with glibc netinet/in.h header. */
90*f80ad8b4SAndroid Build Coastguard Worker #if defined(_NETINET_IN_H)
91*f80ad8b4SAndroid Build Coastguard Worker 
92*f80ad8b4SAndroid Build Coastguard Worker /* GLIBC headers included first so don't define anything
93*f80ad8b4SAndroid Build Coastguard Worker  * that would already be defined. */
94*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN_ADDR		0
95*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN_IPPROTO		0
96*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN_PKTINFO		0
97*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IP_MREQ		0
98*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_SOCKADDR_IN		0
99*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN_CLASS		0
100*f80ad8b4SAndroid Build Coastguard Worker 
101*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN6_ADDR		0
102*f80ad8b4SAndroid Build Coastguard Worker /* The exception is the in6_addr macros which must be defined
103*f80ad8b4SAndroid Build Coastguard Worker  * if the glibc code didn't define them. This guard matches
104*f80ad8b4SAndroid Build Coastguard Worker  * the guard in glibc/inet/netinet/in.h which defines the
105*f80ad8b4SAndroid Build Coastguard Worker  * additional in6_addr macros e.g. s6_addr16, and s6_addr32. */
106*f80ad8b4SAndroid Build Coastguard Worker #if defined(__USE_MISC) || defined (__USE_GNU)
107*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN6_ADDR_ALT		0
108*f80ad8b4SAndroid Build Coastguard Worker #else
109*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN6_ADDR_ALT		1
110*f80ad8b4SAndroid Build Coastguard Worker #endif
111*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_SOCKADDR_IN6		0
112*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPV6_MREQ		0
113*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPPROTO_V6		0
114*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPV6_OPTIONS		0
115*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN6_PKTINFO		0
116*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IP6_MTUINFO		0
117*f80ad8b4SAndroid Build Coastguard Worker 
118*f80ad8b4SAndroid Build Coastguard Worker #else
119*f80ad8b4SAndroid Build Coastguard Worker 
120*f80ad8b4SAndroid Build Coastguard Worker /* Linux headers included first, and we must define everything
121*f80ad8b4SAndroid Build Coastguard Worker  * we need. The expectation is that glibc will check the
122*f80ad8b4SAndroid Build Coastguard Worker  * __UAPI_DEF_* defines and adjust appropriately. */
123*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN_ADDR		1
124*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN_IPPROTO		1
125*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN_PKTINFO		1
126*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IP_MREQ		1
127*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_SOCKADDR_IN		1
128*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN_CLASS		1
129*f80ad8b4SAndroid Build Coastguard Worker 
130*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN6_ADDR		1
131*f80ad8b4SAndroid Build Coastguard Worker /* We unconditionally define the in6_addr macros and glibc must
132*f80ad8b4SAndroid Build Coastguard Worker  * coordinate. */
133*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN6_ADDR_ALT		1
134*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_SOCKADDR_IN6		1
135*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPV6_MREQ		1
136*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPPROTO_V6		1
137*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPV6_OPTIONS		1
138*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN6_PKTINFO		1
139*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IP6_MTUINFO		1
140*f80ad8b4SAndroid Build Coastguard Worker 
141*f80ad8b4SAndroid Build Coastguard Worker #endif /* _NETINET_IN_H */
142*f80ad8b4SAndroid Build Coastguard Worker 
143*f80ad8b4SAndroid Build Coastguard Worker /* Coordinate with glibc netipx/ipx.h header. */
144*f80ad8b4SAndroid Build Coastguard Worker #if defined(__NETIPX_IPX_H)
145*f80ad8b4SAndroid Build Coastguard Worker 
146*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_SOCKADDR_IPX			0
147*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPX_ROUTE_DEFINITION		0
148*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPX_INTERFACE_DEFINITION	0
149*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPX_CONFIG_DATA		0
150*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPX_ROUTE_DEF		0
151*f80ad8b4SAndroid Build Coastguard Worker 
152*f80ad8b4SAndroid Build Coastguard Worker #else /* defined(__NETIPX_IPX_H) */
153*f80ad8b4SAndroid Build Coastguard Worker 
154*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_SOCKADDR_IPX			1
155*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPX_ROUTE_DEFINITION		1
156*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPX_INTERFACE_DEFINITION	1
157*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPX_CONFIG_DATA		1
158*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPX_ROUTE_DEF		1
159*f80ad8b4SAndroid Build Coastguard Worker 
160*f80ad8b4SAndroid Build Coastguard Worker #endif /* defined(__NETIPX_IPX_H) */
161*f80ad8b4SAndroid Build Coastguard Worker 
162*f80ad8b4SAndroid Build Coastguard Worker /* Definitions for xattr.h */
163*f80ad8b4SAndroid Build Coastguard Worker #if defined(_SYS_XATTR_H)
164*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_XATTR		0
165*f80ad8b4SAndroid Build Coastguard Worker #else
166*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_XATTR		1
167*f80ad8b4SAndroid Build Coastguard Worker #endif
168*f80ad8b4SAndroid Build Coastguard Worker 
169*f80ad8b4SAndroid Build Coastguard Worker /* If we did not see any headers from any supported C libraries,
170*f80ad8b4SAndroid Build Coastguard Worker  * or we are being included in the kernel, then define everything
171*f80ad8b4SAndroid Build Coastguard Worker  * that we need. Check for previous __UAPI_* definitions to give
172*f80ad8b4SAndroid Build Coastguard Worker  * unsupported C libraries a way to opt out of any kernel definition. */
173*f80ad8b4SAndroid Build Coastguard Worker #else /* !defined(__GLIBC__) */
174*f80ad8b4SAndroid Build Coastguard Worker 
175*f80ad8b4SAndroid Build Coastguard Worker /* Definitions for if.h */
176*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IF_IFCONF
177*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFCONF 1
178*f80ad8b4SAndroid Build Coastguard Worker #endif
179*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IF_IFMAP
180*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFMAP 1
181*f80ad8b4SAndroid Build Coastguard Worker #endif
182*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IF_IFNAMSIZ
183*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFNAMSIZ 1
184*f80ad8b4SAndroid Build Coastguard Worker #endif
185*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IF_IFREQ
186*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFREQ 1
187*f80ad8b4SAndroid Build Coastguard Worker #endif
188*f80ad8b4SAndroid Build Coastguard Worker /* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
189*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS
190*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1
191*f80ad8b4SAndroid Build Coastguard Worker #endif
192*f80ad8b4SAndroid Build Coastguard Worker /* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
193*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO
194*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
195*f80ad8b4SAndroid Build Coastguard Worker #endif
196*f80ad8b4SAndroid Build Coastguard Worker 
197*f80ad8b4SAndroid Build Coastguard Worker /* Definitions for in.h */
198*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IN_ADDR
199*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN_ADDR		1
200*f80ad8b4SAndroid Build Coastguard Worker #endif
201*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IN_IPPROTO
202*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN_IPPROTO		1
203*f80ad8b4SAndroid Build Coastguard Worker #endif
204*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IN_PKTINFO
205*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN_PKTINFO		1
206*f80ad8b4SAndroid Build Coastguard Worker #endif
207*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IP_MREQ
208*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IP_MREQ		1
209*f80ad8b4SAndroid Build Coastguard Worker #endif
210*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_SOCKADDR_IN
211*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_SOCKADDR_IN		1
212*f80ad8b4SAndroid Build Coastguard Worker #endif
213*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IN_CLASS
214*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN_CLASS		1
215*f80ad8b4SAndroid Build Coastguard Worker #endif
216*f80ad8b4SAndroid Build Coastguard Worker 
217*f80ad8b4SAndroid Build Coastguard Worker /* Definitions for in6.h */
218*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IN6_ADDR
219*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN6_ADDR		1
220*f80ad8b4SAndroid Build Coastguard Worker #endif
221*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IN6_ADDR_ALT
222*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN6_ADDR_ALT		1
223*f80ad8b4SAndroid Build Coastguard Worker #endif
224*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_SOCKADDR_IN6
225*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_SOCKADDR_IN6		1
226*f80ad8b4SAndroid Build Coastguard Worker #endif
227*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IPV6_MREQ
228*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPV6_MREQ		1
229*f80ad8b4SAndroid Build Coastguard Worker #endif
230*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IPPROTO_V6
231*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPPROTO_V6		1
232*f80ad8b4SAndroid Build Coastguard Worker #endif
233*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IPV6_OPTIONS
234*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPV6_OPTIONS		1
235*f80ad8b4SAndroid Build Coastguard Worker #endif
236*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IN6_PKTINFO
237*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IN6_PKTINFO		1
238*f80ad8b4SAndroid Build Coastguard Worker #endif
239*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IP6_MTUINFO
240*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IP6_MTUINFO		1
241*f80ad8b4SAndroid Build Coastguard Worker #endif
242*f80ad8b4SAndroid Build Coastguard Worker 
243*f80ad8b4SAndroid Build Coastguard Worker /* Definitions for ipx.h */
244*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_SOCKADDR_IPX
245*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_SOCKADDR_IPX			1
246*f80ad8b4SAndroid Build Coastguard Worker #endif
247*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IPX_ROUTE_DEFINITION
248*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPX_ROUTE_DEFINITION		1
249*f80ad8b4SAndroid Build Coastguard Worker #endif
250*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IPX_INTERFACE_DEFINITION
251*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPX_INTERFACE_DEFINITION	1
252*f80ad8b4SAndroid Build Coastguard Worker #endif
253*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IPX_CONFIG_DATA
254*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPX_CONFIG_DATA		1
255*f80ad8b4SAndroid Build Coastguard Worker #endif
256*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_IPX_ROUTE_DEF
257*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_IPX_ROUTE_DEF		1
258*f80ad8b4SAndroid Build Coastguard Worker #endif
259*f80ad8b4SAndroid Build Coastguard Worker 
260*f80ad8b4SAndroid Build Coastguard Worker /* Definitions for xattr.h */
261*f80ad8b4SAndroid Build Coastguard Worker #ifndef __UAPI_DEF_XATTR
262*f80ad8b4SAndroid Build Coastguard Worker #define __UAPI_DEF_XATTR		1
263*f80ad8b4SAndroid Build Coastguard Worker #endif
264*f80ad8b4SAndroid Build Coastguard Worker 
265*f80ad8b4SAndroid Build Coastguard Worker #endif /* __GLIBC__ */
266*f80ad8b4SAndroid Build Coastguard Worker 
267*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_LIBC_COMPAT_H */
268