nxt_main.h (1393:c2a2867bb5e5) nxt_main.h (1489:4a3ec07f4b19)
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#ifndef _NXT_LIB_H_INCLUDED_
8#define _NXT_LIB_H_INCLUDED_
9
10
11#include <nxt_auto_config.h>
12#include <nxt_version.h>
13
14#define NXT_SERVER "Unit/" NXT_VERSION
15
16typedef struct nxt_port_s nxt_port_t;
17typedef struct nxt_task_s nxt_task_t;
18typedef struct nxt_port_recv_msg_s nxt_port_recv_msg_t;
19typedef void (*nxt_port_handler_t)(nxt_task_t *task, nxt_port_recv_msg_t *msg);
20typedef struct nxt_port_handlers_s nxt_port_handlers_t;
21typedef struct nxt_sig_event_s nxt_sig_event_t;
22typedef struct nxt_runtime_s nxt_runtime_t;
23
24typedef struct nxt_thread_s nxt_thread_t;
25typedef struct nxt_event_engine_s nxt_event_engine_t;
26typedef struct nxt_log_s nxt_log_t;
27typedef struct nxt_thread_pool_s nxt_thread_pool_t;
28
29typedef void (*nxt_work_handler_t)(nxt_task_t *task, void *obj, void *data);
30
31#include <nxt_unix.h>
32#include <nxt_clang.h>
33#include <nxt_types.h>
34#include <nxt_time.h>
35#include <nxt_mp.h>
36#include <nxt_array.h>
37
38typedef uint16_t nxt_port_id_t;
39
40#include <nxt_queue.h>
41
42#include <nxt_thread_id.h>
43
44#include <nxt_errno.h>
45#include <nxt_file.h>
46
47#include <nxt_random.h>
48#include <nxt_string.h>
49#include <nxt_lvlhsh.h>
50#include <nxt_atomic.h>
51#include <nxt_spinlock.h>
52#include <nxt_work_queue.h>
53#include <nxt_log.h>
54#include <nxt_thread_time.h>
55#include <nxt_rbtree.h>
56#include <nxt_timer.h>
57#include <nxt_fiber.h>
58#include <nxt_thread.h>
59#include <nxt_process_type.h>
60#include <nxt_capability.h>
61#include <nxt_credential.h>
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#ifndef _NXT_LIB_H_INCLUDED_
8#define _NXT_LIB_H_INCLUDED_
9
10
11#include <nxt_auto_config.h>
12#include <nxt_version.h>
13
14#define NXT_SERVER "Unit/" NXT_VERSION
15
16typedef struct nxt_port_s nxt_port_t;
17typedef struct nxt_task_s nxt_task_t;
18typedef struct nxt_port_recv_msg_s nxt_port_recv_msg_t;
19typedef void (*nxt_port_handler_t)(nxt_task_t *task, nxt_port_recv_msg_t *msg);
20typedef struct nxt_port_handlers_s nxt_port_handlers_t;
21typedef struct nxt_sig_event_s nxt_sig_event_t;
22typedef struct nxt_runtime_s nxt_runtime_t;
23
24typedef struct nxt_thread_s nxt_thread_t;
25typedef struct nxt_event_engine_s nxt_event_engine_t;
26typedef struct nxt_log_s nxt_log_t;
27typedef struct nxt_thread_pool_s nxt_thread_pool_t;
28
29typedef void (*nxt_work_handler_t)(nxt_task_t *task, void *obj, void *data);
30
31#include <nxt_unix.h>
32#include <nxt_clang.h>
33#include <nxt_types.h>
34#include <nxt_time.h>
35#include <nxt_mp.h>
36#include <nxt_array.h>
37
38typedef uint16_t nxt_port_id_t;
39
40#include <nxt_queue.h>
41
42#include <nxt_thread_id.h>
43
44#include <nxt_errno.h>
45#include <nxt_file.h>
46
47#include <nxt_random.h>
48#include <nxt_string.h>
49#include <nxt_lvlhsh.h>
50#include <nxt_atomic.h>
51#include <nxt_spinlock.h>
52#include <nxt_work_queue.h>
53#include <nxt_log.h>
54#include <nxt_thread_time.h>
55#include <nxt_rbtree.h>
56#include <nxt_timer.h>
57#include <nxt_fiber.h>
58#include <nxt_thread.h>
59#include <nxt_process_type.h>
60#include <nxt_capability.h>
61#include <nxt_credential.h>
62#include <nxt_fs.h>
62#include <nxt_process.h>
63#include <nxt_utf8.h>
64#include <nxt_file_name.h>
65
66#include <nxt_sprintf.h>
67#include <nxt_parse.h>
68
69
70/* TODO: remove unused */
71
72typedef struct nxt_fd_event_s nxt_fd_event_t;
73typedef struct nxt_sockaddr_s nxt_sockaddr_t;
74
75
76#include <nxt_malloc.h>
77#include <nxt_mem_map.h>
78#include <nxt_socket.h>
79#include <nxt_dyld.h>
80
81
82typedef void *(*nxt_mem_proto_alloc_t)(void *pool, size_t size);
83typedef void (*nxt_mem_proto_free_t)(void *pool, void *p);
84
85typedef struct {
86 nxt_mem_proto_alloc_t alloc;
87 nxt_mem_proto_free_t free;
88} nxt_mem_proto_t;
89
90
91#include <nxt_mem_zone.h>
92#include <nxt_signal.h>
93#include <nxt_semaphore.h>
94
95#include <nxt_djb_hash.h>
96#include <nxt_murmur_hash.h>
97#include <nxt_hash.h>
98
99#include <nxt_sort.h>
100#include <nxt_vector.h>
101#include <nxt_list.h>
102
103#include <nxt_service.h>
104
105typedef struct nxt_buf_s nxt_buf_t;
106#include <nxt_buf.h>
107#include <nxt_buf_pool.h>
108#include <nxt_recvbuf.h>
109
110typedef struct nxt_conn_s nxt_conn_t;
111#include <nxt_sendbuf.h>
112
113#include <nxt_log_moderation.h>
114
115#if (NXT_TLS)
116#include <nxt_tls.h>
117#endif
118
119
120#define nxt_thread() \
121 (nxt_thread_t *) nxt_thread_get_data(nxt_thread_context)
122
123nxt_thread_extern_data(nxt_thread_t, nxt_thread_context);
124
125
126#include <nxt_thread_log.h>
127
128#include <nxt_fd_event.h>
129#include <nxt_file_event.h>
130
131#include <nxt_port.h>
132#include <nxt_port_memory.h>
133#include <nxt_port_rpc.h>
134#include <nxt_thread_pool.h>
135
136
137typedef void (*nxt_event_conn_handler_t)(nxt_thread_t *thr, nxt_conn_t *c);
138#include <nxt_listen_socket.h>
139
140#include <nxt_conn.h>
141#include <nxt_event_engine.h>
142
143#include <nxt_job.h>
144#include <nxt_job_file.h>
145#include <nxt_buf_filter.h>
146
147#include <nxt_job_resolve.h>
148#include <nxt_sockaddr.h>
149
150#include <nxt_cache.h>
151
152#include <nxt_http_parse.h>
153#include <nxt_runtime.h>
154#include <nxt_port_hash.h>
155
156
157/*
158 * The envp argument must be &environ if application may
159 * change its process title with nxt_process_title().
160 */
161NXT_EXPORT nxt_int_t nxt_lib_start(const char *app, char **argv, char ***envp);
162NXT_EXPORT void nxt_lib_stop(void);
163
164
165NXT_EXPORT extern nxt_uint_t nxt_ncpu;
166NXT_EXPORT extern nxt_uint_t nxt_pagesize;
167NXT_EXPORT extern nxt_task_t nxt_main_task;
168NXT_EXPORT extern nxt_atomic_t nxt_task_ident;
169
170
171#endif /* _NXT_LIB_H_INCLUDED_ */
63#include <nxt_process.h>
64#include <nxt_utf8.h>
65#include <nxt_file_name.h>
66
67#include <nxt_sprintf.h>
68#include <nxt_parse.h>
69
70
71/* TODO: remove unused */
72
73typedef struct nxt_fd_event_s nxt_fd_event_t;
74typedef struct nxt_sockaddr_s nxt_sockaddr_t;
75
76
77#include <nxt_malloc.h>
78#include <nxt_mem_map.h>
79#include <nxt_socket.h>
80#include <nxt_dyld.h>
81
82
83typedef void *(*nxt_mem_proto_alloc_t)(void *pool, size_t size);
84typedef void (*nxt_mem_proto_free_t)(void *pool, void *p);
85
86typedef struct {
87 nxt_mem_proto_alloc_t alloc;
88 nxt_mem_proto_free_t free;
89} nxt_mem_proto_t;
90
91
92#include <nxt_mem_zone.h>
93#include <nxt_signal.h>
94#include <nxt_semaphore.h>
95
96#include <nxt_djb_hash.h>
97#include <nxt_murmur_hash.h>
98#include <nxt_hash.h>
99
100#include <nxt_sort.h>
101#include <nxt_vector.h>
102#include <nxt_list.h>
103
104#include <nxt_service.h>
105
106typedef struct nxt_buf_s nxt_buf_t;
107#include <nxt_buf.h>
108#include <nxt_buf_pool.h>
109#include <nxt_recvbuf.h>
110
111typedef struct nxt_conn_s nxt_conn_t;
112#include <nxt_sendbuf.h>
113
114#include <nxt_log_moderation.h>
115
116#if (NXT_TLS)
117#include <nxt_tls.h>
118#endif
119
120
121#define nxt_thread() \
122 (nxt_thread_t *) nxt_thread_get_data(nxt_thread_context)
123
124nxt_thread_extern_data(nxt_thread_t, nxt_thread_context);
125
126
127#include <nxt_thread_log.h>
128
129#include <nxt_fd_event.h>
130#include <nxt_file_event.h>
131
132#include <nxt_port.h>
133#include <nxt_port_memory.h>
134#include <nxt_port_rpc.h>
135#include <nxt_thread_pool.h>
136
137
138typedef void (*nxt_event_conn_handler_t)(nxt_thread_t *thr, nxt_conn_t *c);
139#include <nxt_listen_socket.h>
140
141#include <nxt_conn.h>
142#include <nxt_event_engine.h>
143
144#include <nxt_job.h>
145#include <nxt_job_file.h>
146#include <nxt_buf_filter.h>
147
148#include <nxt_job_resolve.h>
149#include <nxt_sockaddr.h>
150
151#include <nxt_cache.h>
152
153#include <nxt_http_parse.h>
154#include <nxt_runtime.h>
155#include <nxt_port_hash.h>
156
157
158/*
159 * The envp argument must be &environ if application may
160 * change its process title with nxt_process_title().
161 */
162NXT_EXPORT nxt_int_t nxt_lib_start(const char *app, char **argv, char ***envp);
163NXT_EXPORT void nxt_lib_stop(void);
164
165
166NXT_EXPORT extern nxt_uint_t nxt_ncpu;
167NXT_EXPORT extern nxt_uint_t nxt_pagesize;
168NXT_EXPORT extern nxt_task_t nxt_main_task;
169NXT_EXPORT extern nxt_atomic_t nxt_task_ident;
170
171
172#endif /* _NXT_LIB_H_INCLUDED_ */