summaryrefslogtreecommitdiff
path: root/usr/src/man/man9f/avl.9f
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/man/man9f/avl.9f')
-rw-r--r--usr/src/man/man9f/avl.9f88
1 files changed, 88 insertions, 0 deletions
diff --git a/usr/src/man/man9f/avl.9f b/usr/src/man/man9f/avl.9f
new file mode 100644
index 0000000000..e494abad65
--- /dev/null
+++ b/usr/src/man/man9f/avl.9f
@@ -0,0 +1,88 @@
+.\"
+.\" This file and its contents are supplied under the terms of the
+.\" Common Development and Distribution License ("CDDL"), version 1.0.
+.\" You may only use this file in accordance with the terms of version
+.\" 1.0 of the CDDL.
+.\"
+.\" A full copy of the text of the CDDL should have accompanied this
+.\" source. A copy of the CDDL is also available via the Internet at
+.\" http://www.illumos.org/license/CDDL.
+.\"
+.\"
+.\" Copyright 2015 Joyent, Inc.
+.\"
+.Dd May 08, 2015
+.Dt AVL 9F
+.Os
+.Sh NAME
+.Nm avl ,
+.Nm avl_add ,
+.Nm avl_create ,
+.Nm avl_destroy ,
+.Nm avl_destroy_nodes ,
+.Nm avl_find ,
+.Nm avl_first ,
+.Nm avl_insert ,
+.Nm avl_insert_here ,
+.Nm avl_is_empty ,
+.Nm avl_last ,
+.Nm avl_nearest ,
+.Nm avl_numnodes ,
+.Nm avl_swap ,
+.Nm AVL_NEXT ,
+.Nm AVL_PREV ,
+.Nd AVL tree routines
+.Sh DESCRIPTION
+AVL trees are a general purpose, self-balancing binary tree that can be
+used instead of the standard linked list interfaces --
+.Xr list_create 9F .
+AVL trees are particularly useful either when order is important or
+better lookup performance is required.
+.Pp
+The AVL tree interfaces are identical in both userland and the kernel.
+For more general information on AVL trees, see
+.Xr libavl 3LIB .
+For more information on any of the funtions 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
+.Fn malloc ,
+and need to be adapated.
+.Sh CONTEXT
+All of the AVL routines may be used in user, kernel, and interrupt
+context.
+.Sh EXAMPLES
+See
+.Sy EXAMPLES
+in
+.Xr libavl 3LIB .
+.Sh INTERFACE STABILITY
+.Sy Committed
+.Sh MT-Safety
+AVL trees do not inherently have any internal locking, it is up to the
+consumer to use locks as appropriate. See
+.Xr mutex 9F
+and
+.Xr rwlock 9F
+for more information on synchronization primitives.
+.Sh SEE ALSO
+.Xr libavl 3LIB ,
+.Xr avl_add 3AVL ,
+.Xr avl_create 3AVL ,
+.Xr avl_destroy 3AVL ,
+.Xr avl_destroy_nodes 3AVL ,
+.Xr avl_find 3AVL ,
+.Xr avl_first 3AVL ,
+.Xr avl_insert 3AVL ,
+.Xr avl_insert_here 3AVL ,
+.Xr avl_is_empty 3AVL ,
+.Xr avl_last 3AVL ,
+.Xr avl_nearest 3AVL ,
+.Xr avl_numnodes 3AVL ,
+.Xr avl_swap 3AVL ,
+.Xr AVL_NEXT 3AVL ,
+.Xr AVL_PREV 3AVL ,
+.Rs
+.%T Writing Device Drivers
+.Re