summaryrefslogblamecommitdiffhomepage
path: root/src/nxt_port_hash.h
blob: 57f9ba083b8bbba224e8741b199b29f9a6ca6574 (plain) (tree)









































                                                                               

/*
 * Copyright (C) Max Romanov
 * Copyright (C) NGINX, Inc.
 */

#ifndef _NXT_PORT_HASH_H_INCLUDED_
#define _NXT_PORT_HASH_H_INCLUDED_


#include <nxt_main.h>


void nxt_port_hash_add(nxt_lvlhsh_t *port_hash, nxt_mp_t *mem_pool,
    nxt_port_t *port);

void nxt_port_hash_remove(nxt_lvlhsh_t *port_hash, nxt_mp_t *mem_pool,
    nxt_port_t *port);

nxt_port_t *nxt_port_hash_find(nxt_lvlhsh_t *port_hash, nxt_pid_t pid,
    nxt_port_id_t port_id);

nxt_port_t *nxt_port_hash_first(nxt_lvlhsh_t *port_hash,
    nxt_lvlhsh_each_t *lhe);

#define nxt_port_hash_next(port_hash, lhe)                                    \
    nxt_lvlhsh_each((port_hash), (lhe))

#define nxt_port_hash_each(port_hash, port)                                   \
    do {                                                                      \
        nxt_lvlhsh_each_t  _lhe;                                              \
                                                                              \
        for (port = nxt_port_hash_first((port_hash), &_lhe);                  \
             port != NULL;                                                    \
             port = nxt_port_hash_next((port_hash), &_lhe)) {                 \

#define nxt_port_hash_loop                                                    \
        }                                                                     \
    } while(0)


#endif /* _NXT_PORT_HASH_H_INCLIDED_ */