TEST_F(MemkindPmemTests, test_TC_MEMKIND_PmemCalloc) { const size_t size = 1024; const size_t num = 1; char *default_str = NULL; default_str = (char *)memkind_calloc(pmem_kind, num, size); EXPECT_TRUE(NULL != default_str); EXPECT_EQ(*default_str, 0); sprintf(default_str, "memkind_calloc MEMKIND_PMEM\n"); printf("%s", default_str); memkind_free(pmem_kind, default_str); // allocate the buffer of the same size (likely at the same address) default_str = (char *)memkind_calloc(pmem_kind, num, size); EXPECT_TRUE(NULL != default_str); EXPECT_EQ(*default_str, 0); sprintf(default_str, "memkind_calloc MEMKIND_PMEM\n"); printf("%s", default_str); memkind_free(pmem_kind, default_str); }
void *hbw_calloc(size_t num, size_t size) { memkind_t kind; kind = hbw_get_kind(HBW_PAGESIZE_4KB); return memkind_calloc(kind, num, size); }
memory_operation wrapped_calloc(size_t num, size_t size) { START_TEST(type_id, FunctionCalls::CALLOC) data.ptr = memkind_calloc(kind, num, size); data.error_code = errno; END_TEST }
TEST_F(MemkindDefaultTests, test_TC_MEMKIND_DefaultCalloc) { const size_t size = 1024; const size_t num = 1; char *default_str = NULL; default_str = (char *)memkind_calloc(MEMKIND_DEFAULT, num, size); EXPECT_TRUE(NULL != default_str); sprintf(default_str, "memkind_calloc MEMKIND_DEFAULT\n"); printf("%s", default_str); memkind_free(MEMKIND_DEFAULT, default_str); }
//////////////////////////////////////////////////////////////////////////// // My calloc implementation calling memkind_calloc. //////////////////////////////////////////////////////////////////////////// void *myMemkindCalloc(size_t nmemb, size_t size) { DBG(2) printf("In my memkind calloc sz:%ld ..", size*nmemb); //setLibcSymbols(); void *pp; // if we have not initialized memkind HBW arena yet, call default kind // if (!MemkindInitDone || !isAllocInHBW(size*nmemb)) pp = memkind_calloc(MEMKIND_DEFAULT, nmemb, size); else { DBG(2) printf("\tHBW"); pp = memkind_calloc(HBW_Type, nmemb, size); logHBW(pp, size*nmemb); } DBG(2) printf("\tptr:%p\n", pp); return pp; }
MEMKIND_EXPORT void *hbw_calloc(size_t num, size_t size) { return memkind_calloc(hbw_get_kind(HBW_PAGESIZE_4KB), num, size); }