summaryrefslogtreecommitdiff
path: root/src/dbuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dbuf.c')
-rw-r--r--src/dbuf.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/dbuf.c b/src/dbuf.c
index 1271b86..9004dbe 100644
--- a/src/dbuf.c
+++ b/src/dbuf.c
@@ -24,23 +24,24 @@
#include "stdinc.h"
#include "list.h"
-#include "balloc.h"
#include "dbuf.h"
#include "memory.h"
+#include "mempool.h"
-static BlockHeap *dbuf_heap;
+static mp_pool_t *dbuf_pool;
void
dbuf_init(void)
{
- dbuf_heap = BlockHeapCreate("dbuf", sizeof(struct dbuf_block), DBUF_HEAP_SIZE);
+ dbuf_pool = mp_pool_new(sizeof(struct dbuf_block), MP_CHUNK_SIZE_DBUF);
}
static struct dbuf_block *
dbuf_alloc(struct dbuf_queue *qptr)
{
- struct dbuf_block *block = BlockHeapAlloc(dbuf_heap);
+ struct dbuf_block *block = mp_pool_get(dbuf_pool);
+ memset(block, 0, sizeof(*block));
dlinkAddTail(block, make_dlink_node(), &qptr->blocks);
return block;
}
@@ -101,7 +102,7 @@ dbuf_delete(struct dbuf_queue *qptr, size_t count)
count -= first->size;
dlinkDelete(ptr, &qptr->blocks);
free_dlink_node(ptr);
- BlockHeapFree(dbuf_heap, first);
+ mp_pool_release(first);
}
/* ..then remove data from the beginning of the queue */