[NDK]: Add all the definitions regarding VADs.
[reactos.git] / reactos / lib / rtl / austin / avl.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS System Libraries
4 * FILE: lib/rtl/austin/avl.h
5 * PURPOSE: Run-Time Libary Header (interface to austin AVL tree)
6 * PROGRAMMER: arty
7 */
8
9 #pragma once
10
11 #define avl_data(x) ((void*)(&(x)[1]))
12
13 void avl_init(PRTL_AVL_TABLE table);
14 void avl_deinit(PRTL_AVL_TABLE table);
15 void avl_insert_node(PRTL_AVL_TABLE table, PRTL_BALANCED_LINKS node);
16 void avl_delete_node(PRTL_AVL_TABLE table, PRTL_BALANCED_LINKS node);
17 int avl_is_nil(PRTL_AVL_TABLE table, PRTL_BALANCED_LINKS node);
18 PRTL_BALANCED_LINKS avl_first(PRTL_AVL_TABLE table);
19 PRTL_BALANCED_LINKS avl_last(PRTL_AVL_TABLE table);
20 PRTL_BALANCED_LINKS avl_next(PRTL_AVL_TABLE table, PRTL_BALANCED_LINKS node);
21
22 int avl_search
23 (PRTL_AVL_TABLE table,
24 PVOID _key,
25 PRTL_BALANCED_LINKS node,
26 PRTL_BALANCED_LINKS *where);