dns_rbtnode Struct Reference

#include <rbt.h>


Public Member Functions

 ISC_LINK (dns_rbtnode_t) deadlink
 Used for LRU cache. This linked list is used to mark nodes which have no data any longer, but we cannot unlink at that exact moment because we did not or could not obtain a write lock on the tree.

Data Fields

unsigned int magic
dns_rbtnode_tparent
dns_rbtnode_tleft
dns_rbtnode_tright
dns_rbtnode_tdown
dns_rbtnode_thashnext
unsigned int is_mmapped: 1
unsigned int parent_is_relative: 1
unsigned int left_is_relative: 1
unsigned int right_is_relative: 1
unsigned int down_is_relative: 1
unsigned int data_is_relative: 1
unsigned int rpz: 1
unsigned int hashval
unsigned int is_root: 1
 range is 0..1
unsigned int color: 1
 range is 0..1
unsigned int find_callback: 1
 range is 0..1
unsigned int attributes: 3
 range is 0..2
unsigned int nsec: 2
 range is 0..3
unsigned int namelen: 8
 range is 1..255
unsigned int offsetlen: 8
 range is 1..128
unsigned int oldnamelen: 8
 range is 1..255
void * data
unsigned int dirty:1
unsigned int wild:1
unsigned int locknum:DNS_RBT_LOCKLENGTH
unsigned int references:DNS_RBT_REFLENGTH


Detailed Description

Definition at line 81 of file rbt.h.


Member Function Documentation

dns_rbtnode::ISC_LINK ( dns_rbtnode_t   ) 

Used for LRU cache. This linked list is used to mark nodes which have no data any longer, but we cannot unlink at that exact moment because we did not or could not obtain a write lock on the tree.


Field Documentation

unsigned int dns_rbtnode::magic

Definition at line 83 of file rbt.h.

Referenced by create_node(), deletetree(), deletetreeflat(), and dns_rbt_deletenode().

dns_rbtnode_t* dns_rbtnode::parent

Definition at line 85 of file rbt.h.

Referenced by decrement_reference(), dns_rbt_printnodeinfo(), dns_rpz_find_name(), getparent(), prune_tree(), serialize_node(), and treefix().

dns_rbtnode_t* dns_rbtnode::left

Definition at line 86 of file rbt.h.

Referenced by decrement_reference(), dns_rbt_printnodeinfo(), getleft(), serialize_node(), and treefix().

dns_rbtnode_t* dns_rbtnode::right

Definition at line 87 of file rbt.h.

Referenced by decrement_reference(), dns_rbt_printnodeinfo(), getright(), serialize_node(), and treefix().

dns_rbtnode_t* dns_rbtnode::down

Definition at line 88 of file rbt.h.

Referenced by dbiterator_current(), decrement_reference(), dns_rbt_printnodeinfo(), expirenode(), getdown(), prune_tree(), serialize_node(), and treefix().

dns_rbtnode_t* dns_rbtnode::hashnext

Definition at line 90 of file rbt.h.

Referenced by dns_rbt_findnode().

unsigned int dns_rbtnode::is_root

range is 0..1

The following bitfields add up to a total bitwidth of 32. The range of values necessary for each item is indicated, but in the case of "attributes" the field is wider to accommodate possible future expansion.

In each case below the "range" indicated is what's _necessary_ for the bitfield to hold, not what it actually _can_ hold.

Definition at line 110 of file rbt.h.

Referenced by addonlevel(), create_node(), deletefromlevel(), dns_rbt_addnode(), rotate_left(), and rotate_right().

unsigned int dns_rbtnode::color

range is 0..1

Definition at line 111 of file rbt.h.

unsigned int dns_rbtnode::find_callback

range is 0..1

Definition at line 112 of file rbt.h.

Referenced by add_wildcard_magic(), addrdataset(), create_node(), loading_addrdataset(), and zone_find().

unsigned int dns_rbtnode::attributes

range is 0..2

Definition at line 113 of file rbt.h.

unsigned int dns_rbtnode::nsec

range is 0..3

Definition at line 114 of file rbt.h.

Referenced by add_empty_wildcards(), add_wildcard_magic(), addrdataset(), create_node(), delete_node(), dns_rbt_addnode(), dns_rbtdb_create(), findnodeintree(), loading_addrdataset(), loadnode(), and subtractrdataset().

unsigned int dns_rbtnode::namelen

range is 1..255

Definition at line 115 of file rbt.h.

unsigned int dns_rbtnode::offsetlen

range is 1..128

Definition at line 116 of file rbt.h.

unsigned int dns_rbtnode::oldnamelen

range is 1..255

Definition at line 117 of file rbt.h.

unsigned int dns_rbtnode::is_mmapped

Definition at line 121 of file rbt.h.

Referenced by create_node(), freenode(), and serialize_node().

unsigned int dns_rbtnode::parent_is_relative

Definition at line 122 of file rbt.h.

Referenced by create_node(), dns_rbt_printnodeinfo(), getparent(), serialize_node(), and treefix().

unsigned int dns_rbtnode::left_is_relative

Definition at line 123 of file rbt.h.

Referenced by create_node(), dns_rbt_printnodeinfo(), getleft(), serialize_node(), and treefix().

unsigned int dns_rbtnode::right_is_relative

Definition at line 124 of file rbt.h.

Referenced by create_node(), dns_rbt_printnodeinfo(), getright(), serialize_node(), and treefix().

unsigned int dns_rbtnode::down_is_relative

Definition at line 125 of file rbt.h.

Referenced by create_node(), dns_rbt_printnodeinfo(), getdown(), serialize_node(), and treefix().

unsigned int dns_rbtnode::data_is_relative

Definition at line 126 of file rbt.h.

Referenced by create_node(), dns_rbt_printnodeinfo(), getdata(), serialize_node(), and treefix().

unsigned int dns_rbtnode::rpz

Definition at line 129 of file rbt.h.

Referenced by create_node(), delete_node(), and findnodeintree().

unsigned int dns_rbtnode::hashval

Definition at line 132 of file rbt.h.

Referenced by dns_rbtdb_create(), findnodeintree(), and loading_addrdataset().

void* dns_rbtnode::data

These values are used in the RBT DB implementation. The appropriate node lock must be held before accessing them.

Definition at line 140 of file rbt.h.

Referenced by activeempty(), activeemtpynode(), add32(), add_nm(), ATF_TC_BODY(), cache_find(), cache_findrdataset(), cache_findzonecut(), cache_zonecut_callback(), clean_cache_node(), clean_zone_node(), cleanup_dead_nodes(), cleanup_ring(), cname_and_other_data(), decrement_reference(), del_name(), delete(), delete_keynames(), dns_keytable_delete(), dns_keytable_deletekeynode(), dns_keytable_find(), dns_keytable_issecuredomain(), dns_keytable_totext(), dns_ntatable_add(), dns_ntatable_covered(), dns_ntatable_save(), dns_ntatable_totext(), dns_rbt_printnodeinfo(), dns_resolver_disable_algorithm(), dns_resolver_disable_ds_digest(), dns_rpz_find_name(), dns_rpz_ready(), dns_tsigkeyring_dumpanddetach(), dns_zt_apply2(), expirenode(), find_closest_nsec(), find_coveringnsec(), find_deepest_zonecut(), find_wildcard(), fix_data(), getdata(), insert(), list_keynames(), print_text_helper(), printnode(), rbt_datafixer(), rdatasetiter_first(), rollback_node(), serialize_node(), serialize_nodes(), setnsec3parameters(), subtractrdataset(), sync_keyzone(), treefix(), zone_find(), zone_findrdataset(), and zone_zonecut_callback().

unsigned int dns_rbtnode::dirty

These values are used in the RBT DB implementation. The appropriate node lock must be held before accessing them.

Definition at line 141 of file rbt.h.

Referenced by add32(), clean_cache_node(), clean_zone_node(), decrement_reference(), mark_stale_header(), rollback_node(), and subtractrdataset().

unsigned int dns_rbtnode::wild

These values are used in the RBT DB implementation. The appropriate node lock must be held before accessing them.

Definition at line 142 of file rbt.h.

Referenced by add_wildcard_magic(), find_wildcard(), and zone_zonecut_callback().

unsigned int dns_rbtnode::locknum

These values are used in the RBT DB implementation. The appropriate node lock must be held before accessing them.

Definition at line 143 of file rbt.h.

Referenced by acache_callback(), activeempty(), activeemtpynode(), add32(), addrdataset(), allrdatasets(), attachnode(), cache_find(), cache_findrdataset(), cache_findzonecut(), cache_zonecut_callback(), closeversion(), dbiterator_current(), decrement_reference(), delete_callback(), deleterdataset(), dereference_iter_node(), detachnode(), dns_rbt_printnodeinfo(), dns_rbtdb_create(), expirenode(), find_closest_nsec(), find_coveringnsec(), find_deepest_zonecut(), find_wildcard(), findnodeintree(), flush_deletions(), free_rdataset(), getoriginnode(), getsigningtime(), loading_addrdataset(), new_reference(), printnode(), prune_tree(), rbt_datafixer(), rdataset_clearprefetch(), rdataset_expire(), rdataset_getadditional(), rdataset_putadditional(), rdataset_settrust(), rdatasetiter_current(), rdatasetiter_first(), rdatasetiter_next(), reactivate_node(), resign_delete(), resigned(), set_ttl(), setnsec3parameters(), setsigningtime(), setup_delegation(), subtractrdataset(), update_header(), zone_find(), zone_findrdataset(), and zone_zonecut_callback().

unsigned int dns_rbtnode::references

These values are used in the RBT DB implementation. The appropriate node lock must be held before accessing them.

Definition at line 145 of file rbt.h.


The documentation for this struct was generated from the following file:
Generated on Tue Apr 28 17:41:20 2015 by Doxygen 1.5.4 for BIND9 Internals 9.11.0pre-alpha