- Reverted incorrect code.

svn path=/trunk/; revision=5341
This commit is contained in:
David Welch 2003-07-31 11:16:10 +00:00
parent bbb0ecb401
commit 0b78b457fc

View file

@ -1,4 +1,4 @@
/* $Id: pool.c,v 1.20 2003/07/31 01:44:17 royce Exp $
/* $Id: pool.c,v 1.21 2003/07/31 11:16:10 dwelch Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -24,31 +24,21 @@
/* FUNCTIONS ***************************************************************/
PVOID STDCALL STATIC
EiAllocatePool(
POOL_TYPE PoolType,
ULONG NumberOfBytes,
ULONG Tag,
PVOID Caller)
EiAllocatePool(POOL_TYPE PoolType,
ULONG NumberOfBytes,
ULONG Tag,
PVOID Caller)
{
PVOID Block;
BOOL CacheAligned = FALSE;
BOOL MustSucceed = FALSE;
static const ULONG nCacheAlignBytes = 31;
if ( PoolType == NonPagedPoolCacheAligned
|| PoolType == NonPagedPoolCacheAlignedMustS
|| PoolType == PagedPoolCacheAligned )
{
CacheAligned = TRUE;
NumberOfBytes += nCacheAlignBytes;
}
if ( PoolType == NonPagedPoolMustSucceed
|| PoolType == NonPagedPoolCacheAlignedMustS )
MustSucceed = TRUE;
switch ( PoolType )
{
PVOID Block;
if (PoolType == NonPagedPoolCacheAligned ||
PoolType == NonPagedPoolCacheAlignedMustS)
{
UNIMPLEMENTED;
}
switch(PoolType)
{
case NonPagedPool:
case NonPagedPoolMustSucceed:
case NonPagedPoolCacheAligned:
@ -58,33 +48,23 @@ EiAllocatePool(
NumberOfBytes,
Tag,
Caller);
break;
break;
case PagedPool:
case PagedPoolCacheAligned:
Block =
ExAllocatePagedPoolWithTag(PoolType,
NumberOfBytes,
Tag);
Block = ExAllocatePagedPoolWithTag(PoolType,NumberOfBytes,Tag);
break;
default:
DbgPrint ( "Unknown PoolType in call to EiAllocatePool!\n" );
/* a bug check may be overdramatic, but let's catch problems
as soon as we detect them, no? */
KEBUGCHECK(0);
return NULL;
};
if ( Block == NULL && MustSucceed == TRUE )
{
KEBUGCHECK(MUST_SUCCEED_POOL_EMPTY);
}
if ( Block != NULL && CacheAligned == TRUE )
Block = (PVOID)(((size_t)(Block + nCacheAlignBytes)) & (~nCacheAlignBytes));
return(Block);
return(NULL);
};
if ((PoolType==NonPagedPoolMustSucceed ||
PoolType==NonPagedPoolCacheAlignedMustS) && Block==NULL)
{
KEBUGCHECK(MUST_SUCCEED_POOL_EMPTY);
}
return(Block);
}
/*