nginx/src/core/ngx_module.h


/*
 * Copyright (C) Igor Sysoev
 * Copyright (C) Maxim Dounin
 * Copyright (C) Nginx, Inc.
 */


#ifndef _NGX_MODULE_H_INCLUDED_
#define _NGX_MODULE_H_INCLUDED_


#include <ngx_config.h>
#include <ngx_core.h>
#include <nginx.h>


#define NGX_MODULE_UNSET_INDEX


#define NGX_MODULE_SIGNATURE_0

#if (NGX_HAVE_KQUEUE)
#define NGX_MODULE_SIGNATURE_1
#else
#define NGX_MODULE_SIGNATURE_1
#endif

#if (NGX_HAVE_IOCP)
#define NGX_MODULE_SIGNATURE_2
#else
#define NGX_MODULE_SIGNATURE_2
#endif

#if (NGX_HAVE_FILE_AIO || NGX_COMPAT)
#define NGX_MODULE_SIGNATURE_3
#else
#define NGX_MODULE_SIGNATURE_3
#endif

#if (NGX_HAVE_SENDFILE_NODISKIO || NGX_COMPAT)
#define NGX_MODULE_SIGNATURE_4
#else
#define NGX_MODULE_SIGNATURE_4
#endif

#if (NGX_HAVE_EVENTFD)
#define NGX_MODULE_SIGNATURE_5
#else
#define NGX_MODULE_SIGNATURE_5
#endif

#if (NGX_HAVE_EPOLL)
#define NGX_MODULE_SIGNATURE_6
#else
#define NGX_MODULE_SIGNATURE_6
#endif

#if (NGX_HAVE_KEEPALIVE_TUNABLE)
#define NGX_MODULE_SIGNATURE_7
#else
#define NGX_MODULE_SIGNATURE_7
#endif

#if (NGX_HAVE_INET6)
#define NGX_MODULE_SIGNATURE_8
#else
#define NGX_MODULE_SIGNATURE_8
#endif

#define NGX_MODULE_SIGNATURE_9
#define NGX_MODULE_SIGNATURE_10

#if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER)
#define NGX_MODULE_SIGNATURE_11
#else
#define NGX_MODULE_SIGNATURE_11
#endif

#define NGX_MODULE_SIGNATURE_12

#if (NGX_HAVE_SETFIB)
#define NGX_MODULE_SIGNATURE_13
#else
#define NGX_MODULE_SIGNATURE_13
#endif

#if (NGX_HAVE_TCP_FASTOPEN)
#define NGX_MODULE_SIGNATURE_14
#else
#define NGX_MODULE_SIGNATURE_14
#endif

#if (NGX_HAVE_UNIX_DOMAIN)
#define NGX_MODULE_SIGNATURE_15
#else
#define NGX_MODULE_SIGNATURE_15
#endif

#if (NGX_HAVE_VARIADIC_MACROS)
#define NGX_MODULE_SIGNATURE_16
#else
#define NGX_MODULE_SIGNATURE_16
#endif

#define NGX_MODULE_SIGNATURE_17

#if (NGX_QUIC || NGX_COMPAT)
#define NGX_MODULE_SIGNATURE_18
#else
#define NGX_MODULE_SIGNATURE_18
#endif

#if (NGX_HAVE_OPENAT)
#define NGX_MODULE_SIGNATURE_19
#else
#define NGX_MODULE_SIGNATURE_19
#endif

#if (NGX_HAVE_ATOMIC_OPS)
#define NGX_MODULE_SIGNATURE_20
#else
#define NGX_MODULE_SIGNATURE_20
#endif

#if (NGX_HAVE_POSIX_SEM)
#define NGX_MODULE_SIGNATURE_21
#else
#define NGX_MODULE_SIGNATURE_21
#endif

#if (NGX_THREADS || NGX_COMPAT)
#define NGX_MODULE_SIGNATURE_22
#else
#define NGX_MODULE_SIGNATURE_22
#endif

#if (NGX_PCRE)
#define NGX_MODULE_SIGNATURE_23
#else
#define NGX_MODULE_SIGNATURE_23
#endif

#if (NGX_HTTP_SSL || NGX_COMPAT)
#define NGX_MODULE_SIGNATURE_24
#else
#define NGX_MODULE_SIGNATURE_24
#endif

#define NGX_MODULE_SIGNATURE_25

#if (NGX_HTTP_GZIP)
#define NGX_MODULE_SIGNATURE_26
#else
#define NGX_MODULE_SIGNATURE_26
#endif

#define NGX_MODULE_SIGNATURE_27

#if (NGX_HTTP_X_FORWARDED_FOR)
#define NGX_MODULE_SIGNATURE_28
#else
#define NGX_MODULE_SIGNATURE_28
#endif

#if (NGX_HTTP_REALIP)
#define NGX_MODULE_SIGNATURE_29
#else
#define NGX_MODULE_SIGNATURE_29
#endif

#if (NGX_HTTP_HEADERS)
#define NGX_MODULE_SIGNATURE_30
#else
#define NGX_MODULE_SIGNATURE_30
#endif

#if (NGX_HTTP_DAV)
#define NGX_MODULE_SIGNATURE_31
#else
#define NGX_MODULE_SIGNATURE_31
#endif

#if (NGX_HTTP_CACHE)
#define NGX_MODULE_SIGNATURE_32
#else
#define NGX_MODULE_SIGNATURE_32
#endif

#if (NGX_HTTP_UPSTREAM_ZONE)
#define NGX_MODULE_SIGNATURE_33
#else
#define NGX_MODULE_SIGNATURE_33
#endif

#if (NGX_COMPAT)
#define NGX_MODULE_SIGNATURE_34
#else
#define NGX_MODULE_SIGNATURE_34
#endif

#define NGX_MODULE_SIGNATURE


#define NGX_MODULE_V1

#define NGX_MODULE_V1_PADDING


struct ngx_module_s {};


ngx_core_module_t;


ngx_int_t ngx_preinit_modules(void);
ngx_int_t ngx_cycle_modules(ngx_cycle_t *cycle);
ngx_int_t ngx_init_modules(ngx_cycle_t *cycle);
ngx_int_t ngx_count_modules(ngx_cycle_t *cycle, ngx_uint_t type);


ngx_int_t ngx_add_module(ngx_conf_t *cf, ngx_str_t *file,
    ngx_module_t *module, char **order);


extern ngx_module_t  *ngx_modules[];
extern ngx_uint_t     ngx_max_module;

extern char          *ngx_module_names[];


#endif /* _NGX_MODULE_H_INCLUDED_ */