54 memset(m->count, 0, m->num);
55 memset(m->mem, 0, m->size * m->num);
63 for(i = 0; i < m->num; ++i) {
64 if(m->count[i] == 0) {
69 return (
void *)((
char *)m->mem + (i * m->size));
86 ptr2 = (
char *)m->mem;
87 for(i = 0; i < m->num; ++i) {
89 if(ptr2 == (
char *)ptr) {
104 memb_inmemb(
struct memb *m,
void *ptr)
106 return (
char *)ptr >= (
char *)m->mem &&
107 (
char *)ptr < (
char *)m->mem + (m->num * m->size);
111 memb_numfree(
struct memb *m)
116 for(i = 0; i < m->num; ++i) {
117 if(m->count[i] == 0) {
void memb_init(struct memb *m)
Initialize a memory block that was declared with MEMB().
char memb_free(struct memb *m, void *ptr)
Deallocate a memory block from a memory block previously declared with MEMB().
void * memb_alloc(struct memb *m)
Allocate a memory block from a block of memory declared with MEMB().
#define NULL
The null pointer.
Memory block allocation routines.