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_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_ */
|