xref: /minix/external/bsd/bind/include/isc/platform.h (revision 00b67f09)
1*00b67f09SDavid van Moolenbroek /*
2*00b67f09SDavid van Moolenbroek  * Copyright (C) 2004-2010, 2013, 2014  Internet Systems Consortium, Inc. ("ISC")
3*00b67f09SDavid van Moolenbroek  * Copyright (C) 1999-2003  Internet Software Consortium.
4*00b67f09SDavid van Moolenbroek  *
5*00b67f09SDavid van Moolenbroek  * Permission to use, copy, modify, and/or distribute this software for any
6*00b67f09SDavid van Moolenbroek  * purpose with or without fee is hereby granted, provided that the above
7*00b67f09SDavid van Moolenbroek  * copyright notice and this permission notice appear in all copies.
8*00b67f09SDavid van Moolenbroek  *
9*00b67f09SDavid van Moolenbroek  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
10*00b67f09SDavid van Moolenbroek  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11*00b67f09SDavid van Moolenbroek  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12*00b67f09SDavid van Moolenbroek  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13*00b67f09SDavid van Moolenbroek  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14*00b67f09SDavid van Moolenbroek  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15*00b67f09SDavid van Moolenbroek  * PERFORMANCE OF THIS SOFTWARE.
16*00b67f09SDavid van Moolenbroek  */
17*00b67f09SDavid van Moolenbroek 
18*00b67f09SDavid van Moolenbroek /* Id: platform.h.in,v 1.56 2010/12/18 01:56:23 each Exp  */
19*00b67f09SDavid van Moolenbroek 
20*00b67f09SDavid van Moolenbroek #ifndef ISC_PLATFORM_H
21*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_H 1
22*00b67f09SDavid van Moolenbroek 
23*00b67f09SDavid van Moolenbroek #include <sys/atomic.h>
24*00b67f09SDavid van Moolenbroek 
25*00b67f09SDavid van Moolenbroek /*! \file */
26*00b67f09SDavid van Moolenbroek 
27*00b67f09SDavid van Moolenbroek /*****
28*00b67f09SDavid van Moolenbroek  ***** Platform-dependent defines.
29*00b67f09SDavid van Moolenbroek  *****/
30*00b67f09SDavid van Moolenbroek 
31*00b67f09SDavid van Moolenbroek /***
32*00b67f09SDavid van Moolenbroek  *** Network.
33*00b67f09SDavid van Moolenbroek  ***/
34*00b67f09SDavid van Moolenbroek 
35*00b67f09SDavid van Moolenbroek /*! \brief
36*00b67f09SDavid van Moolenbroek  * Define if this system needs the <netinet/in6.h> header file included
37*00b67f09SDavid van Moolenbroek  * for full IPv6 support (pretty much only UnixWare).
38*00b67f09SDavid van Moolenbroek  */
39*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDNETINETIN6H
40*00b67f09SDavid van Moolenbroek 
41*00b67f09SDavid van Moolenbroek /*! \brief
42*00b67f09SDavid van Moolenbroek  * Define if this system needs the <netinet6/in6.h> header file included
43*00b67f09SDavid van Moolenbroek  * to support in6_pkinfo (pretty much only BSD/OS).
44*00b67f09SDavid van Moolenbroek  */
45*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDNETINET6IN6H
46*00b67f09SDavid van Moolenbroek 
47*00b67f09SDavid van Moolenbroek /*! \brief
48*00b67f09SDavid van Moolenbroek  * If sockaddrs on this system have an sa_len field, ISC_PLATFORM_HAVESALEN
49*00b67f09SDavid van Moolenbroek  * will be defined.
50*00b67f09SDavid van Moolenbroek  */
51*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVESALEN 1
52*00b67f09SDavid van Moolenbroek 
53*00b67f09SDavid van Moolenbroek /*! \brief
54*00b67f09SDavid van Moolenbroek  * If this system has the IPv6 structure definitions, ISC_PLATFORM_HAVEIPV6
55*00b67f09SDavid van Moolenbroek  * will be defined.
56*00b67f09SDavid van Moolenbroek  */
57*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVEIPV6 1
58*00b67f09SDavid van Moolenbroek 
59*00b67f09SDavid van Moolenbroek /*! \brief
60*00b67f09SDavid van Moolenbroek  * If this system is missing in6addr_any, ISC_PLATFORM_NEEDIN6ADDRANY will
61*00b67f09SDavid van Moolenbroek  * be defined.
62*00b67f09SDavid van Moolenbroek  */
63*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDIN6ADDRANY
64*00b67f09SDavid van Moolenbroek 
65*00b67f09SDavid van Moolenbroek /*! \brief
66*00b67f09SDavid van Moolenbroek  * If this system is missing in6addr_loopback, ISC_PLATFORM_NEEDIN6ADDRLOOPBACK
67*00b67f09SDavid van Moolenbroek  * will be defined.
68*00b67f09SDavid van Moolenbroek  */
69*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDIN6ADDRLOOPBACK
70*00b67f09SDavid van Moolenbroek 
71*00b67f09SDavid van Moolenbroek /*! \brief
72*00b67f09SDavid van Moolenbroek  * If this system has in6_pktinfo, ISC_PLATFORM_HAVEIN6PKTINFO will be
73*00b67f09SDavid van Moolenbroek  * defined.
74*00b67f09SDavid van Moolenbroek  */
75*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVEIN6PKTINFO 1
76*00b67f09SDavid van Moolenbroek 
77*00b67f09SDavid van Moolenbroek /*! \brief
78*00b67f09SDavid van Moolenbroek  * If this system has in_addr6, rather than in6_addr, ISC_PLATFORM_HAVEINADDR6
79*00b67f09SDavid van Moolenbroek  * will be defined.
80*00b67f09SDavid van Moolenbroek  */
81*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_HAVEINADDR6
82*00b67f09SDavid van Moolenbroek 
83*00b67f09SDavid van Moolenbroek /*! \brief
84*00b67f09SDavid van Moolenbroek  * If this system has sin6_scope_id, ISC_PLATFORM_HAVESCOPEID will be defined.
85*00b67f09SDavid van Moolenbroek  */
86*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVESCOPEID 1
87*00b67f09SDavid van Moolenbroek 
88*00b67f09SDavid van Moolenbroek /*! \brief
89*00b67f09SDavid van Moolenbroek  * If this system needs inet_ntop(), ISC_PLATFORM_NEEDNTOP will be defined.
90*00b67f09SDavid van Moolenbroek  */
91*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDNTOP
92*00b67f09SDavid van Moolenbroek 
93*00b67f09SDavid van Moolenbroek /*! \brief
94*00b67f09SDavid van Moolenbroek  * If this system needs inet_pton(), ISC_PLATFORM_NEEDPTON will be defined.
95*00b67f09SDavid van Moolenbroek  */
96*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDPTON
97*00b67f09SDavid van Moolenbroek 
98*00b67f09SDavid van Moolenbroek /*! \brief
99*00b67f09SDavid van Moolenbroek  * If this system needs in_port_t, ISC_PLATFORM_NEEDPORTT will be defined.
100*00b67f09SDavid van Moolenbroek  */
101*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDPORTT
102*00b67f09SDavid van Moolenbroek 
103*00b67f09SDavid van Moolenbroek /*! \brief
104*00b67f09SDavid van Moolenbroek  * Define if the system has struct lifconf which is a extended struct ifconf
105*00b67f09SDavid van Moolenbroek  * for IPv6.
106*00b67f09SDavid van Moolenbroek  */
107*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_HAVELIFCONF
108*00b67f09SDavid van Moolenbroek 
109*00b67f09SDavid van Moolenbroek /*! \brief
110*00b67f09SDavid van Moolenbroek  * Define if the system has struct if_laddrconf which is a extended struct
111*00b67f09SDavid van Moolenbroek  * ifconf for IPv6.
112*00b67f09SDavid van Moolenbroek  */
113*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_HAVEIF_LADDRCONF
114*00b67f09SDavid van Moolenbroek 
115*00b67f09SDavid van Moolenbroek /*! \brief
116*00b67f09SDavid van Moolenbroek  * Define if the system has struct if_laddrreq.
117*00b67f09SDavid van Moolenbroek  */
118*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_HAVEIF_LADDRREQ
119*00b67f09SDavid van Moolenbroek 
120*00b67f09SDavid van Moolenbroek /*! \brief
121*00b67f09SDavid van Moolenbroek  * Define either ISC_PLATFORM_BSD44MSGHDR or ISC_PLATFORM_BSD43MSGHDR.
122*00b67f09SDavid van Moolenbroek  */
123*00b67f09SDavid van Moolenbroek #define ISC_NET_BSD44MSGHDR 1
124*00b67f09SDavid van Moolenbroek 
125*00b67f09SDavid van Moolenbroek /*! \brief
126*00b67f09SDavid van Moolenbroek  * Define if the system supports if_nametoindex.
127*00b67f09SDavid van Moolenbroek  */
128*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVEIFNAMETOINDEX 1
129*00b67f09SDavid van Moolenbroek 
130*00b67f09SDavid van Moolenbroek /*! \brief
131*00b67f09SDavid van Moolenbroek  * Define on some UnixWare systems to fix erroneous definitions of various
132*00b67f09SDavid van Moolenbroek  * IN6_IS_ADDR_* macros.
133*00b67f09SDavid van Moolenbroek  */
134*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_FIXIN6ISADDR
135*00b67f09SDavid van Moolenbroek 
136*00b67f09SDavid van Moolenbroek /*! \brief
137*00b67f09SDavid van Moolenbroek  * Define if the system has struct sockaddr_storage.
138*00b67f09SDavid van Moolenbroek  */
139*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVESOCKADDRSTORAGE 1
140*00b67f09SDavid van Moolenbroek 
141*00b67f09SDavid van Moolenbroek /*! \brief
142*00b67f09SDavid van Moolenbroek  * Define if the system supports kqueue multiplexing
143*00b67f09SDavid van Moolenbroek  */
144*00b67f09SDavid van Moolenbroek #ifndef __minix
145*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVEKQUEUE 1
146*00b67f09SDavid van Moolenbroek #else /* __minix */
147*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_HAVEKQUEUE
148*00b67f09SDavid van Moolenbroek #endif /* __minix */
149*00b67f09SDavid van Moolenbroek 
150*00b67f09SDavid van Moolenbroek /*! \brief
151*00b67f09SDavid van Moolenbroek  * Define if the system supports epoll multiplexing
152*00b67f09SDavid van Moolenbroek  */
153*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_HAVEEPOLL
154*00b67f09SDavid van Moolenbroek 
155*00b67f09SDavid van Moolenbroek /*! \brief
156*00b67f09SDavid van Moolenbroek  * Define if the system supports /dev/poll multiplexing
157*00b67f09SDavid van Moolenbroek  */
158*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_HAVEDEVPOLL
159*00b67f09SDavid van Moolenbroek 
160*00b67f09SDavid van Moolenbroek /*! \brief
161*00b67f09SDavid van Moolenbroek  * Define if we want to log backtrace
162*00b67f09SDavid van Moolenbroek  */
163*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_USEBACKTRACE 1
164*00b67f09SDavid van Moolenbroek 
165*00b67f09SDavid van Moolenbroek /*
166*00b67f09SDavid van Moolenbroek  *** Printing.
167*00b67f09SDavid van Moolenbroek  ***/
168*00b67f09SDavid van Moolenbroek 
169*00b67f09SDavid van Moolenbroek /*! \brief
170*00b67f09SDavid van Moolenbroek  * If this system needs vsnprintf() and snprintf(), ISC_PLATFORM_NEEDVSNPRINTF
171*00b67f09SDavid van Moolenbroek  * will be defined.
172*00b67f09SDavid van Moolenbroek  */
173*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDVSNPRINTF
174*00b67f09SDavid van Moolenbroek 
175*00b67f09SDavid van Moolenbroek /*! \brief
176*00b67f09SDavid van Moolenbroek  * If this system need a modern sprintf() that returns (int) not (char*).
177*00b67f09SDavid van Moolenbroek  */
178*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDSPRINTF
179*00b67f09SDavid van Moolenbroek 
180*00b67f09SDavid van Moolenbroek /*! \brief
181*00b67f09SDavid van Moolenbroek  * The printf format string modifier to use with isc_uint64_t values.
182*00b67f09SDavid van Moolenbroek  */
183*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_QUADFORMAT "ll"
184*00b67f09SDavid van Moolenbroek 
185*00b67f09SDavid van Moolenbroek /***
186*00b67f09SDavid van Moolenbroek  *** String functions.
187*00b67f09SDavid van Moolenbroek  ***/
188*00b67f09SDavid van Moolenbroek /*
189*00b67f09SDavid van Moolenbroek  * If the system needs strsep(), ISC_PLATFORM_NEEDSTRSEP will be defined.
190*00b67f09SDavid van Moolenbroek  */
191*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDSTRSEP
192*00b67f09SDavid van Moolenbroek 
193*00b67f09SDavid van Moolenbroek /*
194*00b67f09SDavid van Moolenbroek  * If the system needs strlcpy(), ISC_PLATFORM_NEEDSTRLCPY will be defined.
195*00b67f09SDavid van Moolenbroek  */
196*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDSTRLCPY
197*00b67f09SDavid van Moolenbroek 
198*00b67f09SDavid van Moolenbroek /*
199*00b67f09SDavid van Moolenbroek  * If the system needs strlcat(), ISC_PLATFORM_NEEDSTRLCAT will be defined.
200*00b67f09SDavid van Moolenbroek  */
201*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDSTRLCAT
202*00b67f09SDavid van Moolenbroek 
203*00b67f09SDavid van Moolenbroek /*
204*00b67f09SDavid van Moolenbroek  * Define if this system needs strtoul.
205*00b67f09SDavid van Moolenbroek  */
206*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDSTRTOUL
207*00b67f09SDavid van Moolenbroek 
208*00b67f09SDavid van Moolenbroek /*
209*00b67f09SDavid van Moolenbroek  * Define if this system needs memmove.
210*00b67f09SDavid van Moolenbroek  */
211*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDMEMMOVE
212*00b67f09SDavid van Moolenbroek 
213*00b67f09SDavid van Moolenbroek /*
214*00b67f09SDavid van Moolenbroek  * Define if this system needs strcasestr.
215*00b67f09SDavid van Moolenbroek  */
216*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDSTRCASESTR
217*00b67f09SDavid van Moolenbroek 
218*00b67f09SDavid van Moolenbroek /***
219*00b67f09SDavid van Moolenbroek  *** Miscellaneous.
220*00b67f09SDavid van Moolenbroek  ***/
221*00b67f09SDavid van Moolenbroek 
222*00b67f09SDavid van Moolenbroek #if 0 /* In the Makefile */
223*00b67f09SDavid van Moolenbroek /*
224*00b67f09SDavid van Moolenbroek  * Defined if we are using threads.
225*00b67f09SDavid van Moolenbroek  */
226*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_USETHREADS 1
227*00b67f09SDavid van Moolenbroek #endif
228*00b67f09SDavid van Moolenbroek 
229*00b67f09SDavid van Moolenbroek /*
230*00b67f09SDavid van Moolenbroek  * Defined if unistd.h does not cause fd_set to be delared.
231*00b67f09SDavid van Moolenbroek  */
232*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_NEEDSYSSELECTH
233*00b67f09SDavid van Moolenbroek 
234*00b67f09SDavid van Moolenbroek /*
235*00b67f09SDavid van Moolenbroek  * Defined to <gssapi.h> or <gssapi/gssapi.h> for how to include
236*00b67f09SDavid van Moolenbroek  * the GSSAPI header.
237*00b67f09SDavid van Moolenbroek  */
238*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_GSSAPIHEADER <gssapi/gssapi.h>
239*00b67f09SDavid van Moolenbroek 
240*00b67f09SDavid van Moolenbroek /*
241*00b67f09SDavid van Moolenbroek  * Defined to <gssapi_krb5.h> or <gssapi/gssapi_krb5.h> for how to
242*00b67f09SDavid van Moolenbroek  * include the GSSAPI KRB5 header.
243*00b67f09SDavid van Moolenbroek  */
244*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_GSSAPI_KRB5_HEADER <gssapi/gssapi_krb5.h>
245*00b67f09SDavid van Moolenbroek 
246*00b67f09SDavid van Moolenbroek /*
247*00b67f09SDavid van Moolenbroek  * Defined to <krb5.h> or <krb5/krb5.h> for how to include
248*00b67f09SDavid van Moolenbroek  * the KRB5 header.
249*00b67f09SDavid van Moolenbroek  */
250*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_KRB5HEADER <krb5/krb5.h>
251*00b67f09SDavid van Moolenbroek 
252*00b67f09SDavid van Moolenbroek /*
253*00b67f09SDavid van Moolenbroek  * Type used for resource limits.
254*00b67f09SDavid van Moolenbroek  */
255*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_RLIMITTYPE rlim_t
256*00b67f09SDavid van Moolenbroek 
257*00b67f09SDavid van Moolenbroek /*
258*00b67f09SDavid van Moolenbroek  * Define if your compiler supports "long long int".
259*00b67f09SDavid van Moolenbroek  */
260*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVELONGLONG 1
261*00b67f09SDavid van Moolenbroek 
262*00b67f09SDavid van Moolenbroek /*
263*00b67f09SDavid van Moolenbroek  * Define if PTHREAD_ONCE_INIT should be surrounded by braces to
264*00b67f09SDavid van Moolenbroek  * prevent compiler warnings (such as with gcc on Solaris 2.8).
265*00b67f09SDavid van Moolenbroek  */
266*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_BRACEPTHREADONCEINIT
267*00b67f09SDavid van Moolenbroek 
268*00b67f09SDavid van Moolenbroek /*
269*00b67f09SDavid van Moolenbroek  * Used to control how extern data is linked; needed for Win32 platforms.
270*00b67f09SDavid van Moolenbroek  */
271*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_USEDECLSPEC
272*00b67f09SDavid van Moolenbroek 
273*00b67f09SDavid van Moolenbroek /*
274*00b67f09SDavid van Moolenbroek  * Define if the platform has <sys/un.h>.
275*00b67f09SDavid van Moolenbroek  */
276*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVESYSUNH 1
277*00b67f09SDavid van Moolenbroek 
278*00b67f09SDavid van Moolenbroek /*
279*00b67f09SDavid van Moolenbroek  * If the "xadd" operation is available on this architecture,
280*00b67f09SDavid van Moolenbroek  * ISC_PLATFORM_HAVEXADD will be defined.
281*00b67f09SDavid van Moolenbroek  */
282*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVEXADD 1
283*00b67f09SDavid van Moolenbroek 
284*00b67f09SDavid van Moolenbroek /*
285*00b67f09SDavid van Moolenbroek  * If the "xaddq" operation (64bit xadd) is available on this architecture,
286*00b67f09SDavid van Moolenbroek  * ISC_PLATFORM_HAVEXADDQ will be defined.
287*00b67f09SDavid van Moolenbroek  */
288*00b67f09SDavid van Moolenbroek #ifdef __HAVE_ATOMIC64_OPS
289*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVEXADDQ 1
290*00b67f09SDavid van Moolenbroek #endif
291*00b67f09SDavid van Moolenbroek 
292*00b67f09SDavid van Moolenbroek /*
293*00b67f09SDavid van Moolenbroek  * If the "atomic swap" operation is available on this architecture,
294*00b67f09SDavid van Moolenbroek  * ISC_PLATFORM_HAVEATOMICSTORE" will be defined.
295*00b67f09SDavid van Moolenbroek  */
296*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVEATOMICSTORE 1
297*00b67f09SDavid van Moolenbroek 
298*00b67f09SDavid van Moolenbroek /*
299*00b67f09SDavid van Moolenbroek  * If the "compare-and-exchange" operation is available on this architecture,
300*00b67f09SDavid van Moolenbroek  * ISC_PLATFORM_HAVECMPXCHG will be defined.
301*00b67f09SDavid van Moolenbroek  */
302*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVECMPXCHG 1
303*00b67f09SDavid van Moolenbroek 
304*00b67f09SDavid van Moolenbroek /*
305*00b67f09SDavid van Moolenbroek  * Define if gcc ASM extension is available
306*00b67f09SDavid van Moolenbroek  */
307*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_USEGCCASM 1
308*00b67f09SDavid van Moolenbroek 
309*00b67f09SDavid van Moolenbroek /*
310*00b67f09SDavid van Moolenbroek  * Define if Tru64 style ASM syntax must be used.
311*00b67f09SDavid van Moolenbroek  */
312*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_USEOSFASM
313*00b67f09SDavid van Moolenbroek 
314*00b67f09SDavid van Moolenbroek /*
315*00b67f09SDavid van Moolenbroek  * Define if the standard __asm function must be used.
316*00b67f09SDavid van Moolenbroek  */
317*00b67f09SDavid van Moolenbroek 
318*00b67f09SDavid van Moolenbroek 
319*00b67f09SDavid van Moolenbroek /*
320*00b67f09SDavid van Moolenbroek  * Define if the platform has <strings.h>.
321*00b67f09SDavid van Moolenbroek  */
322*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_HAVESTRINGSH 1
323*00b67f09SDavid van Moolenbroek 
324*00b67f09SDavid van Moolenbroek /*
325*00b67f09SDavid van Moolenbroek  * Define if the hash functions must be provided by OpenSSL.
326*00b67f09SDavid van Moolenbroek  */
327*00b67f09SDavid van Moolenbroek #undef ISC_PLATFORM_OPENSSLHASH
328*00b67f09SDavid van Moolenbroek 
329*00b67f09SDavid van Moolenbroek /*
330*00b67f09SDavid van Moolenbroek  * Define if AES must be provided by OpenSSL.
331*00b67f09SDavid van Moolenbroek  */
332*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_OPENSSLAES 1
333*00b67f09SDavid van Moolenbroek 
334*00b67f09SDavid van Moolenbroek /*
335*00b67f09SDavid van Moolenbroek  * Define if AES support is wanted
336*00b67f09SDavid van Moolenbroek  */
337*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_WANTAES 1
338*00b67f09SDavid van Moolenbroek 
339*00b67f09SDavid van Moolenbroek /*
340*00b67f09SDavid van Moolenbroek  * Defines for the noreturn attribute.
341*00b67f09SDavid van Moolenbroek  */
342*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_NORETURN_PRE
343*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_NORETURN_POST __attribute__((noreturn))
344*00b67f09SDavid van Moolenbroek 
345*00b67f09SDavid van Moolenbroek /*
346*00b67f09SDavid van Moolenbroek  * Defined if we are enabling SIT (Source Identity Token).
347*00b67f09SDavid van Moolenbroek  */
348*00b67f09SDavid van Moolenbroek #define ISC_PLATFORM_USESIT 1
349*00b67f09SDavid van Moolenbroek 
350*00b67f09SDavid van Moolenbroek /***
351*00b67f09SDavid van Moolenbroek  ***	Windows dll support.
352*00b67f09SDavid van Moolenbroek  ***/
353*00b67f09SDavid van Moolenbroek 
354*00b67f09SDavid van Moolenbroek /*
355*00b67f09SDavid van Moolenbroek  * Define if MacOS style of PPC assembly must be used.
356*00b67f09SDavid van Moolenbroek  * e.g. "r6", not "6", for register six.
357*00b67f09SDavid van Moolenbroek  */
358*00b67f09SDavid van Moolenbroek 
359*00b67f09SDavid van Moolenbroek 
360*00b67f09SDavid van Moolenbroek #ifndef ISC_PLATFORM_USEDECLSPEC
361*00b67f09SDavid van Moolenbroek #define LIBISC_EXTERNAL_DATA
362*00b67f09SDavid van Moolenbroek #define LIBDNS_EXTERNAL_DATA
363*00b67f09SDavid van Moolenbroek #define LIBISCCC_EXTERNAL_DATA
364*00b67f09SDavid van Moolenbroek #define LIBISCCFG_EXTERNAL_DATA
365*00b67f09SDavid van Moolenbroek #define LIBBIND9_EXTERNAL_DATA
366*00b67f09SDavid van Moolenbroek #define LIBTESTS_EXTERNAL_DATA
367*00b67f09SDavid van Moolenbroek #else /*! \brief ISC_PLATFORM_USEDECLSPEC */
368*00b67f09SDavid van Moolenbroek #ifdef LIBISC_EXPORTS
369*00b67f09SDavid van Moolenbroek #define LIBISC_EXTERNAL_DATA __declspec(dllexport)
370*00b67f09SDavid van Moolenbroek #else
371*00b67f09SDavid van Moolenbroek #define LIBISC_EXTERNAL_DATA __declspec(dllimport)
372*00b67f09SDavid van Moolenbroek #endif
373*00b67f09SDavid van Moolenbroek #ifdef LIBDNS_EXPORTS
374*00b67f09SDavid van Moolenbroek #define LIBDNS_EXTERNAL_DATA __declspec(dllexport)
375*00b67f09SDavid van Moolenbroek #else
376*00b67f09SDavid van Moolenbroek #define LIBDNS_EXTERNAL_DATA __declspec(dllimport)
377*00b67f09SDavid van Moolenbroek #endif
378*00b67f09SDavid van Moolenbroek #ifdef LIBISCCC_EXPORTS
379*00b67f09SDavid van Moolenbroek #define LIBISCCC_EXTERNAL_DATA __declspec(dllexport)
380*00b67f09SDavid van Moolenbroek #else
381*00b67f09SDavid van Moolenbroek #define LIBISCCC_EXTERNAL_DATA __declspec(dllimport)
382*00b67f09SDavid van Moolenbroek #endif
383*00b67f09SDavid van Moolenbroek #ifdef LIBISCCFG_EXPORTS
384*00b67f09SDavid van Moolenbroek #define LIBISCCFG_EXTERNAL_DATA __declspec(dllexport)
385*00b67f09SDavid van Moolenbroek #else
386*00b67f09SDavid van Moolenbroek #define LIBISCCFG_EXTERNAL_DATA __declspec(dllimport)
387*00b67f09SDavid van Moolenbroek #endif
388*00b67f09SDavid van Moolenbroek #ifdef LIBBIND9_EXPORTS
389*00b67f09SDavid van Moolenbroek #define LIBBIND9_EXTERNAL_DATA __declspec(dllexport)
390*00b67f09SDavid van Moolenbroek #else
391*00b67f09SDavid van Moolenbroek #define LIBBIND9_EXTERNAL_DATA __declspec(dllimport)
392*00b67f09SDavid van Moolenbroek #endif
393*00b67f09SDavid van Moolenbroek #ifdef LIBTESTS_EXPORTS
394*00b67f09SDavid van Moolenbroek #define LIBTESTS_EXTERNAL_DATA __declspec(dllexport)
395*00b67f09SDavid van Moolenbroek #else
396*00b67f09SDavid van Moolenbroek #define LIBTESTS_EXTERNAL_DATA __declspec(dllimport)
397*00b67f09SDavid van Moolenbroek #endif
398*00b67f09SDavid van Moolenbroek #endif /*! \brief ISC_PLATFORM_USEDECLSPEC */
399*00b67f09SDavid van Moolenbroek 
400*00b67f09SDavid van Moolenbroek /*
401*00b67f09SDavid van Moolenbroek  * Tell emacs to use C mode for this file.
402*00b67f09SDavid van Moolenbroek  *
403*00b67f09SDavid van Moolenbroek  * Local Variables:
404*00b67f09SDavid van Moolenbroek  * mode: c
405*00b67f09SDavid van Moolenbroek  * End:
406*00b67f09SDavid van Moolenbroek  */
407*00b67f09SDavid van Moolenbroek 
408*00b67f09SDavid van Moolenbroek #endif /* ISC_PLATFORM_H */
409