1e18a033bSKonstantin Ananyev
2e18a033bSKonstantin Ananyev/*
3e18a033bSKonstantin Ananyev * Copyright (C) Igor Sysoev
4e18a033bSKonstantin Ananyev * Copyright (C) Nginx, Inc.
5e18a033bSKonstantin Ananyev */
6e18a033bSKonstantin Ananyev
7e18a033bSKonstantin Ananyev
8e18a033bSKonstantin Ananyev#ifndef _NGX_FREEBSD_CONFIG_H_INCLUDED_
9e18a033bSKonstantin Ananyev#define _NGX_FREEBSD_CONFIG_H_INCLUDED_
10e18a033bSKonstantin Ananyev
11e18a033bSKonstantin Ananyev
12e18a033bSKonstantin Ananyev#include <sys/types.h>
13e18a033bSKonstantin Ananyev#include <sys/time.h>
14e18a033bSKonstantin Ananyev#include <unistd.h>
15e18a033bSKonstantin Ananyev#include <stdarg.h>
16e18a033bSKonstantin Ananyev#include <stddef.h>             /* offsetof() */
17e18a033bSKonstantin Ananyev#include <stdio.h>
18e18a033bSKonstantin Ananyev#include <stdlib.h>
19e18a033bSKonstantin Ananyev#include <ctype.h>
20e18a033bSKonstantin Ananyev#include <errno.h>
21e18a033bSKonstantin Ananyev#include <string.h>
22e18a033bSKonstantin Ananyev#include <signal.h>
23e18a033bSKonstantin Ananyev#include <pwd.h>
24e18a033bSKonstantin Ananyev#include <grp.h>
25e18a033bSKonstantin Ananyev#include <dirent.h>
26e18a033bSKonstantin Ananyev#include <glob.h>
27e18a033bSKonstantin Ananyev#include <time.h>
28e18a033bSKonstantin Ananyev#include <sys/param.h>          /* ALIGN() */
29e18a033bSKonstantin Ananyev#include <sys/mount.h>          /* statfs() */
30e18a033bSKonstantin Ananyev
31e18a033bSKonstantin Ananyev#include <sys/filio.h>          /* FIONBIO */
32e18a033bSKonstantin Ananyev#include <sys/uio.h>
33e18a033bSKonstantin Ananyev#include <sys/stat.h>
34e18a033bSKonstantin Ananyev#include <fcntl.h>
35e18a033bSKonstantin Ananyev
36e18a033bSKonstantin Ananyev#include <sys/wait.h>
37e18a033bSKonstantin Ananyev#include <sys/mman.h>
38e18a033bSKonstantin Ananyev#include <sys/resource.h>
39e18a033bSKonstantin Ananyev#include <sched.h>
40e18a033bSKonstantin Ananyev
41e18a033bSKonstantin Ananyev#include <sys/socket.h>
42e18a033bSKonstantin Ananyev#include <netinet/in.h>
43e18a033bSKonstantin Ananyev#include <netinet/tcp.h>        /* TCP_NODELAY, TCP_NOPUSH */
44e18a033bSKonstantin Ananyev#include <arpa/inet.h>
45e18a033bSKonstantin Ananyev#include <netdb.h>
46e18a033bSKonstantin Ananyev#include <sys/un.h>
47e18a033bSKonstantin Ananyev
48e18a033bSKonstantin Ananyev#include <libutil.h>            /* setproctitle() before 4.1 */
49e18a033bSKonstantin Ananyev#include <osreldate.h>
50e18a033bSKonstantin Ananyev#include <sys/sysctl.h>
51e18a033bSKonstantin Ananyev
52e18a033bSKonstantin Ananyev#include <dlfcn.h>
53e18a033bSKonstantin Ananyev
54e18a033bSKonstantin Ananyev
55e18a033bSKonstantin Ananyev#if __FreeBSD_version < 400017
56e18a033bSKonstantin Ananyev
57e18a033bSKonstantin Ananyev/*
58e18a033bSKonstantin Ananyev * FreeBSD 3.x has no CMSG_SPACE() and CMSG_LEN() and has the broken CMSG_DATA()
59e18a033bSKonstantin Ananyev */
60e18a033bSKonstantin Ananyev
61e18a033bSKonstantin Ananyev#undef  CMSG_SPACE
62e18a033bSKonstantin Ananyev#define CMSG_SPACE(l)       (ALIGN(sizeof(struct cmsghdr)) + ALIGN(l))
63e18a033bSKonstantin Ananyev
64e18a033bSKonstantin Ananyev#undef  CMSG_LEN
65e18a033bSKonstantin Ananyev#define CMSG_LEN(l)         (ALIGN(sizeof(struct cmsghdr)) + (l))
66e18a033bSKonstantin Ananyev
67e18a033bSKonstantin Ananyev#undef  CMSG_DATA
68e18a033bSKonstantin Ananyev#define CMSG_DATA(cmsg)     ((u_char *)(cmsg) + ALIGN(sizeof(struct cmsghdr)))
69e18a033bSKonstantin Ananyev
70e18a033bSKonstantin Ananyev#endif
71e18a033bSKonstantin Ananyev
72e18a033bSKonstantin Ananyev
73e18a033bSKonstantin Ananyev#include <ngx_auto_config.h>
74e18a033bSKonstantin Ananyev
75e18a033bSKonstantin Ananyev
76e18a033bSKonstantin Ananyev#if (NGX_HAVE_POSIX_SEM)
77e18a033bSKonstantin Ananyev#include <semaphore.h>
78e18a033bSKonstantin Ananyev#endif
79e18a033bSKonstantin Ananyev
80e18a033bSKonstantin Ananyev
81e18a033bSKonstantin Ananyev#if (NGX_HAVE_POLL)
82e18a033bSKonstantin Ananyev#include <poll.h>
83e18a033bSKonstantin Ananyev#endif
84e18a033bSKonstantin Ananyev
85e18a033bSKonstantin Ananyev
86e18a033bSKonstantin Ananyev#if (NGX_HAVE_KQUEUE)
87e18a033bSKonstantin Ananyev#include <sys/event.h>
88e18a033bSKonstantin Ananyev#endif
89e18a033bSKonstantin Ananyev
90e18a033bSKonstantin Ananyev
91e18a033bSKonstantin Ananyev#if (NGX_HAVE_FILE_AIO)
92e18a033bSKonstantin Ananyev#include <aio.h>
93e18a033bSKonstantin Ananyevtypedef struct aiocb  ngx_aiocb_t;
94e18a033bSKonstantin Ananyev#endif
95e18a033bSKonstantin Ananyev
96e18a033bSKonstantin Ananyev
97e18a033bSKonstantin Ananyev#define NGX_LISTEN_BACKLOG        -1
98e18a033bSKonstantin Ananyev
99e18a033bSKonstantin Ananyev
100e18a033bSKonstantin Ananyev#ifdef __DragonFly__
101e18a033bSKonstantin Ananyev#define NGX_KEEPALIVE_FACTOR      1000
102e18a033bSKonstantin Ananyev#endif
103e18a033bSKonstantin Ananyev
104e18a033bSKonstantin Ananyev
105e18a033bSKonstantin Ananyev#ifndef IOV_MAX
106e18a033bSKonstantin Ananyev#define IOV_MAX   1024
107e18a033bSKonstantin Ananyev#endif
108e18a033bSKonstantin Ananyev
109e18a033bSKonstantin Ananyev
110e18a033bSKonstantin Ananyev#ifndef NGX_HAVE_INHERITED_NONBLOCK
111e18a033bSKonstantin Ananyev#define NGX_HAVE_INHERITED_NONBLOCK  1
112e18a033bSKonstantin Ananyev#endif
113e18a033bSKonstantin Ananyev
114e18a033bSKonstantin Ananyev
115e18a033bSKonstantin Ananyev#define NGX_HAVE_OS_SPECIFIC_INIT    1
116e18a033bSKonstantin Ananyev#define NGX_HAVE_DEBUG_MALLOC        1
117e18a033bSKonstantin Ananyev
118e18a033bSKonstantin Ananyev
119e18a033bSKonstantin Ananyevextern char **environ;
120e18a033bSKonstantin Ananyevextern char  *malloc_options;
121e18a033bSKonstantin Ananyev
122e18a033bSKonstantin Ananyev
123e18a033bSKonstantin Ananyev#endif /* _NGX_FREEBSD_CONFIG_H_INCLUDED_ */
124