platform.h.in revision 135446
1/*
2 * Copyright (C) 2004  Internet Systems Consortium, Inc. ("ISC")
3 * Copyright (C) 1999-2003  Internet Software Consortium.
4 *
5 * Permission to use, copy, modify, and 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.24.2.1.10.11 2004/03/08 09:04:52 marka Exp $ */
19
20#ifndef ISC_PLATFORM_H
21#define ISC_PLATFORM_H 1
22
23/*****
24 ***** Platform-dependent defines.
25 *****/
26
27/***
28 *** Network.
29 ***/
30
31/*
32 * Define if this system needs the <netinet/in6.h> header file included
33 * for full IPv6 support (pretty much only UnixWare).
34 */
35@ISC_PLATFORM_NEEDNETINETIN6H@
36
37/*
38 * Define if this system needs the <netinet6/in6.h> header file included
39 * to support in6_pkinfo (pretty much only BSD/OS).
40 */
41@ISC_PLATFORM_NEEDNETINET6IN6H@
42
43/*
44 * If sockaddrs on this system have an sa_len field, ISC_PLATFORM_HAVESALEN
45 * will be defined.
46 */
47@ISC_PLATFORM_HAVESALEN@
48
49/*
50 * If this system has the IPv6 structure definitions, ISC_PLATFORM_HAVEIPV6
51 * will be defined.
52 */
53@ISC_PLATFORM_HAVEIPV6@
54
55/*
56 * If this system is missing in6addr_any, ISC_PLATFORM_NEEDIN6ADDRANY will
57 * be defined.
58 */
59@ISC_PLATFORM_NEEDIN6ADDRANY@
60
61/*
62 * If this system is missing in6addr_loopback, ISC_PLATFORM_NEEDIN6ADDRLOOPBACK
63 * will be defined.
64 */
65@ISC_PLATFORM_NEEDIN6ADDRLOOPBACK@
66
67/*
68 * If this system has in6_pktinfo, ISC_PLATFORM_HAVEIN6PKTINFO will be
69 * defined.
70 */
71@ISC_PLATFORM_HAVEIN6PKTINFO@
72
73/*
74 * If this system has in_addr6, rather than in6_addr, ISC_PLATFORM_HAVEINADDR6
75 * will be defined.
76 */
77@ISC_PLATFORM_HAVEINADDR6@
78
79/*
80 * If this system has sin6_scope_id, ISC_PLATFORM_HAVESCOPEID will be defined.
81 */
82@ISC_PLATFORM_HAVESCOPEID@
83
84/*
85 * If this system needs inet_ntop(), ISC_PLATFORM_NEEDNTOP will be defined.
86 */
87@ISC_PLATFORM_NEEDNTOP@
88
89/*
90 * If this system needs inet_pton(), ISC_PLATFORM_NEEDPTON will be defined.
91 */
92@ISC_PLATFORM_NEEDPTON@
93
94/*
95 * If this system needs inet_aton(), ISC_PLATFORM_NEEDATON will be defined.
96 */
97@ISC_PLATFORM_NEEDATON@
98
99/*
100 * If this system needs in_port_t, ISC_PLATFORM_NEEDPORTT will be defined.
101 */
102@ISC_PLATFORM_NEEDPORTT@
103
104/*
105 * If the system needs strsep(), ISC_PLATFORM_NEEDSTRSEP will be defined.
106 */
107@ISC_PLATFORM_NEEDSTRSEP@
108
109/*
110 * If the system needs strlcpy(), ISC_PLATFORM_NEEDSTRLCPY will be defined.
111 */
112@ISC_PLATFORM_NEEDSTRLCPY@
113
114/*
115 * If the system needs strlcat(), ISC_PLATFORM_NEEDSTRLCAT will be defined.
116 */
117@ISC_PLATFORM_NEEDSTRLCAT@
118
119/*
120 * Define either ISC_PLATFORM_BSD44MSGHDR or ISC_PLATFORM_BSD43MSGHDR.
121 */
122@ISC_PLATFORM_MSGHDRFLAVOR@
123
124/*
125 * Define if PTHREAD_ONCE_INIT should be surrounded by braces to
126 * prevent compiler warnings (such as with gcc on Solaris 2.8).
127 */
128@ISC_PLATFORM_BRACEPTHREADONCEINIT@
129
130/*
131 * Define on some UnixWare systems to fix erroneous definitions of various
132 * IN6_IS_ADDR_* macros.
133 */
134@ISC_PLATFORM_FIXIN6ISADDR@
135
136/***
137 *** Printing.
138 ***/
139
140/*
141 * If this system needs vsnprintf() and snprintf(), ISC_PLATFORM_NEEDVSNPRINTF
142 * will be defined.
143 */
144@ISC_PLATFORM_NEEDVSNPRINTF@
145
146/*
147 * If this system need a modern sprintf() that returns (int) not (char*).
148 */
149@ISC_PLATFORM_NEEDSPRINTF@
150
151/*
152 * The printf format string modifier to use with isc_uint64_t values.
153 */
154@ISC_PLATFORM_QUADFORMAT@
155
156/*
157 * Defined if we are using threads.
158 */
159@ISC_PLATFORM_USETHREADS@
160
161/*
162 * Defined if unistd.h does not cause fd_set to be delared.
163 */
164@ISC_PLATFORM_NEEDSYSSELECTH@
165
166/*
167 * Type used for resource limits.
168 */
169@ISC_PLATFORM_RLIMITTYPE@
170
171/*
172 * Define if your compiler supports "long long int".
173 */
174@ISC_PLATFORM_HAVELONGLONG@
175
176/*
177 * Define if the system has struct lifconf which is a extended struct ifconf
178 * for IPv6.
179 */
180@ISC_PLATFORM_HAVELIFCONF@
181
182/*
183 * Define if the system has struct if_laddrconf which is a extended struct
184 * ifconf for IPv6.
185 */
186@ISC_PLATFORM_HAVEIF_LADDRCONF@
187
188/*
189 * Define if the system has struct if_laddrreq.
190 */
191@ISC_PLATFORM_HAVEIF_LADDRREQ@
192
193/*
194 * Used to control how extern data is linked; needed for Win32 platforms.
195 */
196@ISC_PLATFORM_USEDECLSPEC@
197
198/*
199 * Define if the system supports if_nametoindex.
200 */
201@ISC_PLATFORM_HAVEIFNAMETOINDEX@
202
203/*
204 * Define if this system needs strtoul.
205 */
206@ISC_PLATFORM_NEEDSTRTOUL@
207
208/*
209 * Define if this system needs memmove.
210 */
211@ISC_PLATFORM_NEEDMEMMOVE@
212
213#ifndef ISC_PLATFORM_USEDECLSPEC
214#define LIBISC_EXTERNAL_DATA
215#define LIBDNS_EXTERNAL_DATA
216#define LIBISCCC_EXTERNAL_DATA
217#define LIBISCCFG_EXTERNAL_DATA
218#define LIBBIND9_EXTERNAL_DATA
219#else /* ISC_PLATFORM_USEDECLSPEC */
220#ifdef LIBISC_EXPORTS
221#define LIBISC_EXTERNAL_DATA __declspec(dllexport)
222#else
223#define LIBISC_EXTERNAL_DATA __declspec(dllimport)
224#endif
225#ifdef LIBDNS_EXPORTS
226#define LIBDNS_EXTERNAL_DATA __declspec(dllexport)
227#else
228#define LIBDNS_EXTERNAL_DATA __declspec(dllimport)
229#endif
230#ifdef LIBISCCC_EXPORTS
231#define LIBISCCC_EXTERNAL_DATA __declspec(dllexport)
232#else
233#define LIBISCCC_EXTERNAL_DATA __declspec(dllimport)
234#endif
235#ifdef LIBISCCFG_EXPORTS
236#define LIBISCCFG_EXTERNAL_DATA __declspec(dllexport)
237#else
238#define LIBISCCFG_EXTERNAL_DATA __declspec(dllimport)
239#endif
240#ifdef LIBBIND9_EXPORTS
241#define LIBBIND9_EXTERNAL_DATA __declspec(dllexport)
242#else
243#define LIBBIND9_EXTERNAL_DATA __declspec(dllimport)
244#endif
245#endif /* ISC_PLATFORM_USEDECLSPEC */
246
247/*
248 * Tell emacs to use C mode for this file.
249 *
250 * Local Variables:
251 * mode: c
252 * End:
253 */
254
255#endif /* ISC_PLATFORM_H */
256