/*++
*******************************************************************************
* Copyright (c) 1990-98 Digi International Inc., All Rights Reserved          *
*                                                                             *
* This software contains proprietary and confidential information of Digi     *
* International Inc.  By accepting transfer of this copy, Recipient agrees    *
* to retain this software in confidence, to prevent disclosure to others,     *
* and to make no use of this software other than that for which it was        *
* delivered.  This is an unpublished copyrighted work of Digi International   *
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly   *
* prohibited.                                                                 *
*                                                                             *
* Restricted Rights Legend                                                    *
*                                                                             *
* Use, duplication, or disclosure by the Government is subject to             *
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in         *
* Technical Data and Computer Software clause at DFARS 252.227-7031 or        *
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -          *
* Restricted Rights at 48 CFR 52.227-19, as applicable.                       *
*                                                                             *
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343          *
*                                                                             *
*******************************************************************************

Module Name:

   digialloc.h

Abstract:

   Memory alloc routines.

Author:

   Michael Zarns

--*/
#ifndef DIGIALLOC
#define DIGIALLOC

#define STRATUS_MEM

#ifdef STRATUS_MEM
extern ULONG gPoolTag;
#define DigiInitMem( Tag )                      gPoolTag = (Tag)
#define DigiAllocMem( PoolType, Length )        ExAllocatePoolWithTag( PoolType, Length, gPoolTag )
#define DigiFreeMem( Buffer )                   ExFreePool( Buffer )
#define DigiDisplayMemoryLeaks()                {}

#else

#if DBG || DIGIALLOC_VERIFY

VOID DigiInitMem( IN ULONG Tag );

PVOID DigiAllocMem( IN POOL_TYPE PoolType, IN ULONG Length );

VOID DigiFreeMem( IN PVOID Buf );

VOID DigiDisplayMemoryLeaks( VOID );

#else

#define DigiInitMem( Tag )                                              {}
#define DigiAllocMem( PoolType, Length )        ExAllocatePoolWithTag( PoolType, Length, 'igiD' )
#define DigiFreeMem( Buffer )                                   ExFreePool( Buffer )
#define DigiDisplayMemoryLeaks()                                {}

#endif

#endif

#endif
