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