aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_module.h
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2016-02-04 18:30:21 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2016-02-04 18:30:21 +0300
commit798833457018ee8a6274ec78e816f747361c0d47 (patch)
treea8a905538380af822e90b3fc5571de836c3b3aba /src/core/ngx_module.h
parent9add42c71e71c2af8e67eceeeb773d22a9cab760 (diff)
downloadnginx-798833457018ee8a6274ec78e816f747361c0d47.tar.gz
nginx-798833457018ee8a6274ec78e816f747361c0d47.zip
Dynamic modules: moved module-related stuff to separate files.
Diffstat (limited to 'src/core/ngx_module.h')
-rw-r--r--src/core/ngx_module.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/core/ngx_module.h b/src/core/ngx_module.h
new file mode 100644
index 000000000..fb5ac9b57
--- /dev/null
+++ b/src/core/ngx_module.h
@@ -0,0 +1,74 @@
+
+/*
+ * 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>
+
+
+#define NGX_MODULE_V1 0, 0, 0, 0, 0, 0, 1
+#define NGX_MODULE_V1_PADDING 0, 0, 0, 0, 0, 0, 0, 0
+
+
+struct ngx_module_s {
+ ngx_uint_t ctx_index;
+ ngx_uint_t index;
+
+ ngx_uint_t spare0;
+ ngx_uint_t spare1;
+ ngx_uint_t spare2;
+ ngx_uint_t spare3;
+
+ ngx_uint_t version;
+
+ void *ctx;
+ ngx_command_t *commands;
+ ngx_uint_t type;
+
+ ngx_int_t (*init_master)(ngx_log_t *log);
+
+ ngx_int_t (*init_module)(ngx_cycle_t *cycle);
+
+ ngx_int_t (*init_process)(ngx_cycle_t *cycle);
+ ngx_int_t (*init_thread)(ngx_cycle_t *cycle);
+ void (*exit_thread)(ngx_cycle_t *cycle);
+ void (*exit_process)(ngx_cycle_t *cycle);
+
+ void (*exit_master)(ngx_cycle_t *cycle);
+
+ uintptr_t spare_hook0;
+ uintptr_t spare_hook1;
+ uintptr_t spare_hook2;
+ uintptr_t spare_hook3;
+ uintptr_t spare_hook4;
+ uintptr_t spare_hook5;
+ uintptr_t spare_hook6;
+ uintptr_t spare_hook7;
+};
+
+
+typedef struct {
+ ngx_str_t name;
+ void *(*create_conf)(ngx_cycle_t *cycle);
+ char *(*init_conf)(ngx_cycle_t *cycle, void *conf);
+} ngx_core_module_t;
+
+
+ngx_int_t ngx_preinit_modules();
+ngx_int_t ngx_init_modules(ngx_cycle_t *cycle);
+ngx_int_t ngx_count_modules(ngx_cycle_t *cycle, ngx_uint_t type);
+
+
+extern ngx_module_t *ngx_modules[];
+extern ngx_uint_t ngx_max_module;
+
+
+#endif /* _NGX_MODULE_H_INCLUDED_ */