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 14 #define NXT_VERSION "0.6" 15 #define NXT_VERNUM 6 16 17 18 typedef struct nxt_port_s nxt_port_t; 19 typedef struct nxt_task_s nxt_task_t; 20 typedef struct nxt_port_recv_msg_s nxt_port_recv_msg_t; 21 typedef void (*nxt_port_handler_t)(nxt_task_t *task, nxt_port_recv_msg_t *msg); 22 typedef struct nxt_port_handlers_s nxt_port_handlers_t; 23 typedef struct nxt_sig_event_s nxt_sig_event_t; 24 typedef struct nxt_runtime_s nxt_runtime_t; 25 26 typedef struct nxt_thread_s nxt_thread_t; 27 typedef struct nxt_event_engine_s nxt_event_engine_t; 28 typedef struct nxt_log_s nxt_log_t; 29 typedef struct nxt_thread_pool_s nxt_thread_pool_t; 30 31 typedef void (*nxt_work_handler_t)(nxt_task_t *task, void *obj, void *data); 32 33 #include <nxt_unix.h> 34 #include <nxt_clang.h> 35 #include <nxt_types.h> 36 #include <nxt_time.h> 37 #include <nxt_mp.h> 38 #include <nxt_array.h> 39 40 typedef uint16_t nxt_port_id_t; 41 42 #include <nxt_queue.h> 43 44 #include <nxt_thread_id.h> 45 46 #include <nxt_errno.h> 47 #include <nxt_file.h> 48 49 #include <nxt_random.h> 50 #include <nxt_string.h> 51 #include <nxt_lvlhsh.h> 52 #include <nxt_atomic.h> 53 #include <nxt_spinlock.h> 54 #include <nxt_work_queue.h> 55 #include <nxt_log.h> 56 #include <nxt_thread_time.h> 57 #include <nxt_rbtree.h> 58 #include <nxt_timer.h> 59 #include <nxt_fiber.h> 60 #include <nxt_thread.h> 61 #include <nxt_process_type.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 72 typedef struct nxt_fd_event_s nxt_fd_event_t; 73 typedef 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 82 typedef void *(*nxt_mem_proto_alloc_t)(void *pool, size_t size); 83 typedef void (*nxt_mem_proto_free_t)(void *pool, void *p); 84 85 typedef 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 105 typedef struct nxt_buf_s nxt_buf_t; 106 #include <nxt_buf.h> 107 #include <nxt_buf_pool.h> 108 #include <nxt_recvbuf.h> 109 110 typedef struct nxt_conn_s nxt_conn_t; 111 #include <nxt_sendbuf.h> 112 113 #include <nxt_log_moderation.h> 114 115 #if (NXT_SSLTLS) 116 #include <nxt_ssltls.h> 117 #endif 118 119 120 #define nxt_thread() \ 121 (nxt_thread_t *) nxt_thread_get_data(nxt_thread_context) 122 123 nxt_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 137 typedef 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_source.h> 153 typedef struct nxt_upstream_source_s nxt_upstream_source_t; 154 155 #include <nxt_http_parse.h> 156 #include <nxt_stream_source.h> 157 #include <nxt_upstream.h> 158 #include <nxt_upstream_source.h> 159 #include <nxt_http_source.h> 160 #include <nxt_fastcgi_source.h> 161 #include <nxt_runtime.h> 162 #include <nxt_port_hash.h> 163 164 165 /* 166 * The envp argument must be &environ if application may 167 * change its process title with nxt_process_title(). 168 */ 169 NXT_EXPORT nxt_int_t nxt_lib_start(const char *app, char **argv, char ***envp); 170 NXT_EXPORT void nxt_lib_stop(void); 171 172 173 NXT_EXPORT extern nxt_uint_t nxt_ncpu; 174 NXT_EXPORT extern nxt_uint_t nxt_pagesize; 175 NXT_EXPORT extern nxt_task_t nxt_main_task; 176 NXT_EXPORT extern nxt_atomic_t nxt_task_ident; 177 178 179 #endif /* _NXT_LIB_H_INCLUDED_ */ 180