1*00b67f09SDavid van Moolenbroek /* 2*00b67f09SDavid van Moolenbroek * Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC") 3*00b67f09SDavid van Moolenbroek * Copyright (C) 2000, 2001 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.21 2007/06/19 23:47:23 tbox Exp */ 19*00b67f09SDavid van Moolenbroek 20*00b67f09SDavid van Moolenbroek /*! \file */ 21*00b67f09SDavid van Moolenbroek 22*00b67f09SDavid van Moolenbroek #ifndef LWRES_PLATFORM_H 23*00b67f09SDavid van Moolenbroek #define LWRES_PLATFORM_H 1 24*00b67f09SDavid van Moolenbroek 25*00b67f09SDavid van Moolenbroek /***** 26*00b67f09SDavid van Moolenbroek ***** Platform-dependent defines. 27*00b67f09SDavid van Moolenbroek *****/ 28*00b67f09SDavid van Moolenbroek 29*00b67f09SDavid van Moolenbroek /*** 30*00b67f09SDavid van Moolenbroek *** Network. 31*00b67f09SDavid van Moolenbroek ***/ 32*00b67f09SDavid van Moolenbroek 33*00b67f09SDavid van Moolenbroek /* 34*00b67f09SDavid van Moolenbroek * Define if this system needs the <netinet/in6.h> header file for IPv6. 35*00b67f09SDavid van Moolenbroek */ 36*00b67f09SDavid van Moolenbroek #undef LWRES_PLATFORM_NEEDNETINETIN6H 37*00b67f09SDavid van Moolenbroek 38*00b67f09SDavid van Moolenbroek /* 39*00b67f09SDavid van Moolenbroek * Define if this system needs the <netinet6/in6.h> header file for IPv6. 40*00b67f09SDavid van Moolenbroek */ 41*00b67f09SDavid van Moolenbroek #undef LWRES_PLATFORM_NEEDNETINET6IN6H 42*00b67f09SDavid van Moolenbroek 43*00b67f09SDavid van Moolenbroek /* 44*00b67f09SDavid van Moolenbroek * If sockaddrs on this system have an sa_len field, LWRES_PLATFORM_HAVESALEN 45*00b67f09SDavid van Moolenbroek * will be defined. 46*00b67f09SDavid van Moolenbroek */ 47*00b67f09SDavid van Moolenbroek #define LWRES_PLATFORM_HAVESALEN 1 48*00b67f09SDavid van Moolenbroek 49*00b67f09SDavid van Moolenbroek /* 50*00b67f09SDavid van Moolenbroek * If this system has the IPv6 structure definitions, LWRES_PLATFORM_HAVEIPV6 51*00b67f09SDavid van Moolenbroek * will be defined. 52*00b67f09SDavid van Moolenbroek */ 53*00b67f09SDavid van Moolenbroek #define LWRES_PLATFORM_HAVEIPV6 1 54*00b67f09SDavid van Moolenbroek 55*00b67f09SDavid van Moolenbroek /* 56*00b67f09SDavid van Moolenbroek * If this system is missing in6addr_any, LWRES_PLATFORM_NEEDIN6ADDRANY will 57*00b67f09SDavid van Moolenbroek * be defined. 58*00b67f09SDavid van Moolenbroek */ 59*00b67f09SDavid van Moolenbroek #undef LWRES_PLATFORM_NEEDIN6ADDRANY 60*00b67f09SDavid van Moolenbroek 61*00b67f09SDavid van Moolenbroek /* 62*00b67f09SDavid van Moolenbroek * If this system is missing in6addr_loopback, 63*00b67f09SDavid van Moolenbroek * LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK will be defined. 64*00b67f09SDavid van Moolenbroek */ 65*00b67f09SDavid van Moolenbroek #undef LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK 66*00b67f09SDavid van Moolenbroek 67*00b67f09SDavid van Moolenbroek /* 68*00b67f09SDavid van Moolenbroek * If this system has in_addr6, rather than in6_addr, 69*00b67f09SDavid van Moolenbroek * LWRES_PLATFORM_HAVEINADDR6 will be defined. 70*00b67f09SDavid van Moolenbroek */ 71*00b67f09SDavid van Moolenbroek #undef LWRES_PLATFORM_HAVEINADDR6 72*00b67f09SDavid van Moolenbroek 73*00b67f09SDavid van Moolenbroek /* 74*00b67f09SDavid van Moolenbroek * Defined if unistd.h does not cause fd_set to be delared. 75*00b67f09SDavid van Moolenbroek */ 76*00b67f09SDavid van Moolenbroek #undef LWRES_PLATFORM_NEEDSYSSELECTH 77*00b67f09SDavid van Moolenbroek 78*00b67f09SDavid van Moolenbroek /* 79*00b67f09SDavid van Moolenbroek * Used to control how extern data is linked; needed for Win32 platforms. 80*00b67f09SDavid van Moolenbroek */ 81*00b67f09SDavid van Moolenbroek #undef LWRES_PLATFORM_USEDECLSPEC 82*00b67f09SDavid van Moolenbroek 83*00b67f09SDavid van Moolenbroek /* 84*00b67f09SDavid van Moolenbroek * Defined this system needs vsnprintf() and snprintf(). 85*00b67f09SDavid van Moolenbroek */ 86*00b67f09SDavid van Moolenbroek #undef LWRES_PLATFORM_NEEDVSNPRINTF 87*00b67f09SDavid van Moolenbroek 88*00b67f09SDavid van Moolenbroek /* 89*00b67f09SDavid van Moolenbroek * If this system need a modern sprintf() that returns (int) not (char*). 90*00b67f09SDavid van Moolenbroek */ 91*00b67f09SDavid van Moolenbroek #undef LWRES_PLATFORM_NEEDSPRINTF 92*00b67f09SDavid van Moolenbroek 93*00b67f09SDavid van Moolenbroek /* 94*00b67f09SDavid van Moolenbroek * The printf format string modifier to use with lwres_uint64_t values. 95*00b67f09SDavid van Moolenbroek */ 96*00b67f09SDavid van Moolenbroek #define LWRES_PLATFORM_QUADFORMAT "ll" 97*00b67f09SDavid van Moolenbroek 98*00b67f09SDavid van Moolenbroek /*! \brief 99*00b67f09SDavid van Moolenbroek * Define if this system needs strtoul. 100*00b67f09SDavid van Moolenbroek */ 101*00b67f09SDavid van Moolenbroek #undef LWRES_PLATFORM_NEEDSTRTOUL 102*00b67f09SDavid van Moolenbroek 103*00b67f09SDavid van Moolenbroek /*! \brief 104*00b67f09SDavid van Moolenbroek * Define if this system needs strlcpy. 105*00b67f09SDavid van Moolenbroek */ 106*00b67f09SDavid van Moolenbroek #undef LWRES_PLATFORM_NEEDSTRLCPY 107*00b67f09SDavid van Moolenbroek 108*00b67f09SDavid van Moolenbroek #ifndef LWRES_PLATFORM_USEDECLSPEC 109*00b67f09SDavid van Moolenbroek #define LIBLWRES_EXTERNAL_DATA 110*00b67f09SDavid van Moolenbroek #else 111*00b67f09SDavid van Moolenbroek #ifdef LIBLWRES_EXPORTS 112*00b67f09SDavid van Moolenbroek #define LIBLWRES_EXTERNAL_DATA __declspec(dllexport) 113*00b67f09SDavid van Moolenbroek #else 114*00b67f09SDavid van Moolenbroek #define LIBLWRES_EXTERNAL_DATA __declspec(dllimport) 115*00b67f09SDavid van Moolenbroek #endif 116*00b67f09SDavid van Moolenbroek #endif 117*00b67f09SDavid van Moolenbroek 118*00b67f09SDavid van Moolenbroek /* 119*00b67f09SDavid van Moolenbroek * Tell Emacs to use C mode on this file. 120*00b67f09SDavid van Moolenbroek * Local Variables: 121*00b67f09SDavid van Moolenbroek * mode: c 122*00b67f09SDavid van Moolenbroek * End: 123*00b67f09SDavid van Moolenbroek */ 124*00b67f09SDavid van Moolenbroek 125*00b67f09SDavid van Moolenbroek #endif /* LWRES_PLATFORM_H */ 126