[FREELDR] Fix 64 bit issues
[reactos.git] / boot / freeldr / freeldr / include / mm.h
index 8bf68e8..d29fe60 100644 (file)
 
 extern char __ImageBase;
 #ifdef __GNUC__
+/* .text, .edata and .bss */
 #define FREELDR_SECTION_COUNT 3
 #else
 #ifdef _M_AMD64
 /* .text and .pdata */
 #define FREELDR_SECTION_COUNT 2
 #else
-#define FREELDR_SECTION_COUNT 1
+/* .text and .edata */
+#define FREELDR_SECTION_COUNT 2
 #endif
 #endif
 
@@ -117,42 +119,74 @@ VOID    MmFreeMemory(PVOID MemoryPointer);
 PVOID    MmAllocateMemoryAtAddress(SIZE_T MemorySize, PVOID DesiredAddress, TYPE_OF_MEMORY MemoryType);
 PVOID    MmAllocateHighestMemoryBelowAddress(SIZE_T MemorySize, PVOID DesiredAddress, TYPE_OF_MEMORY MemoryType);
 
-PVOID    MmHeapAlloc(SIZE_T MemorySize);
-VOID    MmHeapFree(PVOID MemoryPointer);
-
 /* Heap */
+#define DEFAULT_HEAP_SIZE (1024 * 1024)
+#define TEMP_HEAP_SIZE (32 * 1024 * 1024)
+
 extern PVOID FrLdrDefaultHeap;
 extern PVOID FrLdrTempHeap;
+extern SIZE_T FrLdrImageSize;
 
 PVOID
-HeapCreate(
+FrLdrHeapCreate(
     SIZE_T MaximumSize,
     TYPE_OF_MEMORY MemoryType);
 
 VOID
-HeapDestroy(
+FrLdrHeapDestroy(
     PVOID HeapHandle);
 
 VOID
-HeapRelease(
+FrLdrHeapRelease(
     PVOID HeapHandle);
 
 VOID
-HeapVerify(
+FrLdrHeapVerify(
     PVOID HeapHandle);
 
 VOID
-HeapCleanupAll(VOID);
+FrLdrHeapCleanupAll(VOID);
 
 PVOID
-HeapAllocate(
+FrLdrHeapAllocateEx(
     PVOID HeapHandle,
     SIZE_T ByteSize,
     ULONG Tag);
 
 VOID
-HeapFree(
+FrLdrHeapFreeEx(
     PVOID HeapHandle,
     PVOID Pointer,
     ULONG Tag);
 
+FORCEINLINE
+PVOID
+FrLdrHeapAlloc(SIZE_T MemorySize, ULONG Tag)
+{
+    return FrLdrHeapAllocateEx(FrLdrDefaultHeap, MemorySize, Tag);
+}
+
+FORCEINLINE
+VOID
+FrLdrHeapFree(PVOID MemoryPointer, ULONG Tag)
+{
+    FrLdrHeapFreeEx(FrLdrDefaultHeap, MemoryPointer, Tag);
+}
+
+FORCEINLINE
+PVOID
+FrLdrTempAlloc(
+    _In_ SIZE_T Size,
+    _In_ ULONG Tag)
+{
+    return FrLdrHeapAllocateEx(FrLdrTempHeap, Size, Tag);
+}
+
+FORCEINLINE
+VOID
+FrLdrTempFree(
+    PVOID Allocation, ULONG Tag)
+{
+    FrLdrHeapFreeEx(FrLdrTempHeap, Allocation, Tag);
+}
+