mirror of
https://github.com/reactos/reactos.git
synced 2024-09-15 15:19:37 +00:00
Move mismerged segment to the right place; claim from openfirmware if we
don't have enough reserve. svn path=/trunk/; revision=28801
This commit is contained in:
parent
12b88bedcb
commit
930b718aa7
|
@ -68,12 +68,6 @@ PVOID MmAllocateMemory(ULONG MemorySize)
|
||||||
|
|
||||||
if (MemorySize == 0)
|
if (MemorySize == 0)
|
||||||
{
|
{
|
||||||
#ifdef _M_PPC
|
|
||||||
ULONG ptr;
|
|
||||||
printf("Allocating %d bytes directly ...\n", MemorySize);
|
|
||||||
ptr = ofw_claim(0,MemorySize,MM_PAGE_SIZE);
|
|
||||||
MemPointer = (PVOID)(ptr);
|
|
||||||
#endif
|
|
||||||
DbgPrint((DPRINT_MEMORY, "MmAllocateMemory() called for 0 bytes. Returning NULL.\n"));
|
DbgPrint((DPRINT_MEMORY, "MmAllocateMemory() called for 0 bytes. Returning NULL.\n"));
|
||||||
UiMessageBoxCritical("Memory allocation failed: MmAllocateMemory() called for 0 bytes.");
|
UiMessageBoxCritical("Memory allocation failed: MmAllocateMemory() called for 0 bytes.");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -95,9 +89,17 @@ PVOID MmAllocateMemory(ULONG MemorySize)
|
||||||
// then return NULL
|
// then return NULL
|
||||||
if (FreePagesInLookupTable < PagesNeeded)
|
if (FreePagesInLookupTable < PagesNeeded)
|
||||||
{
|
{
|
||||||
|
#ifdef _M_PPC
|
||||||
|
ULONG ptr;
|
||||||
|
printf("Allocating %d bytes directly ...\n", MemorySize);
|
||||||
|
ptr = ofw_claim(0,MemorySize,MM_PAGE_SIZE);
|
||||||
|
MemPointer = (PVOID)(ptr);
|
||||||
|
return MemPointer;
|
||||||
|
#else
|
||||||
DbgPrint((DPRINT_MEMORY, "Memory allocation failed in MmAllocateMemory(). Not enough free memory to allocate %d bytes. AllocationCount: %d\n", MemorySize, AllocationCount));
|
DbgPrint((DPRINT_MEMORY, "Memory allocation failed in MmAllocateMemory(). Not enough free memory to allocate %d bytes. AllocationCount: %d\n", MemorySize, AllocationCount));
|
||||||
UiMessageBoxCritical("Memory allocation failed: out of memory.");
|
UiMessageBoxCritical("Memory allocation failed: out of memory.");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
FirstFreePageFromEnd = MmFindAvailablePages(PageLookupTableAddress, TotalPagesInLookupTable, PagesNeeded, AllocateFromEnd);
|
FirstFreePageFromEnd = MmFindAvailablePages(PageLookupTableAddress, TotalPagesInLookupTable, PagesNeeded, AllocateFromEnd);
|
||||||
|
|
Loading…
Reference in a new issue