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 13#include <nxt_unix.h> 14#include <nxt_clang.h> 15#include <nxt_types.h> 16#include <nxt_time.h> 17#include <nxt_mp.h> 18#include <nxt_array.h> 19 20typedef struct nxt_port_s nxt_port_t; 21typedef struct nxt_task_s nxt_task_t; 22typedef struct nxt_port_recv_msg_s nxt_port_recv_msg_t; 23typedef void (*nxt_port_handler_t)(nxt_task_t *task, nxt_port_recv_msg_t *msg); 24typedef struct nxt_sig_event_s nxt_sig_event_t; 25typedef struct nxt_runtime_s nxt_runtime_t; 26typedef uint16_t nxt_port_id_t; 27 28#include <nxt_queue.h> 29#include <nxt_process.h> 30 31typedef struct nxt_thread_s nxt_thread_t; 32#include <nxt_thread_id.h> 33 34#include <nxt_errno.h> 35#include <nxt_file.h> 36 37#include <nxt_random.h> 38#include <nxt_string.h> 39#include <nxt_utf8.h> 40#include <nxt_file_name.h> 41 42typedef struct nxt_log_s nxt_log_t; 43#include <nxt_log.h> 44 45 46#include <nxt_atomic.h> 47#include <nxt_rbtree.h> 48#include <nxt_sprintf.h> 49#include <nxt_parse.h> 50 51 52/* TODO: remove unused */ 53 54typedef struct nxt_fd_event_s nxt_fd_event_t; 55typedef struct nxt_sockaddr_s nxt_sockaddr_t; 56 57 58#include <nxt_malloc.h> 59#include <nxt_mem_map.h> 60#include <nxt_socket.h> 61#include <nxt_spinlock.h> 62#include <nxt_dyld.h> 63 64#include <nxt_work_queue.h> 65 66 67typedef void *(*nxt_mem_proto_alloc_t)(void *pool, size_t size); 68typedef void (*nxt_mem_proto_free_t)(void *pool, void *p); 69 70typedef struct { 71 nxt_mem_proto_alloc_t alloc; 72 nxt_mem_proto_free_t free; 73} nxt_mem_proto_t; 74 75 76#include <nxt_mem_zone.h> 77#include <nxt_thread_time.h> 78 79typedef struct nxt_event_engine_s nxt_event_engine_t; 80#include <nxt_timer.h> 81#include <nxt_fiber.h> 82 83typedef struct nxt_thread_pool_s nxt_thread_pool_t; 84#include <nxt_thread.h> 85 86#include <nxt_signal.h> 87#if (NXT_THREADS) 88#include <nxt_semaphore.h> 89#endif 90 91#include <nxt_djb_hash.h> 92#include <nxt_murmur_hash.h> 93#include <nxt_lvlhsh.h> 94#include <nxt_hash.h> 95 96#include <nxt_sort.h> 97#include <nxt_vector.h> 98#include <nxt_list.h> 99 100#include <nxt_service.h> 101 102typedef struct nxt_buf_s nxt_buf_t; 103typedef struct nxt_port_mmap_s nxt_port_mmap_t; 104#include <nxt_buf.h> 105#include <nxt_buf_pool.h> 106#include <nxt_recvbuf.h> 107 108typedef struct nxt_conn_s nxt_conn_t; 109#include <nxt_sendbuf.h> 110 111#include <nxt_log_moderation.h> 112 113#if (NXT_SSLTLS) 114#include <nxt_ssltls.h> 115#endif 116 117 118#define nxt_thread() \ 119 (nxt_thread_t *) nxt_thread_get_data(nxt_thread_context) 120 121nxt_thread_extern_data(nxt_thread_t, nxt_thread_context); 122 123 124#include <nxt_thread_log.h> 125 126#include <nxt_fd_event.h> 127#include <nxt_file_event.h> 128 129#include <nxt_port.h> 130#include <nxt_port_memory.h> 131#if (NXT_THREADS) 132#include <nxt_thread_pool.h> 133#endif 134 135 136typedef void (*nxt_event_conn_handler_t)(nxt_thread_t *thr, nxt_conn_t *c); 137#include <nxt_listen_socket.h> 138 139#include <nxt_conn.h> 140#include <nxt_event_engine.h> 141 142#include <nxt_job.h> 143#include <nxt_job_file.h> 144#include <nxt_buf_filter.h> 145 146#include <nxt_job_resolve.h> 147#include <nxt_sockaddr.h> 148 149#include <nxt_cache.h> 150 151#include <nxt_source.h> 152typedef struct nxt_upstream_source_s nxt_upstream_source_t; 153 154#include <nxt_http_parse.h> 155#include <nxt_stream_source.h> 156#include <nxt_upstream.h> 157#include <nxt_upstream_source.h> 158#include <nxt_http_source.h> 159#include <nxt_fastcgi_source.h> 160#include <nxt_runtime.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 13#include <nxt_unix.h> 14#include <nxt_clang.h> 15#include <nxt_types.h> 16#include <nxt_time.h> 17#include <nxt_mp.h> 18#include <nxt_array.h> 19 20typedef struct nxt_port_s nxt_port_t; 21typedef struct nxt_task_s nxt_task_t; 22typedef struct nxt_port_recv_msg_s nxt_port_recv_msg_t; 23typedef void (*nxt_port_handler_t)(nxt_task_t *task, nxt_port_recv_msg_t *msg); 24typedef struct nxt_sig_event_s nxt_sig_event_t; 25typedef struct nxt_runtime_s nxt_runtime_t; 26typedef uint16_t nxt_port_id_t; 27 28#include <nxt_queue.h> 29#include <nxt_process.h> 30 31typedef struct nxt_thread_s nxt_thread_t; 32#include <nxt_thread_id.h> 33 34#include <nxt_errno.h> 35#include <nxt_file.h> 36 37#include <nxt_random.h> 38#include <nxt_string.h> 39#include <nxt_utf8.h> 40#include <nxt_file_name.h> 41 42typedef struct nxt_log_s nxt_log_t; 43#include <nxt_log.h> 44 45 46#include <nxt_atomic.h> 47#include <nxt_rbtree.h> 48#include <nxt_sprintf.h> 49#include <nxt_parse.h> 50 51 52/* TODO: remove unused */ 53 54typedef struct nxt_fd_event_s nxt_fd_event_t; 55typedef struct nxt_sockaddr_s nxt_sockaddr_t; 56 57 58#include <nxt_malloc.h> 59#include <nxt_mem_map.h> 60#include <nxt_socket.h> 61#include <nxt_spinlock.h> 62#include <nxt_dyld.h> 63 64#include <nxt_work_queue.h> 65 66 67typedef void *(*nxt_mem_proto_alloc_t)(void *pool, size_t size); 68typedef void (*nxt_mem_proto_free_t)(void *pool, void *p); 69 70typedef struct { 71 nxt_mem_proto_alloc_t alloc; 72 nxt_mem_proto_free_t free; 73} nxt_mem_proto_t; 74 75 76#include <nxt_mem_zone.h> 77#include <nxt_thread_time.h> 78 79typedef struct nxt_event_engine_s nxt_event_engine_t; 80#include <nxt_timer.h> 81#include <nxt_fiber.h> 82 83typedef struct nxt_thread_pool_s nxt_thread_pool_t; 84#include <nxt_thread.h> 85 86#include <nxt_signal.h> 87#if (NXT_THREADS) 88#include <nxt_semaphore.h> 89#endif 90 91#include <nxt_djb_hash.h> 92#include <nxt_murmur_hash.h> 93#include <nxt_lvlhsh.h> 94#include <nxt_hash.h> 95 96#include <nxt_sort.h> 97#include <nxt_vector.h> 98#include <nxt_list.h> 99 100#include <nxt_service.h> 101 102typedef struct nxt_buf_s nxt_buf_t; 103typedef struct nxt_port_mmap_s nxt_port_mmap_t; 104#include <nxt_buf.h> 105#include <nxt_buf_pool.h> 106#include <nxt_recvbuf.h> 107 108typedef struct nxt_conn_s nxt_conn_t; 109#include <nxt_sendbuf.h> 110 111#include <nxt_log_moderation.h> 112 113#if (NXT_SSLTLS) 114#include <nxt_ssltls.h> 115#endif 116 117 118#define nxt_thread() \ 119 (nxt_thread_t *) nxt_thread_get_data(nxt_thread_context) 120 121nxt_thread_extern_data(nxt_thread_t, nxt_thread_context); 122 123 124#include <nxt_thread_log.h> 125 126#include <nxt_fd_event.h> 127#include <nxt_file_event.h> 128 129#include <nxt_port.h> 130#include <nxt_port_memory.h> 131#if (NXT_THREADS) 132#include <nxt_thread_pool.h> 133#endif 134 135 136typedef void (*nxt_event_conn_handler_t)(nxt_thread_t *thr, nxt_conn_t *c); 137#include <nxt_listen_socket.h> 138 139#include <nxt_conn.h> 140#include <nxt_event_engine.h> 141 142#include <nxt_job.h> 143#include <nxt_job_file.h> 144#include <nxt_buf_filter.h> 145 146#include <nxt_job_resolve.h> 147#include <nxt_sockaddr.h> 148 149#include <nxt_cache.h> 150 151#include <nxt_source.h> 152typedef struct nxt_upstream_source_s nxt_upstream_source_t; 153 154#include <nxt_http_parse.h> 155#include <nxt_stream_source.h> 156#include <nxt_upstream.h> 157#include <nxt_upstream_source.h> 158#include <nxt_http_source.h> 159#include <nxt_fastcgi_source.h> 160#include <nxt_runtime.h>
|
161 162 163#if (NXT_LIB_UNIT_TEST) 164#include <../test/nxt_lib_unit_test.h> 165#else 166#define NXT_LIB_UNIT_TEST_STATIC static 167#endif 168 169 170/* 171 * The envp argument must be &environ if application may 172 * change its process title with nxt_process_title(). 173 */ 174NXT_EXPORT nxt_int_t nxt_lib_start(const char *app, char **argv, char ***envp); 175NXT_EXPORT void nxt_lib_stop(void); 176 177 178NXT_EXPORT extern nxt_uint_t nxt_ncpu; 179NXT_EXPORT extern nxt_uint_t nxt_pagesize; 180NXT_EXPORT extern nxt_task_t nxt_main_task; 181NXT_EXPORT extern nxt_atomic_t nxt_task_ident; 182NXT_EXPORT extern nxt_random_t nxt_random_data; 183 184 185#endif /* _NXT_LIB_H_INCLUDED_ */
| 162 163 164#if (NXT_LIB_UNIT_TEST) 165#include <../test/nxt_lib_unit_test.h> 166#else 167#define NXT_LIB_UNIT_TEST_STATIC static 168#endif 169 170 171/* 172 * The envp argument must be &environ if application may 173 * change its process title with nxt_process_title(). 174 */ 175NXT_EXPORT nxt_int_t nxt_lib_start(const char *app, char **argv, char ***envp); 176NXT_EXPORT void nxt_lib_stop(void); 177 178 179NXT_EXPORT extern nxt_uint_t nxt_ncpu; 180NXT_EXPORT extern nxt_uint_t nxt_pagesize; 181NXT_EXPORT extern nxt_task_t nxt_main_task; 182NXT_EXPORT extern nxt_atomic_t nxt_task_ident; 183NXT_EXPORT extern nxt_random_t nxt_random_data; 184 185 186#endif /* _NXT_LIB_H_INCLUDED_ */
|