void kore_mem_free(void *ptr) { u_int8_t *addr; struct meminfo *mem; mem = KORE_MEMINFO(ptr); if (mem->magic != KORE_MEM_MAGIC) fatal("kore_mem_free(): magic boundary not found"); meminuse -= KORE_MEMSIZE(ptr); TAILQ_REMOVE(&memused, mem, list); addr = (u_int8_t *)ptr - sizeof(u_int32_t); free(addr); }
void kore_mem_free(void *ptr) { u_int8_t *addr; struct meminfo *mem; mem = KORE_MEMINFO(ptr); if (mem->magic != KORE_MEM_MAGIC) fatal("kore_mem_free(): magic boundary not found"); #if defined(KORE_PEDANTIC_MALLOC) explicit_bzero(ptr, KORE_MEMSIZE(ptr)); #endif addr = (u_int8_t *)ptr - sizeof(u_int32_t); free(addr); }
void * kore_realloc(void *ptr, size_t len) { struct meminfo *mem; void *nptr; if (ptr == NULL) { nptr = kore_malloc(len); } else { mem = KORE_MEMINFO(ptr); if (mem->magic != KORE_MEM_MAGIC) fatal("kore_realloc(): magic boundary not found"); nptr = kore_malloc(len); memcpy(nptr, ptr, KORE_MEMSIZE(ptr)); kore_mem_free(ptr); } return (nptr); }