
00001 /*Contains declarations used by memory-isomalloc.c to provide 00002 migratable heap allocation to arbitrary clients. 00003 */ 00004 #ifndef CMK_MEMORY_ISOMALLOC_H 00005 #define CMK_MEMORY_ISOMALLOC_H 00006 00007 /*Grab CmiIsomalloc* protoypes, and CmiIsomallocBlock*/ 00008 #include <stdlib.h> 00009 #include "converse.h" 00010 #include "pup_c.h" 00011 00012 #ifdef __cplusplus 00013 extern "C" { 00014 #endif 00015 00016 /*Allocate non-migratable memory*/ 00017 void *malloc_nomigrate(size_t size); 00018 void free_nomigrate(void *mem); 00019 00020 /*Reentrant versions of memory routines, used inside isomalloc*/ 00021 void *malloc_reentrant(size_t size); 00022 void free_reentrant(void *mem); 00023 00024 /*Make this blockList active (returns the old blocklist).*/ 00025 CmiIsomallocBlockList *CmiIsomallocBlockListActivate(CmiIsomallocBlockList *l); 00026 CmiIsomallocBlockList *CmiIsomallocBlockListCurrent(); 00027 00028 #ifdef __cplusplus 00029 } 00030 #endif 00031 00032 #endif 00033
1.5.5