zbd: change some f->zbd_info conditionals to asserts
[fio.git] / lib / memalign.c
index 137cc8ec3ec4eef920b9524c9b6a374cba32660f..214a66faca0b3359d8c8ce0050bd173d3de40ad0 100644 (file)
@@ -1,8 +1,8 @@
-#include <stdlib.h>
 #include <assert.h>
-#include <inttypes.h>
+#include <stdlib.h>
 
 #include "memalign.h"
+#include "smalloc.h"
 
 #define PTR_ALIGN(ptr, mask)   \
        (char *)((uintptr_t)((ptr) + (mask)) & ~(mask))
@@ -11,14 +11,14 @@ struct align_footer {
        unsigned int offset;
 };
 
-void *fio_memalign(size_t alignment, size_t size)
+void *__fio_memalign(size_t alignment, size_t size, malloc_fn fn)
 {
        struct align_footer *f;
        void *ptr, *ret = NULL;
 
        assert(!(alignment & (alignment - 1)));
 
-       ptr = malloc(size + alignment + size + sizeof(*f) - 1);
+       ptr = fn(size + alignment + sizeof(*f) - 1);
        if (ptr) {
                ret = PTR_ALIGN(ptr, alignment - 1);
                f = ret + size;
@@ -28,9 +28,9 @@ void *fio_memalign(size_t alignment, size_t size)
        return ret;
 }
 
-void fio_memfree(void *ptr, size_t size)
+void __fio_memfree(void *ptr, size_t size, free_fn fn)
 {
        struct align_footer *f = ptr + size;
 
-       free(ptr - f->offset);
+       fn(ptr - f->offset);
 }