Deleted
Added
nxt_port.h (1553:c3fad601f58b) | nxt_port.h (1555:1d84b9e4b459) |
---|---|
1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7#ifndef _NXT_PORT_H_INCLUDED_ 8#define _NXT_PORT_H_INCLUDED_ --- 28 unchanged lines hidden (view full) --- 37 nxt_port_handler_t remove_pid; 38 39 /* Stop process command. */ 40 nxt_port_handler_t quit; 41 42 /* Request headers. */ 43 nxt_port_handler_t req_headers; 44 nxt_port_handler_t req_headers_ack; | 1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7#ifndef _NXT_PORT_H_INCLUDED_ 8#define _NXT_PORT_H_INCLUDED_ --- 28 unchanged lines hidden (view full) --- 37 nxt_port_handler_t remove_pid; 38 39 /* Stop process command. */ 40 nxt_port_handler_t quit; 41 42 /* Request headers. */ 43 nxt_port_handler_t req_headers; 44 nxt_port_handler_t req_headers_ack; |
45 nxt_port_handler_t req_body; |
|
45 46 /* Websocket frame. */ 47 nxt_port_handler_t websocket_frame; 48 49 /* Various data. */ 50 nxt_port_handler_t data; 51 52 nxt_port_handler_t oosm; 53 nxt_port_handler_t shm_ack; | 46 47 /* Websocket frame. */ 48 nxt_port_handler_t websocket_frame; 49 50 /* Various data. */ 51 nxt_port_handler_t data; 52 53 nxt_port_handler_t oosm; 54 nxt_port_handler_t shm_ack; |
55 nxt_port_handler_t read_queue; 56 nxt_port_handler_t read_socket; |
|
54}; 55 56 57#define nxt_port_handler_idx(name) \ 58 ( offsetof(nxt_port_handlers_t, name) / sizeof(nxt_port_handler_t) ) 59 60#define nxt_msg_last(handler) \ 61 (handler | NXT_PORT_MSG_LAST) --- 24 unchanged lines hidden (view full) --- 86 87 _NXT_PORT_MSG_PROCESS_CREATED = nxt_port_handler_idx(process_created), 88 _NXT_PORT_MSG_PROCESS_READY = nxt_port_handler_idx(process_ready), 89 _NXT_PORT_MSG_REMOVE_PID = nxt_port_handler_idx(remove_pid), 90 _NXT_PORT_MSG_QUIT = nxt_port_handler_idx(quit), 91 92 _NXT_PORT_MSG_REQ_HEADERS = nxt_port_handler_idx(req_headers), 93 _NXT_PORT_MSG_REQ_HEADERS_ACK = nxt_port_handler_idx(req_headers_ack), | 57}; 58 59 60#define nxt_port_handler_idx(name) \ 61 ( offsetof(nxt_port_handlers_t, name) / sizeof(nxt_port_handler_t) ) 62 63#define nxt_msg_last(handler) \ 64 (handler | NXT_PORT_MSG_LAST) --- 24 unchanged lines hidden (view full) --- 89 90 _NXT_PORT_MSG_PROCESS_CREATED = nxt_port_handler_idx(process_created), 91 _NXT_PORT_MSG_PROCESS_READY = nxt_port_handler_idx(process_ready), 92 _NXT_PORT_MSG_REMOVE_PID = nxt_port_handler_idx(remove_pid), 93 _NXT_PORT_MSG_QUIT = nxt_port_handler_idx(quit), 94 95 _NXT_PORT_MSG_REQ_HEADERS = nxt_port_handler_idx(req_headers), 96 _NXT_PORT_MSG_REQ_HEADERS_ACK = nxt_port_handler_idx(req_headers_ack), |
97 _NXT_PORT_MSG_REQ_BODY = nxt_port_handler_idx(req_body), |
|
94 _NXT_PORT_MSG_WEBSOCKET = nxt_port_handler_idx(websocket_frame), 95 96 _NXT_PORT_MSG_DATA = nxt_port_handler_idx(data), 97 98 _NXT_PORT_MSG_OOSM = nxt_port_handler_idx(oosm), 99 _NXT_PORT_MSG_SHM_ACK = nxt_port_handler_idx(shm_ack), | 98 _NXT_PORT_MSG_WEBSOCKET = nxt_port_handler_idx(websocket_frame), 99 100 _NXT_PORT_MSG_DATA = nxt_port_handler_idx(data), 101 102 _NXT_PORT_MSG_OOSM = nxt_port_handler_idx(oosm), 103 _NXT_PORT_MSG_SHM_ACK = nxt_port_handler_idx(shm_ack), |
104 _NXT_PORT_MSG_READ_QUEUE = nxt_port_handler_idx(read_queue), 105 _NXT_PORT_MSG_READ_SOCKET = nxt_port_handler_idx(read_socket), |
|
100 101 NXT_PORT_MSG_MAX = sizeof(nxt_port_handlers_t) 102 / sizeof(nxt_port_handler_t), 103 104 NXT_PORT_MSG_RPC_READY = _NXT_PORT_MSG_RPC_READY, 105 NXT_PORT_MSG_RPC_READY_LAST = nxt_msg_last(_NXT_PORT_MSG_RPC_READY), 106 NXT_PORT_MSG_RPC_ERROR = nxt_msg_last(_NXT_PORT_MSG_RPC_ERROR), 107 NXT_PORT_MSG_START_PROCESS = nxt_msg_last(_NXT_PORT_MSG_START_PROCESS), --- 11 unchanged lines hidden (view full) --- 119 NXT_PORT_MSG_GET_MMAP = nxt_msg_last(_NXT_PORT_MSG_GET_MMAP), 120 121 NXT_PORT_MSG_PROCESS_CREATED = nxt_msg_last(_NXT_PORT_MSG_PROCESS_CREATED), 122 NXT_PORT_MSG_PROCESS_READY = nxt_msg_last(_NXT_PORT_MSG_PROCESS_READY), 123 NXT_PORT_MSG_QUIT = nxt_msg_last(_NXT_PORT_MSG_QUIT), 124 NXT_PORT_MSG_REMOVE_PID = nxt_msg_last(_NXT_PORT_MSG_REMOVE_PID), 125 126 NXT_PORT_MSG_REQ_HEADERS = _NXT_PORT_MSG_REQ_HEADERS, | 106 107 NXT_PORT_MSG_MAX = sizeof(nxt_port_handlers_t) 108 / sizeof(nxt_port_handler_t), 109 110 NXT_PORT_MSG_RPC_READY = _NXT_PORT_MSG_RPC_READY, 111 NXT_PORT_MSG_RPC_READY_LAST = nxt_msg_last(_NXT_PORT_MSG_RPC_READY), 112 NXT_PORT_MSG_RPC_ERROR = nxt_msg_last(_NXT_PORT_MSG_RPC_ERROR), 113 NXT_PORT_MSG_START_PROCESS = nxt_msg_last(_NXT_PORT_MSG_START_PROCESS), --- 11 unchanged lines hidden (view full) --- 125 NXT_PORT_MSG_GET_MMAP = nxt_msg_last(_NXT_PORT_MSG_GET_MMAP), 126 127 NXT_PORT_MSG_PROCESS_CREATED = nxt_msg_last(_NXT_PORT_MSG_PROCESS_CREATED), 128 NXT_PORT_MSG_PROCESS_READY = nxt_msg_last(_NXT_PORT_MSG_PROCESS_READY), 129 NXT_PORT_MSG_QUIT = nxt_msg_last(_NXT_PORT_MSG_QUIT), 130 NXT_PORT_MSG_REMOVE_PID = nxt_msg_last(_NXT_PORT_MSG_REMOVE_PID), 131 132 NXT_PORT_MSG_REQ_HEADERS = _NXT_PORT_MSG_REQ_HEADERS, |
133 NXT_PORT_MSG_REQ_BODY = _NXT_PORT_MSG_REQ_BODY, |
|
127 NXT_PORT_MSG_WEBSOCKET = _NXT_PORT_MSG_WEBSOCKET, 128 NXT_PORT_MSG_WEBSOCKET_LAST = nxt_msg_last(_NXT_PORT_MSG_WEBSOCKET), 129 130 NXT_PORT_MSG_DATA = _NXT_PORT_MSG_DATA, 131 NXT_PORT_MSG_DATA_LAST = nxt_msg_last(_NXT_PORT_MSG_DATA), 132 133 NXT_PORT_MSG_OOSM = nxt_msg_last(_NXT_PORT_MSG_OOSM), 134 NXT_PORT_MSG_SHM_ACK = nxt_msg_last(_NXT_PORT_MSG_SHM_ACK), | 134 NXT_PORT_MSG_WEBSOCKET = _NXT_PORT_MSG_WEBSOCKET, 135 NXT_PORT_MSG_WEBSOCKET_LAST = nxt_msg_last(_NXT_PORT_MSG_WEBSOCKET), 136 137 NXT_PORT_MSG_DATA = _NXT_PORT_MSG_DATA, 138 NXT_PORT_MSG_DATA_LAST = nxt_msg_last(_NXT_PORT_MSG_DATA), 139 140 NXT_PORT_MSG_OOSM = nxt_msg_last(_NXT_PORT_MSG_OOSM), 141 NXT_PORT_MSG_SHM_ACK = nxt_msg_last(_NXT_PORT_MSG_SHM_ACK), |
142 NXT_PORT_MSG_READ_QUEUE = _NXT_PORT_MSG_READ_QUEUE, 143 NXT_PORT_MSG_READ_SOCKET = _NXT_PORT_MSG_READ_SOCKET, |
|
135} nxt_port_msg_type_t; 136 137 138/* Passed as a first iov chunk. */ 139typedef struct { 140 uint32_t stream; 141 nxt_pid_t pid; 142 nxt_port_id_t reply_port; --- 88 unchanged lines hidden (view full) --- 231 nxt_lvlhsh_t rpc_streams; /* stream to nxt_port_rpc_reg_t */ 232 nxt_lvlhsh_t rpc_peers; /* peer to queue of nxt_port_rpc_reg_t */ 233 234 nxt_lvlhsh_t frags; 235 236 nxt_atomic_t use_count; 237 238 nxt_process_type_t type; | 144} nxt_port_msg_type_t; 145 146 147/* Passed as a first iov chunk. */ 148typedef struct { 149 uint32_t stream; 150 nxt_pid_t pid; 151 nxt_port_id_t reply_port; --- 88 unchanged lines hidden (view full) --- 240 nxt_lvlhsh_t rpc_streams; /* stream to nxt_port_rpc_reg_t */ 241 nxt_lvlhsh_t rpc_peers; /* peer to queue of nxt_port_rpc_reg_t */ 242 243 nxt_lvlhsh_t frags; 244 245 nxt_atomic_t use_count; 246 247 nxt_process_type_t type; |
248 249 nxt_fd_t queue_fd; 250 void *queue; 251 252 void *socket_msg; 253 int from_socket; |
|
239}; 240 241 242typedef struct { 243 nxt_port_id_t id; 244 nxt_pid_t pid; 245 size_t max_size; 246 size_t max_share; --- 34 unchanged lines hidden (view full) --- 281nxt_int_t nxt_port_socket_init(nxt_task_t *task, nxt_port_t *port, 282 size_t max_size); 283void nxt_port_destroy(nxt_port_t *port); 284void nxt_port_close(nxt_task_t *task, nxt_port_t *port); 285void nxt_port_write_enable(nxt_task_t *task, nxt_port_t *port); 286void nxt_port_write_close(nxt_port_t *port); 287void nxt_port_read_enable(nxt_task_t *task, nxt_port_t *port); 288void nxt_port_read_close(nxt_port_t *port); | 254}; 255 256 257typedef struct { 258 nxt_port_id_t id; 259 nxt_pid_t pid; 260 size_t max_size; 261 size_t max_share; --- 34 unchanged lines hidden (view full) --- 296nxt_int_t nxt_port_socket_init(nxt_task_t *task, nxt_port_t *port, 297 size_t max_size); 298void nxt_port_destroy(nxt_port_t *port); 299void nxt_port_close(nxt_task_t *task, nxt_port_t *port); 300void nxt_port_write_enable(nxt_task_t *task, nxt_port_t *port); 301void nxt_port_write_close(nxt_port_t *port); 302void nxt_port_read_enable(nxt_task_t *task, nxt_port_t *port); 303void nxt_port_read_close(nxt_port_t *port); |
289nxt_int_t nxt_port_socket_twrite(nxt_task_t *task, nxt_port_t *port, 290 nxt_uint_t type, nxt_fd_t fd, uint32_t stream, nxt_port_id_t reply_port, 291 nxt_buf_t *b, void *tracking); | 304nxt_int_t nxt_port_socket_write2(nxt_task_t *task, nxt_port_t *port, 305 nxt_uint_t type, nxt_fd_t fd, nxt_fd_t fd2, uint32_t stream, 306 nxt_port_id_t reply_port, nxt_buf_t *b); |
292 293nxt_inline nxt_int_t 294nxt_port_socket_write(nxt_task_t *task, nxt_port_t *port, 295 nxt_uint_t type, nxt_fd_t fd, uint32_t stream, nxt_port_id_t reply_port, 296 nxt_buf_t *b) 297{ | 307 308nxt_inline nxt_int_t 309nxt_port_socket_write(nxt_task_t *task, nxt_port_t *port, 310 nxt_uint_t type, nxt_fd_t fd, uint32_t stream, nxt_port_id_t reply_port, 311 nxt_buf_t *b) 312{ |
298 return nxt_port_socket_twrite(task, port, type, fd, stream, reply_port, b, 299 NULL); | 313 return nxt_port_socket_write2(task, port, type, fd, -1, stream, reply_port, 314 b); |
300} 301 302void nxt_port_enable(nxt_task_t *task, nxt_port_t *port, 303 const nxt_port_handlers_t *handlers); 304nxt_int_t nxt_port_send_port(nxt_task_t *task, nxt_port_t *port, 305 nxt_port_t *new_port, uint32_t stream); 306void nxt_port_change_log_file(nxt_task_t *task, nxt_runtime_t *rt, 307 nxt_uint_t slot, nxt_fd_t fd); --- 21 unchanged lines hidden --- | 315} 316 317void nxt_port_enable(nxt_task_t *task, nxt_port_t *port, 318 const nxt_port_handlers_t *handlers); 319nxt_int_t nxt_port_send_port(nxt_task_t *task, nxt_port_t *port, 320 nxt_port_t *new_port, uint32_t stream); 321void nxt_port_change_log_file(nxt_task_t *task, nxt_runtime_t *rt, 322 nxt_uint_t slot, nxt_fd_t fd); --- 21 unchanged lines hidden --- |