#include <stdio.h>#include "../../locking.h"#include "timer.h"


Go to the source code of this file.
Data Structures | |
| struct | ip_node |
| struct | ip_tree |
| struct | ip_tree::entry |
Defines | |
| #define | CURR_POS 1 |
| #define | ll2ipnode(ptr) |
| #define | MAX_IP_BRANCHES 256 |
| #define | NEW_NODE (1<<0) |
| #define | NEWRED_NODE (1<<2) |
| #define | NO_UPDATE (1<<3) |
| #define | NODE_EXPIRED_FLAG (1<<0) |
| #define | NODE_INTIMER_FLAG (1<<1) |
| #define | NODE_IPLEAF_FLAG (1<<2) |
| #define | NODE_ISRED_FLAG (1<<3) |
| #define | PREV_POS 0 |
| #define | RED_NODE (1<<1) |
Functions | |
| void | destroy_ip_tree (void) |
| struct ip_node * | get_tree_branch (unsigned char b) |
| int | init_ip_tree (int) |
| int | is_node_hot_leaf (struct ip_node *node) |
| void | lock_tree_branch (unsigned char b) |
| struct ip_node * | mark_node (unsigned char *ip, int ip_len, struct ip_node **father, unsigned char *flag) |
| void | remove_node (struct ip_node *node) |
| void | unlock_tree_branch (unsigned char b) |
| #define CURR_POS 1 |
Definition at line 49 of file ip_tree.h.
Referenced by clean_routine(), mark_node(), pike_check_req(), refresh_node(), and split_node().
| #define ll2ipnode | ( | ptr | ) |
Value:
Definition at line 83 of file ip_tree.h.
Referenced by check_and_split_timer(), and clean_routine().
| #define MAX_IP_BRANCHES 256 |
Definition at line 46 of file ip_tree.h.
Referenced by clean_routine(), destroy_ip_tree(), init_ip_tree(), mi_pike_list(), and swap_routine().
| #define NEW_NODE (1<<0) |
| #define NEWRED_NODE (1<<2) |
| #define NO_UPDATE (1<<3) |
| #define NODE_EXPIRED_FLAG (1<<0) |
Definition at line 52 of file ip_tree.h.
Referenced by check_and_split_timer(), clean_routine(), and pike_check_req().
| #define NODE_INTIMER_FLAG (1<<1) |
Definition at line 53 of file ip_tree.h.
Referenced by check_and_split_timer(), clean_routine(), and pike_check_req().
| #define NODE_IPLEAF_FLAG (1<<2) |
Definition at line 54 of file ip_tree.h.
Referenced by clean_routine(), mark_node(), and pike_check_req().
| #define NODE_ISRED_FLAG (1<<3) |
Definition at line 55 of file ip_tree.h.
Referenced by mark_node(), print_red_ips(), and refresh_node().
| #define PREV_POS 0 |
Definition at line 48 of file ip_tree.h.
Referenced by clean_routine(), pike_check_req(), refresh_node(), and split_node().
| #define RED_NODE (1<<1) |
| void destroy_ip_tree | ( | void | ) |
Definition at line 172 of file ip_tree.c.
References destroy_ip_node(), ip_tree::entries, ip_tree::entry_lock_set, MAX_IP_BRANCHES, ip_tree::entry::node, and shm_free.
Referenced by pike_exit(), and pike_init().
| struct ip_node* get_tree_branch | ( | unsigned char | b | ) | [read] |
Definition at line 67 of file ip_tree.c.
References prv_get_tree_branch().
Referenced by mi_pike_list(), and swap_routine().
| int init_ip_tree | ( | int | ) |
Definition at line 116 of file ip_tree.c.
References ip_tree::entries, ip_tree::entry_lock_set, init_lock_set(), LM_ERR, ip_tree::entry::lock_idx, ip_tree::max_hits, MAX_IP_BRANCHES, ip_tree::entry::node, shm_free, and shm_malloc().
Referenced by pike_init().
| int is_node_hot_leaf | ( | struct ip_node * | node | ) |
| void lock_tree_branch | ( | unsigned char | b | ) |
Definition at line 71 of file ip_tree.c.
References prv_lock_tree_branch().
Referenced by clean_routine(), mi_pike_list(), pike_check_req(), and swap_routine().
| struct ip_node* mark_node | ( | unsigned char * | ip, | |
| int | ip_len, | |||
| struct ip_node ** | father, | |||
| unsigned char * | flag | |||
| ) | [read] |
Definition at line 268 of file ip_tree.c.
References ip_node::branch, ip_node::byte, CURR_POS, ip_tree::entries, ip_node::flags, ip_node::hits, is_hot_leaf, is_hot_non_leaf, is_warm_leaf, ip_node::kids, ip_node::leaf_hits, LM_DBG, MAX_TYPE_VAL, new_ip_node(), NEW_NODE, NEWRED_NODE, ip_node::next, NO_UPDATE, ip_tree::entry::node, NODE_IPLEAF_FLAG, NODE_ISRED_FLAG, RED_NODE, and split_node().
Referenced by pike_check_req().
| void remove_node | ( | struct ip_node * | node | ) |
Definition at line 348 of file ip_tree.c.
References ip_node::byte, destroy_ip_node(), ip_tree::entries, ip_node::kids, LM_DBG, ip_node::next, ip_tree::entry::node, and ip_node::prev.
Referenced by clean_routine().
| void unlock_tree_branch | ( | unsigned char | b | ) |
Definition at line 75 of file ip_tree.c.
References prv_unlock_tree_branch().
Referenced by clean_routine(), mi_pike_list(), pike_check_req(), and swap_routine().
1.5.6