[freeldr] Add some more memory management functions
authorHervé Poussineau <hpoussin@reactos.org>
Wed, 3 Mar 2010 22:35:10 +0000 (22:35 +0000)
committerHervé Poussineau <hpoussin@reactos.org>
Wed, 3 Mar 2010 22:35:10 +0000 (22:35 +0000)
svn path=/trunk/; revision=45811

reactos/boot/freeldr/freeldr/include/mm.h
reactos/boot/freeldr/freeldr/mm/mm.c

index 36a47e0..a7840e3 100644 (file)
@@ -116,3 +116,7 @@ PVOID       MmAllocateHighestMemoryBelowAddress(ULONG MemorySize, PVOID DesiredAddress
 
 PVOID  MmHeapAlloc(ULONG MemorySize);
 VOID   MmHeapFree(PVOID MemoryPointer);
+
+#define ExAllocatePool(pool, size) MmHeapAlloc(size)
+#define ExAllocatePoolWithTag(pool, size, tag) MmHeapAlloc(size)
+#define ExFreePool(p) MmHeapFree(p)
index c06bb00..f4a4c69 100644 (file)
@@ -345,3 +345,54 @@ PPAGE_LOOKUP_TABLE_ITEM MmGetMemoryMap(ULONG *NoEntries)
 
        return RealPageLookupTable;
 }
+
+#undef ExAllocatePoolWithTag
+NTKERNELAPI
+PVOID
+NTAPI
+ExAllocatePoolWithTag(
+    IN POOL_TYPE PoolType,
+    IN SIZE_T NumberOfBytes,
+    IN ULONG Tag)
+{
+    return MmHeapAlloc(NumberOfBytes);
+}
+
+#undef ExFreePool
+NTKERNELAPI
+VOID
+NTAPI
+ExFreePool(
+    IN PVOID P)
+{
+    MmHeapFree(P);
+}
+
+PVOID
+NTAPI
+RtlAllocateHeap(
+    IN PVOID HeapHandle,
+    IN ULONG Flags,
+    IN SIZE_T Size)
+{
+    PVOID ptr;
+
+    ptr = MmHeapAlloc(Size);
+    if (ptr && (Flags & HEAP_ZERO_MEMORY))
+    {
+        RtlZeroMemory(ptr, Size);
+    }
+
+    return ptr;
+}
+
+BOOLEAN
+NTAPI
+RtlFreeHeap(
+    IN PVOID HeapHandle,
+    IN ULONG Flags,
+    IN PVOID HeapBase)
+{
+    MmHeapFree(HeapBase);
+    return TRUE;
+}