]> CyberLeo.Net >> Repos - FreeBSD/releng/7.2.git/blob - contrib/bind9/lib/isc/include/isc/platform.h.in
Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.
[FreeBSD/releng/7.2.git] / contrib / bind9 / lib / isc / include / isc / platform.h.in
1 /*
2  * Copyright (C) 2004, 2005, 2007, 2008  Internet Systems Consortium, Inc. ("ISC")
3  * Copyright (C) 1999-2003  Internet Software Consortium.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
10  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15  * PERFORMANCE OF THIS SOFTWARE.
16  */
17
18 /* $Id: platform.h.in,v 1.34.18.11 2008/06/24 23:45:55 tbox Exp $ */
19
20 #ifndef ISC_PLATFORM_H
21 #define ISC_PLATFORM_H 1
22
23 /*! \file */
24
25 /*****
26  ***** Platform-dependent defines.
27  *****/
28
29 /*
30  * Define if the platform has <strings.h>.
31  */
32 @ISC_PLATFORM_HAVESTRINGSH@
33
34 /***
35  *** Network.
36  ***/
37
38 /*! \brief
39  * Define if this system needs the <netinet/in6.h> header file included
40  * for full IPv6 support (pretty much only UnixWare).
41  */
42 @ISC_PLATFORM_NEEDNETINETIN6H@
43
44 /*! \brief
45  * Define if this system needs the <netinet6/in6.h> header file included
46  * to support in6_pkinfo (pretty much only BSD/OS).
47  */
48 @ISC_PLATFORM_NEEDNETINET6IN6H@
49
50 /*! \brief
51  * If sockaddrs on this system have an sa_len field, ISC_PLATFORM_HAVESALEN
52  * will be defined.
53  */
54 @ISC_PLATFORM_HAVESALEN@
55
56 /*! \brief
57  * If this system has the IPv6 structure definitions, ISC_PLATFORM_HAVEIPV6
58  * will be defined.
59  */
60 @ISC_PLATFORM_HAVEIPV6@
61
62 /*! \brief
63  * If this system is missing in6addr_any, ISC_PLATFORM_NEEDIN6ADDRANY will
64  * be defined.
65  */
66 @ISC_PLATFORM_NEEDIN6ADDRANY@
67
68 /*! \brief
69  * If this system is missing in6addr_loopback, ISC_PLATFORM_NEEDIN6ADDRLOOPBACK
70  * will be defined.
71  */
72 @ISC_PLATFORM_NEEDIN6ADDRLOOPBACK@
73
74 /*! \brief
75  * If this system has in6_pktinfo, ISC_PLATFORM_HAVEIN6PKTINFO will be
76  * defined.
77  */
78 @ISC_PLATFORM_HAVEIN6PKTINFO@
79
80 /*! \brief
81  * If this system has in_addr6, rather than in6_addr, ISC_PLATFORM_HAVEINADDR6
82  * will be defined.
83  */
84 @ISC_PLATFORM_HAVEINADDR6@
85
86 /*! \brief
87  * If this system has sin6_scope_id, ISC_PLATFORM_HAVESCOPEID will be defined.
88  */
89 @ISC_PLATFORM_HAVESCOPEID@
90
91 /*! \brief
92  * If this system needs inet_ntop(), ISC_PLATFORM_NEEDNTOP will be defined.
93  */
94 @ISC_PLATFORM_NEEDNTOP@
95
96 /*! \brief
97  * If this system needs inet_pton(), ISC_PLATFORM_NEEDPTON will be defined.
98  */
99 @ISC_PLATFORM_NEEDPTON@
100
101 /*! \brief
102  * If this system needs inet_aton(), ISC_PLATFORM_NEEDATON will be defined.
103  */
104 @ISC_PLATFORM_NEEDATON@
105
106 /*! \brief
107  * If this system needs in_port_t, ISC_PLATFORM_NEEDPORTT will be defined.
108  */
109 @ISC_PLATFORM_NEEDPORTT@
110
111 /*! \brief
112  * If the system needs strsep(), ISC_PLATFORM_NEEDSTRSEP will be defined.
113  */
114 @ISC_PLATFORM_NEEDSTRSEP@
115
116 /*! \brief
117  * If the system needs strlcpy(), ISC_PLATFORM_NEEDSTRLCPY will be defined.
118  */
119 @ISC_PLATFORM_NEEDSTRLCPY@
120
121 /*! \brief
122  * If the system needs strlcat(), ISC_PLATFORM_NEEDSTRLCAT will be defined.
123  */
124 @ISC_PLATFORM_NEEDSTRLCAT@
125
126 /*! \brief
127  * Define either ISC_PLATFORM_BSD44MSGHDR or ISC_PLATFORM_BSD43MSGHDR.
128  */
129 @ISC_PLATFORM_MSGHDRFLAVOR@
130
131 /*! \brief
132  * Define if PTHREAD_ONCE_INIT should be surrounded by braces to
133  * prevent compiler warnings (such as with gcc on Solaris 2.8).
134  */
135 @ISC_PLATFORM_BRACEPTHREADONCEINIT@
136
137 /*! \brief
138  * Define on some UnixWare systems to fix erroneous definitions of various
139  * IN6_IS_ADDR_* macros.
140  */
141 @ISC_PLATFORM_FIXIN6ISADDR@
142
143 /*! \brief
144  * Define if the system supports kqueue multiplexing
145  */
146 @ISC_PLATFORM_HAVEKQUEUE@
147
148 /*! \brief
149  * Define if the system supports epoll multiplexing
150  */
151 @ISC_PLATFORM_HAVEEPOLL@
152
153 /*! \brief
154  * Define if the system supports /dev/poll multiplexing
155  */
156 @ISC_PLATFORM_HAVEDEVPOLL@
157
158 /*
159  *** Printing.
160  ***/
161
162 /*! \brief
163  * If this system needs vsnprintf() and snprintf(), ISC_PLATFORM_NEEDVSNPRINTF
164  * will be defined.
165  */
166 @ISC_PLATFORM_NEEDVSNPRINTF@
167
168 /*! \brief
169  * If this system need a modern sprintf() that returns (int) not (char*).
170  */
171 @ISC_PLATFORM_NEEDSPRINTF@
172
173 /*! \brief
174  * The printf format string modifier to use with isc_uint64_t values.
175  */
176 @ISC_PLATFORM_QUADFORMAT@
177
178 /*! \brief
179  * Defined if we are using threads.
180  */
181 @ISC_PLATFORM_USETHREADS@
182
183 /*! \brief
184  * Defined if unistd.h does not cause fd_set to be delared.
185  */
186 @ISC_PLATFORM_NEEDSYSSELECTH@
187
188 /*! \brief
189  * Type used for resource limits.
190  */
191 @ISC_PLATFORM_RLIMITTYPE@
192
193 /*! \brief
194  * Define if your compiler supports "long long int".
195  */
196 @ISC_PLATFORM_HAVELONGLONG@
197
198 /*! \brief
199  * Define if the system has struct lifconf which is a extended struct ifconf
200  * for IPv6.
201  */
202 @ISC_PLATFORM_HAVELIFCONF@
203
204 /*! \brief
205  * Define if the system has struct if_laddrconf which is a extended struct
206  * ifconf for IPv6.
207  */
208 @ISC_PLATFORM_HAVEIF_LADDRCONF@
209
210 /*! \brief
211  * Define if the system has struct if_laddrreq.
212  */
213 @ISC_PLATFORM_HAVEIF_LADDRREQ@
214
215 /*! \brief
216  * Used to control how extern data is linked; needed for Win32 platforms.
217  */
218 @ISC_PLATFORM_USEDECLSPEC@
219
220 /*! \brief
221  * Define if the system supports if_nametoindex.
222  */
223 @ISC_PLATFORM_HAVEIFNAMETOINDEX@
224
225 /*! \brief
226  * Define if this system needs strtoul.
227  */
228 @ISC_PLATFORM_NEEDSTRTOUL@
229
230 /*! \brief
231  * Define if this system needs memmove.
232  */
233 @ISC_PLATFORM_NEEDMEMMOVE@
234
235 /*
236  * Define if the platform has <sys/un.h>.
237  */
238 @ISC_PLATFORM_HAVESYSUNH@
239
240 /*
241  * If the "xadd" operation is available on this architecture,
242  * ISC_PLATFORM_HAVEXADD will be defined.
243  */
244 @ISC_PLATFORM_HAVEXADD@
245
246 /*
247  * If the "atomic swap" operation is available on this architecture,
248  * ISC_PLATFORM_HAVEATOMICSTORE" will be defined.
249  */
250 @ISC_PLATFORM_HAVEATOMICSTORE@
251
252 /*
253  * If the "compare-and-exchange" operation is available on this architecture,
254  * ISC_PLATFORM_HAVECMPXCHG will be defined.
255  */
256 @ISC_PLATFORM_HAVECMPXCHG@
257
258 /*
259  * Define if gcc ASM extension is available
260  */
261 @ISC_PLATFORM_USEGCCASM@
262
263 /*
264  * Define if Tru64 style ASM syntax must be used.
265  */
266 @ISC_PLATFORM_USEOSFASM@
267
268 /*
269  * Define if the standard __asm function must be used.
270  */
271 @ISC_PLATFORM_USESTDASM@
272
273 /*
274  * Define if MacOS style of PPC assembly must be used.
275  * e.g. "r6", not "6", for register six.
276  */
277 @ISC_PLATFORM_USEMACASM@
278
279 #ifndef ISC_PLATFORM_USEDECLSPEC
280 #define LIBISC_EXTERNAL_DATA
281 #define LIBDNS_EXTERNAL_DATA
282 #define LIBISCCC_EXTERNAL_DATA
283 #define LIBISCCFG_EXTERNAL_DATA
284 #define LIBBIND9_EXTERNAL_DATA
285 #else /*! \brief ISC_PLATFORM_USEDECLSPEC */
286 #ifdef LIBISC_EXPORTS
287 #define LIBISC_EXTERNAL_DATA __declspec(dllexport)
288 #else
289 #define LIBISC_EXTERNAL_DATA __declspec(dllimport)
290 #endif
291 #ifdef LIBDNS_EXPORTS
292 #define LIBDNS_EXTERNAL_DATA __declspec(dllexport)
293 #else
294 #define LIBDNS_EXTERNAL_DATA __declspec(dllimport)
295 #endif
296 #ifdef LIBISCCC_EXPORTS
297 #define LIBISCCC_EXTERNAL_DATA __declspec(dllexport)
298 #else
299 #define LIBISCCC_EXTERNAL_DATA __declspec(dllimport)
300 #endif
301 #ifdef LIBISCCFG_EXPORTS
302 #define LIBISCCFG_EXTERNAL_DATA __declspec(dllexport)
303 #else
304 #define LIBISCCFG_EXTERNAL_DATA __declspec(dllimport)
305 #endif
306 #ifdef LIBBIND9_EXPORTS
307 #define LIBBIND9_EXTERNAL_DATA __declspec(dllexport)
308 #else
309 #define LIBBIND9_EXTERNAL_DATA __declspec(dllimport)
310 #endif
311 #endif /*! \brief ISC_PLATFORM_USEDECLSPEC */
312
313 /*
314  * Tell emacs to use C mode for this file.
315  *
316  * Local Variables:
317  * mode: c
318  * End:
319  */
320
321 #endif /* ISC_PLATFORM_H */