Annotation of embedaddon/nginx/src/core/ngx_radix_tree.h, revision 1.1
1.1 ! misho 1:
! 2: /*
! 3: * Copyright (C) Igor Sysoev
! 4: * Copyright (C) Nginx, Inc.
! 5: */
! 6:
! 7:
! 8: #ifndef _NGX_RADIX_TREE_H_INCLUDED_
! 9: #define _NGX_RADIX_TREE_H_INCLUDED_
! 10:
! 11:
! 12: #include <ngx_config.h>
! 13: #include <ngx_core.h>
! 14:
! 15:
! 16: #define NGX_RADIX_NO_VALUE (uintptr_t) -1
! 17:
! 18: typedef struct ngx_radix_node_s ngx_radix_node_t;
! 19:
! 20: struct ngx_radix_node_s {
! 21: ngx_radix_node_t *right;
! 22: ngx_radix_node_t *left;
! 23: ngx_radix_node_t *parent;
! 24: uintptr_t value;
! 25: };
! 26:
! 27:
! 28: typedef struct {
! 29: ngx_radix_node_t *root;
! 30: ngx_pool_t *pool;
! 31: ngx_radix_node_t *free;
! 32: char *start;
! 33: size_t size;
! 34: } ngx_radix_tree_t;
! 35:
! 36:
! 37: ngx_radix_tree_t *ngx_radix_tree_create(ngx_pool_t *pool,
! 38: ngx_int_t preallocate);
! 39:
! 40: ngx_int_t ngx_radix32tree_insert(ngx_radix_tree_t *tree,
! 41: uint32_t key, uint32_t mask, uintptr_t value);
! 42: ngx_int_t ngx_radix32tree_delete(ngx_radix_tree_t *tree,
! 43: uint32_t key, uint32_t mask);
! 44: uintptr_t ngx_radix32tree_find(ngx_radix_tree_t *tree, uint32_t key);
! 45:
! 46: #if (NGX_HAVE_INET6)
! 47: ngx_int_t ngx_radix128tree_insert(ngx_radix_tree_t *tree,
! 48: u_char *key, u_char *mask, uintptr_t value);
! 49: ngx_int_t ngx_radix128tree_delete(ngx_radix_tree_t *tree,
! 50: u_char *key, u_char *mask);
! 51: uintptr_t ngx_radix128tree_find(ngx_radix_tree_t *tree, u_char *key);
! 52: #endif
! 53:
! 54:
! 55: #endif /* _NGX_RADIX_TREE_H_INCLUDED_ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>