浏览代码

set bitmap resolution through cmake

Ioannis Koutras 13 年之前
父节点
当前提交
cf67e87c9b
共有 4 个文件被更改,包括 14 次插入3 次删除
  1. 4 0
      CMakeLists.txt
  2. 3 1
      DefineOptions.cmake
  3. 7 0
      dmm_config.h.in
  4. 0 2
      private-include/bitmap/bitmap_rb.h

+ 4 - 0
CMakeLists.txt

@@ -45,6 +45,10 @@ message(STATUS "POSIX locking mechanisms: " ${HAVE_LOCKS})
 
 message(STATUS "Raw blocks type: " ${RAW_BLOCKS_TYPE})
 
+if(RAW_BLOCKS_TYPE STREQUAL "bitmap")
+  message(STATUS "Bitmap cell resolution: " ${BITMAP_RESOLUTION} " bytes")
+endif(RAW_BLOCKS_TYPE STREQUAL "bitmap")
+
 if(RAW_BLOCKS_TYPE STREQUAL "freelist")
 
   if(BLOCKS_ORGANIZATION STREQUAL "dll")

+ 3 - 1
DefineOptions.cmake

@@ -1,5 +1,5 @@
 set(WITH_SYSTEM_CALLS "none" CACHE STRING "Choose what system calls can be used, options are: none, sbrk, mmap")
-set(RAW_BLOCKS_TYPE "freelist" CACHE STRING "Choose what raw blocks can be used, options are: freelist, bitmap")
+set(RAW_BLOCKS_TYPE "bitmap" CACHE STRING "Choose what raw blocks can be used, options are: freelist, bitmap")
 option(HAVE_LOCKS "Build with POSIX locking mechanisms" ON)
 option(WITH_REALLOC "Build with realloc" OFF)
 set(TRACE_LEVEL 2 CACHE INTEGER "Choose the trace level, options are: 0, 1, 2 and 3")
@@ -15,6 +15,8 @@ option(FREELIST_COALESCE_AFTER_SPLIT "Try to coalesce blocks after split" OFF)
 
 option(SORT_POLICY "Choose the block sorting policy, options are: lifo, fifo, size, address")
 
+set(BITMAP_RESOLUTION 256 CACHE INTEGER "Choose the size of cells in bitmap-organised raw blocks")
+
 set(REQUEST_SIZE_INFO ON)
 
 set(WITH_SYSTEM_CALLS "none")

+ 7 - 0
dmm_config.h.in

@@ -38,6 +38,13 @@
 
 #cmakedefine COALESCE_AFTER_SPLIT
 
+#ifdef BITMAP_RB_ONLY
+
+/** How many bytes per cell should be used */
+#cmakedefine BITMAP_RESOLUTION
+
+#endif /* BITMAP_RB_ONLY */
+
 #cmakedefine REQUEST_SIZE_INFO
 
 #cmakedefine WITH_RAWBLOCK_STATS

+ 0 - 2
private-include/bitmap/bitmap_rb.h

@@ -37,8 +37,6 @@
 #define BMAP_EL_SIZE_BITS (BMAP_EL_SIZE * 8)
 /** Bitmap's initial value */
 #define BMAP_EL_INIT_VAL ~((BMAP_EL_TYPE) 0)
-/** How many bytes per cell should be used */
-#define BITMAP_RESOLUTION 256
 
 /** Bitmap-organized raw block header data structure */
 typedef struct bitmap_rb_s {