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