Clean up dlmalloc.
authorMarcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
Fri, 1 Oct 2010 11:24:12 +0000 (13:24 +0200)
committerMarcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
Fri, 1 Oct 2010 11:24:12 +0000 (13:24 +0200)
loader/CMakeLists.txt
loader/dlmalloc.c
loader/dlmalloc.h

index ad8a240..ea98eb5 100644 (file)
@@ -3,7 +3,8 @@ cmake_minimum_required(VERSION 2.6.0)
 \r
 include_directories(${CMAKE_CURRENT_SOURCE_DIR})\r
 \r
-add_definitions(-DUSE_LOCKS=1 -DUSE_DL_PREFIX=1 -DDEFAULT_GRANULARITY=2097152 -DDEFAULT_MMAP_THRESHOLD=2097152)\r
+# For dlmalloc.h\r
+add_definitions(-DUSE_DL_PREFIX=1)\r
 \r
 add_executable(himemce himemce.c\r
   wine.h my_winternl.h compat.c\r
@@ -13,6 +14,11 @@ add_executable(himemce himemce.c
   server_protocol.h server_mapping.c)\r
 install(TARGETS himemce DESTINATION bin)\r
 \r
+add_library(newtest SHARED newtest.cpp newtest.def)\r
+add_executable(newtestex newtestex.cpp)\r
+target_link_libraries(newtestex newtest)\r
+install(TARGETS newtest newtestex DESTINATION bin)\r
+\r
 add_executable(himemce-real himemce-real.cpp)\r
 SET_TARGET_PROPERTIES(himemce-real PROPERTIES LINK_FLAGS " /FIXED:NO")\r
 # FIXME: For now...\r
index cb6451e..47984c7 100644 (file)
@@ -1,4 +1,14 @@
+/* Use simple spinlock protection.  */
+#define USE_LOCKS 1
+/* Prefix exported symbols with "dl", ie dlmalloc etc.  */
+#define USE_DL_PREFIX 1
+/* On Windows CE, minimum allocation is 2MB if you want to use the
+   high memory area.  */
+#define DEFAULT_GRANULARITY (2 * 1024 * 1024)
+#define DEFAULT_MMAP_THRESHOLD (2* 1024 * 1024)
+/* Maybe replace this with something more appropriate.  */
 #define ABORT exit(1)
+
 /*
   This is a version (aka dlmalloc) of malloc/free/realloc written by
   Doug Lea and released to the public domain, as explained at
@@ -1502,21 +1512,27 @@ static int dev_zero_fd = -1; /* Cached file descriptor for /dev/zero. */
 
 /* Win32 MMAP via VirtualAlloc */
 static FORCEINLINE void* win32mmap(size_t size) {
+#if 0
+  void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE);
+  return (ptr != 0)? ptr: MFAIL;
+#else
   void* ptr = VirtualAlloc(0, size, MEM_RESERVE, PAGE_NOACCESS);
   if (ptr == 0)
     return MFAIL;
   VirtualAlloc(ptr, size, MEM_COMMIT, PAGE_READWRITE);
   return ptr;
+#endif
 }
 
 /* For direct MMAP, use MEM_TOP_DOWN to minimize interference */
 static FORCEINLINE void* win32direct_mmap(size_t size) {
+#if 0
   void* ptr = VirtualAlloc(0, size, MEM_RESERVE, PAGE_NOACCESS);
   if (ptr == 0)
     return MFAIL;
   VirtualAlloc(ptr, size, MEM_COMMIT, PAGE_READWRITE);
   return ptr;
-#if 0
+#else
   void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT|MEM_TOP_DOWN,
                            PAGE_READWRITE);
   return (ptr != 0)? ptr: MFAIL;
index 12c7d4c..6a549c2 100644 (file)
@@ -1,3 +1,7 @@
+#ifndef USE_DL_PREFIX
+#define USE_DL_PREFIX 1
+#endif
+
 /*
   Default header file for malloc-2.8.x, written by Doug Lea
   and released to the public domain, as explained at