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