1 2 /* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7 #ifndef _NXT_MAIN_PROCESS_H_INCLUDED_ 8 #define _NXT_MAIN_PROCESS_H_INCLUDED_ 9 10 11 typedef enum { 12 NXT_SOCKET_ERROR_SYSTEM = 0, 13 NXT_SOCKET_ERROR_NOINET6, 14 NXT_SOCKET_ERROR_PORT, 15 NXT_SOCKET_ERROR_INUSE, 16 NXT_SOCKET_ERROR_NOADDR, 17 NXT_SOCKET_ERROR_ACCESS, 18 NXT_SOCKET_ERROR_PATH, 19 } nxt_socket_error_t; 20 21 22 typedef struct { 23 nxt_str_t conf; 24 #if (NXT_TLS) 25 nxt_array_t *certs; 26 #endif 27 } nxt_controller_init_t; 28 29 30 nxt_int_t nxt_main_process_start(nxt_thread_t *thr, nxt_task_t *task, 31 nxt_runtime_t *runtime); 32 void nxt_main_stop_all_processes(nxt_task_t *task, nxt_runtime_t *runtime); 33 34 nxt_int_t nxt_controller_start(nxt_task_t *task, void *data); 35 nxt_int_t nxt_router_start(nxt_task_t *task, void *data); 36 nxt_int_t nxt_discovery_start(nxt_task_t *task, void *data); 37 nxt_int_t nxt_app_start(nxt_task_t *task, void *data); 38 39 extern nxt_port_handlers_t nxt_controller_process_port_handlers; 40 extern nxt_port_handlers_t nxt_discovery_process_port_handlers; 41 extern nxt_port_handlers_t nxt_app_process_port_handlers; 42 extern nxt_port_handlers_t nxt_router_process_port_handlers; 43 extern const nxt_sig_event_t nxt_main_process_signals[]; 44 extern const nxt_sig_event_t nxt_worker_process_signals[]; 45 46 47 #endif /* _NXT_MAIN_PROCESS_H_INCLUDED_ */ 48