8688e7005afed694ca129d00d3cd73b32828804bTinderbox User * Copyright (C) 1999-2010, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * This Source Code Form is subject to the terms of the Mozilla Public
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * License, v. 2.0. If a copy of the MPL was not distributed with this
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * file, You can obtain one at http://mozilla.org/MPL/2.0/.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley ***** Platform-dependent defines.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley *** Network.
e6ce1a0ea9ddc79fab12bf72e8eb8937498c5f66David Lawrence * Define if this system needs the <netinet/in6.h> header file included
e6ce1a0ea9ddc79fab12bf72e8eb8937498c5f66David Lawrence * for full IPv6 support (pretty much only UnixWare).
e52750239ef7441b1feab81410824a7dde05f809David Lawrence * Define if this system needs the <netinet6/in6.h> header file included
e52750239ef7441b1feab81410824a7dde05f809David Lawrence * to support in6_pkinfo (pretty much only BSD/OS).
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * If sockaddrs on this system have an sa_len field, ISC_PLATFORM_HAVESALEN
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * will be defined.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * If this system has the IPv6 structure definitions, ISC_PLATFORM_HAVEIPV6
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * will be defined.
435532822dc571a904207d8176e063cc8731eef5Bob Halley * If this system is missing in6addr_any, ISC_PLATFORM_NEEDIN6ADDRANY will
435532822dc571a904207d8176e063cc8731eef5Bob Halley * be defined.
9f6c66e1b3902b61256267d124f1b9cd61402e76Andreas Gustafsson * If this system is missing in6addr_loopback, ISC_PLATFORM_NEEDIN6ADDRLOOPBACK
9f6c66e1b3902b61256267d124f1b9cd61402e76Andreas Gustafsson * will be defined.
ece3d6c35693f9e2145434b0bf14e8b752cdeee8Michael Graff * If this system has in6_pktinfo, ISC_PLATFORM_HAVEIN6PKTINFO will be
4e7942dc7612acb71b111a5e8d919960f5a9efc5Mark Andrews * If this system has in_addr6, rather than in6_addr, ISC_PLATFORM_HAVEINADDR6
4e7942dc7612acb71b111a5e8d919960f5a9efc5Mark Andrews * will be defined.
6526fd032fc418411da3af4201214e95c113d3e2Mark Andrews * If this system has sin6_scope_id, ISC_PLATFORM_HAVESCOPEID will be defined.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * If this system needs inet_ntop(), ISC_PLATFORM_NEEDNTOP will be defined.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * If this system needs inet_pton(), ISC_PLATFORM_NEEDPTON will be defined.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * If this system needs in_port_t, ISC_PLATFORM_NEEDPORTT will be defined.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if the system has struct lifconf which is a extended struct ifconf
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if the system has struct if_laddrconf which is a extended struct
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * ifconf for IPv6.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if the system has struct if_laddrreq.
ed71ea51c6ecb5d7d659b6e6a20f6b3f5c2678c6David Lawrence * Define either ISC_PLATFORM_BSD44MSGHDR or ISC_PLATFORM_BSD43MSGHDR.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if the system supports if_nametoindex.
e544b507b8019a62c5d2716281f6832519a8791dDavid Lawrence * Define on some UnixWare systems to fix erroneous definitions of various
e544b507b8019a62c5d2716281f6832519a8791dDavid Lawrence * IN6_IS_ADDR_* macros.
d8f2dd46cba3a16c2433e85657a5b15543013ca6Mark Andrews * Define if the system has struct sockaddr_storage.
c5342425ea5568af04f4b87d5d9690453b21c9f1Mark Andrews * Define if the system has TCP_FASTOPEN socket option.
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 * Define if the system supports kqueue multiplexing
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 * Define if the system supports epoll multiplexing
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 * Define if the system supports /dev/poll multiplexing
a27fe4c990f96bd792f2a07ca4d38c78d5b9df2cTatuya JINMEI 神明達哉 * Define if we want to log backtrace
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley *** Printing.
5152622c346405b575acd30f62a7b4941606262dMark Andrews * If this system needs vsnprintf() and snprintf(), ISC_PLATFORM_NEEDVSNPRINTF
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * will be defined.
f95231835fdcd8d5f58486c9f9993602f27fe157Mark Andrews * If this system need a modern sprintf() that returns (int) not (char*).
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt * If this system need a modern printf() that format size %z (size_t).
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt * If this system need a modern fprintf() that format size %z (size_t).
28a3d529046ec5536e1ea619454624b683509675Andreas Gustafsson * The printf format string modifier to use with isc_uint64_t values.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews *** String functions.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * If the system needs strsep(), ISC_PLATFORM_NEEDSTRSEP will be defined.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * If the system needs strlcpy(), ISC_PLATFORM_NEEDSTRLCPY will be defined.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * If the system needs strlcat(), ISC_PLATFORM_NEEDSTRLCAT will be defined.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if this system needs strtoul.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if this system needs memmove.
52e6d8a36d410baa8a93b6c1e74619826be6bd6aMark Andrews * Define if this system needs strcasestr.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews *** Miscellaneous.
892abf317831dc328e3b878edce3adf7c92d2283Andreas Gustafsson * Defined if we are using threads.
66ad1d85cbdad4fd35661c98ad2ec52f9500f5cdMark Andrews * Defined if unistd.h does not cause fd_set to be delared.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Defined to <gssapi.h> or <gssapi/gssapi.h> for how to include
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * the GSSAPI header.
71bd858d8ed62672e7c23999dc7c02fd16a55089Evan Hunt * Defined to <gssapi_krb5.h> or <gssapi/gssapi_krb5.h> for how to
71bd858d8ed62672e7c23999dc7c02fd16a55089Evan Hunt * include the GSSAPI KRB5 header.
a20996ab6ff2be473b85470fddd2380a3e180e7bMark Andrews * Defined to <krb5.h> or <krb5/krb5.h> for how to include
a20996ab6ff2be473b85470fddd2380a3e180e7bMark Andrews * the KRB5 header.
28053af04c5121ec234c320e4c76273305816e7aEvan Hunt * Define if the system has nanosecond-level accuracy in file stats.
4ae98f5100832152d16168d858cfcefabe304ca5Mark Andrews * Type used for resource limits.
754cca729dd82ae8363917dc00ad44f9d900635bMark Andrews * Define if your compiler supports "long long int".
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if PTHREAD_ONCE_INIT should be surrounded by braces to
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * prevent compiler warnings (such as with gcc on Solaris 2.8).
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence * Used to control how extern data is linked; needed for Win32 platforms.
4423c99613db1399dbb5c51e86ef0d351a1418c2Mark Andrews * Define if the platform has <sys/un.h>.
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉 * If the "xadd" operation is available on this architecture,
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater * ISC_PLATFORM_HAVEXADD will be defined.
1c3ed2a83d176d9023b51b60dfc96c133f678362Tatuya JINMEI 神明達哉 * If the "xaddq" operation (64bit xadd) is available on this architecture,
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater * ISC_PLATFORM_HAVEXADDQ will be defined.
821ff5e8fa1df2e09fea157ee3e298eef6cf4ec9Evan Hunt * If the 32-bit "atomic swap" operation is available on this
821ff5e8fa1df2e09fea157ee3e298eef6cf4ec9Evan Hunt * architecture, ISC_PLATFORM_HAVEATOMICSTORE" will be defined.
821ff5e8fa1df2e09fea157ee3e298eef6cf4ec9Evan Hunt * If the 64-bit "atomic swap" operation is available on this
821ff5e8fa1df2e09fea157ee3e298eef6cf4ec9Evan Hunt * architecture, ISC_PLATFORM_HAVEATOMICSTORE" will be defined.
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉 * If the "compare-and-exchange" operation is available on this architecture,
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater * ISC_PLATFORM_HAVECMPXCHG will be defined.
99056063905a9273ec59cf477ae747e0490182b7Mukund Sivaraman * If <stdatomic.h> is available on this architecture,
99056063905a9273ec59cf477ae747e0490182b7Mukund Sivaraman * ISC_PLATFORM_HAVESTDATOMIC will be defined.
c528bd698637d84a0081d26a58813607c7f52bb7Tatuya JINMEI 神明達哉 * Define if gcc ASM extension is available
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉 * Define if Tru64 style ASM syntax must be used.
c528bd698637d84a0081d26a58813607c7f52bb7Tatuya JINMEI 神明達哉 * Define if the standard __asm function must be used.
cf24cbd837617c5cb89f04ba97b262be21a925bfEvan Hunt * Define with the busy wait nop asm or function call.
d468b1b7b2ccfdf132df15f600be48dccf447eb1Evan Hunt * Define if the platform has <strings.h>.
c1d7e0562f6a72ecc07ab5140cf2b88183adbd08Francis Dupont * Define if the hash functions must be provided by OpenSSL.
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan Hunt * Define if AES support is wanted
debd489a44363870f96f75818e89ec27d3cab736Francis Dupont * Defines for the noreturn attribute.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews *** Windows dll support.
f31446e6b5925395fce4f62adf71f7ad70cea6ceMark Andrews * Define if MacOS style of PPC assembly must be used.
f31446e6b5925395fce4f62adf71f7ad70cea6ceMark Andrews * e.g. "r6", not "6", for register six.
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein#else /*! \brief ISC_PLATFORM_USEDECLSPEC */
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISC_EXTERNAL_DATA __declspec(dllexport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISC_EXTERNAL_DATA __declspec(dllimport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBDNS_EXTERNAL_DATA __declspec(dllexport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBDNS_EXTERNAL_DATA __declspec(dllimport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISCCC_EXTERNAL_DATA __declspec(dllexport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISCCC_EXTERNAL_DATA __declspec(dllimport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISCCFG_EXTERNAL_DATA __declspec(dllexport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISCCFG_EXTERNAL_DATA __declspec(dllimport)
e61793f0865117ad87a19d6e245bea8f3b712d1bDanny Mayer#define LIBBIND9_EXTERNAL_DATA __declspec(dllexport)
e61793f0865117ad87a19d6e245bea8f3b712d1bDanny Mayer#define LIBBIND9_EXTERNAL_DATA __declspec(dllimport)
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews#define LIBTESTS_EXTERNAL_DATA __declspec(dllexport)
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews#define LIBTESTS_EXTERNAL_DATA __declspec(dllimport)
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * Tell emacs to use C mode for this file.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * Local Variables: