"Fossies" - the Fresh Open Source Software Archive

Member "bind-9.11.23/lib/isc/include/isc/platform.h.in" (7 Sep 2020, 9021 Bytes) of package /linux/misc/dns/bind9/9.11.23/bind-9.11.23.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /*
    2  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
    3  *
    4  * This Source Code Form is subject to the terms of the Mozilla Public
    5  * License, v. 2.0. If a copy of the MPL was not distributed with this
    6  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
    7  *
    8  * See the COPYRIGHT file distributed with this work for additional
    9  * information regarding copyright ownership.
   10  */
   11 
   12 #ifndef ISC_PLATFORM_H
   13 #define ISC_PLATFORM_H 1
   14 
   15 /*! \file */
   16 
   17 /*****
   18  ***** Platform-dependent defines.
   19  *****/
   20 
   21 /***
   22  *** Network.
   23  ***/
   24 
   25 /*! \brief
   26  * Define if this system needs the <netinet/in6.h> header file included
   27  * for full IPv6 support (pretty much only UnixWare).
   28  */
   29 @ISC_PLATFORM_NEEDNETINETIN6H@
   30 
   31 /*! \brief
   32  * Define if this system needs the <netinet6/in6.h> header file included
   33  * to support in6_pkinfo (pretty much only BSD/OS).
   34  */
   35 @ISC_PLATFORM_NEEDNETINET6IN6H@
   36 
   37 /*! \brief
   38  * If sockaddrs on this system have an sa_len field, ISC_PLATFORM_HAVESALEN
   39  * will be defined.
   40  */
   41 @ISC_PLATFORM_HAVESALEN@
   42 
   43 /*! \brief
   44  * If this system has the IPv6 structure definitions, ISC_PLATFORM_HAVEIPV6
   45  * will be defined.
   46  */
   47 @ISC_PLATFORM_HAVEIPV6@
   48 
   49 /*! \brief
   50  * If this system is missing in6addr_any, ISC_PLATFORM_NEEDIN6ADDRANY will
   51  * be defined.
   52  */
   53 @ISC_PLATFORM_NEEDIN6ADDRANY@
   54 
   55 /*! \brief
   56  * If this system is missing in6addr_loopback, ISC_PLATFORM_NEEDIN6ADDRLOOPBACK
   57  * will be defined.
   58  */
   59 @ISC_PLATFORM_NEEDIN6ADDRLOOPBACK@
   60 
   61 /*! \brief
   62  * If this system has in6_pktinfo, ISC_PLATFORM_HAVEIN6PKTINFO will be
   63  * defined.
   64  */
   65 @ISC_PLATFORM_HAVEIN6PKTINFO@
   66 
   67 /*! \brief
   68  * If this system has in_addr6, rather than in6_addr, ISC_PLATFORM_HAVEINADDR6
   69  * will be defined.
   70  */
   71 @ISC_PLATFORM_HAVEINADDR6@
   72 
   73 /*! \brief
   74  * If this system has sin6_scope_id, ISC_PLATFORM_HAVESCOPEID will be defined.
   75  */
   76 @ISC_PLATFORM_HAVESCOPEID@
   77 
   78 /*! \brief
   79  * If this system needs inet_ntop(), ISC_PLATFORM_NEEDNTOP will be defined.
   80  */
   81 @ISC_PLATFORM_NEEDNTOP@
   82 
   83 /*! \brief
   84  * If this system needs inet_pton(), ISC_PLATFORM_NEEDPTON will be defined.
   85  */
   86 @ISC_PLATFORM_NEEDPTON@
   87 
   88 /*! \brief
   89  * If this system needs in_port_t, ISC_PLATFORM_NEEDPORTT will be defined.
   90  */
   91 @ISC_PLATFORM_NEEDPORTT@
   92 
   93 /*! \brief
   94  * Define if the system has struct lifconf which is a extended struct ifconf
   95  * for IPv6.
   96  */
   97 @ISC_PLATFORM_HAVELIFCONF@
   98 
   99 /*! \brief
  100  * Define if the system has struct if_laddrconf which is a extended struct
  101  * ifconf for IPv6.
  102  */
  103 @ISC_PLATFORM_HAVEIF_LADDRCONF@
  104 
  105 /*! \brief
  106  * Define if the system has struct if_laddrreq.
  107  */
  108 @ISC_PLATFORM_HAVEIF_LADDRREQ@
  109 
  110 /*! \brief
  111  * Define either ISC_PLATFORM_BSD44MSGHDR or ISC_PLATFORM_BSD43MSGHDR.
  112  */
  113 @ISC_PLATFORM_MSGHDRFLAVOR@
  114 
  115 /*! \brief
  116  * Define if the system supports if_nametoindex.
  117  */
  118 @ISC_PLATFORM_HAVEIFNAMETOINDEX@
  119 
  120 /*! \brief
  121  * Define on some UnixWare systems to fix erroneous definitions of various
  122  * IN6_IS_ADDR_* macros.
  123  */
  124 @ISC_PLATFORM_FIXIN6ISADDR@
  125 
  126 /*! \brief
  127  * Define if the system has struct sockaddr_storage.
  128  */
  129 @ISC_PLATFORM_HAVESOCKADDRSTORAGE@
  130 
  131 /*! \brief
  132  * Define if the system has TCP_FASTOPEN socket option.
  133  */
  134 @ISC_PLATFORM_HAVETFO@
  135 
  136 /*! \brief
  137  * Define if the system supports kqueue multiplexing
  138  */
  139 @ISC_PLATFORM_HAVEKQUEUE@
  140 
  141 /*! \brief
  142  * Define if the system supports epoll multiplexing
  143  */
  144 @ISC_PLATFORM_HAVEEPOLL@
  145 
  146 /*! \brief
  147  * Define if the system supports /dev/poll multiplexing
  148  */
  149 @ISC_PLATFORM_HAVEDEVPOLL@
  150 
  151 /*! \brief
  152  * Define if we want to log backtrace
  153  */
  154 @ISC_PLATFORM_USEBACKTRACE@
  155 
  156 /*
  157  *** Printing.
  158  ***/
  159 
  160 /*! \brief
  161  * If this system needs vsnprintf() and snprintf(), ISC_PLATFORM_NEEDVSNPRINTF
  162  * will be defined.
  163  */
  164 @ISC_PLATFORM_NEEDVSNPRINTF@
  165 
  166 /*! \brief
  167  * If this system need a modern sprintf() that returns (int) not (char*).
  168  */
  169 @ISC_PLATFORM_NEEDSPRINTF@
  170 
  171 /*! \brief
  172  * If this system need a modern printf() that format size %z (size_t).
  173  */
  174 @ISC_PLATFORM_NEEDPRINTF@
  175 
  176 /*! \brief
  177  * If this system need a modern fprintf() that format size %z (size_t).
  178  */
  179 @ISC_PLATFORM_NEEDFPRINTF@
  180 
  181 /***
  182  *** String functions.
  183  ***/
  184 /*
  185  * If the system needs strsep(), ISC_PLATFORM_NEEDSTRSEP will be defined.
  186  */
  187 @ISC_PLATFORM_NEEDSTRSEP@
  188 
  189 /*
  190  * If the system needs strlcpy(), ISC_PLATFORM_NEEDSTRLCPY will be defined.
  191  */
  192 @ISC_PLATFORM_NEEDSTRLCPY@
  193 
  194 /*
  195  * If the system needs strlcat(), ISC_PLATFORM_NEEDSTRLCAT will be defined.
  196  */
  197 @ISC_PLATFORM_NEEDSTRLCAT@
  198 
  199 /*
  200  * Define if this system needs strtoul.
  201  */
  202 @ISC_PLATFORM_NEEDSTRTOUL@
  203 
  204 /*
  205  * Define if this system needs memmove.
  206  */
  207 @ISC_PLATFORM_NEEDMEMMOVE@
  208 
  209 /*
  210  * Define if this system needs strcasestr.
  211  */
  212 @ISC_PLATFORM_NEEDSTRCASESTR@
  213 
  214 /***
  215  *** System limitations
  216  ***/
  217 
  218 #include <limits.h>
  219 
  220 #ifndef NAME_MAX
  221 #define NAME_MAX 256
  222 #endif
  223 
  224 #ifndef PATH_MAX
  225 #define PATH_MAX 1024
  226 #endif
  227 
  228 #ifndef IOV_MAX
  229 #define IOV_MAX 1024
  230 #endif
  231 
  232 /***
  233  *** Miscellaneous.
  234  ***/
  235 
  236 /*
  237  * Defined if we are using threads.
  238  */
  239 @ISC_PLATFORM_USETHREADS@
  240 
  241 /*
  242  * Defined if unistd.h does not cause fd_set to be declared.
  243  */
  244 @ISC_PLATFORM_NEEDSYSSELECTH@
  245 
  246 /*
  247  * Defined to <gssapi.h> or <gssapi/gssapi.h> for how to include
  248  * the GSSAPI header.
  249  */
  250 @ISC_PLATFORM_GSSAPIHEADER@
  251 
  252 /*
  253  * Defined to <gssapi_krb5.h> or <gssapi/gssapi_krb5.h> for how to
  254  * include the GSSAPI KRB5 header.
  255  */
  256 @ISC_PLATFORM_GSSAPI_KRB5_HEADER@
  257 
  258 /*
  259  * Defined to <krb5.h> or <krb5/krb5.h> for how to include
  260  * the KRB5 header.
  261  */
  262 @ISC_PLATFORM_KRB5HEADER@
  263 
  264 /*
  265  * Define if the system has nanosecond-level accuracy in file stats.
  266  */
  267 @ISC_PLATFORM_HAVESTATNSEC@
  268 
  269 /*
  270  * Type used for resource limits.
  271  */
  272 @ISC_PLATFORM_RLIMITTYPE@
  273 
  274 /*
  275  * Define if your compiler supports "long long int".
  276  */
  277 @ISC_PLATFORM_HAVELONGLONG@
  278 
  279 /*
  280  * Define if PTHREAD_ONCE_INIT should be surrounded by braces to
  281  * prevent compiler warnings (such as with gcc on Solaris 2.8).
  282  */
  283 @ISC_PLATFORM_BRACEPTHREADONCEINIT@
  284 
  285 /*
  286  * Used to control how extern data is linked; needed for Win32 platforms.
  287  */
  288 @ISC_PLATFORM_USEDECLSPEC@
  289 
  290 /*
  291  * Define if the platform has <sys/un.h>.
  292  */
  293 @ISC_PLATFORM_HAVESYSUNH@
  294 
  295 /*
  296  * If the "xadd" operation is available on this architecture,
  297  * ISC_PLATFORM_HAVEXADD will be defined.
  298  */
  299 @ISC_PLATFORM_HAVEXADD@
  300 
  301 /*
  302  * If the "xaddq" operation (64bit xadd) is available on this architecture,
  303  * ISC_PLATFORM_HAVEXADDQ will be defined.
  304  */
  305 @ISC_PLATFORM_HAVEXADDQ@
  306 
  307 /*
  308  * If the 32-bit "atomic swap" operation is available on this
  309  * architecture, ISC_PLATFORM_HAVEATOMICSTORE" will be defined.
  310  */
  311 @ISC_PLATFORM_HAVEATOMICSTORE@
  312 
  313 /*
  314  * If the 64-bit "atomic swap" operation is available on this
  315  * architecture, ISC_PLATFORM_HAVEATOMICSTORE" will be defined.
  316  */
  317 @ISC_PLATFORM_HAVEATOMICSTOREQ@
  318 
  319 /*
  320  * If the "compare-and-exchange" operation is available on this architecture,
  321  * ISC_PLATFORM_HAVECMPXCHG will be defined.
  322  */
  323 @ISC_PLATFORM_HAVECMPXCHG@
  324 
  325 /*
  326  * If <stdatomic.h> is available on this architecture,
  327  * ISC_PLATFORM_HAVESTDATOMIC will be defined.
  328  */
  329 @ISC_PLATFORM_HAVESTDATOMIC@
  330 
  331 /*
  332  * Define if gcc ASM extension is available
  333  */
  334 @ISC_PLATFORM_USEGCCASM@
  335 
  336 /*
  337  * Define if Tru64 style ASM syntax must be used.
  338  */
  339 @ISC_PLATFORM_USEOSFASM@
  340 
  341 /*
  342  * Define if the standard __asm function must be used.
  343  */
  344 @ISC_PLATFORM_USESTDASM@
  345 
  346 /*
  347  * Define with the busy wait nop asm or function call.
  348  */
  349 @ISC_PLATFORM_BUSYWAITNOP@
  350 
  351 /*
  352  * Define if the platform has <strings.h>.
  353  */
  354 @ISC_PLATFORM_HAVESTRINGSH@
  355 
  356 /*
  357  * Define if the hash functions must be provided by OpenSSL.
  358  */
  359 @ISC_PLATFORM_OPENSSLHASH@
  360 
  361 /*
  362  * Define if AES support is wanted
  363  */
  364 @ISC_PLATFORM_WANTAES@
  365 
  366 /*
  367  * Defines for the noreturn attribute.
  368  */
  369 @ISC_PLATFORM_NORETURN_PRE@
  370 @ISC_PLATFORM_NORETURN_POST@
  371 
  372 /***
  373  ***    Windows dll support.
  374  ***/
  375 
  376 /*
  377  * Define if MacOS style of PPC assembly must be used.
  378  * e.g. "r6", not "6", for register six.
  379  */
  380 @ISC_PLATFORM_USEMACASM@
  381 
  382 #ifndef ISC_PLATFORM_USEDECLSPEC
  383 #define LIBISC_EXTERNAL_DATA
  384 #define LIBDNS_EXTERNAL_DATA
  385 #define LIBISCCC_EXTERNAL_DATA
  386 #define LIBISCCFG_EXTERNAL_DATA
  387 #define LIBBIND9_EXTERNAL_DATA
  388 #define LIBTESTS_EXTERNAL_DATA
  389 #else /*! \brief ISC_PLATFORM_USEDECLSPEC */
  390 #ifdef LIBISC_EXPORTS
  391 #define LIBISC_EXTERNAL_DATA __declspec(dllexport)
  392 #else
  393 #define LIBISC_EXTERNAL_DATA __declspec(dllimport)
  394 #endif
  395 #ifdef LIBDNS_EXPORTS
  396 #define LIBDNS_EXTERNAL_DATA __declspec(dllexport)
  397 #else
  398 #define LIBDNS_EXTERNAL_DATA __declspec(dllimport)
  399 #endif
  400 #ifdef LIBISCCC_EXPORTS
  401 #define LIBISCCC_EXTERNAL_DATA __declspec(dllexport)
  402 #else
  403 #define LIBISCCC_EXTERNAL_DATA __declspec(dllimport)
  404 #endif
  405 #ifdef LIBISCCFG_EXPORTS
  406 #define LIBISCCFG_EXTERNAL_DATA __declspec(dllexport)
  407 #else
  408 #define LIBISCCFG_EXTERNAL_DATA __declspec(dllimport)
  409 #endif
  410 #ifdef LIBBIND9_EXPORTS
  411 #define LIBBIND9_EXTERNAL_DATA __declspec(dllexport)
  412 #else
  413 #define LIBBIND9_EXTERNAL_DATA __declspec(dllimport)
  414 #endif
  415 #ifdef LIBTESTS_EXPORTS
  416 #define LIBTESTS_EXTERNAL_DATA __declspec(dllexport)
  417 #else
  418 #define LIBTESTS_EXTERNAL_DATA __declspec(dllimport)
  419 #endif
  420 #endif /*! \brief ISC_PLATFORM_USEDECLSPEC */
  421 
  422 /*
  423  * Tell emacs to use C mode for this file.
  424  *
  425  * Local Variables:
  426  * mode: c
  427  * End:
  428  */
  429 
  430 #endif /* ISC_PLATFORM_H */