Example #1
0
File: mem.c Project: skymeyer/kore
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);
}
Example #2
0
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);
}
Example #3
0
File: mem.c Project: skymeyer/kore
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);
}