9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync/* $Id$ */
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync/** @file
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * IPRT - AVL tree, uint_32, unique keys, offset pointers.
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync */
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync/*
c58f1213e628a545081c70e26c6b67a841cff880vboxsync * Copyright (C) 2006-2010 knut st. osmundsen (bird-src-spam@anduin.net)
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync *
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * available from http://www.virtualbox.org. This file is free software;
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * you can redistribute it and/or modify it under the terms of the GNU
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * General Public License (GPL) as published by the Free Software
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync *
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * The contents of this file may alternatively be used under the terms
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * of the Common Development and Distribution License Version 1.0
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * VirtualBox OSE distribution, in which case the provisions of the
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * CDDL are applicable instead of those of the GPL.
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync *
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * You may elect to license modified versions of this file under the
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * terms and conditions of either the GPL or the CDDL or both.
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync */
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#ifndef NOFILEID
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsyncstatic const char szFileId[] = "Id: kAVLULInt.c,v 1.4 2003/02/13 02:02:38 bird Exp $";
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#endif
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync/*******************************************************************************
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync* Defined Constants And Macros *
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync*******************************************************************************/
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync/*
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * AVL configuration.
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync */
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define KAVL_FN(a) RTAvloU32##a
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define KAVL_MAX_STACK 27 /* Up to 2^24 nodes. */
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define KAVL_CHECK_FOR_EQUAL_INSERT 1 /* No duplicate keys! */
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define KAVLNODECORE AVLOU32NODECORE
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define PKAVLNODECORE PAVLOU32NODECORE
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define PPKAVLNODECORE PPAVLOU32NODECORE
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define KAVLKEY AVLOU32KEY
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define PKAVLKEY AVLOU32KEY *
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define KAVLENUMDATA AVLOU32ENUMDATA
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define PKAVLENUMDATA PAVLOU32ENUMDATA
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define PKAVLCALLBACK PAVLOU32CALLBACK
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define KAVL_OFFSET 1
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync/*
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * AVL Compare macros
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync */
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define KAVL_G( key1, key2) ( (key1) > (key2) )
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define KAVL_E( key1, key2) ( (key1) == (key2) )
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define KAVL_NE(key1, key2) ( (key1) != (key2) )
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync/*******************************************************************************
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync* Header Files *
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync*******************************************************************************/
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#include <iprt/avl.h>
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#include <iprt/assert.h>
f72db2874332da64a5887d0a8d9c1b5f7745be18vboxsync#include <iprt/err.h>
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync/*
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync * Include the code.
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync */
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define SSToDS(ptr) ptr
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define KMAX RT_MAX
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#define kASSERT Assert
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#include "avl_Base.cpp.h"
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#include "avl_Get.cpp.h"
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#include "avl_DoWithAll.cpp.h"
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#include "avl_GetBestFit.cpp.h"
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#include "avl_RemoveBestFit.cpp.h"
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync#include "avl_Destroy.cpp.h"
9cb635fed200cb3cde92046dcaadfcf1ab37ebf3vboxsync