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_CORE_H_INCLUDED_
9e18a033bSKonstantin Ananyev#define _NGX_CORE_H_INCLUDED_
10e18a033bSKonstantin Ananyev
11e18a033bSKonstantin Ananyev
12e18a033bSKonstantin Ananyev#include <ngx_config.h>
13e18a033bSKonstantin Ananyev
14e18a033bSKonstantin Ananyev
15e18a033bSKonstantin Ananyevtypedef struct ngx_module_s          ngx_module_t;
16e18a033bSKonstantin Ananyevtypedef struct ngx_conf_s            ngx_conf_t;
17e18a033bSKonstantin Ananyevtypedef struct ngx_cycle_s           ngx_cycle_t;
18e18a033bSKonstantin Ananyevtypedef struct ngx_pool_s            ngx_pool_t;
19e18a033bSKonstantin Ananyevtypedef struct ngx_chain_s           ngx_chain_t;
20e18a033bSKonstantin Ananyevtypedef struct ngx_log_s             ngx_log_t;
21e18a033bSKonstantin Ananyevtypedef struct ngx_open_file_s       ngx_open_file_t;
22e18a033bSKonstantin Ananyevtypedef struct ngx_command_s         ngx_command_t;
23e18a033bSKonstantin Ananyevtypedef struct ngx_file_s            ngx_file_t;
24e18a033bSKonstantin Ananyevtypedef struct ngx_event_s           ngx_event_t;
25e18a033bSKonstantin Ananyevtypedef struct ngx_event_aio_s       ngx_event_aio_t;
26e18a033bSKonstantin Ananyevtypedef struct ngx_connection_s      ngx_connection_t;
27e18a033bSKonstantin Ananyevtypedef struct ngx_thread_task_s     ngx_thread_task_t;
28e18a033bSKonstantin Ananyevtypedef struct ngx_ssl_s             ngx_ssl_t;
29e18a033bSKonstantin Ananyevtypedef struct ngx_ssl_connection_s  ngx_ssl_connection_t;
30e18a033bSKonstantin Ananyev
31e18a033bSKonstantin Ananyevtypedef void (*ngx_event_handler_pt)(ngx_event_t *ev);
32e18a033bSKonstantin Ananyevtypedef void (*ngx_connection_handler_pt)(ngx_connection_t *c);
33e18a033bSKonstantin Ananyev
34e18a033bSKonstantin Ananyev
35e18a033bSKonstantin Ananyev#define  NGX_OK          0
36e18a033bSKonstantin Ananyev#define  NGX_ERROR      -1
37e18a033bSKonstantin Ananyev#define  NGX_AGAIN      -2
38e18a033bSKonstantin Ananyev#define  NGX_BUSY       -3
39e18a033bSKonstantin Ananyev#define  NGX_DONE       -4
40e18a033bSKonstantin Ananyev#define  NGX_DECLINED   -5
41e18a033bSKonstantin Ananyev#define  NGX_ABORT      -6
42e18a033bSKonstantin Ananyev
43e18a033bSKonstantin Ananyev
44e18a033bSKonstantin Ananyev#include <ngx_errno.h>
45e18a033bSKonstantin Ananyev#include <ngx_atomic.h>
46e18a033bSKonstantin Ananyev#include <ngx_thread.h>
47e18a033bSKonstantin Ananyev#include <ngx_rbtree.h>
48e18a033bSKonstantin Ananyev#include <ngx_time.h>
49e18a033bSKonstantin Ananyev#include <ngx_socket.h>
50e18a033bSKonstantin Ananyev#include <ngx_string.h>
51e18a033bSKonstantin Ananyev#include <ngx_files.h>
52e18a033bSKonstantin Ananyev#include <ngx_shmem.h>
53e18a033bSKonstantin Ananyev#include <ngx_process.h>
54e18a033bSKonstantin Ananyev#include <ngx_user.h>
55e18a033bSKonstantin Ananyev#include <ngx_dlopen.h>
56e18a033bSKonstantin Ananyev#include <ngx_parse.h>
57e18a033bSKonstantin Ananyev#include <ngx_parse_time.h>
58e18a033bSKonstantin Ananyev#include <ngx_log.h>
59e18a033bSKonstantin Ananyev#include <ngx_alloc.h>
60e18a033bSKonstantin Ananyev#include <ngx_palloc.h>
61e18a033bSKonstantin Ananyev#include <ngx_buf.h>
62e18a033bSKonstantin Ananyev#include <ngx_queue.h>
63e18a033bSKonstantin Ananyev#include <ngx_array.h>
64e18a033bSKonstantin Ananyev#include <ngx_list.h>
65e18a033bSKonstantin Ananyev#include <ngx_hash.h>
66e18a033bSKonstantin Ananyev#include <ngx_file.h>
67e18a033bSKonstantin Ananyev#include <ngx_crc.h>
68e18a033bSKonstantin Ananyev#include <ngx_crc32.h>
69e18a033bSKonstantin Ananyev#include <ngx_murmurhash.h>
70e18a033bSKonstantin Ananyev#if (NGX_PCRE)
71e18a033bSKonstantin Ananyev#include <ngx_regex.h>
72e18a033bSKonstantin Ananyev#endif
73e18a033bSKonstantin Ananyev#include <ngx_radix_tree.h>
74e18a033bSKonstantin Ananyev#include <ngx_times.h>
75e18a033bSKonstantin Ananyev#include <ngx_rwlock.h>
76e18a033bSKonstantin Ananyev#include <ngx_shmtx.h>
77e18a033bSKonstantin Ananyev#include <ngx_slab.h>
78e18a033bSKonstantin Ananyev#include <ngx_inet.h>
79e18a033bSKonstantin Ananyev#include <ngx_cycle.h>
80e18a033bSKonstantin Ananyev#include <ngx_resolver.h>
81e18a033bSKonstantin Ananyev#if (NGX_OPENSSL)
82e18a033bSKonstantin Ananyev#include <ngx_event_openssl.h>
83e18a033bSKonstantin Ananyev#endif
84e18a033bSKonstantin Ananyev#include <ngx_process_cycle.h>
85e18a033bSKonstantin Ananyev#include <ngx_conf_file.h>
86e18a033bSKonstantin Ananyev#include <ngx_module.h>
87e18a033bSKonstantin Ananyev#include <ngx_open_file_cache.h>
88e18a033bSKonstantin Ananyev#include <ngx_os.h>
89e18a033bSKonstantin Ananyev#include <ngx_connection.h>
90e18a033bSKonstantin Ananyev#include <ngx_syslog.h>
91e18a033bSKonstantin Ananyev#include <ngx_proxy_protocol.h>
92e18a033bSKonstantin Ananyev
93e18a033bSKonstantin Ananyev
94e18a033bSKonstantin Ananyev#define LF     (u_char) '\n'
95e18a033bSKonstantin Ananyev#define CR     (u_char) '\r'
96e18a033bSKonstantin Ananyev#define CRLF   "\r\n"
97e18a033bSKonstantin Ananyev
98e18a033bSKonstantin Ananyev
99e18a033bSKonstantin Ananyev#define ngx_abs(value)       (((value) >= 0) ? (value) : - (value))
100e18a033bSKonstantin Ananyev#define ngx_max(val1, val2)  ((val1 < val2) ? (val2) : (val1))
101e18a033bSKonstantin Ananyev#define ngx_min(val1, val2)  ((val1 > val2) ? (val2) : (val1))
102e18a033bSKonstantin Ananyev
103e18a033bSKonstantin Ananyevvoid ngx_cpuinfo(void);
104e18a033bSKonstantin Ananyev
105e18a033bSKonstantin Ananyev#if (NGX_HAVE_OPENAT)
106e18a033bSKonstantin Ananyev#define NGX_DISABLE_SYMLINKS_OFF        0
107e18a033bSKonstantin Ananyev#define NGX_DISABLE_SYMLINKS_ON         1
108e18a033bSKonstantin Ananyev#define NGX_DISABLE_SYMLINKS_NOTOWNER   2
109e18a033bSKonstantin Ananyev#endif
110e18a033bSKonstantin Ananyev
111e18a033bSKonstantin Ananyev#endif /* _NGX_CORE_H_INCLUDED_ */
112