updated mempoo.h
authorGengbin Zheng <gzheng@illinois.edu>
Wed, 5 Oct 2011 20:42:30 +0000 (13:42 -0700)
committerGengbin Zheng <gzheng@illinois.edu>
Wed, 5 Oct 2011 20:42:30 +0000 (13:42 -0700)
src/arch/gemini_gni/mempool.h [deleted file]
src/arch/util/mempool.c
src/arch/util/mempool.h [new file with mode: 0644]

diff --git a/src/arch/gemini_gni/mempool.h b/src/arch/gemini_gni/mempool.h
deleted file mode 100644 (file)
index 4c19d62..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*****************************************************************************
- * $Source$
- * $Author$ 
- * $Date$
- * $Revision$
- *****************************************************************************/
-
-/* Sanjay's pooling allocator adapted for cmialloc usage*/
-#ifndef GNIPOOL_H
-#define GNIPOOL_H  
-
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-#define GNI_POOL_HEADER_SIZE 8
-#define GNI_POOL_DEFAULT_BINS 30
-#include "converse.h"
-
-#define GNI_POOL_HEADER_SIZE 8
-
-void GniPoolPrintList(char *p); 
-
-void GniPoolAllocInit(int numBins);
-
-
-void * GniPoolAlloc(unsigned int numBytes);
-
-void  GniPoolFree(void * p);
-void  GniPoolAllocStats();
-
-/* theoretically we should put a pool cleanup function in here */
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* GNIPOOL.H */
index d78dbfb2991f82503c7392d1b675ab45706c5467..0756e1f3db44fb0aab7d6bbbbc06706ed5e29fe9 100644 (file)
@@ -4,6 +4,7 @@
 Memory pool implementation , It is only good for Charm++ usage. The first 64 bytes provides additional information. sizeof(int)- size of this block(free or allocated), next gni_mem_handle_t, then void** point to the next available block. 
 
 Written by Yanhua Sun 08-27-2011
+Generalized by Gengbin Zheng  10/5/2011
 
 */
 
@@ -12,37 +13,10 @@ Written by Yanhua Sun 08-27-2011
 #define POOLS_NUM       2
 #define MAX_INT        2147483647
 
-static      size_t     expand_mem = 1024ll*1024*16;
-
-#if ! CMK_CONVERSE_GEMINI_UGNI
-  // in uGNI, it is memory handler, other versions, this is an integer
-  // a unique integer to represent the memory block
-typedef int    gni_mem_handle_t;
-#endif
-
-// multiple mempool for different size allocation
-typedef struct mempool_block_t
-{
-    void                *mempool_ptr;
-    struct              mempool_block_t *next;
-    gni_mem_handle_t    mem_hndl;
-} mempool_block;
-
-
-typedef struct mempool_header
-{
-  int size;
-  gni_mem_handle_t  mem_hndl;
-  size_t            next_free;
-} mempool_header;
+#include "mempool.h"
 
+static      size_t     expand_mem = 1024ll*1024*16;
 
-// only at beginning of first block of mempool
-typedef struct mempool_type
-{
-  mempool_block   mempools_head;
-  size_t          freelist_head;
-} mempool_type;
 
 
 mempool_type *init_mempool(void *pool, size_t pool_size, gni_mem_handle_t mem_hndl)
diff --git a/src/arch/util/mempool.h b/src/arch/util/mempool.h
new file mode 100644 (file)
index 0000000..1272584
--- /dev/null
@@ -0,0 +1,51 @@
+
+#ifndef MEMPOOL_H
+#define MEMPOOL_H  
+
+#include "conv-config.h"
+
+#if ! CMK_CONVERSE_GEMINI_UGNI
+  // in uGNI, it is memory handler, other versions, this is an integer
+  // a unique integer to represent the memory block
+typedef int    gni_mem_handle_t;
+#endif
+
+// multiple mempool for different size allocation
+typedef struct mempool_block_t
+{
+    void                *mempool_ptr;
+    struct              mempool_block_t *next;
+    gni_mem_handle_t    mem_hndl;
+} mempool_block;
+
+
+typedef struct mempool_header
+{
+  int size;
+  gni_mem_handle_t  mem_hndl;
+  size_t            next_free;
+} mempool_header;
+
+
+// only at beginning of first block of mempool
+typedef struct mempool_type
+{
+  mempool_block   mempools_head;
+  size_t          freelist_head;
+} mempool_type;
+
+
+mempool_type *init_mempool(void *pool, size_t pool_size, gni_mem_handle_t mem_hndl);
+void kill_allmempool(mempool_type *mptr);
+void*  mempool_malloc(mempool_type *mptr, int size, int expand);
+void mempool_free(mempool_type *mptr, void *ptr_free);
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* MEMPOOL.H */