xref: /unit/src/nxt_port_hash.h (revision 348:5342d18db890)
1 
2 /*
3  * Copyright (C) Max Romanov
4  * Copyright (C) NGINX, Inc.
5  */
6 
7 #ifndef _NXT_PORT_HASH_H_INCLUDED_
8 #define _NXT_PORT_HASH_H_INCLUDED_
9 
10 
11 #include <nxt_main.h>
12 
13 
14 nxt_int_t nxt_port_hash_add(nxt_lvlhsh_t *port_hash, nxt_port_t *port);
15 
16 nxt_int_t nxt_port_hash_remove(nxt_lvlhsh_t *port_hash, nxt_port_t *port);
17 
18 nxt_port_t *nxt_port_hash_find(nxt_lvlhsh_t *port_hash, nxt_pid_t pid,
19     nxt_port_id_t port_id);
20 
21 nxt_port_t *nxt_port_hash_first(nxt_lvlhsh_t *port_hash,
22     nxt_lvlhsh_each_t *lhe);
23 
24 #define nxt_port_hash_next(port_hash, lhe)                                    \
25     nxt_lvlhsh_each((port_hash), (lhe))
26 
27 #define nxt_port_hash_each(port_hash, port)                                   \
28     do {                                                                      \
29         nxt_lvlhsh_each_t  _lhe;                                              \
30                                                                               \
31         for (port = nxt_port_hash_first((port_hash), &_lhe);                  \
32              port != NULL;                                                    \
33              port = nxt_port_hash_next((port_hash), &_lhe)) {                 \
34 
35 #define nxt_port_hash_loop                                                    \
36         }                                                                     \
37     } while(0)
38 
39 
40 #endif /* _NXT_PORT_HASH_H_INCLIDED_ */
41