#ifndef _NGX_CONFIG_H_INCLUDED_
#define _NGX_CONFIG_H_INCLUDED_


#include <ngx_auto_config.h>

/*
   auto_conf
   ngx_inline inline __inline __inline__
*/

/* STUB */
#undef  FD_SETSIZE
#define FD_SETSIZE  1024


/* auto_conf */
#define NGX_ALIGN       (4 - 1)
#define NGX_ALIGN_TYPE  unsigned

#define ngx_align(p)    (char *) (((NGX_ALIGN_TYPE) p + NGX_ALIGN) & ~NGX_ALIGN)


#ifdef _WIN32

#define WIN32 1

#include <winsock2.h>
#include <mswsock.h>
#include <stddef.h>    /* offsetof */
#include <stdio.h>
#include <stdarg.h>


#define ngx_inline   __inline


#ifndef HAVE_INHERITED_NONBLOCK
#define HAVE_INHERITED_NONBLOCK  1
#endif

#ifndef HAVE_WIN32_TRANSMITPACKETS
#define HAVE_WIN32_TRANSMITPACKETS  1
#define HAVE_WIN32_TRANSMITFILE     0
#endif

#ifndef HAVE_WIN32_TRANSMITFILE
#define HAVE_WIN32_TRANSMITFILE  1
#endif

#if (HAVE_WIN32_TRANSMITPACKETS) || (HAVE_WIN32_TRANSMITFILE)
#define HAVE_SENDFILE  1
#endif

#else /* POSIX */



/* Solaris */
#if defined(sun) && (defined(__svr4__) || defined(__SVR4))

#define SOLARIS  1

#define _FILE_OFFSET_BITS  64  /* should be before sys/types.h */

#ifndef HAVE_INHERITED_NONBLOCK
#define HAVE_INHERITED_NONBLOCK  1
#endif

#include <sys/stropts.h>        /* INFTIM */

#endif /* Solaris */



#include <unistd.h>
#include <stddef.h>             /* offsetof */
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <fcntl.h>
#include <signal.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#ifndef HAVE_POLL
#define HAVE_POLL  1
#include <poll.h>
/*
#ifndef INFTIM
#define INFTIM    -1
#endif
*/
#endif

#define ngx_inline   inline


#endif /* POSIX */



#define LF     10
#define CR     13
#define CRLF   "\x0d\x0a"


#ifndef INET_ADDRSTRLEN
#define INET_ADDRSTRLEN 16
#endif


#if defined SO_ACCEPTFILTER || defined TCP_DEFER_ACCEPT

#ifndef HAVE_DEFERRED_ACCEPT
#define HAVE_DEFERRED_ACCEPT  1
#endif

#endif


#ifndef HAVE_SELECT
#define HAVE_SELECT 1
#endif


#ifdef __FreeBSD__

#include <osreldate.h>

#ifndef HAVE_INHERITED_NONBLOCK
#define HAVE_INHERITED_NONBLOCK  1
#endif

/* FreeBSD sendfile */
#if __FreeBSD_version >= 300007

#ifndef HAVE_FREEBSD_SENDFILE
#define HAVE_FREEBSD_SENDFILE  1
#endif

#ifndef HAVE_FREEBSD_SENDFILE_NBYTES_BUG
#define HAVE_FREEBSD_SENDFILE_NBYTES_BUG  2
#endif

#endif /* FreeBSD sendfile */

/* FreeBSD sendfile nbytes bug */
#if (__FreeBSD__ == 4 && __FreeBSD_version >= 460100) \
    || __FreeBSD_version == 460001
    || __FreeBSD_version >= 500029

#if (HAVE_FREEBSD_SENDFILE_NBYTES_BUG == 2)
#define HAVE_FREEBSD_SENDFILE_NBYTES_BUG  0
#endif

#endif /* FreeBSD sendfile nbytes bug */

#if (HAVE_FREEBSD_SENDFILE)
#define HAVE_SENDFILE  1
#endif


/* FreeBSD kqueue */
#if (__FreeBSD__ == 4 && __FreeBSD_version >= 410000) \
    || __FreeBSD_version >= 500011

#ifndef HAVE_KQUEUE
#define HAVE_KQUEUE  1
#include <sys/event.h>
#endif

#endif /* FreeBSD kqueue */


#endif /* __FreeBSD__ */


#ifdef __SOME_OS_TEMPLATE__

#ifndef HAVE_INHERITED_NONBLOCK
#define HAVE_INHERITED_NONBLOCK  1
#endif

#endif


#endif /* _NGX_CONFIG_H_INCLUDED_ */
