51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley/*
8688e7005afed694ca129d00d3cd73b32828804bTinderbox User * Copyright (C) 1999-2010, 2013-2017 Internet Systems Consortium, Inc. ("ISC")
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence *
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 */
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley#ifndef ISC_PLATFORM_H
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley#define ISC_PLATFORM_H 1
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \file */
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley/*****
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley ***** Platform-dependent defines.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley *****/
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley/***
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley *** Network.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley ***/
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
e6ce1a0ea9ddc79fab12bf72e8eb8937498c5f66David Lawrence * Define if this system needs the <netinet/in6.h> header file included
e6ce1a0ea9ddc79fab12bf72e8eb8937498c5f66David Lawrence * for full IPv6 support (pretty much only UnixWare).
e6ce1a0ea9ddc79fab12bf72e8eb8937498c5f66David Lawrence */
e6ce1a0ea9ddc79fab12bf72e8eb8937498c5f66David Lawrence@ISC_PLATFORM_NEEDNETINETIN6H@
e6ce1a0ea9ddc79fab12bf72e8eb8937498c5f66David Lawrence
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
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).
2b556032fd78aff37e80e755044b944a017245cdDavid Lawrence */
e52750239ef7441b1feab81410824a7dde05f809David Lawrence@ISC_PLATFORM_NEEDNETINET6IN6H@
2b556032fd78aff37e80e755044b944a017245cdDavid Lawrence
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * If sockaddrs on this system have an sa_len field, ISC_PLATFORM_HAVESALEN
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * will be defined.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley */
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley@ISC_PLATFORM_HAVESALEN@
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * If this system has the IPv6 structure definitions, ISC_PLATFORM_HAVEIPV6
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * will be defined.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley */
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley@ISC_PLATFORM_HAVEIPV6@
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
435532822dc571a904207d8176e063cc8731eef5Bob Halley * If this system is missing in6addr_any, ISC_PLATFORM_NEEDIN6ADDRANY will
435532822dc571a904207d8176e063cc8731eef5Bob Halley * be defined.
435532822dc571a904207d8176e063cc8731eef5Bob Halley */
435532822dc571a904207d8176e063cc8731eef5Bob Halley@ISC_PLATFORM_NEEDIN6ADDRANY@
435532822dc571a904207d8176e063cc8731eef5Bob Halley
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
9f6c66e1b3902b61256267d124f1b9cd61402e76Andreas Gustafsson * If this system is missing in6addr_loopback, ISC_PLATFORM_NEEDIN6ADDRLOOPBACK
9f6c66e1b3902b61256267d124f1b9cd61402e76Andreas Gustafsson * will be defined.
9f6c66e1b3902b61256267d124f1b9cd61402e76Andreas Gustafsson */
9f6c66e1b3902b61256267d124f1b9cd61402e76Andreas Gustafsson@ISC_PLATFORM_NEEDIN6ADDRLOOPBACK@
9f6c66e1b3902b61256267d124f1b9cd61402e76Andreas Gustafsson
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
ece3d6c35693f9e2145434b0bf14e8b752cdeee8Michael Graff * If this system has in6_pktinfo, ISC_PLATFORM_HAVEIN6PKTINFO will be
ece3d6c35693f9e2145434b0bf14e8b752cdeee8Michael Graff * defined.
ece3d6c35693f9e2145434b0bf14e8b752cdeee8Michael Graff */
ece3d6c35693f9e2145434b0bf14e8b752cdeee8Michael Graff@ISC_PLATFORM_HAVEIN6PKTINFO@
ece3d6c35693f9e2145434b0bf14e8b752cdeee8Michael Graff
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
4e7942dc7612acb71b111a5e8d919960f5a9efc5Mark Andrews * If this system has in_addr6, rather than in6_addr, ISC_PLATFORM_HAVEINADDR6
4e7942dc7612acb71b111a5e8d919960f5a9efc5Mark Andrews * will be defined.
4e7942dc7612acb71b111a5e8d919960f5a9efc5Mark Andrews */
4e7942dc7612acb71b111a5e8d919960f5a9efc5Mark Andrews@ISC_PLATFORM_HAVEINADDR6@
4e7942dc7612acb71b111a5e8d919960f5a9efc5Mark Andrews
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
6526fd032fc418411da3af4201214e95c113d3e2Mark Andrews * If this system has sin6_scope_id, ISC_PLATFORM_HAVESCOPEID will be defined.
6526fd032fc418411da3af4201214e95c113d3e2Mark Andrews */
6526fd032fc418411da3af4201214e95c113d3e2Mark Andrews@ISC_PLATFORM_HAVESCOPEID@
6526fd032fc418411da3af4201214e95c113d3e2Mark Andrews
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * If this system needs inet_ntop(), ISC_PLATFORM_NEEDNTOP will be defined.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley */
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley@ISC_PLATFORM_NEEDNTOP@
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * If this system needs inet_pton(), ISC_PLATFORM_NEEDPTON will be defined.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley */
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley@ISC_PLATFORM_NEEDPTON@
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * If this system needs in_port_t, ISC_PLATFORM_NEEDPORTT will be defined.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley */
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley@ISC_PLATFORM_NEEDPORTT@
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if the system has struct lifconf which is a extended struct ifconf
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * for IPv6.
76ede14af1ae63f833d15ea827cc70787aeaa528Mark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews@ISC_PLATFORM_HAVELIFCONF@
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if the system has struct if_laddrconf which is a extended struct
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * ifconf for IPv6.
935000aa6e2b9d08f363b2e698a258a458a5a7cfMark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews@ISC_PLATFORM_HAVEIF_LADDRCONF@
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if the system has struct if_laddrreq.
935000aa6e2b9d08f363b2e698a258a458a5a7cfMark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews@ISC_PLATFORM_HAVEIF_LADDRREQ@
935000aa6e2b9d08f363b2e698a258a458a5a7cfMark Andrews
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
ed71ea51c6ecb5d7d659b6e6a20f6b3f5c2678c6David Lawrence * Define either ISC_PLATFORM_BSD44MSGHDR or ISC_PLATFORM_BSD43MSGHDR.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley */
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley@ISC_PLATFORM_MSGHDRFLAVOR@
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if the system supports if_nametoindex.
ed71ea51c6ecb5d7d659b6e6a20f6b3f5c2678c6David Lawrence */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews@ISC_PLATFORM_HAVEIFNAMETOINDEX@
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
e544b507b8019a62c5d2716281f6832519a8791dDavid Lawrence * Define on some UnixWare systems to fix erroneous definitions of various
e544b507b8019a62c5d2716281f6832519a8791dDavid Lawrence * IN6_IS_ADDR_* macros.
e544b507b8019a62c5d2716281f6832519a8791dDavid Lawrence */
e544b507b8019a62c5d2716281f6832519a8791dDavid Lawrence@ISC_PLATFORM_FIXIN6ISADDR@
e544b507b8019a62c5d2716281f6832519a8791dDavid Lawrence
d8f2dd46cba3a16c2433e85657a5b15543013ca6Mark Andrews/*! \brief
d8f2dd46cba3a16c2433e85657a5b15543013ca6Mark Andrews * Define if the system has struct sockaddr_storage.
d8f2dd46cba3a16c2433e85657a5b15543013ca6Mark Andrews */
d8f2dd46cba3a16c2433e85657a5b15543013ca6Mark Andrews@ISC_PLATFORM_HAVESOCKADDRSTORAGE@
d8f2dd46cba3a16c2433e85657a5b15543013ca6Mark Andrews
c5342425ea5568af04f4b87d5d9690453b21c9f1Mark Andrews/*! \brief
c5342425ea5568af04f4b87d5d9690453b21c9f1Mark Andrews * Define if the system has TCP_FASTOPEN socket option.
c5342425ea5568af04f4b87d5d9690453b21c9f1Mark Andrews */
c5342425ea5568af04f4b87d5d9690453b21c9f1Mark Andrews@ISC_PLATFORM_HAVETFO@
c5342425ea5568af04f4b87d5d9690453b21c9f1Mark Andrews
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉/*! \brief
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 * Define if the system supports kqueue multiplexing
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 */
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉@ISC_PLATFORM_HAVEKQUEUE@
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉/*! \brief
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 * Define if the system supports epoll multiplexing
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 */
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉@ISC_PLATFORM_HAVEEPOLL@
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉/*! \brief
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 * Define if the system supports /dev/poll multiplexing
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉 */
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉@ISC_PLATFORM_HAVEDEVPOLL@
386d3a99c190bad55edf44d076e6bd087e230ab8Tatuya JINMEI 神明達哉
a27fe4c990f96bd792f2a07ca4d38c78d5b9df2cTatuya JINMEI 神明達哉/*! \brief
a27fe4c990f96bd792f2a07ca4d38c78d5b9df2cTatuya JINMEI 神明達哉 * Define if we want to log backtrace
a27fe4c990f96bd792f2a07ca4d38c78d5b9df2cTatuya JINMEI 神明達哉 */
a27fe4c990f96bd792f2a07ca4d38c78d5b9df2cTatuya JINMEI 神明達哉@ISC_PLATFORM_USEBACKTRACE@
a27fe4c990f96bd792f2a07ca4d38c78d5b9df2cTatuya JINMEI 神明達哉
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley *** Printing.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley ***/
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
5152622c346405b575acd30f62a7b4941606262dMark Andrews * If this system needs vsnprintf() and snprintf(), ISC_PLATFORM_NEEDVSNPRINTF
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * will be defined.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley */
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley@ISC_PLATFORM_NEEDVSNPRINTF@
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
f95231835fdcd8d5f58486c9f9993602f27fe157Mark Andrews * If this system need a modern sprintf() that returns (int) not (char*).
f95231835fdcd8d5f58486c9f9993602f27fe157Mark Andrews */
f95231835fdcd8d5f58486c9f9993602f27fe157Mark Andrews@ISC_PLATFORM_NEEDSPRINTF@
f95231835fdcd8d5f58486c9f9993602f27fe157Mark Andrews
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt/*! \brief
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt * If this system need a modern printf() that format size %z (size_t).
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt */
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt@ISC_PLATFORM_NEEDPRINTF@
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt/*! \brief
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt * If this system need a modern fprintf() that format size %z (size_t).
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt */
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt@ISC_PLATFORM_NEEDFPRINTF@
cadf8d687b9719b87c121d5cc8b028b1ddccc642Evan Hunt
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*! \brief
28a3d529046ec5536e1ea619454624b683509675Andreas Gustafsson * The printf format string modifier to use with isc_uint64_t values.
8a1930d026517e4733d680ac51abeb01353332c4Mark Andrews */
28a3d529046ec5536e1ea619454624b683509675Andreas Gustafsson@ISC_PLATFORM_QUADFORMAT@
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/***
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews *** String functions.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews ***/
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * If the system needs strsep(), ISC_PLATFORM_NEEDSTRSEP will be defined.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews@ISC_PLATFORM_NEEDSTRSEP@
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * If the system needs strlcpy(), ISC_PLATFORM_NEEDSTRLCPY will be defined.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews@ISC_PLATFORM_NEEDSTRLCPY@
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * If the system needs strlcat(), ISC_PLATFORM_NEEDSTRLCAT will be defined.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews@ISC_PLATFORM_NEEDSTRLCAT@
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if this system needs strtoul.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews@ISC_PLATFORM_NEEDSTRTOUL@
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Define if this system needs memmove.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews@ISC_PLATFORM_NEEDMEMMOVE@
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews
52e6d8a36d410baa8a93b6c1e74619826be6bd6aMark Andrews/*
52e6d8a36d410baa8a93b6c1e74619826be6bd6aMark Andrews * Define if this system needs strcasestr.
52e6d8a36d410baa8a93b6c1e74619826be6bd6aMark Andrews */
52e6d8a36d410baa8a93b6c1e74619826be6bd6aMark Andrews@ISC_PLATFORM_NEEDSTRCASESTR@
52e6d8a36d410baa8a93b6c1e74619826be6bd6aMark Andrews
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/***
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews *** Miscellaneous.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews ***/
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
892abf317831dc328e3b878edce3adf7c92d2283Andreas Gustafsson * Defined if we are using threads.
892abf317831dc328e3b878edce3adf7c92d2283Andreas Gustafsson */
892abf317831dc328e3b878edce3adf7c92d2283Andreas Gustafsson@ISC_PLATFORM_USETHREADS@
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
66ad1d85cbdad4fd35661c98ad2ec52f9500f5cdMark Andrews * Defined if unistd.h does not cause fd_set to be delared.
66ad1d85cbdad4fd35661c98ad2ec52f9500f5cdMark Andrews */
66ad1d85cbdad4fd35661c98ad2ec52f9500f5cdMark Andrews@ISC_PLATFORM_NEEDSYSSELECTH@
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Defined to <gssapi.h> or <gssapi/gssapi.h> for how to include
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * the GSSAPI header.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews@ISC_PLATFORM_GSSAPIHEADER@
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater
71bd858d8ed62672e7c23999dc7c02fd16a55089Evan Hunt/*
71bd858d8ed62672e7c23999dc7c02fd16a55089Evan Hunt * Defined to <gssapi_krb5.h> or <gssapi/gssapi_krb5.h> for how to
71bd858d8ed62672e7c23999dc7c02fd16a55089Evan Hunt * include the GSSAPI KRB5 header.
71bd858d8ed62672e7c23999dc7c02fd16a55089Evan Hunt */
71bd858d8ed62672e7c23999dc7c02fd16a55089Evan Hunt@ISC_PLATFORM_GSSAPI_KRB5_HEADER@
71bd858d8ed62672e7c23999dc7c02fd16a55089Evan Hunt
a20996ab6ff2be473b85470fddd2380a3e180e7bMark Andrews/*
a20996ab6ff2be473b85470fddd2380a3e180e7bMark Andrews * Defined to <krb5.h> or <krb5/krb5.h> for how to include
a20996ab6ff2be473b85470fddd2380a3e180e7bMark Andrews * the KRB5 header.
a20996ab6ff2be473b85470fddd2380a3e180e7bMark Andrews */
a20996ab6ff2be473b85470fddd2380a3e180e7bMark Andrews@ISC_PLATFORM_KRB5HEADER@
a20996ab6ff2be473b85470fddd2380a3e180e7bMark Andrews
28053af04c5121ec234c320e4c76273305816e7aEvan Hunt/*
28053af04c5121ec234c320e4c76273305816e7aEvan Hunt * Define if the system has nanosecond-level accuracy in file stats.
28053af04c5121ec234c320e4c76273305816e7aEvan Hunt */
28053af04c5121ec234c320e4c76273305816e7aEvan Hunt@ISC_PLATFORM_HAVESTATNSEC@
28053af04c5121ec234c320e4c76273305816e7aEvan Hunt
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
4ae98f5100832152d16168d858cfcefabe304ca5Mark Andrews * Type used for resource limits.
4ae98f5100832152d16168d858cfcefabe304ca5Mark Andrews */
4ae98f5100832152d16168d858cfcefabe304ca5Mark Andrews@ISC_PLATFORM_RLIMITTYPE@
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
754cca729dd82ae8363917dc00ad44f9d900635bMark Andrews * Define if your compiler supports "long long int".
754cca729dd82ae8363917dc00ad44f9d900635bMark Andrews */
754cca729dd82ae8363917dc00ad44f9d900635bMark Andrews@ISC_PLATFORM_HAVELONGLONG@
754cca729dd82ae8363917dc00ad44f9d900635bMark Andrews
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
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).
31d3464c0c0a35236c7924f698c5a8a66a9ed534Mark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews@ISC_PLATFORM_BRACEPTHREADONCEINIT@
31d3464c0c0a35236c7924f698c5a8a66a9ed534Mark Andrews
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence * Used to control how extern data is linked; needed for Win32 platforms.
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence */
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence@ISC_PLATFORM_USEDECLSPEC@
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence
4423c99613db1399dbb5c51e86ef0d351a1418c2Mark Andrews/*
4423c99613db1399dbb5c51e86ef0d351a1418c2Mark Andrews * Define if the platform has <sys/un.h>.
4423c99613db1399dbb5c51e86ef0d351a1418c2Mark Andrews */
4423c99613db1399dbb5c51e86ef0d351a1418c2Mark Andrews@ISC_PLATFORM_HAVESYSUNH@
4423c99613db1399dbb5c51e86ef0d351a1418c2Mark Andrews
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉/*
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉 * If the "xadd" operation is available on this architecture,
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater * ISC_PLATFORM_HAVEXADD will be defined.
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉 */
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉@ISC_PLATFORM_HAVEXADD@
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉
1c3ed2a83d176d9023b51b60dfc96c133f678362Tatuya JINMEI 神明達哉/*
1c3ed2a83d176d9023b51b60dfc96c133f678362Tatuya JINMEI 神明達哉 * If the "xaddq" operation (64bit xadd) is available on this architecture,
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater * ISC_PLATFORM_HAVEXADDQ will be defined.
1c3ed2a83d176d9023b51b60dfc96c133f678362Tatuya JINMEI 神明達哉 */
1c3ed2a83d176d9023b51b60dfc96c133f678362Tatuya JINMEI 神明達哉@ISC_PLATFORM_HAVEXADDQ@
1c3ed2a83d176d9023b51b60dfc96c133f678362Tatuya JINMEI 神明達哉
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉/*
821ff5e8fa1df2e09fea157ee3e298eef6cf4ec9Evan Hunt * If the 32-bit "atomic swap" operation is available on this
821ff5e8fa1df2e09fea157ee3e298eef6cf4ec9Evan Hunt * architecture, ISC_PLATFORM_HAVEATOMICSTORE" will be defined.
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉 */
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉@ISC_PLATFORM_HAVEATOMICSTORE@
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉
821ff5e8fa1df2e09fea157ee3e298eef6cf4ec9Evan Hunt/*
821ff5e8fa1df2e09fea157ee3e298eef6cf4ec9Evan Hunt * If the 64-bit "atomic swap" operation is available on this
821ff5e8fa1df2e09fea157ee3e298eef6cf4ec9Evan Hunt * architecture, ISC_PLATFORM_HAVEATOMICSTORE" will be defined.
821ff5e8fa1df2e09fea157ee3e298eef6cf4ec9Evan Hunt */
821ff5e8fa1df2e09fea157ee3e298eef6cf4ec9Evan Hunt@ISC_PLATFORM_HAVEATOMICSTOREQ@
821ff5e8fa1df2e09fea157ee3e298eef6cf4ec9Evan Hunt
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉/*
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉 * If the "compare-and-exchange" operation is available on this architecture,
cbf0854acc9f5d11142dba30b1ab23e0532baaf2Automatic Updater * ISC_PLATFORM_HAVECMPXCHG will be defined.
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉 */
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉@ISC_PLATFORM_HAVECMPXCHG@
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉
99056063905a9273ec59cf477ae747e0490182b7Mukund Sivaraman/*
99056063905a9273ec59cf477ae747e0490182b7Mukund Sivaraman * If <stdatomic.h> is available on this architecture,
99056063905a9273ec59cf477ae747e0490182b7Mukund Sivaraman * ISC_PLATFORM_HAVESTDATOMIC will be defined.
99056063905a9273ec59cf477ae747e0490182b7Mukund Sivaraman */
99056063905a9273ec59cf477ae747e0490182b7Mukund Sivaraman@ISC_PLATFORM_HAVESTDATOMIC@
99056063905a9273ec59cf477ae747e0490182b7Mukund Sivaraman
c528bd698637d84a0081d26a58813607c7f52bb7Tatuya JINMEI 神明達哉/*
c528bd698637d84a0081d26a58813607c7f52bb7Tatuya JINMEI 神明達哉 * Define if gcc ASM extension is available
c528bd698637d84a0081d26a58813607c7f52bb7Tatuya JINMEI 神明達哉 */
c528bd698637d84a0081d26a58813607c7f52bb7Tatuya JINMEI 神明達哉@ISC_PLATFORM_USEGCCASM@
c528bd698637d84a0081d26a58813607c7f52bb7Tatuya JINMEI 神明達哉
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉/*
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉 * Define if Tru64 style ASM syntax must be used.
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉 */
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉@ISC_PLATFORM_USEOSFASM@
5597be9bb88de138dfec9fa9176708443813925eTatuya JINMEI 神明達哉
c528bd698637d84a0081d26a58813607c7f52bb7Tatuya JINMEI 神明達哉/*
c528bd698637d84a0081d26a58813607c7f52bb7Tatuya JINMEI 神明達哉 * Define if the standard __asm function must be used.
c528bd698637d84a0081d26a58813607c7f52bb7Tatuya JINMEI 神明達哉 */
c528bd698637d84a0081d26a58813607c7f52bb7Tatuya JINMEI 神明達哉@ISC_PLATFORM_USESTDASM@
c528bd698637d84a0081d26a58813607c7f52bb7Tatuya JINMEI 神明達哉
cf24cbd837617c5cb89f04ba97b262be21a925bfEvan Hunt/*
cf24cbd837617c5cb89f04ba97b262be21a925bfEvan Hunt * Define with the busy wait nop asm or function call.
cf24cbd837617c5cb89f04ba97b262be21a925bfEvan Hunt */
cf24cbd837617c5cb89f04ba97b262be21a925bfEvan Hunt@ISC_PLATFORM_BUSYWAITNOP@
cf24cbd837617c5cb89f04ba97b262be21a925bfEvan Hunt
d468b1b7b2ccfdf132df15f600be48dccf447eb1Evan Hunt/*
d468b1b7b2ccfdf132df15f600be48dccf447eb1Evan Hunt * Define if the platform has <strings.h>.
d468b1b7b2ccfdf132df15f600be48dccf447eb1Evan Hunt */
d468b1b7b2ccfdf132df15f600be48dccf447eb1Evan Hunt@ISC_PLATFORM_HAVESTRINGSH@
d468b1b7b2ccfdf132df15f600be48dccf447eb1Evan Hunt
c1d7e0562f6a72ecc07ab5140cf2b88183adbd08Francis Dupont/*
c1d7e0562f6a72ecc07ab5140cf2b88183adbd08Francis Dupont * Define if the hash functions must be provided by OpenSSL.
c1d7e0562f6a72ecc07ab5140cf2b88183adbd08Francis Dupont */
c1d7e0562f6a72ecc07ab5140cf2b88183adbd08Francis Dupont@ISC_PLATFORM_OPENSSLHASH@
c1d7e0562f6a72ecc07ab5140cf2b88183adbd08Francis Dupont
b5f6271f4daf1e54501af2cb7dd278d7e8003d65Mark Andrews/*
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan Hunt * Define if AES support is wanted
b5f6271f4daf1e54501af2cb7dd278d7e8003d65Mark Andrews */
98922b2b2b024dcca25be7c220cf3b16b1e6c4b5Evan Hunt@ISC_PLATFORM_WANTAES@
b5f6271f4daf1e54501af2cb7dd278d7e8003d65Mark Andrews
debd489a44363870f96f75818e89ec27d3cab736Francis Dupont/*
debd489a44363870f96f75818e89ec27d3cab736Francis Dupont * Defines for the noreturn attribute.
debd489a44363870f96f75818e89ec27d3cab736Francis Dupont */
debd489a44363870f96f75818e89ec27d3cab736Francis Dupont@ISC_PLATFORM_NORETURN_PRE@
debd489a44363870f96f75818e89ec27d3cab736Francis Dupont@ISC_PLATFORM_NORETURN_POST@
debd489a44363870f96f75818e89ec27d3cab736Francis Dupont
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/***
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews *** Windows dll support.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews ***/
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews
f31446e6b5925395fce4f62adf71f7ad70cea6ceMark Andrews/*
f31446e6b5925395fce4f62adf71f7ad70cea6ceMark Andrews * Define if MacOS style of PPC assembly must be used.
f31446e6b5925395fce4f62adf71f7ad70cea6ceMark Andrews * e.g. "r6", not "6", for register six.
f31446e6b5925395fce4f62adf71f7ad70cea6ceMark Andrews */
f31446e6b5925395fce4f62adf71f7ad70cea6ceMark Andrews@ISC_PLATFORM_USEMACASM@
f31446e6b5925395fce4f62adf71f7ad70cea6ceMark Andrews
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#ifndef ISC_PLATFORM_USEDECLSPEC
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISC_EXTERNAL_DATA
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBDNS_EXTERNAL_DATA
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISCCC_EXTERNAL_DATA
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISCCFG_EXTERNAL_DATA
e61793f0865117ad87a19d6e245bea8f3b712d1bDanny Mayer#define LIBBIND9_EXTERNAL_DATA
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews#define LIBTESTS_EXTERNAL_DATA
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein#else /*! \brief ISC_PLATFORM_USEDECLSPEC */
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#ifdef LIBISC_EXPORTS
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISC_EXTERNAL_DATA __declspec(dllexport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#else
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISC_EXTERNAL_DATA __declspec(dllimport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#endif
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#ifdef LIBDNS_EXPORTS
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBDNS_EXTERNAL_DATA __declspec(dllexport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#else
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBDNS_EXTERNAL_DATA __declspec(dllimport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#endif
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#ifdef LIBISCCC_EXPORTS
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISCCC_EXTERNAL_DATA __declspec(dllexport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#else
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISCCC_EXTERNAL_DATA __declspec(dllimport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#endif
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#ifdef LIBISCCFG_EXPORTS
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISCCFG_EXTERNAL_DATA __declspec(dllexport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#else
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#define LIBISCCFG_EXTERNAL_DATA __declspec(dllimport)
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence#endif
e61793f0865117ad87a19d6e245bea8f3b712d1bDanny Mayer#ifdef LIBBIND9_EXPORTS
e61793f0865117ad87a19d6e245bea8f3b712d1bDanny Mayer#define LIBBIND9_EXTERNAL_DATA __declspec(dllexport)
e61793f0865117ad87a19d6e245bea8f3b712d1bDanny Mayer#else
e61793f0865117ad87a19d6e245bea8f3b712d1bDanny Mayer#define LIBBIND9_EXTERNAL_DATA __declspec(dllimport)
e61793f0865117ad87a19d6e245bea8f3b712d1bDanny Mayer#endif
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews#ifdef LIBTESTS_EXPORTS
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews#define LIBTESTS_EXTERNAL_DATA __declspec(dllexport)
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews#else
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews#define LIBTESTS_EXTERNAL_DATA __declspec(dllimport)
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews#endif
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein#endif /*! \brief ISC_PLATFORM_USEDECLSPEC */
37aa91031830d2fc428331378f089169eb3e6dc2David Lawrence
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley/*
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * Tell emacs to use C mode for this file.
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley *
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * Local Variables:
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * mode: c
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley * End:
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley */
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley
51917258dbb23cfe6069ae1cf2b7fc5aefc1e0c2Bob Halley#endif /* ISC_PLATFORM_H */