AVL(9F) Kernel Functions for Drivers AVL(9F)
NAME
avl,
avl_add,
avl_create,
avl_destroy,
avl_destroy_nodes,
avl_find,
avl_first,
avl_insert,
avl_insert_here,
avl_is_empty,
avl_last,
avl_nearest,
avl_numnodes,
avl_remove,
avl_swap,
avl_update,
avl_update_gt,
avl_update_lt,
AVL_NEXT,
AVL_PREV - AVL tree routines
DESCRIPTION
AVL trees are a general purpose, self-balancing binary tree that can be
used instead of the standard linked list interfaces --
list_create(9F).
AVL trees are particularly useful either when order is important or
better lookup performance is required.
The AVL tree interfaces are identical in both userland and the kernel.
For more general information on AVL trees, see
libavl(3LIB). For more
information on any of the functions defined here, please see the
corresponding manual page in section 3AVL. Please note, that while the
descriptions in those manual pages are accurate for writers of Device
Drivers, the examples provided use scaffolding not available in the
kernel, such as the use of
malloc(), and need to be adapted.
CONTEXT
All of the AVL routines may be used in user, kernel, and interrupt
context.
EXAMPLES
See
EXAMPLES in
libavl(3LIB).
INTERFACE STABILITY
CommittedMT-Safety AVL trees do not inherently have any internal locking, it is up to the
consumer to use locks as appropriate. See
mutex(9F) and
rwlock(9F) for
more information on synchronization primitives.
SEE ALSO
avl_add(3AVL),
avl_create(3AVL),
avl_destroy(3AVL),
avl_destroy_nodes(3AVL),
avl_find(3AVL),
avl_first(3AVL),
avl_insert(3AVL),
avl_insert_here(3AVL),
avl_is_empty(3AVL),
avl_last(3AVL),
avl_nearest(3AVL),
AVL_NEXT(3AVL),
avl_numnodes(3AVL),
AVL_PREV(3AVL),
avl_remove(3AVL),
avl_swap(3AVL),
avl_update(3AVL),
avl_update_gt(3AVL),
avl_update_lt(3AVL),
libavl(3LIB) Writing Device Drivers.
illumos February 27, 2024 illumos